about summary refs log tree commit diff
path: root/config/navigation.rb
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/navigation.rb
parent04bce0cdf28402c3433403f399ee10113f6f5fdf (diff)
Update settings to re-use admin layout, one big navigation tree, improve settings forms
Diffstat (limited to 'config/navigation.rb')
-rw-r--r--config/navigation.rb26
1 files changed, 20 insertions, 6 deletions
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