Remove previous landing page (#19300)

This commit is contained in:
Eugen Rochko 2022-10-06 02:19:45 +02:00 committed by GitHub
parent 5fd46dddd7
commit 58d5b28cb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 8 additions and 210 deletions

View File

@ -5,16 +5,13 @@ class AboutController < ApplicationController
layout 'public' layout 'public'
before_action :require_open_federation!, only: [:show, :more] before_action :require_open_federation!, only: [:more]
before_action :set_body_classes, only: :show before_action :set_body_classes, only: :show
before_action :set_instance_presenter before_action :set_instance_presenter
before_action :set_expires_in, only: [:more] before_action :set_expires_in, only: [:more]
before_action :set_registration_form_time, only: :show
skip_before_action :require_functional!, only: [:more] skip_before_action :require_functional!, only: [:more]
def show; end
def more def more
flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor] flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor]

View File

@ -1,10 +0,0 @@
.simple_form
%p.lead= t('about.logged_in_as_html', username: content_tag(:strong, current_account.username))
.actions
= link_to t('about.continue_to_web'), root_url, class: 'button button-primary'
.form-footer
%ul.no-list
%li= link_to t('about.get_apps'), 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer'
%li= link_to t('auth.logout'), destroy_user_session_path, data: { method: :delete }

View File

@ -1,22 +0,0 @@
- unless omniauth_only?
= simple_form_for(new_user, url: user_session_path, namespace: 'login') do |f|
.fields-group
- if use_seamless_external_login?
= f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false
- else
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, hint: false
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }, hint: false
.actions
= f.button :button, t('auth.login'), type: :submit, class: 'button button-primary'
%p.hint.subtle-hint= link_to t('auth.trouble_logging_in'), new_user_password_path
- if Devise.mappings[:user].omniauthable? and User.omniauth_providers.any?
.simple_form.alternative-login
%h4= omniauth_only? ? t('auth.log_in_with') : t('auth.or_log_in_with')
.actions
- User.omniauth_providers.each do |provider|
= provider_sign_in_link(provider)

View File

@ -1,37 +0,0 @@
- disabled = closed_registrations? || omniauth_only? || current_account.present?
- show_message = disabled && (current_user.present? || @instance_presenter.closed_registrations_message.present?)
.simple_form__overlay-area{ class: show_message ? 'simple_form__overlay-area__blurred' : '' }
= simple_form_for(new_user, url: user_registration_path, namespace: 'registration', html: { novalidate: false }) do |f|
%p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
.fields-group
= f.simple_fields_for :account do |account_fields|
= account_fields.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false, disabled: disabled
= f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: disabled
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false, disabled: disabled
= f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false, disabled: disabled
= f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false, disabled: disabled
= f.input :website, as: :url, placeholder: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }, hint: false, disabled: disabled
- if approved_registrations?
.fields-group
= f.simple_fields_for :invite_request do |invite_request_fields|
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text
.fields-group
= f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true, disabled: disabled
.actions
= f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: disabled
- if show_message
.simple_form__overlay-area__overlay
.simple_form__overlay-area__overlay__content.rich-formatting
.block-icon= fa_icon 'warning'
- if current_account.present?
= t('about.logout_before_registering')
- else
= @instance_presenter.closed_registrations_message.html_safe

View File

@ -1,69 +0,0 @@
- content_for :page_title do
= site_hostname
- content_for :header_tags do
%link{ rel: 'canonical', href: about_url }/
= render partial: 'shared/og'
.landing
.landing__brand
= link_to root_url, class: 'brand' do
= logo_as_symbol(:wordmark)
%span.brand__tagline=t 'about.tagline'
.landing__grid
.landing__grid__column.landing__grid__column-registration
.box-widget
= render 'registration'
.directory
.directory__tag
= link_to web_path do
%h4
= fa_icon 'globe fw'
= t('about.see_whats_happening')
%small= t('about.browse_public_posts')
.directory__tag
= link_to 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer' do
%h4
= fa_icon 'tablet fw'
= t('about.get_apps')
%small= t('about.apps_platforms')
.landing__grid__column.landing__grid__column-login
.box-widget
- if current_user.present?
= render 'logged_in'
- else
= render 'login'
.hero-widget
.hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title
.hero-widget__text
%p
= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html')
= link_to about_more_path do
= t('about.learn_more')
= fa_icon 'angle-double-right'
.hero-widget__footer
.hero-widget__footer__column
%h4= t 'about.administered_by'
= account_link_to @instance_presenter.contact.account
.hero-widget__footer__column
%h4= t 'about.server_stats'
.hero-widget__counters__wrapper
.hero-widget__counter
%strong= friendly_number_to_human @instance_presenter.user_count
%span= t 'about.user_count_after', count: @instance_presenter.user_count
.hero-widget__counter
%strong= friendly_number_to_human @instance_presenter.active_user_count
%span
= t 'about.active_count_after'
%abbr{ title: t('about.active_footnote') } *

View File

