Now saving user profile

pull/435/head
Marcelo Schmidt 11 years ago
parent f1bf979987
commit bec1bf76f1
  1. 24
      client/startup/startup.coffee
  2. 27
      client/views/app/sideNav/userSettingsFlex2.html
  3. 4
      client/views/usersettings/avatar/prompt.coffee
  4. 2
      client/views/usersettings/userSettings.coffee
  5. 32
      client/views/usersettings/userSettingsProfile.coffee
  6. 8
      client/views/usersettings/userSettingsProfile.html
  7. 5
      i18n/en.i18n.json
  8. 15
      server/methods/saveUserProfile.coffee
  9. 1
      server/publications/userData.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)

@ -1,27 +0,0 @@
<template name="userSettingsFlex2">
<div class="content no-shadow">
<div class="wrapper">
<h4>{{_ "Settings"}}</h4>
<div class="input-line">
<label for="language">{{_ "Language"}}</label>
<div>
<select id="language" class="required">
{{#each languages}}
<option value="{{key}}" selected="{{userLanguage key}}" dir="auto">{{name}}</option>
{{/each}}
</select>
</div>
</div>
<div class="input-line">
<label for="password">{{_ "Password"}}</label>
<div>
<input type="password" name="password" id="password" />
</div>
</div>
<div class="input-submit">
<button class="button primary clean save">{{_ "Save"}}</button>
<button class="button clean cancel-settings">{{_ "Cancel" }}</button>
</div>
</div>
</div>
</template>

@ -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)}"

@ -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?()

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

@ -16,5 +16,13 @@
<input type="password" name="password" id="password" />
</div>
</div>
<div class="input-line">
<div class="input-line">
<label for="showUTC"></label>
<div>
<label><input type="checkbox" name="showUTC" id="showUTC" value="1" /> {{_ "Show_UTC"}}</label>
</div>
</div>
</div>
</fieldset>
</template>

@ -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: <em>__room_name__</em> by <em>__user_by__</em>",
"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 <b>__total_online__</b> of __total__ users",
"Showing_results" : "<p>Showing <b>%s</b> results</p>",
"Silence" : "Silence",
@ -160,6 +164,7 @@
"User_left_female" : "User <em>__user_left__</em> left.",
"User_logged_out" : "User is logged out",
"User_removed_by" : "User <em>__user_removed__</em> removed by <em>__user_by__</em>.",
"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.",

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

@ -14,3 +14,4 @@ Meteor.publish 'userData', ->
avatarOrigin: 1
admin: 1
utcOffset: 1
language: 1
Loading…
Cancel
Save