Clean up about page (#1282)
* Add InstancePresenter to expose site details * Clean up about controller, use instance presenterth-downstream
parent
b92480bc01
commit
41b79ae693
@ -0,0 +1,28 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class InstancePresenter
|
||||||
|
delegate(
|
||||||
|
:closed_registrations_message,
|
||||||
|
:contact_email,
|
||||||
|
:open_registrations,
|
||||||
|
:site_description,
|
||||||
|
:site_extended_description,
|
||||||
|
to: Setting
|
||||||
|
)
|
||||||
|
|
||||||
|
def contact_account
|
||||||
|
Account.find_local(Setting.site_contact_username)
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_count
|
||||||
|
Rails.cache.fetch('user_count') { User.count }
|
||||||
|
end
|
||||||
|
|
||||||
|
def status_count
|
||||||
|
Rails.cache.fetch('local_status_count') { Status.local.count }
|
||||||
|
end
|
||||||
|
|
||||||
|
def domain_count
|
||||||
|
Rails.cache.fetch('distinct_domain_count') { Account.distinct.count(:domain) }
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,30 @@
|
|||||||
|
= simple_form_for(new_user, url: user_registration_path) do |f|
|
||||||
|
= f.simple_fields_for :account do |account_fields|
|
||||||
|
= account_fields.input :username,
|
||||||
|
autofocus: true,
|
||||||
|
placeholder: t('simple_form.labels.defaults.username'),
|
||||||
|
required: true,
|
||||||
|
input_html: { 'aria-label' => t('simple_form.labels.defaults.username') }
|
||||||
|
|
||||||
|
= f.input :email,
|
||||||
|
placeholder: t('simple_form.labels.defaults.email'),
|
||||||
|
required: true,
|
||||||
|
input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }
|
||||||
|
= f.input :password,
|
||||||
|
autocomplete: "off",
|
||||||
|
placeholder: t('simple_form.labels.defaults.password'),
|
||||||
|
required: true,
|
||||||
|
input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }
|
||||||
|
= f.input :password_confirmation,
|
||||||
|
autocomplete: "off",
|
||||||
|
placeholder: t('simple_form.labels.defaults.confirm_password'),
|
||||||
|
required: true,
|
||||||
|
input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password') }
|
||||||
|
|
||||||
|
.actions
|
||||||
|
= f.button :button, t('about.get_started'), type: :submit
|
||||||
|
|
||||||
|
.info
|
||||||
|
= link_to t('auth.login'), new_user_session_path, class: 'webapp-btn'
|
||||||
|
·
|
||||||
|
= link_to t('about.about_this'), about_more_path
|
@ -0,0 +1,74 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe InstancePresenter do
|
||||||
|
let(:instance_presenter) { InstancePresenter.new }
|
||||||
|
|
||||||
|
it "delegates site_description to Setting" do
|
||||||
|
Setting.site_description = "Site desc"
|
||||||
|
|
||||||
|
expect(instance_presenter.site_description).to eq "Site desc"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "delegates site_extended_description to Setting" do
|
||||||
|
Setting.site_extended_description = "Extended desc"
|
||||||
|
|
||||||
|
expect(instance_presenter.site_extended_description).to eq "Extended desc"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "delegates open_registrations to Setting" do
|
||||||
|
Setting.open_registrations = false
|
||||||
|
|
||||||
|
expect(instance_presenter.open_registrations).to eq false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "delegates closed_registrations_message to Setting" do
|
||||||
|
Setting.closed_registrations_message = "Closed message"
|
||||||
|
|
||||||
|
expect(instance_presenter.closed_registrations_message).to eq "Closed message"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "delegates contact_email to Setting" do
|
||||||
|
Setting.contact_email = "admin@example.com"
|
||||||
|
|
||||||
|
expect(instance_presenter.contact_email).to eq "admin@example.com"
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "contact_account" do
|
||||||
|
it "returns the account for the site contact username" do
|
||||||
|
Setting.site_contact_username = "aaa"
|
||||||
|
account = Fabricate(:account, username: "aaa")
|
||||||
|
|
||||||
|
expect(instance_presenter.contact_account).to eq(account)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "user_count" do
|
||||||
|
it "returns the number of site users" do
|
||||||
|
cache = double
|
||||||
|
allow(Rails).to receive(:cache).and_return(cache)
|
||||||
|
allow(cache).to receive(:fetch).with("user_count").and_return(123)
|
||||||
|
|
||||||
|
expect(instance_presenter.user_count).to eq(123)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "status_count" do
|
||||||
|
it "returns the number of local statuses" do
|
||||||
|
cache = double
|
||||||
|
allow(Rails).to receive(:cache).and_return(cache)
|
||||||
|
allow(cache).to receive(:fetch).with("local_status_count").and_return(234)
|
||||||
|
|
||||||
|
expect(instance_presenter.status_count).to eq(234)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "domain_count" do
|
||||||
|
it "returns the number of known domains" do
|
||||||
|
cache = double
|
||||||
|
allow(Rails).to receive(:cache).and_return(cache)
|
||||||
|
allow(cache).to receive(:fetch).with("distinct_domain_count").and_return(345)
|
||||||
|
|
||||||
|
expect(instance_presenter.domain_count).to eq(345)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in new issue