فهرست منبع

wording change, email sending optimization, add texts to i18n

lkisme 8 سال پیش
والد
کامیت
39f2837838

+ 2 - 2
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();
   }
 });

+ 21 - 22
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}}")
 

+ 15 - 13
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,

+ 2 - 2
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(

+ 10 - 0
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',

+ 15 - 2
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",

+ 3 - 3
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);

+ 5 - 5
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) {

+ 1 - 1
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 () {