diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb
index 8da4a19ab58..eae7de8c89e 100644
--- a/app/controllers/about_controller.rb
+++ b/app/controllers/about_controller.rb
@@ -5,16 +5,13 @@ class AboutController < ApplicationController
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_instance_presenter
before_action :set_expires_in, only: [:more]
- before_action :set_registration_form_time, only: :show
skip_before_action :require_functional!, only: [:more]
- def show; end
-
def more
flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor]
diff --git a/app/views/about/_logged_in.html.haml b/app/views/about/_logged_in.html.haml
deleted file mode 100644
index e1bcfffb316..00000000000
--- a/app/views/about/_logged_in.html.haml
+++ /dev/null
@@ -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 }
diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml
deleted file mode 100644
index 0f19e816438..00000000000
--- a/app/views/about/_login.html.haml
+++ /dev/null
@@ -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)
diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml
deleted file mode 100644
index 5db620b2d11..00000000000
--- a/app/views/about/_registration.html.haml
+++ /dev/null
@@ -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
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
deleted file mode 100644
index 75124d5e270..00000000000
--- a/app/views/about/show.html.haml
+++ /dev/null
@@ -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') } *
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 0f2e08ee74d..b41e4f47baa 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -3,38 +3,25 @@ en:
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_this: About
- active_count_after: active
- active_footnote: Monthly Active Users (MAU)
administered_by: 'Administered by:'
api: API
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_missing: Not set
contact_unavailable: N/A
- continue_to_web: Continue to web app
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}
instance_actor_flash: |
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.
- 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
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:'
- see_whats_happening: See what's happening
- server_stats: 'Server stats:'
source_code: Source code
status_count_after:
one: post
other: posts
status_count_before: Who published
- tagline: Decentralized social network
unavailable_content: Moderated servers
unavailable_content_description:
domain: Server
@@ -1049,7 +1036,6 @@ en:
redirecting_to: Your account is inactive because it is currently redirecting to %{acct}.
view_strikes: View past strikes against your account
too_fast: Form submitted too fast, try again.
- trouble_logging_in: Trouble logging in?
use_security_key: Use security key
authorize_follow:
already_following: You are already following this account
diff --git a/config/routes.rb b/config/routes.rb
index 188898fd0b1..472e6aa6bea 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -641,7 +641,7 @@ Rails.application.routes.draw do
get '/web/(*any)', to: 'home#index', as: :web
- get '/about', to: 'about#show'
+ get '/about', to: redirect('/')
get '/about/more', to: 'about#more'
get '/privacy-policy', to: 'privacy#show', as: :privacy_policy
diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb
index 40e395a647a..20069e4137e 100644
--- a/spec/controllers/about_controller_spec.rb
+++ b/spec/controllers/about_controller_spec.rb
@@ -3,20 +3,6 @@ require 'rails_helper'
RSpec.describe AboutController, type: :controller do
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
before do
get :more
@@ -30,12 +16,4 @@ RSpec.describe AboutController, type: :controller do
expect(response).to have_http_status(200)
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
diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb
index 175f02ae997..0bc2786ac46 100644
--- a/spec/requests/localization_spec.rb
+++ b/spec/requests/localization_spec.rb
@@ -10,30 +10,30 @@ describe 'Localization' do
it 'uses a specific region when provided' do
headers = { 'Accept-Language' => 'zh-HK' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'zh-HK')
+ I18n.t('auth.login', locale: 'zh-HK')
)
end
it 'falls back to a locale when region missing' do
headers = { 'Accept-Language' => 'es-FAKE' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'es')
+ I18n.t('auth.login', locale: 'es')
)
end
it 'falls back to english when locale is missing' do
headers = { 'Accept-Language' => '12-FAKE' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'en')
+ I18n.t('auth.login', locale: 'en')
)
end
end
diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb
deleted file mode 100644
index bf6e19d2b95..00000000000
--- a/spec/views/about/show.html.haml_spec.rb
+++ /dev/null
@@ -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{})
- expect(header_tags).to match(%r{})
- expect(header_tags).to match(%r{})
- expect(header_tags).to match(%r{})
- end
-end