diff --git a/client/startup/startup.coffee b/client/startup/startup.coffee
index c7e54589996..5ae8e125989 100644
--- a/client/startup/startup.coffee
+++ b/client/startup/startup.coffee
@@ -17,16 +17,18 @@ Meteor.startup ->
lng = lng.replace re, (match, parts...) -> return parts[0] + parts[1].toUpperCase()
return lng
- if localStorage.getItem("userLanguage")
- userLanguage = localStorage.getItem("userLanguage")
- else
- userLanguage = defaultUserLanguage()
- localStorage.setItem("userLanguage", userLanguage)
+ languageComputation = Tracker.autorun ->
+ if Meteor.user()?.language
+ userLanguage = Meteor.user().language
+ languageComputation.stop()
+ else
+ userLanguage = defaultUserLanguage()
+ localStorage.setItem("userLanguage", userLanguage)
- userLanguage = userLanguage.split('-').shift()
- TAPi18n.setLanguage(userLanguage)
+ userLanguage = userLanguage.split('-').shift()
+ TAPi18n.setLanguage(userLanguage)
- filename = "/moment-locales/#{userLanguage.toLowerCase()}.js"
- if filename isnt '/moment-locales/en.js'
- $.getScript filename, (data) ->
- moment.locale(userLanguage)
+ filename = "/moment-locales/#{userLanguage.toLowerCase()}.js"
+ if filename isnt '/moment-locales/en.js'
+ $.getScript filename, (data) ->
+ moment.locale(userLanguage)
diff --git a/client/views/app/sideNav/userSettingsFlex2.html b/client/views/app/sideNav/userSettingsFlex2.html
deleted file mode 100644
index ea6e5cc55c2..00000000000
--- a/client/views/app/sideNav/userSettingsFlex2.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
{{_ "Settings"}}
-
-
-
-
-
-
-
-
-
diff --git a/client/views/usersettings/avatar/prompt.coffee b/client/views/usersettings/avatar/prompt.coffee
index b95ffb76a30..fc0f1b6e267 100644
--- a/client/views/usersettings/avatar/prompt.coffee
+++ b/client/views/usersettings/avatar/prompt.coffee
@@ -35,11 +35,11 @@ Template.avatarPrompt.events
if @service is 'initials'
Meteor.call 'resetAvatar'
updateAvatarOfUsername Meteor.user().username
- FlowRouter.go 'home'
+ toastr.success t('Avatar_changed_successfully')
else
Meteor.call 'setAvatarFromService', @blob, @contentType, @service, ->
updateAvatarOfUsername Meteor.user().username
- FlowRouter.go 'home'
+ toastr.success t('Avatar_changed_successfully')
'click .login-with-service': (event, template) ->
loginWithService = "loginWith#{_.capitalize(this)}"
diff --git a/client/views/usersettings/userSettings.coffee b/client/views/usersettings/userSettings.coffee
index 56938a76a39..cd4b680a162 100644
--- a/client/views/usersettings/userSettings.coffee
+++ b/client/views/usersettings/userSettings.coffee
@@ -12,8 +12,6 @@ Template.userSettings.onRendered ->
Template.userSettings.events
'click .submit button': (e, t) ->
- console.log 'submit button clicked'
-
if t.child?.length > 0
for child in t.child
child.save?()
\ No newline at end of file
diff --git a/client/views/usersettings/userSettingsProfile.coffee b/client/views/usersettings/userSettingsProfile.coffee
index 3300f590d2a..6d68a530326 100644
--- a/client/views/usersettings/userSettingsProfile.coffee
+++ b/client/views/usersettings/userSettingsProfile.coffee
@@ -15,8 +15,34 @@ Template.userSettingsProfile.onCreated ->
settingsTemplate.child.push this
@clearForm = ->
- instance.find('#language').value = localStorage.getItem('userLanguage')
- instance.find('#password').value = ''
+ @find('#language').value = localStorage.getItem('userLanguage')
+ @find('#password').value = ''
@save = ->
- console.log 'Save called'
\ No newline at end of file
+ instance = @
+ data = {}
+ reload = false
+ selectedLanguage = $('#language').val()
+
+ if localStorage.getItem('userLanguage') isnt selectedLanguage
+ localStorage.setItem 'userLanguage', selectedLanguage
+ data.language = selectedLanguage
+ reload = true
+
+ if _.trim $('#password').val()
+ data.password = _.trim $('#password').val()
+
+ if $('#showUTCTime:checked').length
+ data.showUTCTime = true
+
+ Meteor.call 'saveUserProfile', data, (error, results) ->
+ if results
+ toastr.success t('Profile_saved_successfully')
+ instance.clearForm()
+ if reload
+ setTimeout ->
+ Meteor._reload.reload()
+ , 1000
+
+ if error
+ toastr.error error.reason
diff --git a/client/views/usersettings/userSettingsProfile.html b/client/views/usersettings/userSettingsProfile.html
index 5cfd680861e..14a37b0af7d 100644
--- a/client/views/usersettings/userSettingsProfile.html
+++ b/client/views/usersettings/userSettingsProfile.html
@@ -16,5 +16,13 @@
+
\ No newline at end of file
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 188cdc9ef5e..e8d9a9d85a7 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -114,6 +114,8 @@
"Powered_by" : "Powered by",
"Privacy" : "Privacy",
"Private_Groups" : "Private Groups",
+ "Profile": "Profile",
+ "Profile_saved_successfully": "Profile saved successfully",
"Proudly_developed" : "Proudly developed with Meteor",
"Quick_Search" : "Quick Search",
"quote" : "quote",
@@ -126,6 +128,7 @@
"Room_name_changed" : "Room name changed to: __room_name__ by __user_by__",
"Room_name_changed_successfully" : "Room name changed successfully",
"Save" : "Save",
+ "Save_changes" : "Save changes",
"Search" : "Search",
"Search_settings" : "Search settings",
"See_all" : "See all",
@@ -137,6 +140,7 @@
"Send_confirmation_email" : "Send confirmation email",
"Send_Message" : "Send Message",
"Settings" : "Settings",
+ "Show_UTC": "Show UTC",
"Showing_online_users" : "Showing __total_online__ of __total__ users",
"Showing_results" : "Showing %s results
",
"Silence" : "Silence",
@@ -160,6 +164,7 @@
"User_left_female" : "User __user_left__ left.",
"User_logged_out" : "User is logged out",
"User_removed_by" : "User __user_removed__ removed by __user_by__.",
+ "User_Settings" : "User Settings",
"Username" : "Username",
"Username_cant_be_empty" : "The username cannot be empty",
"Username_description" : "The username is used to allow others to mention you in messages.",
diff --git a/server/methods/saveUserProfile.coffee b/server/methods/saveUserProfile.coffee
new file mode 100644
index 00000000000..6e853b0f2fc
--- /dev/null
+++ b/server/methods/saveUserProfile.coffee
@@ -0,0 +1,15 @@
+Meteor.methods
+ saveUserProfile: (settings) ->
+ if Meteor.userId()
+ if settings.language?
+ Meteor.users.update Meteor.userId(), { $set: { language: settings.language } }
+
+ if settings.password?
+ Accounts.setPassword Meteor.userId(), settings.password, { logout: false }
+
+ profile = {}
+ profile.showUTCTime = !! settings.showUTCTime
+
+ Meteor.users.update Meteor.userId(), { $set: { "settings.profile": profile } }
+
+ return true
\ No newline at end of file
diff --git a/server/publications/userData.coffee b/server/publications/userData.coffee
index a27c17de37b..1ac4abda97c 100644
--- a/server/publications/userData.coffee
+++ b/server/publications/userData.coffee
@@ -14,3 +14,4 @@ Meteor.publish 'userData', ->
avatarOrigin: 1
admin: 1
utcOffset: 1
+ language: 1
\ No newline at end of file