summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlkisme <lkisme@me.com>2017-02-26 21:11:15 +0800
committerlkisme <lkisme@me.com>2017-02-26 21:11:15 +0800
commit39f2837838ba30ec02bfe9f33c9fa0dfca05d1a6 (patch)
tree775e276109af00cb42ee81c8aaa03903b38764da
parente3c3cc0d8df14c84852a854383efa1b4bb83f218 (diff)
downloadwekan-39f2837838ba30ec02bfe9f33c9fa0dfca05d1a6.tar.gz
wekan-39f2837838ba30ec02bfe9f33c9fa0dfca05d1a6.tar.bz2
wekan-39f2837838ba30ec02bfe9f33c9fa0dfca05d1a6.zip
wording change, email sending optimization, add texts to i18n
-rw-r--r--client/components/settings/invitationCode.js4
-rw-r--r--client/components/settings/settingBody.jade43
-rw-r--r--client/components/settings/settingBody.js28
-rw-r--r--client/components/settings/settingHeader.jade4
-rw-r--r--config/router.js10
-rw-r--r--i18n/en.i18n.json17
-rw-r--r--models/settings.js6
-rw-r--r--models/users.js10
-rw-r--r--server/publications/settings.js2
9 files changed, 74 insertions, 50 deletions
diff --git a/client/components/settings/invitationCode.js b/client/components/settings/invitationCode.js
index 8143d5af..e712c89a 100644
--- a/client/components/settings/invitationCode.js
+++ b/client/components/settings/invitationCode.js
@@ -1,6 +1,6 @@
Template.invitationCode.onRendered(() => {
- const strict = Settings.findOne().strict;
- if(!strict){
+ const disableRegistration = Settings.findOne().disableRegistration;
+ if(!disableRegistration){
$('#invitationcode').hide();
}
});
diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade
index 5d77bc60..fdab3173 100644
--- a/client/components/settings/settingBody.jade
+++ b/client/components/settings/settingBody.jade
@@ -1,14 +1,14 @@
template(name="setting")
.setting-content
.content-title
- span Settings
+ span {{_ 'settings'}}
.content-body
.side-menu
ul
li.active
- a.js-setting-menu(data-id="general-setting") System
+ a.js-setting-menu(data-id="registration-setting") {{_ 'registration'}}
li
- a.js-setting-menu(data-id="email-setting") Email
+ a.js-setting-menu(data-id="email-setting") {{_ 'email'}}
.main-body
if loading.get
+spinner
@@ -18,20 +18,20 @@ template(name="setting")
+email
template(name="general")
- ul#general-setting.setting-detail
+ ul#registration-setting.setting-detail
li
- a.flex.js-toggle-strict-mode
- .materialCheckBox(class="{{#if currentSetting.strict}}is-checked{{/if}}")
+ a.flex.js-toggle-registration
+ .materialCheckBox(class="{{#if currentSetting.disableRegistration}}is-checked{{/if}}")
- span Use Strict Mode
+ span {{_ 'disable-self-registration'}}
li
- .invite-people(class="{{#if currentSetting.strict}}{{else}}hide{{/if}}")
+ .invite-people(class="{{#if currentSetting.disableRegistration}}{{else}}hide{{/if}}")
ul
li
- .title Invite People
- textarea#email-to-invite.form-control(rows='5', placeholder="Email Adresses")
+ .title {{_ 'invite-people'}}
+ textarea#email-to-invite.form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
li
- .title To board(s)
+ .title {{_ 'to-boards'}}
.bg-white
each boards
a.option.flex.js-toggle-board-choose(id= _id)
@@ -40,31 +40,30 @@ template(name="general")
span= title
li
- button.js-email-invite.primary Invite
+ button.js-email-invite.primary {{_ 'invite'}}
template(name='email')
ul#email-setting.setting-detail
li.smtp-form
- .title SMTP Host {{currentSetting.mailServer.port}}
- .description The address of the SMTP server that handles your emails.
+ .title {{_ 'smtp-host'}}
+ .description {{_ 'smtp-host-description'}}
.form-group
input.form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
li.smtp-form
- .title SMTP Port
- .description The port your SMTP server uses for outgoing emails.
+ .title {{_ 'smtp-port'}}
+ .description {{_ 'smtp-port-description'}}
.form-group
input.form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
li.smtp-form
- .title SMTP user name
+ .title {{_ 'smtp-username'}}
.form-group
- input.form-control#mail-server-username(type="text", placeholder="user name" value="{{currentSetting.mailServer.username}}")
+ input.form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
li.smtp-form
- .title SMTP password
+ .title {{_ 'smtp-password'}}
.form-group
- input.form-control#mail-server-password(type="text", placeholder="password" value="{{currentSetting.mailServer.password}}")
+ input.form-control#mail-server-password(type="text", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
li.smtp-form
- .title From
- .Email address you want to use to send emails.
+ .title {{_ 'send-from'}}
.form-group
input.form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js
index 047bbd1c..5ae982f7 100644
--- a/client/components/settings/settingBody.js
+++ b/client/components/settings/settingBody.js
@@ -40,12 +40,12 @@ BlazeComponent.extendComponent({
sort: ['title'],
});
},
- toggleStrictMode(){
+ toggleRegistration(){
this.setLoading(true);
- const isStrictMode = this.currentSetting().strict;
- Settings.update(Settings.findOne()._id, {$set:{strict: !isStrictMode}});
+ const registrationClosed = this.currentSetting().disableRegistration;
+ Settings.update(Settings.findOne()._id, {$set:{disableRegistration: !registrationClosed}});
this.setLoading(false);
- if(isStrictMode){
+ if(registrationClosed){
$('.invite-people').slideUp();
}else{
$('.invite-people').slideDown();
@@ -58,7 +58,7 @@ BlazeComponent.extendComponent({
$('.side-menu li.active').removeClass('active');
target.parent().addClass('active');
const targetID = target.data('id');
- this.generalSetting.set('general-setting' === targetID);
+ this.generalSetting.set('registration-setting' === targetID);
this.emailSetting.set('email-setting' === targetID);
}
},
@@ -74,7 +74,6 @@ BlazeComponent.extendComponent({
},
inviteThroughEmail(){
- this.setLoading(true);
const emails = $('#email-to-invite').val().trim().split('\n').join(',').split(',');
const boardsToInvite = [];
$('.js-toggle-board-choose .materialCheckBox.is-checked').each(function () {
@@ -86,12 +85,15 @@ BlazeComponent.extendComponent({
validEmails.push(email.trim());
}
});
- Meteor.call('sendInvitation', validEmails, boardsToInvite, () => {
- // if (!err) {
- // TODO - show more info to user
- // }
- this.setLoading(false);
- });
+ if (validEmails.length) {
+ this.setLoading(true);
+ Meteor.call('sendInvitation', validEmails, boardsToInvite, () => {
+ // if (!err) {
+ // TODO - show more info to user
+ // }
+ this.setLoading(false);
+ });
+ }
},
saveMailServerInfo(){
@@ -116,7 +118,7 @@ BlazeComponent.extendComponent({
events(){
return [{
- 'click a.js-toggle-strict-mode': this.toggleStrictMode,
+ 'click a.js-toggle-registration': this.toggleRegistration,
'click a.js-setting-menu': this.switchMenu,
'click a.js-toggle-board-choose': this.checkBoard,
'click button.js-email-invite': this.inviteThroughEmail,
diff --git a/client/components/settings/settingHeader.jade b/client/components/settings/settingHeader.jade
index 01873eae..fb884056 100644
--- a/client/components/settings/settingHeader.jade
+++ b/client/components/settings/settingHeader.jade
@@ -8,11 +8,11 @@ template(name="settingHeaderBar")
if currentUser
a.setting-header-btn.settings.active
i.fa(class="fa-cog")
- span {{_ 'option-setting'}}
+ span {{_ 'settings'}}
//TODO
// a.setting-header-btn.people
// i.fa(class="fa-users")
-// span {{_ 'option-people'}}
+// span {{_ 'people'}}
else
a.setting-header-btn.js-log-in(
diff --git a/config/router.js b/config/router.js
index f136f8cc..72592bd6 100644
--- a/config/router.js
+++ b/config/router.js
@@ -101,6 +101,16 @@ FlowRouter.route('/import', {
FlowRouter.route('/setting', {
name: 'setting',
+ triggersEnter: [
+ AccountsTemplates.ensureSignedIn,
+ () => {
+ Session.set('currentBoard', null);
+ Session.set('currentCard', null);
+
+ Filter.reset();
+ EscapeActions.executeAll();
+ },
+ ],
action() {
BlazeLayout.render('defaultLayout', {
headerBar: 'settingHeaderBar',
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index b5c1b55e..c57d9274 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -326,8 +326,21 @@
"what-to-do": "What do you want to do?",
"admin-panel": "Admin Panel",
"system-setting": "System Setting",
- "option-setting": "Settings",
- "option-people": "People",
+ "settings": "Settings",
+ "people": "People",
+ "registration": "Registration",
+ "disable-self-registration": "Disable Self-Registration",
+ "invite": "Invite",
+ "invite-people": "Invite People",
+ "to-boards": "To board(s)",
+ "email-addresses":"Email Addresses",
+ "smtp-host-description": "The address of the SMTP server that handles your emails.",
+ "smtp-port-description": "The port your SMTP server uses for outgoing emails.",
+ "smtp-host": "SMTP Host",
+ "smtp-port": "SMTP Port",
+ "smtp-username": "Username",
+ "smtp-password": "Password",
+ "send-from": "From",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.\n",
diff --git a/models/settings.js b/models/settings.js
index b160c2a4..b9ff1b37 100644
--- a/models/settings.js
+++ b/models/settings.js
@@ -1,7 +1,7 @@
Settings = new Mongo.Collection('settings');
Settings.attachSchema(new SimpleSchema({
- strict: {
+ disableRegistration: {
type: Boolean,
},
'mailServer.username': {
@@ -23,7 +23,7 @@ Settings.attachSchema(new SimpleSchema({
'mailServer.from': {
type: String,
optional: true,
- defaultValue: 'Kanban',
+ defaultValue: 'Wekan',
},
createdAt: {
type: Date,
@@ -56,7 +56,7 @@ if (Meteor.isServer) {
const setting = Settings.findOne({});
if(!setting){
const now = new Date();
- const defaultSetting = {strict: false, mailServer: {
+ const defaultSetting = {disableRegistration: false, mailServer: {
username: '', password:'', host: '', port:'', from: '',
}, createdAt: now, modifiedAt: now};
Settings.insert(defaultSetting);
diff --git a/models/users.js b/models/users.js
index c7db8fff..b77c7a84 100644
--- a/models/users.js
+++ b/models/users.js
@@ -348,7 +348,7 @@ if (Meteor.isServer) {
if (user._id === inviter._id) throw new Meteor.Error('error-user-notAllowSelf');
} else {
if (posAt <= 0) throw new Meteor.Error('error-user-doesNotExist');
- if (Settings.findOne().strict) throw new Meteor.Error('error-user-notCreated');
+ if (Settings.findOne().disableRegistration) throw new Meteor.Error('error-user-notCreated');
const email = username;
username = email.substring(0, posAt);
const newUserId = Accounts.createUser({ username, email });
@@ -395,8 +395,8 @@ if (Meteor.isServer) {
user.isAdmin = true;
return user;
}
- const strict = Settings.findOne().strict;
- if (!strict) {
+ const disableRegistration = Settings.findOne().disableRegistration;
+ if (!disableRegistration) {
return user;
}
@@ -484,8 +484,8 @@ if (Meteor.isServer) {
Users.after.insert((userId, doc) => {
//invite user to corresponding boards
- const strict = Settings.findOne().strict;
- if (strict) {
+ const disableRegistration = Settings.findOne().disableRegistration;
+ if (disableRegistration) {
const user = Users.findOne(doc._id);
const invitationCode = InvitationCodes.findOne({code: user.profile.icode, valid:true});
if (!invitationCode) {
diff --git a/server/publications/settings.js b/server/publications/settings.js
index e36189e1..c2d9fdff 100644
--- a/server/publications/settings.js
+++ b/server/publications/settings.js
@@ -1,5 +1,5 @@
Meteor.publish('setting', () => {
- return Settings.find({}, {fields:{strict: 1}});
+ return Settings.find({}, {fields:{disableRegistration: 1}});
});
Meteor.publish('mailServer', function () {