@ -3,38 +3,25 @@ en:
about: about:
about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!' about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!'
about_this: About about_this: About
active_count_after: active
active_footnote: Monthly Active Users (MAU)
administered_by: 'Administered by:' administered_by: 'Administered by:'
api: API api: API
apps: Mobile apps apps: Mobile apps
apps_platforms: Use Mastodon from iOS, Android and other platforms
browse_public_posts: Browse a live stream of public posts on Mastodon
contact: Contact contact: Contact
contact_missing: Not set contact_missing: Not set
contact_unavailable: N/A contact_unavailable: N/A
continue_to_web: Continue to web app
documentation: Documentation documentation: Documentation
federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
get_apps: Try a mobile app
hosted_on: Mastodon hosted on %{domain} hosted_on: Mastodon hosted on %{domain}
instance_actor_flash: | instance_actor_flash: |
This account is a virtual actor used to represent the server itself and not any individual user. This account is a virtual actor used to represent the server itself and not any individual user.
It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block. It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block.
learn_more: Learn more
logged_in_as_html: You are currently logged in as %{username}.
logout_before_registering: You are already logged in.
privacy_policy: Privacy Policy privacy_policy: Privacy Policy
rules: Server rules rules: Server rules
rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:' rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:'
see_whats_happening: See what's happening
server_stats: 'Server stats:'
source_code: Source code source_code: Source code
status_count_after: status_count_after:
one: post one: post
other: posts other: posts
status_count_before: Who published status_count_before: Who published
tagline: Decentralized social network
unavailable_content: Moderated servers unavailable_content: Moderated servers
unavailable_content_description: unavailable_content_description:
domain: Server domain: Server
@ -1049,7 +1036,6 @@ en:
redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. redirecting_to: Your account is inactive because it is currently redirecting to %{acct}.
view_strikes: View past strikes against your account view_strikes: View past strikes against your account
too_fast: Form submitted too fast, try again. too_fast: Form submitted too fast, try again.
trouble_logging_in: Trouble logging in?
use_security_key: Use security key use_security_key: Use security key
authorize_follow: authorize_follow:
already_following: You are already following this account already_following: You are already following this account

View File

@ -641,7 +641,7 @@ Rails.application.routes.draw do
get '/web/(*any)', to: 'home#index', as: :web get '/web/(*any)', to: 'home#index', as: :web
get '/about', to: 'about#show' get '/about', to: redirect('/')
get '/about/more', to: 'about#more' get '/about/more', to: 'about#more'
get '/privacy-policy', to: 'privacy#show', as: :privacy_policy get '/privacy-policy', to: 'privacy#show', as: :privacy_policy

View File

@ -3,20 +3,6 @@ require 'rails_helper'
RSpec.describe AboutController, type: :controller do RSpec.describe AboutController, type: :controller do
render_views render_views
describe 'GET #show' do
before do
get :show
end
it 'assigns @instance_presenter' do
expect(assigns(:instance_presenter)).to be_kind_of InstancePresenter
end
it 'returns http success' do
expect(response).to have_http_status(200)
end
end
describe 'GET #more' do describe 'GET #more' do
before do before do
get :more get :more
@ -30,12 +16,4 @@ RSpec.describe AboutController, type: :controller do
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
end end
end end
describe 'helper_method :new_user' do
it 'returns a new User' do
user = @controller.view_context.new_user
expect(user).to be_kind_of User
expect(user.account).to be_kind_of Account
end
end
end end

View File

@ -10,30 +10,30 @@ describe 'Localization' do
it 'uses a specific region when provided' do it 'uses a specific region when provided' do
headers = { 'Accept-Language' => 'zh-HK' } headers = { 'Accept-Language' => 'zh-HK' }
get "/about", headers: headers get "/auth/sign_in", headers: headers
expect(response.body).to include( expect(response.body).to include(
I18n.t('about.tagline', locale: 'zh-HK') I18n.t('auth.login', locale: 'zh-HK')
) )
end end
it 'falls back to a locale when region missing' do it 'falls back to a locale when region missing' do
headers = { 'Accept-Language' => 'es-FAKE' } headers = { 'Accept-Language' => 'es-FAKE' }
get "/about", headers: headers get "/auth/sign_in", headers: headers
expect(response.body).to include( expect(response.body).to include(
I18n.t('about.tagline', locale: 'es') I18n.t('auth.login', locale: 'es')
) )
end end
it 'falls back to english when locale is missing' do it 'falls back to english when locale is missing' do
headers = { 'Accept-Language' => '12-FAKE' } headers = { 'Accept-Language' => '12-FAKE' }
get "/about", headers: headers get "/auth/sign_in", headers: headers
expect(response.body).to include( expect(response.body).to include(
I18n.t('about.tagline', locale: 'en') I18n.t('auth.login', locale: 'en')
) )
end end
end end

View File

@ -1,25 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
describe 'about/show.html.haml', without_verify_partial_doubles: true do
before do
allow(view).to receive(:site_hostname).and_return('example.com')
allow(view).to receive(:site_title).and_return('example site')
allow(view).to receive(:new_user).and_return(User.new)
allow(view).to receive(:use_seamless_external_login?).and_return(false)
allow(view).to receive(:current_account).and_return(nil)
end
it 'has valid open graph tags' do
assign(:instance_presenter, InstancePresenter.new)
render
header_tags = view.content_for(:header_tags)
expect(header_tags).to match(%r{<meta content=".+" property="og:title" />})
expect(header_tags).to match(%r{<meta content="website" property="og:type" />})
expect(header_tags).to match(%r{<meta content=".+" property="og:image" />})
expect(header_tags).to match(%r{<meta content="http://.+" property="og:url" />})
end
end