diff options
author | lkisme <lkisme@me.com> | 2017-02-26 21:11:15 +0800 |
---|---|---|
committer | lkisme <lkisme@me.com> | 2017-02-26 21:11:15 +0800 |
commit | 39f2837838ba30ec02bfe9f33c9fa0dfca05d1a6 (patch) | |
tree | 775e276109af00cb42ee81c8aaa03903b38764da | |
parent | e3c3cc0d8df14c84852a854383efa1b4bb83f218 (diff) | |
download | wekan-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.js | 4 | ||||
-rw-r--r-- | client/components/settings/settingBody.jade | 43 | ||||
-rw-r--r-- | client/components/settings/settingBody.js | 28 | ||||
-rw-r--r-- | client/components/settings/settingHeader.jade | 4 | ||||
-rw-r--r-- | config/router.js | 10 | ||||
-rw-r--r-- | i18n/en.i18n.json | 17 | ||||
-rw-r--r-- | models/settings.js | 6 | ||||
-rw-r--r-- | models/users.js | 10 | ||||
-rw-r--r-- | server/publications/settings.js | 2 |
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 () { |