From c2118f4830020631ab228c59c8b9247a13655ae6 Mon Sep 17 00:00:00 2001 From: guillaume Date: Fri, 1 Feb 2019 19:00:44 +0100 Subject: [PATCH 01/15] Improve authentication --- client/components/main/layouts.jade | 6 +- client/components/main/layouts.js | 127 +++++++++++--------- client/components/settings/settingBody.jade | 19 +++ client/components/settings/settingBody.js | 37 +++++- models/settings.js | 11 +- server/migrations.js | 24 ++++ server/publications/settings.js | 12 +- 7 files changed, 169 insertions(+), 67 deletions(-) diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade index 55ee2686a..a6115ec12 100644 --- a/client/components/main/layouts.jade +++ b/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 diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index a50d167e3..2e0575688 100644 --- a/client/components/main/layouts.js +++ b/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,49 +87,9 @@ Template.userFormsLayout.events({ T9n.setLanguage(i18nTagToT9n(i18nTag)); evt.preventDefault(); }, - 'click button#cas'() { - Meteor.loginWithCas(function() { - if (FlowRouter.getRouteName() === 'atSignIn') { - 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; - } - - // Stop submit #at-pwd-form - event.preventDefault(); - event.stopImmediatePropagation(); - - const email = $('#at-field-username_and_email').val(); - const password = $('#at-field-password').val(); - - // Ldap account - if (authenticationMethodSelected === 'ldap') { - // Check if the user can use the ldap connection - Meteor.subscribe('user-authenticationMethod', email, { - 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(); - }, - }); + 'click #at-btn'(event, instance) { + if (FlowRouter.getRouteName() === 'atSignIn') { + authentication(event, instance); } }, }); @@ -146,3 +99,57 @@ Template.defaultLayout.events({ 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(); + + if (result === 'ldap') { + return Meteor.loginWithLDAP(match, password, function() { + FlowRouter.go('/'); + }); + } + + if (result === 'cas') { + return Meteor.loginWithCas(function() { + FlowRouter.go('/'); + }); + } +} + +function getAuthenticationMethod({displayAuthenticationMethod, defaultAuthenticationMethod}, match) { + if (displayAuthenticationMethod) { + return $('.select-authentication').val(); + } + return getUserAuthenticationMethod(defaultAuthenticationMethod, match); +} + +function getUserAuthenticationMethod(defaultAuthenticationMethod, match) { + return new Promise((resolve, reject) => { + try { + Meteor.subscribe('user-authenticationMethod', match, { + onReady() { + const user = Users.findOne(); + + const authenticationMethod = user + ? user.authenticationMethod + : defaultAuthenticationMethod; + + resolve(authenticationMethod); + }, + }); + } catch(error) { + resolve(defaultAuthenticationMethod); + } + }) +} diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index 153649fcf..220dbb508 100644 --- a/client/components/settings/settingBody.jade +++ b/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}} \ No newline at end of file diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 4f07c84c4..1d05a8c77 100644 --- a/client/components/settings/settingBody.js +++ b/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) { @@ -190,6 +196,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 +269,31 @@ 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) { + console.log('this : ', this); + console.log('instance : ', Template.instance()); + return Template.instance().data.authenticationMethod === match; + } +}); \ No newline at end of file diff --git a/models/settings.js b/models/settings.js index 674c99a02..5dd28448f 100644 --- a/models/settings.js +++ b/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 `; 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(); diff --git a/server/migrations.js b/server/migrations.js index 2512b40c1..a18ebd718 100644 --- a/server/migrations.js +++ b/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) +}); \ No newline at end of file diff --git a/server/publications/settings.js b/server/publications/settings.js index 573a79b47..4e587f4ce 100644 --- a/server/publications/settings.js +++ b/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 () { From de9965213ae32f4c314dd1a791891e01d12da1dd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 1 Feb 2019 21:26:04 +0200 Subject: [PATCH 02/15] - Fix lint errors. Thanks to xet7 ! --- client/components/main/layouts.js | 8 ++++---- client/components/settings/settingBody.js | 15 +++++---------- models/settings.js | 2 +- server/migrations.js | 6 +++--- server/publications/settings.js | 4 ++-- 5 files changed, 15 insertions(+), 20 deletions(-) diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 2e0575688..73da80e5d 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -28,7 +28,7 @@ Template.userFormsLayout.onCreated(function() { onReady() { instance.currentSetting.set(Settings.findOne()); return this.stop(); - } + }, }); }); @@ -140,16 +140,16 @@ function getUserAuthenticationMethod(defaultAuthenticationMethod, match) { Meteor.subscribe('user-authenticationMethod', match, { onReady() { const user = Users.findOne(); - + const authenticationMethod = user ? user.authenticationMethod : defaultAuthenticationMethod; - + resolve(authenticationMethod); }, }); } catch(error) { resolve(defaultAuthenticationMethod); } - }) + }); } diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 1d05a8c77..2f58d5515 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -156,7 +156,7 @@ BlazeComponent.extendComponent({ customHTMLafterBodyStart, customHTMLbeforeBodyEnd, displayAuthenticationMethod, - defaultAuthenticationMethod + defaultAuthenticationMethod, }, }); } catch (e) { @@ -171,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 */ }); }, @@ -196,7 +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 + 'click a.js-toggle-display-authentication-method': this.toggleDisplayAuthenticationMethod, }]; }, }).register('setting'); @@ -292,8 +289,6 @@ Template.selectAuthenticationMethod.helpers({ return Template.instance().authenticationMethods.get(); }, isSelected(match) { - console.log('this : ', this); - console.log('instance : ', Template.instance()); return Template.instance().data.authenticationMethod === match; - } -}); \ No newline at end of file + }, +}); diff --git a/models/settings.js b/models/settings.js index 5dd28448f..4fcc36ac9 100644 --- a/models/settings.js +++ b/models/settings.js @@ -93,7 +93,7 @@ if (Meteor.isServer) { const from = `Boards Support `; const defaultSetting = {disableRegistration: false, mailServer: { username: '', password: '', host: '', port: '', enableTLS: false, from, - }, createdAt: now, modifiedAt: now, displayAuthenticationMethod: true, + }, createdAt: now, modifiedAt: now, displayAuthenticationMethod: true, defaultAuthenticationMethod: 'password'}; Settings.insert(defaultSetting); } diff --git a/server/migrations.js b/server/migrations.js index a18ebd718..8dcd892ad 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -408,7 +408,7 @@ Migrations.add('add-displayAuthenticationMethod', () => { $set: { displayAuthenticationMethod: true, }, - }, noValidateMulti) + }, noValidateMulti); }); Migrations.add('add-defaultAuthenticationMethod', () => { @@ -420,5 +420,5 @@ Migrations.add('add-defaultAuthenticationMethod', () => { $set: { defaultAuthenticationMethod: 'password', }, - }, noValidateMulti) -}); \ No newline at end of file + }, noValidateMulti); +}); diff --git a/server/publications/settings.js b/server/publications/settings.js index 4e587f4ce..a8f8a9693 100644 --- a/server/publications/settings.js +++ b/server/publications/settings.js @@ -7,8 +7,8 @@ Meteor.publish('setting', () => { customHTMLafterBodyStart: 1, customHTMLbeforeBodyEnd: 1, displayAuthenticationMethod: 1, - defaultAuthenticationMethod: 1 - } + defaultAuthenticationMethod: 1, + }, }); }); From ec453b89b8238adcbb9334e1d006675aa8a7fe06 Mon Sep 17 00:00:00 2001 From: guillaume Date: Thu, 7 Feb 2019 11:38:04 +0100 Subject: [PATCH 03/15] Fix lints --- client/components/main/layouts.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 73da80e5d..6f7c914a0 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -114,16 +114,21 @@ async function authentication(event, instance) { event.preventDefault(); event.stopImmediatePropagation(); - if (result === 'ldap') { - return Meteor.loginWithLDAP(match, password, function() { + switch (result) { + case 'ldap': + Meteor.loginWithLDAP(match, password, function() { FlowRouter.go('/'); }); - } + break; - if (result === 'cas') { - return Meteor.loginWithCas(function() { + case 'cas': + Meteor.loginWithCas(function() { FlowRouter.go('/'); }); + break; + + default: + break; } } @@ -135,7 +140,7 @@ function getAuthenticationMethod({displayAuthenticationMethod, defaultAuthentica } function getUserAuthenticationMethod(defaultAuthenticationMethod, match) { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { try { Meteor.subscribe('user-authenticationMethod', match, { onReady() { From 3ce902123f9af5212c6a84e4ffe616b98d7381ea Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 12:44:48 +0200 Subject: [PATCH 04/15] Lint also async. Thanks to Akuket ! --- .eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index 6a1df8797..364f82a99 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -6,7 +6,7 @@ "browser": true }, "parserOptions": { - "ecmaVersion": 6, + "ecmaVersion": 2017, "sourceType": "module", "ecmaFeatures": { "experimentalObjectRestSpread": true From 4126a1a8085ecddb5ec307f237169171086bda46 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 12:46:07 +0200 Subject: [PATCH 05/15] Translate also Admin Panel/Layout/Display Authentication Method and Default Authentication Method. Thanks to Akuket and xet7 ! --- i18n/en.i18n.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 2c2d41da6..d4e817ea0 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -662,5 +662,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } From 96e97143f26bfcf1fa56394f386846f94aaacec1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 13:06:35 +0200 Subject: [PATCH 06/15] Update translations. --- i18n/ar.i18n.json | 4 +++- i18n/bg.i18n.json | 4 +++- i18n/br.i18n.json | 4 +++- i18n/ca.i18n.json | 4 +++- i18n/cs.i18n.json | 4 +++- i18n/da.i18n.json | 4 +++- i18n/de.i18n.json | 4 +++- i18n/el.i18n.json | 4 +++- i18n/en-GB.i18n.json | 4 +++- i18n/eo.i18n.json | 4 +++- i18n/es-AR.i18n.json | 4 +++- i18n/es.i18n.json | 4 +++- i18n/eu.i18n.json | 4 +++- i18n/fa.i18n.json | 4 +++- i18n/fi.i18n.json | 4 +++- i18n/fr.i18n.json | 4 +++- i18n/gl.i18n.json | 4 +++- i18n/he.i18n.json | 4 +++- i18n/hi.i18n.json | 4 +++- i18n/hu.i18n.json | 4 +++- i18n/hy.i18n.json | 4 +++- i18n/id.i18n.json | 4 +++- i18n/ig.i18n.json | 4 +++- i18n/it.i18n.json | 4 +++- i18n/ja.i18n.json | 4 +++- i18n/ka.i18n.json | 4 +++- i18n/km.i18n.json | 4 +++- i18n/ko.i18n.json | 4 +++- i18n/lv.i18n.json | 4 +++- i18n/mk.i18n.json | 4 +++- i18n/mn.i18n.json | 4 +++- i18n/nb.i18n.json | 4 +++- i18n/nl.i18n.json | 4 +++- i18n/pl.i18n.json | 4 +++- i18n/pt-BR.i18n.json | 4 +++- i18n/pt.i18n.json | 4 +++- i18n/ro.i18n.json | 4 +++- i18n/ru.i18n.json | 4 +++- i18n/sr.i18n.json | 4 +++- i18n/sv.i18n.json | 4 +++- i18n/sw.i18n.json | 4 +++- i18n/ta.i18n.json | 4 +++- i18n/th.i18n.json | 4 +++- i18n/tr.i18n.json | 4 +++- i18n/uk.i18n.json | 4 +++- i18n/vi.i18n.json | 4 +++- i18n/zh-CN.i18n.json | 4 +++- i18n/zh-TW.i18n.json | 4 +++- 48 files changed, 144 insertions(+), 48 deletions(-) diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index cf32ad1e8..3a1b171f6 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 52a9a2c6d..96e0195dc 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 6f552ce98..b6ffe2db0 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index cd53a89b9..3ec051815 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index 3348df26e..3e5f8b49e 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index a2b6b0aa9..656de7295 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 22e61fbb1..0796f64b9 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Füge benutzerdefiniertes HTML nach Anfang hinzu", "add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor 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": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index d678c0938..adfd19f2d 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 8892e0da5..04bb2bacf 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 8775b4cf4..da1e9697f 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index 4984a1c2c..95c2f086a 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 700560abf..5bcd92729 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Añade HTML personalizado después de ", "add-custom-html-before-body-end": "Añade HTML personalizado después de ", "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": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index dffa609f2..4d34b6ca5 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index cd50066f6..c1ef3401d 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "افزودن کد های HTML بعد از شروع", "add-custom-html-before-body-end": "افزودن کد های HTML قبل از پایان", "error-undefined": "یک اشتباه رخ داده شده است", - "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد" + "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد", + "display-authentication-method": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index c86010931..7e2c4d3b7 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Lisää HTML alun jälkeen", "add-custom-html-before-body-end": "Lisä HTML ennen 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" } \ No newline at end of file diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index b6b8f904d..bae4bcc35 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Ajouter le HTML personnalisé après le début du ", "add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du ", "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": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 9ec324471..9c310c78b 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 88e4bd985..c10ea38b9 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית לאחר ה־ הפותח.", "add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית לפני ה־ הסוגר.", "error-undefined": "מהו השתבש", - "error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה" + "error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה", + "display-authentication-method": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index 3f96e8485..8f5028d6e 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index f5268f34d..18b5b0a12 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index d5f45f8ba..fe53857bf 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index c03e93209..2f363bb9b 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 72268d706..27cee9636 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index cf41adfa1..821877223 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 3e445a862..59db5a821 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index 11f78552a..76ee2ffef 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 24daa9b3d..5f3b2dd49 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 6f07eb997..1f7066cb1 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index a24397c6a..b5c62aae2 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 432504e28..5481cc70d 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 47af0cca1..012dea074 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index 318ee7005..1427e263b 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 207ae71c3..24370c093 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 5b38ade59..9fb9fe11c 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 07ce1dfcb..e02c9b9a2 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Adicionar HTML Customizado depois do início do ", "add-custom-html-before-body-end": "Adicionar HTML Customizado antes do fim do ", "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": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index ce895972a..b58709602 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index ffcc4761a..dd3938d48 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 5a14bc2e3..0c8af71d9 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Добавить HTML после начала ", "add-custom-html-before-body-end": "Добавить HTML до завершения ", "error-undefined": "Что-то пошло не так", - "error-ldap-login": "Ошибка при попытке авторизации" + "error-ldap-login": "Ошибка при попытке авторизации", + "display-authentication-method": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index c44e59a4a..83bdc3a60 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 773ea874c..c93862bb7 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index 4931db9b8..1ffffddb4 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index cdc217500..ab8037528 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index e767a6cdf..a748773e8 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index a7bb0f3c2..5bac9e4f3 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index e9381cd21..a7a85d406 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 2572b501d..96223df82 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index b8729e83b..adeaac678 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "添加定制的HTML在开始之前", "add-custom-html-before-body-end": "添加定制的HTML在结束之后", "error-undefined": "出了点问题", - "error-ldap-login": "尝试登陆时出错" + "error-ldap-login": "尝试登陆时出错", + "display-authentication-method": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method" } \ No newline at end of file diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 4d7e18d0e..29f47c296 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -659,5 +659,7 @@ "add-custom-html-after-body-start": "Add Custom HTML after start", "add-custom-html-before-body-end": "Add Custom HTML before 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" } \ No newline at end of file From a2e6f621a2f440344f581a3edf04df81241b6bc1 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Fri, 8 Feb 2019 17:16:27 +0100 Subject: [PATCH 07/15] Fix swimlanes sorting Since 7cc185ac "Properly fix horizontal rendering on Chrome and Firefox" 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 in 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 --- client/components/boards/boardBody.js | 76 ++++++++++++++++++++-- client/components/swimlanes/swimlanes.styl | 3 + 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 2de8777aa..9105e6245 100644 --- a/client/components/boards/boardBody.js +++ b/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 = $(`
`); + 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 diff --git a/client/components/swimlanes/swimlanes.styl b/client/components/swimlanes/swimlanes.styl index 77a7a413a..1056e1e35 100644 --- a/client/components/swimlanes/swimlanes.styl +++ b/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 From 79ffb7d50202471c7b7f297286f13e66ce30922e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 19:43:21 +0200 Subject: [PATCH 08/15] - Add oplog to snap mongodb. Thanks to xet7 ! --- snap-src/bin/mongodb-control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index a7a987390..2154a602f 100755 --- a/snap-src/bin/mongodb-control +++ b/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 From 35a539eee24fd2769db81c1782aa260f3ffe42b8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 19:48:12 +0200 Subject: [PATCH 09/15] Update translations. --- i18n/de.i18n.json | 4 ++-- i18n/es.i18n.json | 4 ++-- i18n/fr.i18n.json | 4 ++-- i18n/pt-BR.i18n.json | 16 ++++++++-------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 0796f64b9..841417316 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -660,6 +660,6 @@ "add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor Ende hinzu", "error-undefined": "Etwas ist schief gelaufen", "error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten", - "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "display-authentication-method": "Anzeige Authentifizierungsverfahren", + "default-authentication-method": "Standardauthentifizierungsverfahren" } \ No newline at end of file diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 5bcd92729..d455b3220 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -660,6 +660,6 @@ "add-custom-html-before-body-end": "Añade HTML personalizado después de ", "error-undefined": "Algo no está bien", "error-ldap-login": "Ocurrió un error al intentar acceder", - "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "display-authentication-method": "Visualizar método de autentificación", + "default-authentication-method": "Método de autentificación por defecto" } \ No newline at end of file diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index bae4bcc35..ff4b2146c 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -660,6 +660,6 @@ "add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du ", "error-undefined": "Une erreur inconnue s'est produite", "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion", - "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "display-authentication-method": "Afficher la méthode d'authentification", + "default-authentication-method": "Méthode d'authentification par défaut" } \ No newline at end of file diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index e02c9b9a2..49c2eea3e 100644 --- a/i18n/pt-BR.i18n.json +++ b/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.", @@ -660,6 +660,6 @@ "add-custom-html-before-body-end": "Adicionar HTML Customizado antes do fim do ", "error-undefined": "Algo deu errado", "error-ldap-login": "Um erro ocorreu enquanto tentava entrar", - "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "display-authentication-method": "Mostrar Método de Autenticação", + "default-authentication-method": "Método de Autenticação Padrão" } \ No newline at end of file From ed98b5c807bb9e21ef56b774974249b178f159fb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:09:42 +0200 Subject: [PATCH 10/15] Update changelog. --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d45c080a..c4ea3a77c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ +# Upcoming 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 7cc185ac "Properly fix horizontal rendering on Chrome and Firefox". + 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 in 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 + +Thanks to above GitHub users and translators for contributions. + # v2.17 2019-02-04 Wekan release This release fixes the following bugs: From 796b276d02aa1304fdd090742adcde8f2574a6dd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:37:30 +0200 Subject: [PATCH 11/15] Update changelog. --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ea3a77c..19dda9af6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,6 @@ and fixes the following bugs with Apache I-CLA, thanks to bentiss: - revert to only have 1 div per swimlane. But this introduces the firefox bug mentioned in 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) From 2d3ce9c290551c624d27e6052feeebc59bbdf03e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:48:05 +0200 Subject: [PATCH 12/15] Add commit link to changelog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19dda9af6..39c34a778 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ This release adds the folloging new features: and fixes the following bugs with Apache I-CLA, thanks to bentiss: - [Fix swimlanes sorting](https://github.com/wekan/wekan/pull/2174) - since 7cc185ac "Properly fix horizontal rendering on Chrome and Firefox". + 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 From 6d0055ecb5d9b74cf13f960fd0e02dd92965763a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:49:39 +0200 Subject: [PATCH 13/15] Add issue link to changelog. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39c34a778..1f4b37324 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ and fixes the following bugs with Apache I-CLA, thanks to bentiss: 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 + Fixes [#2159](https://github.com/wekan/wekan/issues/2159). Thanks to above GitHub users and translators for contributions. From 0fa2e5d3a03155d016b0f7cad09fca1a9a434b1a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:52:28 +0200 Subject: [PATCH 14/15] Add commit link to changelog. --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f4b37324..4a2e88723 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,8 @@ and fixes the following bugs with Apache I-CLA, thanks to bentiss: 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 in 7cc185ac, so not ideal + - 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 From f060e02fc053efda7dfe73ca88730143f5ec9533 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 8 Feb 2019 20:56:45 +0200 Subject: [PATCH 15/15] v2.18 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a2e88723..24d430513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.18 2019-02-08 Wekan release This release adds the folloging new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 0c3fe242f..a9191c64c 100644 --- a/Stackerfile.yml +++ b/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 diff --git a/package.json b/package.json index d67c362e1..aef5d47e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.17.0", + "version": "v2.18.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 906ce447b..f076b58eb 100644 --- a/sandstorm-pkgdef.capnp +++ b/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,