diff --git a/app/assets/javascripts/sidebar.js.erb b/app/assets/javascripts/sidebar.js.erb
index 5fbbb2c6a..2d2558fbf 100644
--- a/app/assets/javascripts/sidebar.js.erb
+++ b/app/assets/javascripts/sidebar.js.erb
@@ -128,7 +128,7 @@ function setupSidebarTree() {
}
el
.find(" > span i")
- .attr("title", "Expand this branch")
+ .attr("title", I18n.t('sidebar.branch_expand'))
.removeClass("expanded");
} else {
if (animate) {
@@ -138,7 +138,7 @@ function setupSidebarTree() {
}
el
.find(" > span i")
- .attr("title", "Collapse this branch")
+ .attr("title", I18n.t('sidebar.branch_collapse'))
.addClass("expanded");
}
}
@@ -147,7 +147,7 @@ function setupSidebarTree() {
$(".tree li:has(ul)")
.addClass("parent_li")
.find(" > span i")
- .attr("title", "Collapse this branch");
+ .attr("title", I18n.t('sidebar.branch_collapse'));
$(".tree li.parent_li ")
.find("> span i")
.addClass("glyphicon glyphicon-triangle-right expanded");
diff --git a/app/assets/javascripts/users/settings/list_toggle.js.erb b/app/assets/javascripts/users/settings/list_toggle.js.erb
new file mode 100644
index 000000000..a006dde1b
--- /dev/null
+++ b/app/assets/javascripts/users/settings/list_toggle.js.erb
@@ -0,0 +1,18 @@
+(function() {
+ 'use strict';
+
+ $(".tree li.parent_li ").find("> span i").on("click", function (e) {
+ e.stopPropagation();
+ var el = $(this).closest("li.parent_li");
+
+ if (el.find(" > ul.accountNavigation").is(":visible")) {
+ el.find(" > span > i.triangleDown").hide();
+ el.find(" > span > i.triangleRight").show();
+ el.find(" > ul.accountNavigation").hide();
+ } else {
+ el.find(" > span > i.triangleDown").show();
+ el.find(" > span > i.triangleRight").hide();
+ el.find(" > ul.accountNavigation").show();
+ }
+ });
+})();
diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb
index 9adfc5e6c..b50f8b9f3 100644
--- a/app/controllers/users/registrations_controller.rb
+++ b/app/controllers/users/registrations_controller.rb
@@ -4,6 +4,7 @@ class Users::RegistrationsController < Devise::RegistrationsController
only: %i(new create new_with_provider create_with_provider)
before_action :sign_up_with_provider_enabled?,
only: %i(new_with_provider create_with_provider)
+ layout :layout
def avatar
user = User.find_by_id(params[:id]) || current_user
@@ -291,6 +292,10 @@ class Users::RegistrationsController < Devise::RegistrationsController
private
+ def layout
+ 'fluid' if action_name == 'edit'
+ end
+
def check_captcha
if Rails.configuration.x.enable_recaptcha
unless verify_recaptcha
diff --git a/app/controllers/users/settings/account/addons_controller.rb b/app/controllers/users/settings/account/addons_controller.rb
index 9b18d556a..aa4412a78 100644
--- a/app/controllers/users/settings/account/addons_controller.rb
+++ b/app/controllers/users/settings/account/addons_controller.rb
@@ -2,6 +2,7 @@ module Users
module Settings
module Account
class AddonsController < ApplicationController
+ layout 'fluid'
end
end
end
diff --git a/app/controllers/users/settings/account/preferences_controller.rb b/app/controllers/users/settings/account/preferences_controller.rb
index 723641a49..ef983b4c9 100644
--- a/app/controllers/users/settings/account/preferences_controller.rb
+++ b/app/controllers/users/settings/account/preferences_controller.rb
@@ -9,6 +9,7 @@ module Users
:reset_tutorial,
:notifications_settings
]
+ layout 'fluid'
def index
end
diff --git a/app/controllers/users/settings/teams_controller.rb b/app/controllers/users/settings/teams_controller.rb
index 620fcd3c5..8917cd25b 100644
--- a/app/controllers/users/settings/teams_controller.rb
+++ b/app/controllers/users/settings/teams_controller.rb
@@ -22,6 +22,8 @@ module Users
before_action :check_create_team_permission,
only: %i(new create)
+ layout 'fluid'
+
def index
@user_teams =
@user
diff --git a/app/views/users/registrations/edit.html.erb b/app/views/users/registrations/edit.html.erb
index 6ac1bd0d9..5f99d1fbd 100644
--- a/app/views/users/registrations/edit.html.erb
+++ b/app/views/users/registrations/edit.html.erb
@@ -1,14 +1,11 @@
<% provide(:head_title, t("users.registrations.edit.head_title")) %>
-<%= render partial: "users/settings/navigation.html.erb" %>
+<%= render partial: "users/settings/sidebar" %>
-
- <%= render partial: 'users/settings/account/navigation.html.erb' %>
-
-
+
<%=t "users.registrations.edit.title" %>
diff --git a/app/views/users/settings/_navigation.html.erb b/app/views/users/settings/_navigation.html.erb
deleted file mode 100644
index a5f481cd3..000000000
--- a/app/views/users/settings/_navigation.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-
- -
- <%= link_to t("users.settings.navigation.account"), edit_user_registration_path %>
-
- - ">
- <%= link_to t("users.settings.navigation.teams"), teams_path %>
-
-
diff --git a/app/views/users/settings/_sidebar.html.erb b/app/views/users/settings/_sidebar.html.erb
new file mode 100644
index 000000000..d27b2be12
--- /dev/null
+++ b/app/views/users/settings/_sidebar.html.erb
@@ -0,0 +1,91 @@
+<%= content_for :sidebar do %>
+
+
+
+ -
+
+ <%= t('users.settings.sidebar.title') %>
+
+
+
+ -
+
+
+
+ <% account_style = 'font-weight: bold;' if on_settings_account_page? %>
+ <%= link_to t("users.settings.sidebar.account"),
+ edit_user_registration_path,
+ style: account_style,
+ data: { 'no-turbolink' => 'true' } %>
+
+
+
+ -
+
+ <% if on_settings_account_profile_page? %>
+ "><%= t("users.settings.sidebar.account_nav.profile") %>
+ <% else %>
+ <%= link_to t("users.settings.sidebar.account_nav.profile"),
+ edit_user_registration_path,
+ data: { 'no-turbolink' => 'true' } %>
+ <% end %>
+
+
+ -
+
+ <% if on_settings_account_preferences_page? %>
+ "><%= t("users.settings.sidebar.account_nav.preferences") %>
+ <% else %>
+ <%= link_to t("users.settings.sidebar.account_nav.preferences"),
+ preferences_path,
+ data: { 'no-turbolink' => 'true' } %>
+ <% end %>
+
+
+ -
+
+ <% if on_settings_account_addons_page? %>
+ "><%= t("users.settings.sidebar.account_nav.addons") %>
+ <% else %>
+ <%= link_to t("users.settings.sidebar.account_nav.addons"),
+ addons_path,
+ data: { 'no-turbolink' => 'true' } %>
+ <% end %>
+
+
+
+
+
+
+ -
+
+ <% if on_settings_team_page? %>
+ "><%= t("users.settings.sidebar.teams") %>
+ <% else %>
+ <%= link_to t("users.settings.sidebar.teams"),
+ teams_path,
+ data: { 'no-turbolink' => 'true' } %>
+ <% end %>
+
+
+
+
+
+
+<% end %>
+
+
+
+<%= javascript_include_tag("users/settings/list_toggle") %>
diff --git a/app/views/users/settings/account/_navigation.html.erb b/app/views/users/settings/account/_navigation.html.erb
deleted file mode 100644
index efaf781db..000000000
--- a/app/views/users/settings/account/_navigation.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-
- -
- <%= link_to t('users.settings.account.navigation.profile'), edit_user_registration_path %>
-
- -
- <%= link_to t('users.settings.account.navigation.preferences'), preferences_path %>
-
- -
- <%= link_to t('users.settings.account.navigation.addons'), addons_path %>
-
-
diff --git a/app/views/users/settings/account/addons/index.html.erb b/app/views/users/settings/account/addons/index.html.erb
index de7c58a21..6022900b6 100644
--- a/app/views/users/settings/account/addons/index.html.erb
+++ b/app/views/users/settings/account/addons/index.html.erb
@@ -1,14 +1,11 @@
<% provide(:head_title, t('users.settings.account.addons.head_title')) %>
-<%= render partial: 'users/settings/navigation.html.erb' %>
+<%= render partial: 'users/settings/sidebar.html.erb' %>
-
- <%= render partial: 'users/settings/account/navigation.html.erb' %>
-
-
+
<%= t('users.settings.account.addons.title') %>
diff --git a/app/views/users/settings/account/preferences/index.html.erb b/app/views/users/settings/account/preferences/index.html.erb
index 662caf09f..2aa0d334c 100644
--- a/app/views/users/settings/account/preferences/index.html.erb
+++ b/app/views/users/settings/account/preferences/index.html.erb
@@ -1,14 +1,11 @@
<% provide(:head_title, t("users.settings.account.preferences.head_title")) %>
-<%= render partial: "users/settings/navigation.html.erb" %>
+<%= render partial: "users/settings/sidebar.html.erb" %>
-
- <%= render partial: 'users/settings/account/navigation.html.erb' %>
-
-
+
<%= form_for(@user,
url: update_preferences_path(format: :json),
remote: true,
diff --git a/app/views/users/settings/teams/index.html.erb b/app/views/users/settings/teams/index.html.erb
index 13c749e0b..f2508f7ff 100644
--- a/app/views/users/settings/teams/index.html.erb
+++ b/app/views/users/settings/teams/index.html.erb
@@ -1,6 +1,6 @@
<% provide(:head_title, t("users.settings.teams.head_title")) %>
-<%= render partial: "users/settings/navigation.html.erb" %>
+<%= render partial: "users/settings/sidebar.html.erb" %>
diff --git a/app/views/users/settings/teams/new.html.erb b/app/views/users/settings/teams/new.html.erb
index 72b9967ce..9c95922c7 100644
--- a/app/views/users/settings/teams/new.html.erb
+++ b/app/views/users/settings/teams/new.html.erb
@@ -1,6 +1,6 @@
<% provide(:head_title, t("users.settings.teams.head_title")) %>
-<%= render partial: "users/settings/navigation.html.erb" %>
+<%= render partial: "users/settings/sidebar.html.erb" %>
diff --git a/app/views/users/settings/teams/show.html.erb b/app/views/users/settings/teams/show.html.erb
index f4cc608a2..64559af9b 100644
--- a/app/views/users/settings/teams/show.html.erb
+++ b/app/views/users/settings/teams/show.html.erb
@@ -2,7 +2,7 @@
-<%= render partial: "users/settings/navigation.html.erb" %>
+<%= render partial: "users/settings/sidebar.html.erb" %>
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
index c76aa8e05..c32a85883 100644
--- a/config/initializers/assets.rb
+++ b/config/initializers/assets.rb
@@ -17,6 +17,7 @@ Rails.application.config.assets.precompile += %w(underscore.js)
Rails.application.config.assets.precompile += %w(jsPlumb-2.0.4-min.js)
Rails.application.config.assets.precompile += %w(jsnetworkx.js)
Rails.application.config.assets.precompile += %w(handsontable.full.min.js)
+Rails.application.config.assets.precompile += %w(users/settings/list_toggle.js.erb)
Rails.application.config.assets.precompile +=
%w(users/settings/account/preferences/index.js)
Rails.application.config.assets.precompile += %w(users/settings/teams/index.js)
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 31847fa5c..1210b2f88 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -111,6 +111,8 @@ en:
sidebar:
title: "Navigation"
+ branch_expand: "Expand this branch"
+ branch_collapse: "Collapse this branch"
no_module_group: "No workflow"
projects:
all: "All Projects"
@@ -1354,14 +1356,15 @@ en:
changed_team_flash: "You are working on %{team} now!"
changed_team_error_flash: "Something went wrong! Try again later."
changed_team_in_search: "The searched item is not in your current team. You will be redirected to %{team} team!"
- navigation:
+ sidebar:
+ title: "Settings"
account: "Account"
teams: "Teams"
- account:
- navigation:
+ account_nav:
profile: "Profile"
preferences: "Preferences"
addons: "Add-ons"
+ account:
preferences:
head_title: "Settings | My preferences"
edit: