summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/profile.js.coffee10
-rw-r--r--app/assets/stylesheets/sections/themes.scss7
-rw-r--r--app/controllers/profile_controller.rb6
-rw-r--r--app/views/profile/design.html.haml23
-rw-r--r--app/views/profile/update.js.erb9
5 files changed, 43 insertions, 12 deletions
diff --git a/app/assets/javascripts/profile.js.coffee b/app/assets/javascripts/profile.js.coffee
new file mode 100644
index 00000000000..e536afad939
--- /dev/null
+++ b/app/assets/javascripts/profile.js.coffee
@@ -0,0 +1,10 @@
+$ ->
+ $('.edit_user .application-theme input, .edit_user .code-preview-theme input').click ->
+ # Hide any previous submission feedback
+ $('.edit_user .update-feedback').hide()
+
+ # Submit the form
+ $('.edit_user').submit()
+
+ # Go up the hierarchy and show the corresponding submission feedback element
+ $(@).closest('fieldset').find('.update-feedback').show('highlight', {color: '#DFF0D8'}, 500)
diff --git a/app/assets/stylesheets/sections/themes.scss b/app/assets/stylesheets/sections/themes.scss
index 62dd27d0789..2d121519b02 100644
--- a/app/assets/stylesheets/sections/themes.scss
+++ b/app/assets/stylesheets/sections/themes.scss
@@ -1,3 +1,10 @@
+.application-theme, .code-preview-theme {
+ .update-feedback {
+ color: #468847;
+ float: right;
+ }
+}
+
.themes_opts {
padding-left:20px;
diff --git a/app/controllers/profile_controller.rb b/app/controllers/profile_controller.rb
index 38cfa896b11..5f8b11fdded 100644
--- a/app/controllers/profile_controller.rb
+++ b/app/controllers/profile_controller.rb
@@ -9,7 +9,11 @@ class ProfileController < ApplicationController
def update
@user.update_attributes(params[:user])
- redirect_to :back
+
+ respond_to do |format|
+ format.html { redirect_to :back }
+ format.js
+ end
end
def token
diff --git a/app/views/profile/design.html.haml b/app/views/profile/design.html.haml
index 5099ea5d60d..502cca42f2d 100644
--- a/app/views/profile/design.html.haml
+++ b/app/views/profile/design.html.haml
@@ -1,6 +1,10 @@
= form_for @user, url: profile_update_path, remote: true, method: :put do |f|
- %fieldset
- %legend Application theme
+ %fieldset.application-theme
+ %legend
+ Application theme
+ .update-feedback.hide
+ %i.icon-ok
+ Saved
.themes_opts
= label_tag do
.prev.default
@@ -29,8 +33,12 @@
%br
.clearfix
- %fieldset
- %legend Code review
+ %fieldset.code-preview-theme
+ %legend
+ Code preview theme
+ .update-feedback.hide
+ %i.icon-ok
+ Saved
.code_highlight_opts
= label_tag do
.prev
@@ -42,10 +50,3 @@
= image_tag "dark.png"
= f.radio_button :dark_scheme, true
Dark code preview
-
-:javascript
- $(function(){
- $(".edit_user input").bind("click", function() {
- $(".edit_user").submit();
- });
- })
diff --git a/app/views/profile/update.js.erb b/app/views/profile/update.js.erb
new file mode 100644
index 00000000000..04b5cf4827d
--- /dev/null
+++ b/app/views/profile/update.js.erb
@@ -0,0 +1,9 @@
+// Remove body class for any previous theme, re-add current one
+$('body').removeClass('ui_basic ui_mars ui_modern ui_gray ui_color')
+$('body').addClass('<%= app_theme %>')
+
+// Re-render the header to reflect the new theme
+$('header').html('<%= escape_javascript(render("layouts/head_panel", title: "Profile")) %>')
+
+// Re-initialize header tooltips
+$('.has_bottom_tooltip').tooltip({placement: 'bottom'})