瀏覽代碼

Merge branch 'edge' into meteor-1.8

Lauri Ojansivu 6 年之前
父節點
當前提交
8e3689a11d
共有 64 個文件被更改,包括 441 次插入136 次删除
  1. 1 1
      .eslintrc.json
  2. 34 0
      CHANGELOG.md
  3. 1 1
      Stackerfile.yml
  4. 72 4
      client/components/boards/boardBody.js
  5. 2 4
      client/components/main/layouts.jade
  6. 72 60
      client/components/main/layouts.js
  7. 19 0
      client/components/settings/settingBody.jade
  8. 35 5
      client/components/settings/settingBody.js
  9. 3 0
      client/components/swimlanes/swimlanes.styl
  10. 3 1
      i18n/ar.i18n.json
  11. 3 1
      i18n/bg.i18n.json
  12. 3 1
      i18n/br.i18n.json
  13. 3 1
      i18n/ca.i18n.json
  14. 3 1
      i18n/cs.i18n.json
  15. 3 1
      i18n/da.i18n.json
  16. 3 1
      i18n/de.i18n.json
  17. 3 1
      i18n/el.i18n.json
  18. 3 1
      i18n/en-GB.i18n.json
  19. 3 1
      i18n/en.i18n.json
  20. 3 1
      i18n/eo.i18n.json
  21. 3 1
      i18n/es-AR.i18n.json
  22. 3 1
      i18n/es.i18n.json
  23. 3 1
      i18n/eu.i18n.json
  24. 3 1
      i18n/fa.i18n.json
  25. 3 1
      i18n/fi.i18n.json
  26. 3 1
      i18n/fr.i18n.json
  27. 3 1
      i18n/gl.i18n.json
  28. 3 1
      i18n/he.i18n.json
  29. 3 1
      i18n/hi.i18n.json
  30. 3 1
      i18n/hu.i18n.json
  31. 3 1
      i18n/hy.i18n.json
  32. 3 1
      i18n/id.i18n.json
  33. 3 1
      i18n/ig.i18n.json
  34. 3 1
      i18n/it.i18n.json
  35. 3 1
      i18n/ja.i18n.json
  36. 3 1
      i18n/ka.i18n.json
  37. 3 1
      i18n/km.i18n.json
  38. 3 1
      i18n/ko.i18n.json
  39. 3 1
      i18n/lv.i18n.json
  40. 3 1
      i18n/mk.i18n.json
  41. 3 1
      i18n/mn.i18n.json
  42. 3 1
      i18n/nb.i18n.json
  43. 3 1
      i18n/nl.i18n.json
  44. 3 1
      i18n/pl.i18n.json
  45. 9 7
      i18n/pt-BR.i18n.json
  46. 3 1
      i18n/pt.i18n.json
  47. 3 1
      i18n/ro.i18n.json
  48. 3 1
      i18n/ru.i18n.json
  49. 3 1
      i18n/sr.i18n.json
  50. 3 1
      i18n/sv.i18n.json
  51. 3 1
      i18n/sw.i18n.json
  52. 3 1
      i18n/ta.i18n.json
  53. 3 1
      i18n/th.i18n.json
  54. 3 1
      i18n/tr.i18n.json
  55. 3 1
      i18n/uk.i18n.json
  56. 3 1
      i18n/vi.i18n.json
  57. 3 1
      i18n/zh-CN.i18n.json
  58. 3 1
      i18n/zh-TW.i18n.json
  59. 10 1
      models/settings.js
  60. 1 1
      package.json
  61. 2 2
      sandstorm-pkgdef.capnp
  62. 24 0
      server/migrations.js
  63. 11 1
      server/publications/settings.js
  64. 1 1
      snap-src/bin/mongodb-control

+ 1 - 1
.eslintrc.json

