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 @@ - 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