logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: e63aebff7a4d978fddd7ed3ddc184ed300843a57
parent: 45a96e899e96da846dbef0d39d6f02db790fccaa
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Tue, 27 Sep 2016 23:12:33 +0200

Adding landing page

Diffstat:

MGemfile.lock10+++++-----
Aapp/assets/images/background-photo.jpeg0
Dapp/assets/images/background-photo.jpg0
Aapp/assets/javascripts/about.coffee3+++
Mapp/assets/javascripts/components/components/button.jsx23++++++++++++++++++++++-
Aapp/assets/stylesheets/about.scss41+++++++++++++++++++++++++++++++++++++++++
Mapp/assets/stylesheets/application.scss5+++--
Mapp/assets/stylesheets/components.scss17+++++++++++++++++
Aapp/controllers/about_controller.rb5+++++
Mapp/controllers/home_controller.rb4++++
Aapp/helpers/about_helper.rb2++
Aapp/views/about/index.html.haml19+++++++++++++++++++
Mconfig/routes.rb2++
Mpackage.json1+
Aspec/controllers/about_controller_spec.rb12++++++++++++
Aspec/helpers/about_helper_spec.rb5+++++
16 files changed, 141 insertions(+), 8 deletions(-)

diff --git a/Gemfile.lock b/Gemfile.lock @@ -106,9 +106,9 @@ GEM ruby-progressbar (~> 1.4) globalid (0.3.7) activesupport (>= 4.1.0) - goldfinger (1.0.3) + goldfinger (1.0.4) addressable (~> 2.4) - http (~> 1.0) + http (~> 2.0) nokogiri (~> 1.6) hamlit (2.7.2) temple (~> 0.7.6) @@ -122,7 +122,7 @@ GEM hashdiff (0.3.0) hiredis (0.6.1) htmlentities (4.3.4) - http (1.0.4) + http (2.0.3) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 1.0.1) @@ -168,9 +168,9 @@ GEM pkg-config (~> 1.1.7) oj (2.17.3) orm_adapter (0.5.0) - ostatus2 (0.3) + ostatus2 (0.3.1) addressable (~> 2.4) - http (~> 1.0) + http (~> 2.0) nokogiri (~> 1.6) paperclip (4.3.7) activemodel (>= 3.2.0) diff --git a/app/assets/images/background-photo.jpeg b/app/assets/images/background-photo.jpeg Binary files differ. diff --git a/app/assets/images/background-photo.jpg b/app/assets/images/background-photo.jpg Binary files differ. diff --git a/app/assets/javascripts/about.coffee b/app/assets/javascripts/about.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/components/components/button.jsx b/app/assets/javascripts/components/components/button.jsx @@ -19,8 +19,29 @@ const Button = React.createClass({ }, render () { + const style = { + fontFamily: 'Roboto', + display: this.props.block ? 'block' : 'inline-block', + width: this.props.block ? '100%' : 'auto', + position: 'relative', + boxSizing: 'border-box', + textAlign: 'center', + border: '10px none', + color: '#fff', + fontSize: '14px', + fontWeight: '500', + letterSpacing: '0', + textTransform: 'uppercase', + padding: '0 16px', + height: '36px', + cursor: 'pointer', + lineHeight: '36px', + borderRadius: '4px', + textDecoration: 'none' + }; + return ( - <button className={`button ${this.props.secondary ? 'button-secondary' : ''}`} disabled={this.props.disabled} onClick={this.handleClick} style={{ fontFamily: 'Roboto', display: this.props.block ? 'block' : 'inline-block', width: this.props.block ? '100%' : 'auto', position: 'relative', boxSizing: 'border-box', textAlign: 'center', border: '10px none', color: '#fff', fontSize: '14px', fontWeight: '500', letterSpacing: '0', textTransform: 'uppercase', padding: '0 16px', height: '36px', cursor: 'pointer', lineHeight: '36px', borderRadius: '4px', textDecoration: 'none' }}> + <button className={`button ${this.props.secondary ? 'button-secondary' : ''}`} disabled={this.props.disabled} onClick={this.handleClick} style={style}> {this.props.text || this.props.children} </button> ); diff --git a/app/assets/stylesheets/about.scss b/app/assets/stylesheets/about.scss @@ -0,0 +1,41 @@ +@import url(https://fonts.googleapis.com/css?family=Montserrat); +@import url(https://fonts.googleapis.com/css?family=Judson); + +.about-body { + .wrapper { + width: 600px; + margin: 0 auto; + color: #9baec8; + padding-top: 200px; + } + + h1 { + font: 46px/52px 'Roboto', sans-serif; + font-weight: 600; + margin-bottom: 20px; + color: #2b90d9; + padding: 20px 0; + + img { + margin-bottom: -5px; + margin-right: 5px; + width: 46px; + height: 46px; + } + } + + p { + font: 20px/28px 'Judson', sans-serif; + font-weight: 300; + margin-bottom: 26px; + } + + em { + display: inline-block; + padding: 7px 7px 5px 7px; + background: #9baec8; + color: #282c37; + font: 16px/16px 'Montserrat', sans-serif; + font-weight: 300; + } +} diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss @@ -59,7 +59,7 @@ table { body { font-family: 'Roboto', sans-serif; - background: #282c37 image-url('background-photo.jpg'); + background: #282c37 image-url('background-photo.jpeg'); background-size: cover; background-attachment: fixed; font-size: 13px; @@ -334,4 +334,5 @@ body { @import 'accounts'; @import 'stream_entries'; -@import 'components' +@import 'components'; +@import 'about'; diff --git a/app/assets/stylesheets/components.scss b/app/assets/stylesheets/components.scss @@ -1,5 +1,22 @@ .button { background-color: #2b90d9; + font-family: 'Roboto'; + display: inline-block; + position: relative; + box-sizing: border-box; + text-align: center; + border: 10px none; + color: #fff; + font-size: 14px; + font-weight: 500; + letter-spacing: 0; + text-transform: uppercase; + padding: 0 16px; + height: 36px; + cursor: pointer; + line-height: 36px; + border-radius: 4px; + text-decoration: none; &:hover { background-color: #489fde; diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb @@ -0,0 +1,5 @@ +class AboutController < ApplicationController + def index + @body_classes = 'about-body' + end +end diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb @@ -10,6 +10,10 @@ class HomeController < ApplicationController private + def authenticate_user! + redirect_to about_path unless user_signed_in? + end + def find_or_create_access_token Doorkeeper::AccessToken.find_or_create_for(Doorkeeper::Application.where(superapp: true).first, current_user.id, nil, Doorkeeper.configuration.access_token_expires_in, Doorkeeper.configuration.refresh_token_enabled?) end diff --git a/app/helpers/about_helper.rb b/app/helpers/about_helper.rb @@ -0,0 +1,2 @@ +module AboutHelper +end diff --git a/app/views/about/index.html.haml b/app/views/about/index.html.haml @@ -0,0 +1,19 @@ +.wrapper + %h1 + = image_tag 'logo.png' + Mastodon + + %p + Mastodon is a + %em free, open-source + social network server. A + %em decentralized + alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the + %em social network + seamlessly. + %p + %em= Rails.configuration.x.local_domain + is a Mastodon instance. + + .actions + = link_to 'Get started', new_user_session_path, class: 'button' diff --git a/config/routes.rb b/config/routes.rb @@ -77,6 +77,8 @@ Rails.application.routes.draw do end end + get :about, to: 'about#index' + root 'home#index' match '*unmatched_route', via: :all, to: 'application#raise_not_found' diff --git a/package.json b/package.json @@ -23,6 +23,7 @@ "react-redux": "^4.4.5", "react-redux-loading-bar": "^2.3.3", "react-router": "^2.8.0", + "react-simple-dropdown": "^1.1.4", "redux": "^3.5.2", "redux-immutable": "^3.0.8", "redux-thunk": "^2.1.0" diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb @@ -0,0 +1,12 @@ +require 'rails_helper' + +RSpec.describe AboutController, type: :controller do + + describe "GET #index" do + it "returns http success" do + get :index + expect(response).to have_http_status(:success) + end + end + +end diff --git a/spec/helpers/about_helper_spec.rb b/spec/helpers/about_helper_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe AboutHelper, type: :helper do + +end