about summary refs log tree commit diff
path: root/config
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-01-28 03:56:10 +0100
committerEugen Rochko <eugen@zeonfederated.com>2017-01-28 03:56:10 +0100
commitf4bc9620a9701db17cb8f651643f65c984e65c27 (patch)
tree373ecda59f2135b45ba1fda41dcc9ab06560886a /config
parent04bce0cdf28402c3433403f399ee10113f6f5fdf (diff)
Update settings to re-use admin layout, one big navigation tree, improve settings forms
Diffstat (limited to 'config')
-rw-r--r--config/application.rb1
-rw-r--r--config/i18n-tasks.yml1
-rw-r--r--config/initializers/simple_form.rb2
-rw-r--r--config/locales/en.yml4
-rw-r--r--config/locales/simple_form.en.yml4
-rw-r--r--config/navigation.rb26
6 files changed, 30 insertions, 8 deletions
diff --git a/config/application.rb b/config/application.rb
index e561d0473..d44835957 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -46,6 +46,7 @@ module Mastodon
 
     config.to_prepare do
       Doorkeeper::AuthorizationsController.layout 'public'
+      Doorkeeper::AuthorizedApplicationsController.layout 'admin'
       Doorkeeper::Application.send :include, ApplicationExtension
     end
 
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index e72063844..4304bbd18 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -18,6 +18,7 @@ data:
 search:
   paths:
    - app/
+   - config/navigation.rb
 
   relative_roots:
     - app/controllers
diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb
index 065999d0b..60bbcb778 100644
--- a/config/initializers/simple_form.rb
+++ b/config/initializers/simple_form.rb
@@ -52,7 +52,7 @@ SimpleForm.setup do |config|
 
   config.wrappers :with_label, class: :input, hint_class: :field_with_hint, error_class: :field_with_errors do |b|
     b.use :html5
-    b.use :label_input
+    b.use :label_input, wrap_with: { tag: :div, class: :label_input }
     b.use :hint,  wrap_with: { tag: :span, class: :hint }
     b.use :error, wrap_with: { tag: :span, class: :error }
   end
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 4f02a87e2..941fe5b3f 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -31,10 +31,11 @@ en:
   applications:
     invalid_url: The provided URL is invalid
   auth:
-    change_password: Change password
+    change_password: Credentials
     didnt_get_confirmation: Didn't receive confirmation instructions?
     forgot_password: Forgot your password?
     login: Log in
+    logout: Logout
     register: Sign up
     resend_confirmation: Resend confirmation instructions
     reset_password: Reset password
@@ -93,6 +94,7 @@ en:
     back: Back to Mastodon
     edit_profile: Edit profile
     preferences: Preferences
+    settings: Settings
     two_factor_auth: Two-factor Authentication
   statuses:
     over_character_limit: character limit of %{max} exceeded
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index e45a9a7a6..5ef4a18fa 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -3,7 +3,11 @@ en:
   simple_form:
     hints:
       defaults:
+        avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 120x120px
+        display_name: At most 30 characters
+        header: PNG, GIF or JPG. At most 2MB. Will be downscaled to 700x335px
         locked: Requires you to manually approve followers and defaults post privacy to followers-only
+        note: At most 160 characters
     labels:
       defaults:
         avatar: Avatar
diff --git a/config/navigation.rb b/config/navigation.rb
index 9aaa12b0b..b2930f62f 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -2,11 +2,25 @@
 
 SimpleNavigation::Configuration.run do |navigation|
   navigation.items do |primary|
-    primary.item :accounts, safe_join([fa_icon('users fw'), 'Accounts']), admin_accounts_url
-    primary.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), 'PubSubHubbub']), admin_pubsubhubbub_index_url
-    primary.item :domain_blocks, safe_join([fa_icon('lock fw'), 'Domain Blocks']), admin_domain_blocks_url
-    primary.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url
-    primary.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url
-    primary.item :settings, safe_join([fa_icon('cogs fw'), 'Site Settings']), admin_settings_url
+    primary.item :web, safe_join([fa_icon('chevron-left fw'), t('settings.back')]), root_url
+
+    primary.item :settings, safe_join([fa_icon('cog fw'), t('settings.settings')]), settings_profile_url do |settings|
+      settings.item :profile, safe_join([fa_icon('user fw'), t('settings.edit_profile')]), settings_profile_url
+      settings.item :preferences, safe_join([fa_icon('sliders fw'), t('settings.preferences')]), settings_preferences_url
+      settings.item :password, safe_join([fa_icon('cog fw'), t('auth.change_password')]), edit_user_registration_url
+      settings.item :two_factor_auth, safe_join([fa_icon('mobile fw'), t('settings.two_factor_auth')]), settings_two_factor_auth_url
+      # settings.item :authorized_apps, safe_join([fa_icon('list fw'), 'Authorized Apps']), oauth_authorized_applications_url
+    end
+
+    primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin|
+      admin.item :accounts, safe_join([fa_icon('users fw'), 'Accounts']), admin_accounts_url, highlights_on: %r{/admin/accounts}
+      admin.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), 'PubSubHubbub']), admin_pubsubhubbub_index_url
+      admin.item :domain_blocks, safe_join([fa_icon('lock fw'), 'Domain Blocks']), admin_domain_blocks_url
+      admin.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url
+      admin.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url
+      admin.item :settings, safe_join([fa_icon('cogs fw'), 'Site Settings']), admin_settings_url
+    end
+
+    primary.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }
   end
 end