summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/boards/boardBody.styl1
-rw-r--r--client/components/lists/main.styl35
-rw-r--r--client/components/main/header.styl12
-rw-r--r--client/components/main/layouts.jade7
-rw-r--r--client/components/main/popup.js13
-rw-r--r--client/components/main/popup.styl23
-rw-r--r--client/components/main/popup.tpl.jade5
-rw-r--r--client/components/main/templates.html2
-rw-r--r--client/components/sidebar/sidebarFilters.js4
-rw-r--r--client/components/users/router.js10
-rw-r--r--client/components/users/userForm.styl93
-rw-r--r--client/components/users/userHeader.jade35
-rw-r--r--client/components/users/userHeader.js73
-rw-r--r--client/config/accounts.js44
-rw-r--r--client/lib/popup.js4
-rw-r--r--client/styles/icons.styl8
-rw-r--r--collections/users.js24
-rw-r--r--i18n/ar.i18n.json2
-rw-r--r--i18n/br.i18n.json2
-rw-r--r--i18n/cm.i18n.json2
-rw-r--r--i18n/cn.i18n.json2
-rw-r--r--i18n/cs.i18n.json2
-rw-r--r--i18n/de.i18n.json2
-rw-r--r--i18n/en.i18n.json6
-rw-r--r--i18n/es.i18n.json2
-rw-r--r--i18n/fi.i18n.json2
-rw-r--r--i18n/fr.i18n.json2
-rw-r--r--i18n/hk.i18n.json2
-rw-r--r--i18n/id.i18n.json2
-rw-r--r--i18n/ja.i18n.json2
-rw-r--r--i18n/ko.i18n.json2
-rw-r--r--i18n/ru.i18n.json2
-rw-r--r--i18n/tr.i18n.json2
-rw-r--r--sandstorm.js4
34 files changed, 262 insertions, 171 deletions
diff --git a/client/components/boards/boardBody.styl b/client/components/boards/boardBody.styl
index 70d8f3d6..281199e2 100644
--- a/client/components/boards/boardBody.styl
+++ b/client/components/boards/boardBody.styl
@@ -21,6 +21,7 @@
&.is-dragging-active
+ .list-composer,
.open-minicard-composer
display: none
diff --git a/client/components/lists/main.styl b/client/components/lists/main.styl
index 2ff2ef5f..98b4abf4 100644
--- a/client/components/lists/main.styl
+++ b/client/components/lists/main.styl
@@ -103,25 +103,22 @@
.ps-scrollbar-y-rail
transform: translateX(2px)
-.open-minicard-composer
- border-radius: 2px
- color: #8c8c8c
- display: block
- padding: 7px 10px
- position: relative
- text-decoration: none
- animation: fadeIn 0.3s
-
- i.fa
- margin-right: 7px
-
- &:hover
- background: white
- color: #222
- box-shadow: 0 1px 2px rgba(0,0,0,.2)
-
- &::selection
- background: transparent
+ .open-minicard-composer
+ border-radius: 2px
+ color: #8c8c8c
+ display: block
+ padding: 7px 10px
+ position: relative
+ text-decoration: none
+ animation: fadeIn 0.3s
+
+ i.fa
+ margin-right: 7px
+
+ &:hover
+ background: #fafafa
+ color: #222
+ box-shadow: 0 1px 2px rgba(0,0,0,.2)
@keyframes fadeIn
from
diff --git a/client/components/main/header.styl b/client/components/main/header.styl
index 8e1682eb..e6f13239 100644
--- a/client/components/main/header.styl
+++ b/client/components/main/header.styl
@@ -47,12 +47,14 @@
#header-user-bar
margin: 2px 0
- .member
- width: 24px
- height: @width
+ .header-user-bar-avatar
float: left
- margin: 0
- margin-top: 1px
+
+ .member
+ width: 24px
+ height: @width
+ margin: 0
+ margin-top: 1px
.header-user-bar-name
margin: 4px 8px 0 0
diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade
index 18df4d9e..d1ea36b5 100644
--- a/client/components/main/layouts.jade
+++ b/client/components/main/layouts.jade
@@ -5,9 +5,10 @@ head
link(rel="shortcut icon" href="/favicon.png")
template(name="userFormsLayout")
- h1.at-form-landing-logo
- img(src="/logo.png" title="LibreBoard")
- +yield
+ section.auth-layout
+ h1.at-form-landing-logo
+ img(src="/logo.png" title="LibreBoard")
+ +yield
template(name="defaultLayout")
#surface
diff --git a/client/components/main/popup.js b/client/components/main/popup.js
index 48847525..8672d08a 100644
--- a/client/components/main/popup.js
+++ b/client/components/main/popup.js
@@ -31,6 +31,19 @@ Popup.template.events({
},
'click .js-confirm': function() {
this.__afterConfirmAction.call(this);
+ },
+ // This handler intends to solve a pretty tricky bug with our popup
+ // transition. The transition is implemented using a large container
+ // (.content-container) that is moved on the x-axis (from 0 to n*PopupSize)
+ // inside a wrapper (.container-wrapper) with a hidden overflow. The problem
+ // is that sometimes the wrapper is scrolled -- even if there are no
+ // scrollbars. This happen for instance when the newly opened popup has some
+ // focused field, the browser will automatically scroll the wrapper, resulting
+ // in moving the whole popup container outside of the popup wrapper. To
+ // disable this behavior we have to manually reset the scrollLeft position
+ // whenever it is modified.
+ 'scroll .content-wrapper': function(evt) {
+ evt.currentTarget.scrollLeft = 0;
}
});
diff --git a/client/components/main/popup.styl b/client/components/main/popup.styl
index cf1fd46e..43b0dae7 100644
--- a/client/components/main/popup.styl
+++ b/client/components/main/popup.styl
@@ -6,8 +6,6 @@
border: 1px solid #dbdbdb
border-bottom-color: #c2c2c2
box-shadow: 0 1px 6px rgba(0, 0, 0, .3)
- display: none
- overflow: hidden
position: absolute
width: 300px
z-index: 99999
@@ -20,12 +18,10 @@
input[type="text"],
input[type="email"],
input[type="password"]
+ input[type="file"]
margin: 4px 0 12px
width: 100%
- input[type="file"]
- width: 240px
-
select
width: 100%
margin-bottom: 14px
@@ -35,9 +31,6 @@
margin: 4px 0 12px
width: 100%
- img
- max-width: 270px
-
.header
height: 36px
position: relative
@@ -80,6 +73,7 @@
.content-wrapper
width: 100%
+ overflow: hidden
.content-container
width: 5000px
@@ -92,7 +86,7 @@
float: left
&.no-height
- height: 0
+ height: 20px
.quiet
padding: 6px 6px 4px
@@ -113,6 +107,17 @@
height: 4px
width: 4px
+ .at-form
+ .at-error, .at-result
+ padding: 8px 12px
+ margin: -8px -10px 10px
+
+ .at-error
+ background: #ef9a9a
+
+ .at-result
+ background: #b2dfdb
+
.select-members-list
margin-bottom: 8px
diff --git a/client/components/main/popup.tpl.jade b/client/components/main/popup.tpl.jade
index dade8449..be528f46 100644
--- a/client/components/main/popup.tpl.jade
+++ b/client/components/main/popup.tpl.jade
@@ -1,8 +1,8 @@
-.pop-over.clearfix(
+.pop-over(
class="{{#unless title}}miniprofile{{/unless}}"
class=currentBoard.colorClass
class="{{#unless title}}no-title{{/unless}}"
- style="display:block; left:{{offset.left}}px; top:{{offset.top}}px;")
+ style="left:{{offset.left}}px; top:{{offset.top}}px;")
.header
a.back-btn.js-back-view(class="{{#unless hasPopupParent}}is-hidden{{/unless}}")
i.fa.fa-chevron-left
@@ -20,3 +20,4 @@
Hopefully the @last helper will come soon (or at least @index)
.content(class="{{#unless $eq popupName ../popupName}}no-height{{/unless}}")
+Template.dynamic(template=popupName data=dataContext)
+ .clearfix
diff --git a/client/components/main/templates.html b/client/components/main/templates.html
index 4828663a..c252f1e4 100644
--- a/client/components/main/templates.html
+++ b/client/components/main/templates.html
@@ -5,7 +5,7 @@
<template name='message'>
<div class="big-message quiet {{ color }}">
<h1>{{_ label}}</h1>
- {{#with pathFor route='Login'}}
+ {{#with pathFor route='atSignIn'}}
<p>{{{_ 'page-maybe-private' this}}}</p>
{{/with}}
</div>
diff --git a/client/components/sidebar/sidebarFilters.js b/client/components/sidebar/sidebarFilters.js
index df0db529..42b6e185 100644
--- a/client/components/sidebar/sidebarFilters.js
+++ b/client/components/sidebar/sidebarFilters.js
@@ -6,12 +6,12 @@ BlazeComponent.extendComponent({
events: function() {
return [{
'click .js-toggle-label-filter': function(event) {
- Filter.labelIds.toogle(this._id);
+ Filter.labelIds.toogle(this.currentData()._id);
Filter.resetExceptions();
event.preventDefault();
},
'click .js-toogle-member-filter': function(event) {
- Filter.members.toogle(this._id);
+ Filter.members.toogle(this.currentData()._id);
Filter.resetExceptions();
event.preventDefault();
},
diff --git a/client/components/users/router.js b/client/components/users/router.js
index 6c4ab3b6..6c3b3429 100644
--- a/client/components/users/router.js
+++ b/client/components/users/router.js
@@ -1,5 +1,5 @@
-_.each(['signIn', 'signUp', 'resetPwd',
- 'forgotPwd', 'enrollAccount', 'changePwd'], function(routeName) {
+_.each(['signIn', 'signUp', 'resetPwd', 'forgotPwd', 'enrollAccount'],
+ function(routeName) {
AccountsTemplates.configureRoute(routeName, {
layoutTemplate: 'userFormsLayout'
});
@@ -20,9 +20,3 @@ Router.route('/profile/:username', {
};
}
});
-
-Router.route('/settings', {
- name: 'Settings',
- template: 'settings',
- layoutTemplate: 'AuthLayout'
-});
diff --git a/client/components/users/userForm.styl b/client/components/users/userForm.styl
index 5ecef7aa..2117bfcb 100644
--- a/client/components/users/userForm.styl
+++ b/client/components/users/userForm.styl
@@ -1,49 +1,50 @@
-.at-form-landing-logo
- width: 275px
- margin: auto
- margin-top: 50px
- margin-top: 17vh
-
- img
+.auth-layout
+ .at-form-landing-logo
width: 275px
+ margin: auto
+ margin-top: 50px
+ margin-top: 17vh
+
+ img
+ width: 275px
-.at-form
- margin: auto
- width: 275px
- padding: 25px
- margin-top: 20px
- padding-bottom: 10px
- background: #fff
- border-radius: 3px
- border: 1px solid #dbdbdb
- border-bottom-color: #c2c2c2
- box-shadow: 0 1px 6px rgba(0, 0, 0, .3)
-
- .at-link
- color: darken(#27AE60, 40%)
-
- label
- margin-bottom: 3px
-
- input
- width: 100%
-
- .at-title
- background: #F7F7F7
- margin: -25px
- padding: 15px 25px 5px
- margin-bottom: 20px
- border-bottom: 1px solid #dcdcdc
- color: darken(white, 70%)
- font-weight: bold
-
- .at-signup-link,
- .at-signin-link,
- .at-forgotPwd
- font-size: 0.9em
- margin-top: 15px
- color: darken(white, 70%)
-
- .at-signUp,
- .at-signIn
+ .at-form
+ margin: auto
+ width: 275px
+ padding: 25px
+ margin-top: 20px
+ padding-bottom: 10px
+ background: #fff
+ border-radius: 3px
+ border: 1px solid #dbdbdb
+ border-bottom-color: #c2c2c2
+ box-shadow: 0 1px 6px rgba(0, 0, 0, .3)
+
+ .at-link
+ color: darken(#27AE60, 40%)
+
+ label
+ margin-bottom: 3px
+
+ input
+ width: 100%
+
+ .at-title
+ background: #F7F7F7
+ margin: -25px
+ padding: 15px 25px 5px
+ margin-bottom: 20px
+ border-bottom: 1px solid #dcdcdc
+ color: darken(white, 70%)
font-weight: bold
+
+ .at-signup-link,
+ .at-signin-link,
+ .at-forgotPwd
+ font-size: 0.9em
+ margin-top: 15px
+ color: darken(white, 70%)
+
+ .at-signUp,
+ .at-signIn
+ font-weight: bold
diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade
index eb3d265c..b8201cb6 100644
--- a/client/components/users/userHeader.jade
+++ b/client/components/users/userHeader.jade
@@ -1,23 +1,44 @@
template(name="headerUserBar")
- a#header-user-bar.js-open-header-member-menu
- .header-user-bar-name
+ a#header-user-bar
+ .header-user-bar-name.js-open-header-member-menu
i.fa.fa-chevron-down
if currentUser.profile.name
= currentUser.profile.name
else
= currentUser.username
- +userAvatar(user=currentUser)
+ .header-user-bar-avatar.js-change-avatar
+ +userAvatar(user=currentUser)
template(name="memberMenuPopup")
ul.pop-over-list
- li: a(href="{{pathFor route='Profile' username=currentUser.username}}") {{_ 'profile'}}
- li: a.js-language {{_ 'language'}}
- li: a(href = "{{pathFor route='Settings'}}") {{_ 'settings'}}
+ with currentUser
+ li: a.js-edit-profile Edit Profile…
+ li: a.js-change-avatar Change Avatar…
+ li: a.js-change-password Change Password…
+ li: a.js-change-language Change Language…
hr
ul.pop-over-list
li: a.js-logout {{_ 'log-out'}}
-template(name="setLanguagePopup")
+template(name="editProfilePopup")
+ form
+ label
+ | {{_ "fullname"}}
+ input.js-profile-fullname(type="text" value=profile.name autofocus)
+ label
+ | {{_ "username"}}
+ input.js-profile-username(type="text" value=username)
+ label
+ | Initials
+ input.js-profile-initials(type="text" value=profile.initials)
+ input.primary.wide(type="submit" value="{{_ 'save'}}")
+
+template(name="changeAvatarPopup")
+
+template(name="changePasswordPopup")
+ +atForm(state='changePwd')
+
+template(name="changeLanguagePopup")
ul.pop-over-list
each languages
li(class="{{# if isCurrentLanguage}}active{{/if}}")
diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js
index 3bb9e623..234bf9e3 100644
--- a/client/components/users/userHeader.js
+++ b/client/components/users/userHeader.js
@@ -1,8 +1,64 @@
Template.headerUserBar.events({
- 'click .js-open-header-member-menu': Popup.open('memberMenu')
+ 'click .js-open-header-member-menu': Popup.open('memberMenu'),
+ 'click .js-change-avatar': Popup.open('changeAvatar')
});
-Template.setLanguagePopup.helpers({
+Template.memberMenuPopup.events({
+ 'click .js-edit-profile': Popup.open('editProfile'),
+ 'click .js-change-avatar': Popup.open('changeAvatar'),
+ 'click .js-change-password': Popup.open('changePassword'),
+ 'click .js-change-language': Popup.open('changeLanguage'),
+ 'click .js-logout': function(evt) {
+ evt.preventDefault();
+
+ AccountsTemplates.logout();
+ }
+});
+
+Template.editProfilePopup.events({
+ submit: function(evt, tpl) {
+ evt.preventDefault();
+ var fullname = $.trim(tpl.find('.js-profile-fullname').value);
+ var username = $.trim(tpl.find('.js-profile-username').value);
+ var initials = $.trim(tpl.find('.js-profile-initials').value);
+ Users.update(Meteor.userId(), {$set: {
+ 'profile.fullname': fullname,
+ 'profile.initials': initials
+ }});
+ // XXX We should report the error to the user.
+ if (username !== Meteor.user().username) {
+ Meteor.call('setUsername', username);
+ }
+ Popup.back();
+ }
+});
+
+// We display the form to change the password in a popup window that already
+// have a title, so we unset the title automatically displayed by useraccounts.
+AccountsTemplates.configure({
+ texts: {
+ title: {
+ changePwd: ''
+ }
+ }
+});
+
+AccountsTemplates.configureRoute('changePwd', {
+ redirect: function() {
+ // XXX We should emit a notification once we have a notification system.
+ // Currently the user has no indication that his modification has been
+ // applied.
+ Popup.back();
+ }
+});
+
+// XXX For some reason the useraccounts autofocus isnt working in this case.
+// See https://github.com/meteor-useraccounts/core/issues/384
+Template.changePasswordPopup.onRendered(function() {
+ this.find('#at-field-current_password').focus();
+});
+
+Template.changeLanguagePopup.helpers({
languages: function() {
return _.map(TAPi18n.getLanguages(), function(lang, tag) {
return {
@@ -16,18 +72,7 @@ Template.setLanguagePopup.helpers({
}
});
-Template.memberMenuPopup.events({
- 'click .js-language': Popup.open('setLanguage'),
- 'click .js-logout': function(evt) {
- evt.preventDefault();
-
- Meteor.logout(function() {
- Router.go('Home');
- });
- }
-});
-
-Template.setLanguagePopup.events({
+Template.changeLanguagePopup.events({
'click .js-set-language': function(evt) {
Users.update(Meteor.userId(), {
$set: {
diff --git a/client/config/accounts.js b/client/config/accounts.js
index 9e0d17d3..5e6edd39 100644
--- a/client/config/accounts.js
+++ b/client/config/accounts.js
@@ -1,35 +1,19 @@
+var passwordField = AccountsTemplates.removeField('password');
+var emailField = AccountsTemplates.removeField('email');
+AccountsTemplates.addFields([{
+ _id: 'username',
+ type: 'text',
+ displayName: 'username',
+ required: true,
+ minLength: 5
+}, emailField, passwordField]);
+
AccountsTemplates.configure({
confirmPassword: false,
enablePasswordChange: true,
sendVerificationEmail: true,
- showForgotPasswordLink: true
-});
-
-AccountsTemplates.removeField('password');
-AccountsTemplates.removeField('email');
-AccountsTemplates.addFields([
- {
- _id: 'username',
- type: 'text',
- displayName: 'username',
- required: true,
- minLength: 5
- },
- {
- _id: 'email',
- type: 'email',
- required: true,
- displayName: 'email',
- re: /.+@(.+){2,}\.(.+){2,}/,
- errStr: 'Invalid email'
- },
- {
- _id: 'password',
- type: 'password',
- placeholder: {
- signUp: 'At least six characters'
- },
- required: true,
- minLength: 6
+ showForgotPasswordLink: true,
+ onLogoutHook: function() {
+ Router.go('Home');
}
-]);
+});
diff --git a/client/lib/popup.js b/client/lib/popup.js
index 46c137e8..6ec7dfdb 100644
--- a/client/lib/popup.js
+++ b/client/lib/popup.js
@@ -202,9 +202,9 @@ $(document).on('click', function(evt) {
}
});
-// Press escape to close the popup.
+// Press escape to go back, or close the popup.
var bindPopup = function(f) { return _.bind(f, Popup); };
EscapeActions.register('popup',
- bindPopup(Popup.close),
+ bindPopup(Popup.back),
bindPopup(Popup.isOpen)
);
diff --git a/client/styles/icons.styl b/client/styles/icons.styl
index 4de0da2b..8635375a 100644
--- a/client/styles/icons.styl
+++ b/client/styles/icons.styl
@@ -21,8 +21,10 @@
&:hover
color: white
-a.fa, a i.fa
- color: darken(white, 35%)
+a
+ &.fa, i.fa
+ color: darken(white, 35%)
&:hover
- color: darken(white, 60%)
+ &.fa, i.fa
+ color: darken(white, 60%)
diff --git a/collections/users.js b/collections/users.js
index 2f44e19e..8d1c0d58 100644
--- a/collections/users.js
+++ b/collections/users.js
@@ -41,11 +41,35 @@ Users.helpers({
}
});
+Meteor.methods({
+ setUsername: function(username) {
+ var nUsersWithUsername = Users.find({username: username}).count();
+ if (nUsersWithUsername > 0) {
+ throw new Meteor.Error('username-already-taken');
+ } else {
+ Users.update(this.userId, {$set: {
+ username: username
+ }});
+ }
+ }
+});
+
Users.before.insert(function(userId, doc) {
doc.profile = doc.profile || {};
+
+ if (! doc.username && doc.profile.name) {
+ doc.username = doc.profile.name.toLowerCase().replace(/\s/g, '');
+ }
});
if (Meteor.isServer) {
+ // Let mongoDB ensure username unicity
+ Meteor.startup(function() {
+ Users._collection._ensureIndex({
+ username: 1
+ }, { unique: true });
+ });
+
// Each board document contains the de-normalized number of users that have
// starred it. If the user star or unstar a board, we need to update this
// counter.
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 062a4828..36df959b 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 18db5ef4..cb2ab531 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Criar Etiqueta",
"deleteLabelPopup-title": "Excluir Etiqueta?",
"changePermissionsPopup-title": "Alterar Permissões",
- "setLanguagePopup-title": "Alterar Idioma",
+ "changeLanguagePopup-title": "Alterar Idioma",
"cardAttachmentsPopup-title": "Anexar de…",
"attachmentDeletePopup-title": "Excluir Anexo?"
}
diff --git a/i18n/cm.i18n.json b/i18n/cm.i18n.json
index 162f287b..4bef035a 100644
--- a/i18n/cm.i18n.json
+++ b/i18n/cm.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/cn.i18n.json b/i18n/cn.i18n.json
index b869adf7..36817b2d 100644
--- a/i18n/cn.i18n.json
+++ b/i18n/cn.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "创建标签",
"deleteLabelPopup-title": "删除标签?",
"changePermissionsPopup-title": "更改权限",
- "setLanguagePopup-title": "更改语言",
+ "changeLanguagePopup-title": "更改语言",
"cardAttachmentsPopup-title": "附加自...",
"attachmentDeletePopup-title": "删除附件?"
}
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 6aa10181..1943ac6e 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index ec775ccd..6eaf7089 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Label erstellen",
"deleteLabelPopup-title": "Entferne Label?",
"changePermissionsPopup-title": "Ändere Erlaubnisse",
- "setLanguagePopup-title": "Ändere Sprache",
+ "changeLanguagePopup-title": "Ändere Sprache",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 60063ea8..4733eca6 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -181,8 +181,12 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?",
+ "memberMenuPopup-title": "Member Settings",
+ "editProfilePopup-title": "Edit Profile",
+ "changeAvatarPopup-title": "Change Avatar",
+ "changePasswordPopup-title": "Change Password",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action"
}
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index cb4ab5c5..f0e465f0 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Crear etiqueta",
"deleteLabelPopup-title": "Borrar etiqueta",
"changePermissionsPopup-title": "Cambiar permisos",
- "setLanguagePopup-title": "Cambiar idioma",
+ "changeLanguagePopup-title": "Cambiar idioma",
"cardAttachmentsPopup-title": "Adjuntar de...",
"attachmentDeletePopup-title": "¿Borrar adjunto?"
}
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index 4335eef2..2643d7ee 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Luo tunniste",
"deleteLabelPopup-title": "Poista tunniste?",
"changePermissionsPopup-title": "Vaihda oikeuksia",
- "setLanguagePopup-title": "Vaihda kieltä",
+ "changeLanguagePopup-title": "Vaihda kieltä",
"cardAttachmentsPopup-title": "Liitä mistä...",
"attachmentDeletePopup-title": "Poista liitetiedosto?"
}
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 48ce3a88..42072682 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Créer un étiquette",
"deleteLabelPopup-title": "Supprimer l'étiquette ?",
"changePermissionsPopup-title": "Changer les permissions",
- "setLanguagePopup-title": "Changer la langue",
+ "changeLanguagePopup-title": "Changer la langue",
"cardAttachmentsPopup-title": "Joindre depuis…",
"attachmentDeletePopup-title": "Supprimer la pièce jointe ?"
}
diff --git a/i18n/hk.i18n.json b/i18n/hk.i18n.json
index 22e700a9..e79f152b 100644
--- a/i18n/hk.i18n.json
+++ b/i18n/hk.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index 22e700a9..e79f152b 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Create Label",
"deleteLabelPopup-title": "Delete Label?",
"changePermissionsPopup-title": "Change Permissions",
- "setLanguagePopup-title": "Change Language",
+ "changeLanguagePopup-title": "Change Language",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index 49e66e8a..dad05450 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "ラベルの作成",
"deleteLabelPopup-title": "ラベルを削除しますか?",
"changePermissionsPopup-title": "パーミッションの変更",
- "setLanguagePopup-title": "言語の変更",
+ "changeLanguagePopup-title": "言語の変更",
"cardAttachmentsPopup-title": "Attach From…",
"attachmentDeletePopup-title": "Delete Attachment?"
}
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 1712abfc..fbf3c621 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "라벨 생성",
"deleteLabelPopup-title": "라벨을 삭제합니까?",
"changePermissionsPopup-title": "권한 변경",
- "setLanguagePopup-title": "언어 변경",
+ "changeLanguagePopup-title": "언어 변경",
"cardAttachmentsPopup-title": "첨부할 위치...",
"attachmentDeletePopup-title": "첨부 파일을 삭제합니까?"
}
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 87ffd4bc..7139323e 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Создать метку",
"deleteLabelPopup-title": "Удалить метку?",
"changePermissionsPopup-title": "Изменить настройки доступа",
- "setLanguagePopup-title": "Сменить язык",
+ "changeLanguagePopup-title": "Сменить язык",
"cardAttachmentsPopup-title": "Источник",
"attachmentDeletePopup-title": "Удалить вложение?"
}
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index 75736a1a..117ead57 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -169,7 +169,7 @@
"createLabelPopup-title": "Etiket Oluşturma",
"deleteLabelPopup-title": "Etiket Silinsin mi?",
"changePermissionsPopup-title": "Yetkileri Değiştirme",
- "setLanguagePopup-title": "Dil Değiştir",
+ "changeLanguagePopup-title": "Dil Değiştir",
"cardAttachmentsPopup-title": "Şuradan Ekle...",
"attachmentDeletePopup-title": "Ek Dosya Silinsin Mi?"
}
diff --git a/sandstorm.js b/sandstorm.js
index 46b92741..b2b4d88b 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -88,10 +88,6 @@ if (isSandstorm && Meteor.isServer) {
}
});
}
-
- // The sandstom user package put the username in `profile.name`. We need to
- // move this field value to follow our schema.
- Users.update(doc._id, { $rename: { 'profile.name': 'username' }});
});
}