@@ -6,7 +6,7 @@
     "browser": true
   },
   "parserOptions": {
-    "ecmaVersion": 6,
+    "ecmaVersion": 2017,
     "sourceType": "module",
     "ecmaFeatures": {
       "experimentalObjectRestSpread": true

+ 34 - 0
CHANGELOG.md

@@ -1,3 +1,37 @@
+# v2.18 2019-02-08 Wekan release
+
+This release adds the folloging new features:
+
+- [Improve Authentication: Admin Panel / Layout / Set Default Authentication / Password/LDAP](https://github.com/wekan/wekan/pull/2172). Thanks to Akuket.
+- [Add oplog to snap mongodb](https://github.com/wekan/wekan/commit/79ffb7d50202471c7b7f297286f13e66ce30922e). Thanks to xet7.
+
+and fixes the following bugs with Apache I-CLA, thanks to bentiss:
+
+- [Fix swimlanes sorting](https://github.com/wekan/wekan/pull/2174)
+  since "[Properly fix horizontal rendering on Chrome and Firefox](https://github.com/wekan/wekan/commit/7cc185ac)".
+  The rendering of the new design of the swimlanes was correct, but this
+  commit broke the reordering capability. Having the swimlane header at
+  the same level than the lists of cards makes the whole sortable
+  pattern fail.
+  - 2 solutions:
+    - revert to only have 1 div per swimlane. But this introduces [the firefox
+      bug mentioned](https://github.com/wekan/wekan/commit/7cc185ac), so not ideal
+    - force the sortable pattern to do what we want.
+  - To force the sortable pattern, we need:
+    - add in the helper a clone of the list of cards (to not just move the
+      header)
+    - make sure the placeholder never get placed between the header and the
+      list of cards in a swimlane
+    - fix the finding of the next and previous list of cards. 
+    For all of this to be successful, we need to resize the swimlanes to a
+    known value. This can lead to some visual jumps with scrolling when you
+    drag or drop the swimlanea. I tried to remedy that by computing the new
+    scroll value. Still not ideal however, as there are still some jumps when
+    dropping.    
+    Fixes [#2159](https://github.com/wekan/wekan/issues/2159).
+
+Thanks to above GitHub users and translators for contributions.
+
 # v2.17 2019-02-04 Wekan release
 
 This release fixes the following bugs:

+ 1 - 1
Stackerfile.yml

@@ -1,5 +1,5 @@
 appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v2.17.0"
+appVersion: "v2.18.0"
 files:
   userUploads:
     - README.md

+ 72 - 4
client/components/boards/boardBody.js

@@ -1,5 +1,6 @@
 const subManager = new SubsManager();
 const { calculateIndex, enableClickOnTouch } = Utils;
+const swimlaneWhileSortingHeight = 150;
 
 BlazeComponent.extendComponent({
   onCreated() {
@@ -74,21 +75,64 @@ BlazeComponent.extendComponent({
     $swimlanesDom.sortable({
       tolerance: 'pointer',
       appendTo: '.board-canvas',
-      helper: 'clone',
+      helper(evt, item) {
+        const helper = $(`<div class="swimlane"
+                               style="flex-direction: column;
+                                      height: ${swimlaneWhileSortingHeight}px;
+                                      width: $(boardComponent.width)px;
+                                      overflow: hidden;"/>`);
+        helper.append(item.clone());
+        // Also grab the list of lists of cards
+        const list = item.next();
+        helper.append(list.clone());
+        return helper;
+      },
       handle: '.js-swimlane-header',
-      items: '.js-swimlane:not(.placeholder)',
+      items: '.swimlane:not(.placeholder)',
       placeholder: 'swimlane placeholder',
       distance: 7,
       start(evt, ui) {
+        const listDom = ui.placeholder.next('.js-swimlane');
+        const parentOffset = ui.item.parent().offset();
+
         ui.placeholder.height(ui.helper.height());
         EscapeActions.executeUpTo('popup-close');
+        listDom.addClass('moving-swimlane');
         boardComponent.setIsDragging(true);
+
+        ui.placeholder.insertAfter(ui.placeholder.next());
+        boardComponent.origPlaceholderIndex = ui.placeholder.index();
+
+        // resize all swimlanes + headers to be a total of 150 px per row
+        // this could be achieved by setIsDragging(true) but we want immediate
+        // result
+        ui.item.siblings('.js-swimlane').css('height', `${swimlaneWhileSortingHeight - 26}px`);
+
+        // set the new scroll height after the resize and insertion of
+        // the placeholder. We want the element under the cursor to stay
+        // at the same place on the screen
+        ui.item.parent().get(0).scrollTop = ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
+      },
+      beforeStop(evt, ui) {
+        const parentOffset = ui.item.parent().offset();
+        const siblings = ui.item.siblings('.js-swimlane');
+        siblings.css('height', '');
+
+        // compute the new scroll height after the resize and removal of
+        // the placeholder
+        const scrollTop = ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
+
+        // then reset the original view of the swimlane
+        siblings.removeClass('moving-swimlane');
+
+        // and apply the computed scrollheight
+        ui.item.parent().get(0).scrollTop = scrollTop;
       },
       stop(evt, ui) {
         // To attribute the new index number, we need to get the DOM element
         // of the previous and the following card -- if any.
-        const prevSwimlaneDom = ui.item.prev('.js-swimlane').get(0);
-        const nextSwimlaneDom = ui.item.next('.js-swimlane').get(0);
+        const prevSwimlaneDom = ui.item.prevAll('.js-swimlane').get(0);
+        const nextSwimlaneDom = ui.item.nextAll('.js-swimlane').get(0);
         const sortIndex = calculateIndex(prevSwimlaneDom, nextSwimlaneDom, 1);
 
         $swimlanesDom.sortable('cancel');
@@ -103,6 +147,30 @@ BlazeComponent.extendComponent({
 
         boardComponent.setIsDragging(false);
       },
+      sort(evt, ui) {
+        // get the mouse position in the sortable
+        const parentOffset = ui.item.parent().offset();
+        const cursorY = evt.pageY - parentOffset.top + ui.item.parent().scrollTop();
+
+        // compute the intended index of the placeholder (we need to skip the
+        // slots between the headers and the list of cards)
+        const newplaceholderIndex = Math.floor(cursorY / swimlaneWhileSortingHeight);
+        let destPlaceholderIndex = (newplaceholderIndex + 1) * 2;
+
+        // if we are scrolling far away from the bottom of the list
+        if (destPlaceholderIndex >= ui.item.parent().get(0).childElementCount) {
+          destPlaceholderIndex = ui.item.parent().get(0).childElementCount - 1;
+        }
+
+        // update the placeholder position in the DOM tree
+        if (destPlaceholderIndex !== ui.placeholder.index()) {
+          if (destPlaceholderIndex < boardComponent.origPlaceholderIndex) {
+            ui.placeholder.insertBefore(ui.placeholder.siblings().slice(destPlaceholderIndex - 2, destPlaceholderIndex - 1));
+          } else {
+            ui.placeholder.insertAfter(ui.placeholder.siblings().slice(destPlaceholderIndex - 1, destPlaceholderIndex));
+          }
+        }
+      },
     });
 
     // ugly touch event hotfix

+ 2 - 4
client/components/main/layouts.jade

@@ -23,10 +23,8 @@ template(name="userFormsLayout")
         br
     section.auth-dialog
       +Template.dynamic(template=content)
-      +connectionMethod
-      if isCas
-        .at-form
-          button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
+      if currentSetting.displayAuthenticationMethod
+        +connectionMethod
       div.at-form-lang
         select.select-lang.js-userform-set-language
           each languages

+ 72 - 60
client/components/main/layouts.js

@@ -20,13 +20,19 @@ const validator = {
   },
 };
 
-Template.userFormsLayout.onCreated(() => {
-  Meteor.subscribe('setting');
-
+Template.userFormsLayout.onCreated(function() {
+  const instance = this;
+  instance.currentSetting = new ReactiveVar();
+
+  Meteor.subscribe('setting', {
+    onReady() {
+      instance.currentSetting.set(Settings.findOne());
+      return this.stop();
+    },
+  });
 });
 
 Template.userFormsLayout.onRendered(() => {
-
   AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
 
   const i18nTag = navigator.language;
@@ -37,12 +43,10 @@ Template.userFormsLayout.onRendered(() => {
 });
 
 Template.userFormsLayout.helpers({
-
   currentSetting() {
-    return Settings.findOne();
+    return Template.instance().currentSetting.get();
   },
 
-
   afterBodyStart() {
     return currentSetting.customHTMLafterBodyStart;
   },
@@ -75,17 +79,6 @@ Template.userFormsLayout.helpers({
     const curLang = T9n.getLanguage() || 'en';
     return t9nTag === curLang;
   },
-/*
-  isCas() {
-    return Meteor.settings.public &&
-      Meteor.settings.public.cas &&
-      Meteor.settings.public.cas.loginUrl;
-  },
-
-  casSignInLabel() {
-    return TAPi18n.__('casSignIn', {}, T9n.getLanguage() || 'en');
-  },
-*/
 });
 
 Template.userFormsLayout.events({
@@ -94,55 +87,74 @@ Template.userFormsLayout.events({
     T9n.setLanguage(i18nTagToT9n(i18nTag));
     evt.preventDefault();
   },
-  'click button#cas'() {
+  'click #at-btn'(event, instance) {
+    if (FlowRouter.getRouteName() === 'atSignIn') {
+      authentication(event, instance);
+    }
+  },
+});
+
+Template.defaultLayout.events({
+  'click .js-close-modal': () => {
+    Modal.close();
+  },
+});
+
+async function authentication(event, instance) {
+  const match = $('#at-field-username_and_email').val();
+  const password = $('#at-field-password').val();
+
+  if (!match || !password) return;
+
+  const result = await getAuthenticationMethod(instance.currentSetting.get(), match);
+
+  if (result === 'password') return;
+
+  // Stop submit #at-pwd-form
+  event.preventDefault();
+  event.stopImmediatePropagation();
+
+  switch (result) {
+  case 'ldap':
+    Meteor.loginWithLDAP(match, password, function() {
+      FlowRouter.go('/');
+    });
+    break;
+
+  case 'cas':
     Meteor.loginWithCas(function() {
-      if (FlowRouter.getRouteName() === 'atSignIn') {
-        FlowRouter.go('/');
-      }
+      FlowRouter.go('/');
     });
-  },
-  'click #at-btn'(event) {
-    /* All authentication method can be managed/called here.
-       !! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
-    */
-    const authenticationMethodSelected = $('.select-authentication').val();
-    // Local account
-    if (authenticationMethodSelected === 'password') {
-      return;
-    }
+    break;
 
-    // Stop submit #at-pwd-form
-    event.preventDefault();
-    event.stopImmediatePropagation();
+  default:
+    break;
+  }
+}
 
-    const email = $('#at-field-username_and_email').val();
-    const password = $('#at-field-password').val();
+function getAuthenticationMethod({displayAuthenticationMethod, defaultAuthenticationMethod}, match) {
+  if (displayAuthenticationMethod) {
+    return $('.select-authentication').val();
+  }
+  return getUserAuthenticationMethod(defaultAuthenticationMethod, match);
+}
 
-    // Ldap account
-    if (authenticationMethodSelected === 'ldap') {
-      // Check if the user can use the ldap connection
-      Meteor.subscribe('user-authenticationMethod', email, {
+function getUserAuthenticationMethod(defaultAuthenticationMethod, match) {
+  return new Promise((resolve) => {
+    try {
+      Meteor.subscribe('user-authenticationMethod', match, {
         onReady() {
           const user = Users.findOne();
-          if (user === undefined || user.authenticationMethod === 'ldap') {
-            // Use the ldap connection package
-            Meteor.loginWithLDAP(email, password, function(error) {
-              if (!error) {
-                // Connection
-                return FlowRouter.go('/');
-              }
-              return error;
-            });
-          }
-          return this.stop();
+
+          const authenticationMethod = user
+            ? user.authenticationMethod
+            : defaultAuthenticationMethod;
+
+          resolve(authenticationMethod);
         },
       });
+    } catch(error) {
+      resolve(defaultAuthenticationMethod);
     }
-  },
-});
-
-Template.defaultLayout.events({
-  'click .js-close-modal': () => {
-    Modal.close();
-  },
-});
+  });
+}

+ 19 - 0
client/components/settings/settingBody.jade

@@ -141,6 +141,16 @@ template(name='layoutSettings')
         span {{_ 'yes'}}
         input.form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
         span {{_ 'no'}}
+    li.layout-form
+      .title {{_ 'display-authentication-method'}}
+      .form-group.flex
+        input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
+        span {{_ 'yes'}}
+        input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
+        span {{_ 'no'}}
+    li.layout-form
+      .title {{_ 'default-authentication-method'}}
+      +selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
     li.layout-form
       .title {{_ 'custom-product-name'}}
       .form-group
@@ -153,3 +163,12 @@ template(name='layoutSettings')
       textarea#customHTMLbeforeBodyEnd.form-control= currentSetting.customHTMLbeforeBodyEnd
     li
       button.js-save-layout.primary {{_ 'save'}}
+
+
+template(name='selectAuthenticationMethod')
+  select#defaultAuthenticationMethod
+    each authentications
+      if isSelected value
+        option(value="{{value}}" selected) {{_ value}}
+      else
+        option(value="{{value}}") {{_ value}}

+ 35 - 5
client/components/settings/settingBody.js

@@ -62,6 +62,9 @@ BlazeComponent.extendComponent({
   toggleHideLogo() {
     $('#hide-logo').toggleClass('is-checked');
   },
+  toggleDisplayAuthenticationMethod() {
+    $('#display-authentication-method').toggleClass('is-checked');
+  },
   switchMenu(event) {
     const target = $(event.target);
     if (!target.hasClass('active')) {
@@ -140,17 +143,20 @@ BlazeComponent.extendComponent({
 
     const productName = $('#product-name').val().trim();
     const hideLogoChange = ($('input[name=hideLogo]:checked').val() === 'true');
+    const displayAuthenticationMethod = ($('input[name=displayAuthenticationMethod]:checked').val() === 'true');
+    const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val();
     const customHTMLafterBodyStart = $('#customHTMLafterBodyStart').val().trim();
     const customHTMLbeforeBodyEnd = $('#customHTMLbeforeBodyEnd').val().trim();
 
     try {
-
       Settings.update(Settings.findOne()._id, {
         $set: {
           productName,
           hideLogo: hideLogoChange,
           customHTMLafterBodyStart,
           customHTMLbeforeBodyEnd,
+          displayAuthenticationMethod,
+          defaultAuthenticationMethod,
         },
       });
     } catch (e) {
@@ -165,17 +171,14 @@ BlazeComponent.extendComponent({
 
   sendSMTPTestEmail() {
     Meteor.call('sendSMTPTestEmail', (err, ret) => {
-      if (!err && ret) { /* eslint-disable no-console */
+      if (!err && ret) {
         const message = `${TAPi18n.__(ret.message)}: ${ret.email}`;
-        console.log(message);
         alert(message);
       } else {
         const reason = err.reason || '';
         const message = `${TAPi18n.__(err.error)}\n${reason}`;
-        console.log(message, err);
         alert(message);
       }
-      /* eslint-enable no-console */
     });
   },
 
@@ -190,6 +193,7 @@ BlazeComponent.extendComponent({
       'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
       'click a.js-toggle-hide-logo': this.toggleHideLogo,
       'click button.js-save-layout': this.saveLayout,
+      'click a.js-toggle-display-authentication-method': this.toggleDisplayAuthenticationMethod,
     }];
   },
 }).register('setting');
@@ -262,3 +266,29 @@ BlazeComponent.extendComponent({
     }];
   },
 }).register('announcementSettings');
+
+
+Template.selectAuthenticationMethod.onCreated(function() {
+  this.authenticationMethods = new ReactiveVar([]);
+
+  Meteor.call('getAuthenticationsEnabled', (_, result) => {
+    if (result) {
+      // TODO : add a management of different languages
+      // (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
+      this.authenticationMethods.set([
+        {value: 'password'},
+        // Gets only the authentication methods availables
+        ...Object.entries(result).filter((e) => e[1]).map((e) => ({value: e[0]})),
+      ]);
+    }
+  });
+});
+
+Template.selectAuthenticationMethod.helpers({
+  authentications() {
+    return Template.instance().authenticationMethods.get();
+  },
+  isSelected(match) {
+    return Template.instance().data.authenticationMethod === match;
+  },
+});

+ 3 - 0
client/components/swimlanes/swimlanes.styl

@@ -53,6 +53,9 @@
 .list-group
   height: 100%
 
+.moving-swimlane
+  display: none
+
 swimlane-color(background, color...)
   background: background !important
   if color

+ 3 - 1
i18n/ar.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/bg.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/br.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ca.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/cs.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Něco se pokazilo",
-    "error-ldap-login": "Během přihlašování nastala chyba"
+    "error-ldap-login": "Během přihlašování nastala chyba",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/da.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/de.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Füge benutzerdefiniertes HTML nach <body> Anfang hinzu",
     "add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu",
     "error-undefined": "Etwas ist schief gelaufen",
-    "error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten"
+    "error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten",
+    "display-authentication-method": "Anzeige Authentifizierungsverfahren",
+    "default-authentication-method": "Standardauthentifizierungsverfahren"
 }

+ 3 - 1
i18n/el.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/en-GB.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/en.i18n.json

@@ -662,5 +662,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/eo.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/es-AR.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/es.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Añade HTML personalizado después de <body> ",
     "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
     "error-undefined": "Algo no está bien",
-    "error-ldap-login": "Ocurrió un error al intentar acceder"
+    "error-ldap-login": "Ocurrió un error al intentar acceder",
+    "display-authentication-method": "Visualizar método de autentificación",
+    "default-authentication-method": "Método de autentificación por defecto"
 }

+ 3 - 1
i18n/eu.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/fa.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "افزودن کد های HTML بعد از  <body> شروع",
     "add-custom-html-before-body-end": "افزودن کد های HTML قبل از  </body> پایان",
     "error-undefined": "یک اشتباه رخ داده شده است",
-    "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد"
+    "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/fi.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Lisää HTML <body> alun jälkeen",
     "add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua",
     "error-undefined": "Jotain meni pieleen",
-    "error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään"
+    "error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään",
+    "display-authentication-method": "Näytä kirjautumistapa",
+    "default-authentication-method": "Oletus kirjautumistapa"
 }

+ 3 - 1
i18n/fr.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Ajouter le HTML personnalisé après le début du <body>",
     "add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du </body>",
     "error-undefined": "Une erreur inconnue s'est produite",
-    "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion"
+    "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion",
+    "display-authentication-method": "Afficher la méthode d'authentification",
+    "default-authentication-method": "Méthode d'authentification par défaut"
 }

+ 3 - 1
i18n/gl.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/he.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית לאחר ה־<body> הפותח.",
     "add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית לפני ה־</body> הסוגר.",
     "error-undefined": "מהו השתבש",
-    "error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה"
+    "error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/hi.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/hu.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/hy.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/id.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ig.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/it.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ja.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ka.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/km.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ko.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/lv.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/mk.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/mn.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/nb.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/nl.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/pl.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 9 - 7
i18n/pt-BR.i18n.json

@@ -192,7 +192,7 @@
     "color-slateblue": "azul ardósia",
     "color-white": "branco",
     "color-yellow": "amarelo",
-    "unset-color": "Unset",
+    "unset-color": "Remover",
     "comment": "Comentário",
     "comment-placeholder": "Escrever Comentário",
     "comment-only": "Somente comentários",
@@ -335,10 +335,10 @@
     "list-archive-cards-pop": "Isto removerá todos os cartões desta lista para o quadro. Para visualizar cartões arquivados e trazê-los de volta para o quadro, clique em “Menu” > “Arquivo-morto”.",
     "list-move-cards": "Mover todos os cartões desta lista",
     "list-select-cards": "Selecionar todos os cartões nesta lista",
-    "set-color-list": "Set Color",
+    "set-color-list": "Definir Cor",
     "listActionPopup-title": "Listar Ações",
     "swimlaneActionPopup-title": "Ações de Raia",
-    "swimlaneAddPopup-title": "Add a Swimlane below",
+    "swimlaneAddPopup-title": "Adicionar uma Raia abaixo ",
     "listImportCardPopup-title": "Importe um cartão do Trello",
     "listMorePopup-title": "Mais",
     "link-list": "Vincular a esta lista",
@@ -520,9 +520,9 @@
     "editCardReceivedDatePopup-title": "Modificar data de recebimento",
     "editCardEndDatePopup-title": "Mudar data de fim",
     "setCardColorPopup-title": "Definir cor",
-    "setCardActionsColorPopup-title": "Choose a color",
-    "setSwimlaneColorPopup-title": "Choose a color",
-    "setListColorPopup-title": "Choose a color",
+    "setCardActionsColorPopup-title": "Escolha uma cor",
+    "setSwimlaneColorPopup-title": "Escolha uma cor",
+    "setListColorPopup-title": "Escolha uma cor",
     "assigned-by": "Atribuído por",
     "requested-by": "Solicitado por",
     "board-delete-notice": "Excluir é permanente. Você perderá todas as listas, cartões e ações associados nesse quadro.",
@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Adicionar HTML Customizado depois do início do <body>",
     "add-custom-html-before-body-end": "Adicionar HTML Customizado antes do fim do </body>",
     "error-undefined": "Algo deu errado",
-    "error-ldap-login": "Um erro ocorreu enquanto tentava entrar"
+    "error-ldap-login": "Um erro ocorreu enquanto tentava entrar",
+    "display-authentication-method": "Mostrar Método de Autenticação",
+    "default-authentication-method": "Método de Autenticação Padrão"
 }

+ 3 - 1
i18n/pt.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ro.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ru.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Добавить HTML после начала <body> ",
     "add-custom-html-before-body-end": "Добавить HTML до завершения </body>",
     "error-undefined": "Что-то пошло не так",
-    "error-ldap-login": "Ошибка при попытке авторизации"
+    "error-ldap-login": "Ошибка при попытке авторизации",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/sr.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/sv.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Något gick fel",
-    "error-ldap-login": "Ett fel uppstod när du försökte logga in"
+    "error-ldap-login": "Ett fel uppstod när du försökte logga in",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/sw.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/ta.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/th.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/tr.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Bir şeyler yanlış gitti",
-    "error-ldap-login": "Giriş yapmaya çalışırken bir hata oluştu"
+    "error-ldap-login": "Giriş yapmaya çalışırken bir hata oluştu",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/uk.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/vi.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/zh-CN.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "添加定制的HTML在开始<body>之前",
     "add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后",
     "error-undefined": "出了点问题",
-    "error-ldap-login": "尝试登陆时出错"
+    "error-ldap-login": "尝试登陆时出错",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 3 - 1
i18n/zh-TW.i18n.json

@@ -659,5 +659,7 @@
     "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
     "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
     "error-undefined": "Something went wrong",
-    "error-ldap-login": "An error occurred while trying to login"
+    "error-ldap-login": "An error occurred while trying to login",
+    "display-authentication-method": "Display Authentication Method",
+    "default-authentication-method": "Default Authentication Method"
 }

+ 10 - 1
models/settings.js

@@ -40,6 +40,14 @@ Settings.attachSchema(new SimpleSchema({
     type: String,
     optional: true,
   },
+  displayAuthenticationMethod: {
+    type: Boolean,
+    optional: true,
+  },
+  defaultAuthenticationMethod: {
+    type: String,
+    optional: false,
+  },
   hideLogo: {
     type: Boolean,
     optional: true,
@@ -85,7 +93,8 @@ if (Meteor.isServer) {
       const from = `Boards Support <support@${domain}>`;
       const defaultSetting = {disableRegistration: false, mailServer: {
         username: '', password: '', host: '', port: '', enableTLS: false, from,
-      }, createdAt: now, modifiedAt: now};
+      }, createdAt: now, modifiedAt: now, displayAuthenticationMethod: true,
+      defaultAuthenticationMethod: 'password'};
       Settings.insert(defaultSetting);
     }
     const newSetting = Settings.findOne();

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v2.17.0",
+  "version": "v2.18.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

+ 2 - 2
sandstorm-pkgdef.capnp

@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
     appTitle = (defaultText = "Wekan"),
     # The name of the app as it is displayed to the user.
 
-    appVersion = 219,
+    appVersion = 220,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "2.17.0~2019-02-04"),
+    appMarketingVersion = (defaultText = "2.18.0~2019-02-08"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 24 - 0
server/migrations.js

@@ -398,3 +398,27 @@ Migrations.add('add-custom-html-before-body-end', () => {
     },
   }, noValidateMulti);
 });
+
+Migrations.add('add-displayAuthenticationMethod', () => {
+  Settings.update({
+    displayAuthenticationMethod: {
+      $exists: false,
+    },
+  }, {
+    $set: {
+      displayAuthenticationMethod: true,
+    },
+  }, noValidateMulti);
+});
+
+Migrations.add('add-defaultAuthenticationMethod', () => {
+  Settings.update({
+    defaultAuthenticationMethod: {
+      $exists: false,
+    },
+  }, {
+    $set: {
+      defaultAuthenticationMethod: 'password',
+    },
+  }, noValidateMulti);
+});

+ 11 - 1
server/publications/settings.js

@@ -1,5 +1,15 @@
 Meteor.publish('setting', () => {
-  return Settings.find({}, {fields:{disableRegistration: 1, productName: 1, hideLogo: 1, customHTMLafterBodyStart: 1, customHTMLbeforeBodyEnd: 1}});
+  return Settings.find({}, {
+    fields:{
+      disableRegistration: 1,
+      productName: 1,
+      hideLogo: 1,
+      customHTMLafterBodyStart: 1,
+      customHTMLbeforeBodyEnd: 1,
+      displayAuthenticationMethod: 1,
+      defaultAuthenticationMethod: 1,
+    },
+  });
 });
 
 Meteor.publish('mailServer', function () {

+ 1 - 1
snap-src/bin/mongodb-control

@@ -29,4 +29,4 @@ if [ "x" != "x${MONGODB_PORT}" ]; then
 fi
 echo "mongodb bind options: $BIND_OPTIONS"
 
-mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $BIND_OPTIONS
+mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $BIND_OPTIONS --smallfiles --oplogSize 128