From c9c650664fd92f0924afb4548a50c7bca167d955 Mon Sep 17 00:00:00 2001 From: amadilsons Date: Thu, 28 Sep 2017 16:59:53 +0200 Subject: [PATCH 1/8] basic frontend setup, List model updated with wipLimit field --- client/components/lists/listHeader.jade | 12 ++++++++++++ client/components/lists/listHeader.js | 6 ++++++ i18n/en-GB.i18n.json | 4 +++- i18n/en.i18n.json | 2 ++ i18n/pt-BR.i18n.json | 4 +++- models/lists.js | 5 +++++ 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 68336320d..67fbe9581 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -6,6 +6,11 @@ template(name="listHeader") h2.list-header-name( class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}") = title + if hasWipLimit + span.wip-limit + | ( + = wipLimit + | ) if showCardsCountForList cards.count = cards.count span.lowercase @@ -33,6 +38,9 @@ template(name="listActionPopup") if cards.count li: a.js-select-cards {{_ 'list-select-cards'}} hr + ul.pop-over-list + li: a.js-set-wip-limit {{#if hasWipLimit}}{{_ 'edit-wip-limit'}}{{else}}{{_ 'set-wip-limit'}}{{/if}} + hr ul.pop-over-list li: a.js-close-list {{_ 'archive-list'}} hr @@ -64,3 +72,7 @@ template(name="listDeletePopup") unless archived p {{_ "list-delete-suggest-archive"}} button.js-confirm.negate.full(type="submit") {{_ 'delete'}} + +template(name="setWipLimitPopup") + p {{_ 'set-wip-limit'}} + input(type="number") diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 7fe42884d..47fddd27f 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -21,6 +21,11 @@ BlazeComponent.extendComponent({ return count > this.limitToShowCardsCount(); }, + hasWipLimit() { + return null; + //return this.currentData().wipLimit ? true : false; + }, + events() { return [{ 'click .js-open-list-menu': Popup.open('listAction'), @@ -61,6 +66,7 @@ Template.listActionPopup.events({ this.archive(); Popup.close(); }, + 'click .js-set-wip-limit': Popup.open('setWipLimit'), 'click .js-more': Popup.open('listMore'), }); diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 8db041a5a..2884ea682 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -167,6 +167,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -306,6 +307,7 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -391,4 +393,4 @@ "no": "No", "accounts": "Accounts", "accounts-allowEmailChange": "Allow Email Change" -} \ No newline at end of file +} diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 64a720db0..0ccace571 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -167,6 +167,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -306,6 +307,7 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 1ea99b76c..e40d7ed0f 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -167,6 +167,7 @@ "edit": "Editar", "edit-avatar": "Alterar Avatar", "edit-profile": "Editar Perfil", + "edit-wip-limit": "Editar Limite WIP", "editCardStartDatePopup-title": "Altera data de início", "editCardDueDatePopup-title": "Altera data fim", "editLabelPopup-title": "Alterar Etiqueta", @@ -306,6 +307,7 @@ "save": "Salvar", "search": "Buscar", "select-color": "Selecionar Cor", + "set-wip-limit": "Definir Limite WIP", "shortcut-assign-self": "Atribuir a si o cartão atual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Preenchimento automático de membros", @@ -391,4 +393,4 @@ "no": "Não", "accounts": "Contas", "accounts-allowEmailChange": "Permitir Mudança de Email" -} \ No newline at end of file +} diff --git a/models/lists.js b/models/lists.js index d9a5b8e2a..80accefb8 100644 --- a/models/lists.js +++ b/models/lists.js @@ -42,6 +42,11 @@ Lists.attachSchema(new SimpleSchema({ } }, }, + + wipLimit: { + type: SimpleSchema.Integer, + optional: true, + }, })); Lists.allow({ From a918d36533bd61765f954f60c0e3af78b014907a Mon Sep 17 00:00:00 2001 From: amadilsons Date: Fri, 29 Sep 2017 16:52:53 +0200 Subject: [PATCH 2/8] mostly frontend work, lists coll update with wipLimit field --- client/components/lists/list.styl | 13 +++++++++++++ client/components/lists/listHeader.jade | 15 ++++++++------- client/components/lists/listHeader.js | 20 +++++++++++++++----- i18n/en-GB.i18n.json | 3 ++- i18n/en.i18n.json | 3 ++- i18n/pt-BR.i18n.json | 3 ++- models/lists.js | 5 ++++- 7 files changed, 46 insertions(+), 16 deletions(-) diff --git a/client/components/lists/list.styl b/client/components/lists/list.styl index 5e20476e3..4c6c792fb 100644 --- a/client/components/lists/list.styl +++ b/client/components/lists/list.styl @@ -110,3 +110,16 @@ background: #fafafa color: #222 box-shadow: 0 1px 2px rgba(0,0,0,.2) + +#js-wip-limit-edit + padding-top: 2% + + p + margin-bottom: 0 + + input + display: inline-block + + .wip-limit-value + width: 20% + margin-right: 5% diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 67fbe9581..5d352b2e0 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -7,10 +7,8 @@ template(name="listHeader") class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}") = title if hasWipLimit - span.wip-limit - | ( - = wipLimit - | ) + span + | (#{wipLimit}) if showCardsCountForList cards.count = cards.count span.lowercase @@ -39,7 +37,7 @@ template(name="listActionPopup") li: a.js-select-cards {{_ 'list-select-cards'}} hr ul.pop-over-list - li: a.js-set-wip-limit {{#if hasWipLimit}}{{_ 'edit-wip-limit'}}{{else}}{{_ 'set-wip-limit'}}{{/if}} + li: a.js-set-wip-limit {{#if hasWipLimit}}{{_ 'edit-wip-limit'}}{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}} hr ul.pop-over-list li: a.js-close-list {{_ 'archive-list'}} @@ -74,5 +72,8 @@ template(name="listDeletePopup") button.js-confirm.negate.full(type="submit") {{_ 'delete'}} template(name="setWipLimitPopup") - p {{_ 'set-wip-limit'}} - input(type="number") + #js-wip-limit-edit + lable {{_ 'set-wip-limit-value'}} + p + input.wip-limit-value(type="number" value="#{wipLimit}" min="0" max="99" onkeydown="return false") + input.wip-limit-apply(type="submit" value="{{_ 'apply'}}") diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 47fddd27f..0dc15315b 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -8,6 +8,10 @@ BlazeComponent.extendComponent({ } }, + hasWipLimit() { + return this.currentData().wipLimit > 0 ? true : false; + }, + isWatching() { const list = this.currentData(); return list.findWatcher(Meteor.userId()); @@ -21,11 +25,6 @@ BlazeComponent.extendComponent({ return count > this.limitToShowCardsCount(); }, - hasWipLimit() { - return null; - //return this.currentData().wipLimit ? true : false; - }, - events() { return [{ 'click .js-open-list-menu': Popup.open('listAction'), @@ -42,6 +41,10 @@ BlazeComponent.extendComponent({ }).register('listHeader'); Template.listActionPopup.helpers({ + hasWipLimit() { + return this.wipLimit > 0 ? true : false; + }, + isWatching() { return this.findWatcher(Meteor.userId()); }, @@ -70,6 +73,13 @@ Template.listActionPopup.events({ 'click .js-more': Popup.open('listMore'), }); +Template.setWipLimitPopup.events({ + 'click .wip-limit-apply'(_, instance) { + const limit = instance.$('.wip-limit-value').val(); + this.setWipLimit(limit); + }, +}); + Template.listMorePopup.events({ 'click .js-delete': Popup.afterConfirm('listDelete', function () { Popup.close(); diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 2884ea682..816d42087 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -307,7 +307,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", - "set-wip-limit": "Set WIP Limit", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list:", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 0ccace571..139a10114 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -307,7 +307,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", - "set-wip-limit": "Set WIP Limit", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index e40d7ed0f..39bb67c16 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -307,7 +307,8 @@ "save": "Salvar", "search": "Buscar", "select-color": "Selecionar Cor", - "set-wip-limit": "Definir Limite WIP", + "set-wip-limit-value": "Defina um limite máximo para o número de tarefas nesta lista", + "setWipLimitPopup-title": "Definir Limite WIP", "shortcut-assign-self": "Atribuir a si o cartão atual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Preenchimento automático de membros", diff --git a/models/lists.js b/models/lists.js index 80accefb8..837af73c5 100644 --- a/models/lists.js +++ b/models/lists.js @@ -42,7 +42,6 @@ Lists.attachSchema(new SimpleSchema({ } }, }, - wipLimit: { type: SimpleSchema.Integer, optional: true, @@ -91,6 +90,10 @@ Lists.mutations({ restore() { return { $set: { archived: false } }; }, + + setWipLimit(limit) { + return { $set: { wipLimit: limit } }; + }, }); Lists.hookOptions.after.update = { fetchPrevious: false }; From 089dbf0cf6a3e144d0271a8666d58e689f8c8dba Mon Sep 17 00:00:00 2001 From: amadilsons Date: Wed, 4 Oct 2017 11:12:52 +0200 Subject: [PATCH 3/8] on its way --- client/components/lists/list.styl | 5 +- client/components/lists/listHeader.jade | 26 ++++++-- client/components/lists/listHeader.js | 83 ++++++++++++++++++++++--- i18n/en-GB.i18n.json | 1 + i18n/en.i18n.json | 1 + i18n/pt-BR.i18n.json | 1 + models/lists.js | 28 ++++++++- 7 files changed, 128 insertions(+), 17 deletions(-) diff --git a/client/components/lists/list.styl b/client/components/lists/list.styl index 4c6c792fb..f426b243f 100644 --- a/client/components/lists/list.styl +++ b/client/components/lists/list.styl @@ -113,7 +113,7 @@ #js-wip-limit-edit padding-top: 2% - + p margin-bottom: 0 @@ -123,3 +123,6 @@ .wip-limit-value width: 20% margin-right: 5% + + .wip-limit-error + display: none diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 5d352b2e0..97dbf1c88 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -6,9 +6,9 @@ template(name="listHeader") h2.list-header-name( class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}") = title - if hasWipLimit + if isWipLimitEnabled span - | (#{wipLimit}) + | (#{wipLimit.value}) if showCardsCountForList cards.count = cards.count span.lowercase @@ -37,7 +37,7 @@ template(name="listActionPopup") li: a.js-select-cards {{_ 'list-select-cards'}} hr ul.pop-over-list - li: a.js-set-wip-limit {{#if hasWipLimit}}{{_ 'edit-wip-limit'}}{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}} + li: a.js-set-wip-limit {{#if isWipLimitEnabled }}EDIT{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}} hr ul.pop-over-list li: a.js-close-list {{_ 'archive-list'}} @@ -74,6 +74,20 @@ template(name="listDeletePopup") template(name="setWipLimitPopup") #js-wip-limit-edit lable {{_ 'set-wip-limit-value'}} - p - input.wip-limit-value(type="number" value="#{wipLimit}" min="0" max="99" onkeydown="return false") - input.wip-limit-apply(type="submit" value="{{_ 'apply'}}") + {{one}} + ul.pop-over-list + li: a.js-enable-wip-limit Enable WIP Limit + if isWipLimitEnabled + i.fa.fa-check + + if isWipLimitEnabled + p + input.wip-limit-value(type="number" value="#{wipLimit.value}" min="1" max="99" onkeydown="return false") + input.wip-limit-apply(type="submit" value="{{_ 'apply'}}") + input.wip-limit-error + +template(name="wipLimitErrorPopup") + .wip-limit-invalid + p The number of tasks in this list is higher than the WIP limit you've defined. + p Please move some tasks out of this list, or set a higher WIP limit. + button.full.js-back-view(type="submit") {{_ 'cancel'}} diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 0dc15315b..9ae2c1fe2 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -8,8 +8,9 @@ BlazeComponent.extendComponent({ } }, - hasWipLimit() { - return this.currentData().wipLimit > 0 ? true : false; + isWipLimitEnabled() { + const limit = this.currentData().wipLimit + return limit.enabled && limit.value > 0; }, isWatching() { @@ -41,10 +42,9 @@ BlazeComponent.extendComponent({ }).register('listHeader'); Template.listActionPopup.helpers({ - hasWipLimit() { - return this.wipLimit > 0 ? true : false; + isWipLimitEnabled() { + return Lists.findOne(this.data()._id, { 'wipLimit.enabled': 1 }).wipLimit.enabled; }, - isWatching() { return this.findWatcher(Meteor.userId()); }, @@ -73,13 +73,78 @@ Template.listActionPopup.events({ 'click .js-more': Popup.open('listMore'), }); -Template.setWipLimitPopup.events({ - 'click .wip-limit-apply'(_, instance) { - const limit = instance.$('.wip-limit-value').val(); - this.setWipLimit(limit); +Template.setWipLimitPopup.helpers({ + one() { + //console.log(this) + //console.log(Template.instance()) + } +}); + +BlazeComponent.extendComponent({ + onCreated() { + this.wipEnabled = new ReactiveVar(Template.currentData().wipLimit.enabled); + }, + + toggleWipEnabled() { + const list = Lists.findOne(this.data()._id); + list.wipLimit.enabled ? list.setWipLimitDisabled() : list.setWipLimitEnabled() + }, + + isWipLimitEnabled() { + return Lists.findOne(this.data()._id, { 'wipLimit.enabled': 1 }).wipLimit.enabled; + }, + events() { + return [{ + 'click .js-enable-wip-limit'(_, instance) { + //By default wipLimit.enabled is false or undefined. First click will always be to enable wip limiting + this.wipEnabled.set(!this.wipEnabled.get()); + //console.log(Template.parentData(2)) + //Template.parentData(2).data.toggleWipLimit(!Template.currentData().wipLimit.enabled); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" + this.toggleWipEnabled() + }, + 'click .wip-limit-apply'(_, instance) { + const list = Template.currentData(); + const limit = Template.instance().$('.wip-limit-value').val(); + + if(limit < list.allCards().count()){ + Template.instance().$('.wip-limit-error').click(); + } else { + list.setWipLimit(limit); + } + }, + 'click .wip-limit-error': Popup.open('wipLimitError'), + }]; + }, +}).register('setWipLimitPopup'); + + +/* +Template.setWipLimitPopup.helpers({ + isWipLimitEnabled(instance) { + console.log(this); + console.log(Template.currentData()); + console.log(instance); + return Template.currentData().wipLimit.enabled; }, }); +Template.setWipLimitPopup.events({ + 'click .js-enable-wip-limit'(_, instance) { + //By default wipLimit.enabled is false or undefined. First click will always be to enable wip limiting + instance.wipEnabled.set(!instance.wipEnabled.get()) + // list.toggleWipLimit(!list.wipLimit.enabled); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" + }, + 'click .wip-limit-apply'(_, instance) { + const limit = instance.$('.wip-limit-value').val(); + if(limit < this.allCards().count()){ + instance.$('.wip-limit-error').click(); //open popup with invisible button click + return; + } + this.setWipLimit(limit); + }, + 'click .wip-limit-error': Popup.open('wipLimitError'), +});*/ + Template.listMorePopup.events({ 'click .js-delete': Popup.afterConfirm('listDelete', function () { Popup.close(); diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 816d42087..f49d3d843 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -349,6 +349,7 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 139a10114..a16a3b3bd 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -349,6 +349,7 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 39bb67c16..97927e6d5 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -349,6 +349,7 @@ "welcome-list1": "Básico", "welcome-list2": "Avançado", "what-to-do": "O que você gostaria de fazer?", + "wipLimitErrorPopup-title": "Limite WIP Inválido", "admin-panel": "Painel Administrativo", "settings": "Configurações", "people": "Pessoas", diff --git a/models/lists.js b/models/lists.js index 837af73c5..29dd28fbf 100644 --- a/models/lists.js +++ b/models/lists.js @@ -43,9 +43,22 @@ Lists.attachSchema(new SimpleSchema({ }, }, wipLimit: { + type: Object, + optional: true, + }, + "wipLimit.value": { type: SimpleSchema.Integer, optional: true, }, + "wipLimit.enabled":{ + type: Boolean, + autoValue() { + if(this.isInsert){ + return false; + } + }, + optional: true, + }, })); Lists.allow({ @@ -91,8 +104,21 @@ Lists.mutations({ return { $set: { archived: false } }; }, + toggleWipLimit(toggle) { + console.log("toggle " + this.wipLimit.enabled) + return { $set: { "wipLimit.enabled": !this.wipLimit.enabled } }; + }, + + setWipLimitEnabled() { + return { $set: { "wipLimit.enabled": true } }; + }, + + setWipLimitDisabled() { + return { $set: { "wipLimit.enabled": false } }; + }, + setWipLimit(limit) { - return { $set: { wipLimit: limit } }; + return { $set: { "wipLimit.value": limit } }; }, }); From c865bfe49785181d97b25cb683c0ed37d82c1a69 Mon Sep 17 00:00:00 2001 From: amadilsons Date: Wed, 4 Oct 2017 17:48:37 +0200 Subject: [PATCH 4/8] most work concluded, code needs clean up, further testing required --- client/components/lists/list.js | 4 +- client/components/lists/listBody.jade | 2 +- client/components/lists/listBody.js | 16 +-- client/components/lists/listHeader.jade | 13 ++- client/components/lists/listHeader.js | 101 ++++++++----------- client/components/sidebar/sidebarArchives.js | 4 +- client/lib/popup.js | 1 - models/cards.js | 8 ++ models/lists.js | 11 +- 9 files changed, 72 insertions(+), 88 deletions(-) diff --git a/client/components/lists/list.js b/client/components/lists/list.js index 9c191348f..d99fc963b 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -22,7 +22,7 @@ BlazeComponent.extendComponent({ const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)'; const $cards = this.$('.js-minicards'); $cards.sortable({ - connectWith: '.js-minicards', + connectWith: '.js-minicards:not(.js-list-full)', tolerance: 'pointer', appendTo: 'body', helper(evt, item) { @@ -81,7 +81,7 @@ BlazeComponent.extendComponent({ function userIsMember() { return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); } - + // Disable drag-dropping if the current user is not a board member or is comment only this.autorun(() => { $cards.sortable('option', 'disabled', !userIsMember()); diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 01aa71795..840fd8012 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -1,6 +1,6 @@ template(name="listBody") .list-body.js-perfect-scrollbar - .minicards.clearfix.js-minicards + .minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}") if cards.count +inlinedForm(autoclose=false position="top") +addCardForm(listId=_id position="top") diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 724e805bc..5ae645a9d 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -96,6 +96,15 @@ BlazeComponent.extendComponent({ MultiSelection.toggle(this.currentData()._id); }, + canSeeAddCard() { + return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, + + reachedWipLimit() { + const list = Template.currentData(); + return list.wipLimit.enabled && list.wipLimit.value == list.cards().count(); + }, + events() { return [{ 'click .js-minicard': this.clickOnMiniCard, @@ -239,10 +248,3 @@ BlazeComponent.extendComponent({ }); }, }).register('addCardForm'); - - -Template.listBody.helpers({ - canSeeAddCard() { - return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); - }, -}); diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 97dbf1c88..df395d657 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -36,9 +36,10 @@ template(name="listActionPopup") if cards.count li: a.js-select-cards {{_ 'list-select-cards'}} hr - ul.pop-over-list - li: a.js-set-wip-limit {{#if isWipLimitEnabled }}EDIT{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}} - hr + if currentUser.isBoardAdmin + ul.pop-over-list + li: a.js-set-wip-limit {{#if isWipLimitEnabled }}{{_ 'edit-wip-limit'}}{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}} + hr ul.pop-over-list li: a.js-close-list {{_ 'archive-list'}} hr @@ -74,13 +75,11 @@ template(name="listDeletePopup") template(name="setWipLimitPopup") #js-wip-limit-edit lable {{_ 'set-wip-limit-value'}} - {{one}} ul.pop-over-list li: a.js-enable-wip-limit Enable WIP Limit - if isWipLimitEnabled + if wipEnabled.get i.fa.fa-check - - if isWipLimitEnabled + if wipEnabled.get p input.wip-limit-value(type="number" value="#{wipLimit.value}" min="1" max="99" onkeydown="return false") input.wip-limit-apply(type="submit" value="{{_ 'apply'}}") diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 9ae2c1fe2..94b70f2bb 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -43,8 +43,14 @@ BlazeComponent.extendComponent({ Template.listActionPopup.helpers({ isWipLimitEnabled() { - return Lists.findOne(this.data()._id, { 'wipLimit.enabled': 1 }).wipLimit.enabled; + const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState; + // If user was already inside setWipLimitPopup, return previous state. Popup stack not reacting to database mutations + if(typeof prevState !== "undefined") { + return prevState; + } + return Template.currentData().wipLimit.enabled; }, + isWatching() { return this.findWatcher(Meteor.userId()); }, @@ -73,78 +79,55 @@ Template.listActionPopup.events({ 'click .js-more': Popup.open('listMore'), }); -Template.setWipLimitPopup.helpers({ - one() { - //console.log(this) - //console.log(Template.instance()) - } -}); - BlazeComponent.extendComponent({ onCreated() { - this.wipEnabled = new ReactiveVar(Template.currentData().wipLimit.enabled); + const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState; + // Check if the user as already opened this popup before and retrieve previous state + // This check is necessary due to the fact that database mutations inside popups are not reactive inside the popup stack. + //The use of ReactiveVar is due to the same reason. + if(typeof prevState !== "undefined") { + this.wipEnabled = new ReactiveVar(prevState) + } else { + this.wipEnabled = new ReactiveVar(Template.currentData().wipLimit.enabled); + } }, - toggleWipEnabled() { - const list = Lists.findOne(this.data()._id); - list.wipLimit.enabled ? list.setWipLimitDisabled() : list.setWipLimitEnabled() + onDestroyed() { + // Save current wipEnabled state in the first element of the popup stack to maintain UI coherence if user returns to popup + Template.parentData(4).stack[0].dataContext.wipEnableState = this.wipEnabled.get(); }, - isWipLimitEnabled() { - return Lists.findOne(this.data()._id, { 'wipLimit.enabled': 1 }).wipLimit.enabled; + applyWipLimit() { + const list = Template.currentData(); + const limit = Template.instance().$('.wip-limit-value').val(); + + if(limit < list.cards().count()){ + Template.instance().$('.wip-limit-error').click(); + } else { + list.setWipLimit(limit); + } }, + + enableWipLimit() { + const list = Template.currentData(); + // Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list + if(!list.wipLimit.enabled && list.wipLimit.value < list.cards().count()){ + list.setWipLimit(list.cards().count()); + } + + this.wipEnabled.set(!this.wipEnabled.get()); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" + list.toggleWipLimit(this.wipEnabled.get()); + }, + events() { return [{ - 'click .js-enable-wip-limit'(_, instance) { - //By default wipLimit.enabled is false or undefined. First click will always be to enable wip limiting - this.wipEnabled.set(!this.wipEnabled.get()); - //console.log(Template.parentData(2)) - //Template.parentData(2).data.toggleWipLimit(!Template.currentData().wipLimit.enabled); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" - this.toggleWipEnabled() - }, - 'click .wip-limit-apply'(_, instance) { - const list = Template.currentData(); - const limit = Template.instance().$('.wip-limit-value').val(); - - if(limit < list.allCards().count()){ - Template.instance().$('.wip-limit-error').click(); - } else { - list.setWipLimit(limit); - } - }, + 'click .js-enable-wip-limit': this.enableWipLimit, + 'click .wip-limit-apply': this.applyWipLimit, 'click .wip-limit-error': Popup.open('wipLimitError'), }]; }, }).register('setWipLimitPopup'); - -/* -Template.setWipLimitPopup.helpers({ - isWipLimitEnabled(instance) { - console.log(this); - console.log(Template.currentData()); - console.log(instance); - return Template.currentData().wipLimit.enabled; - }, -}); - -Template.setWipLimitPopup.events({ - 'click .js-enable-wip-limit'(_, instance) { - //By default wipLimit.enabled is false or undefined. First click will always be to enable wip limiting - instance.wipEnabled.set(!instance.wipEnabled.get()) - // list.toggleWipLimit(!list.wipLimit.enabled); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" - }, - 'click .wip-limit-apply'(_, instance) { - const limit = instance.$('.wip-limit-value').val(); - if(limit < this.allCards().count()){ - instance.$('.wip-limit-error').click(); //open popup with invisible button click - return; - } - this.setWipLimit(limit); - }, - 'click .wip-limit-error': Popup.open('wipLimitError'), -});*/ - Template.listMorePopup.events({ 'click .js-delete': Popup.afterConfirm('listDelete', function () { Popup.close(); diff --git a/client/components/sidebar/sidebarArchives.js b/client/components/sidebar/sidebarArchives.js index c8196f234..2e8754b0f 100644 --- a/client/components/sidebar/sidebarArchives.js +++ b/client/components/sidebar/sidebarArchives.js @@ -32,7 +32,9 @@ BlazeComponent.extendComponent({ return [{ 'click .js-restore-card'() { const card = this.currentData(); - card.restore(); + if(card.canBeRestored()){ + card.restore(); + } }, 'click .js-delete-card': Popup.afterConfirm('cardDelete', function() { const cardId = this._id; diff --git a/client/lib/popup.js b/client/lib/popup.js index 3658d883e..d9e29ff19 100644 --- a/client/lib/popup.js +++ b/client/lib/popup.js @@ -205,4 +205,3 @@ escapeActions.forEach((actionName) => { } ); }); - diff --git a/models/cards.js b/models/cards.js index 0a440697d..7d66bf8bc 100644 --- a/models/cards.js +++ b/models/cards.js @@ -179,6 +179,14 @@ Cards.helpers({ cardId: this._id, }); }, + + canBeRestored() { + const list = Lists.findOne({_id: this.listId}); + if(list.wipLimit.enabled && list.wipLimit.value == list.cards().count()){ + return false; + } + return true; + }, }); Cards.mutations({ diff --git a/models/lists.js b/models/lists.js index 29dd28fbf..442b9ee11 100644 --- a/models/lists.js +++ b/models/lists.js @@ -105,16 +105,7 @@ Lists.mutations({ }, toggleWipLimit(toggle) { - console.log("toggle " + this.wipLimit.enabled) - return { $set: { "wipLimit.enabled": !this.wipLimit.enabled } }; - }, - - setWipLimitEnabled() { - return { $set: { "wipLimit.enabled": true } }; - }, - - setWipLimitDisabled() { - return { $set: { "wipLimit.enabled": false } }; + return { $set: { "wipLimit.enabled": toggle } }; }, setWipLimit(limit) { From 214fe6a61f60513d3ddfc9eee423c1b932ff8463 Mon Sep 17 00:00:00 2001 From: amadilsons Date: Thu, 5 Oct 2017 16:46:55 +0200 Subject: [PATCH 5/8] feature implemented, known bugs fixed --- client/components/lists/list.js | 2 +- client/components/lists/listBody.js | 3 +- client/components/lists/listHeader.jade | 8 ++-- client/components/lists/listHeader.js | 54 ++++++++++--------------- models/cards.js | 2 +- models/lists.js | 47 ++++++++++++++++++--- 6 files changed, 71 insertions(+), 45 deletions(-) diff --git a/client/components/lists/list.js b/client/components/lists/list.js index d99fc963b..0e913207e 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -81,7 +81,7 @@ BlazeComponent.extendComponent({ function userIsMember() { return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); } - + // Disable drag-dropping if the current user is not a board member or is comment only this.autorun(() => { $cards.sortable('option', 'disabled', !userIsMember()); diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 5ae645a9d..22ed9e577 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -102,7 +102,8 @@ BlazeComponent.extendComponent({ reachedWipLimit() { const list = Template.currentData(); - return list.wipLimit.enabled && list.wipLimit.value == list.cards().count(); + if( !list.getWipLimit() ) { return false; } + return list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count(); }, events() { diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index df395d657..f0c4e5f1e 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -8,7 +8,7 @@ template(name="listHeader") = title if isWipLimitEnabled span - | (#{wipLimit.value}) + | ({{cards.count}}/#{wipLimit.value}) if showCardsCountForList cards.count = cards.count span.lowercase @@ -77,11 +77,11 @@ template(name="setWipLimitPopup") lable {{_ 'set-wip-limit-value'}} ul.pop-over-list li: a.js-enable-wip-limit Enable WIP Limit - if wipEnabled.get + if isWipLimitEnabled i.fa.fa-check - if wipEnabled.get + if isWipLimitEnabled p - input.wip-limit-value(type="number" value="#{wipLimit.value}" min="1" max="99" onkeydown="return false") + input.wip-limit-value(type="number" value="{{ wipLimitValue }}" min="1" max="99" onkeydown="return false") input.wip-limit-apply(type="submit" value="{{_ 'apply'}}") input.wip-limit-error diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 94b70f2bb..361f69cf9 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -8,16 +8,19 @@ BlazeComponent.extendComponent({ } }, - isWipLimitEnabled() { - const limit = this.currentData().wipLimit - return limit.enabled && limit.value > 0; - }, - isWatching() { const list = this.currentData(); return list.findWatcher(Meteor.userId()); }, + isWipLimitEnabled() { + const wipLimit = this.currentData().getWipLimit(); + if(!wipLimit) { + return 0; + } + return wipLimit.enabled && wipLimit.value > 0; + }, + limitToShowCardsCount() { return Meteor.user().getLimitToShowCardsCount(); }, @@ -43,12 +46,7 @@ BlazeComponent.extendComponent({ Template.listActionPopup.helpers({ isWipLimitEnabled() { - const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState; - // If user was already inside setWipLimitPopup, return previous state. Popup stack not reacting to database mutations - if(typeof prevState !== "undefined") { - return prevState; - } - return Template.currentData().wipLimit.enabled; + return Template.currentData().getWipLimit('enabled'); }, isWatching() { @@ -80,43 +78,33 @@ Template.listActionPopup.events({ }); BlazeComponent.extendComponent({ - onCreated() { - const prevState = Template.parentData(4).stack[0].dataContext.wipEnableState; - // Check if the user as already opened this popup before and retrieve previous state - // This check is necessary due to the fact that database mutations inside popups are not reactive inside the popup stack. - //The use of ReactiveVar is due to the same reason. - if(typeof prevState !== "undefined") { - this.wipEnabled = new ReactiveVar(prevState) - } else { - this.wipEnabled = new ReactiveVar(Template.currentData().wipLimit.enabled); - } - }, - - onDestroyed() { - // Save current wipEnabled state in the first element of the popup stack to maintain UI coherence if user returns to popup - Template.parentData(4).stack[0].dataContext.wipEnableState = this.wipEnabled.get(); - }, - applyWipLimit() { const list = Template.currentData(); - const limit = Template.instance().$('.wip-limit-value').val(); + const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10); if(limit < list.cards().count()){ Template.instance().$('.wip-limit-error').click(); } else { - list.setWipLimit(limit); + Meteor.call('applyWipLimit', list._id, limit); + Popup.back(); } }, enableWipLimit() { const list = Template.currentData(); // Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list - if(!list.wipLimit.enabled && list.wipLimit.value < list.cards().count()){ + if(list.getWipLimit() && !list.wipLimit.enabled && list.wipLimit.value < list.cards().count()){ list.setWipLimit(list.cards().count()); } + Meteor.call('enableWipLimit', Template.currentData()._id); + }, - this.wipEnabled.set(!this.wipEnabled.get()); //If wipLimit.enabled is not yet definied, the negation of "undefined" is "true" - list.toggleWipLimit(this.wipEnabled.get()); + isWipLimitEnabled() { + return Template.currentData().getWipLimit('enabled'); + }, + + wipLimitValue(){ + return Template.currentData().getWipLimit('value'); }, events() { diff --git a/models/cards.js b/models/cards.js index 7d66bf8bc..5b752ec35 100644 --- a/models/cards.js +++ b/models/cards.js @@ -182,7 +182,7 @@ Cards.helpers({ canBeRestored() { const list = Lists.findOne({_id: this.listId}); - if(list.wipLimit.enabled && list.wipLimit.value == list.cards().count()){ + if(list.getWipLimit() && list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count()){ return false; } return true; diff --git a/models/lists.js b/models/lists.js index 442b9ee11..877b3d83f 100644 --- a/models/lists.js +++ b/models/lists.js @@ -46,16 +46,24 @@ Lists.attachSchema(new SimpleSchema({ type: Object, optional: true, }, - "wipLimit.value": { - type: SimpleSchema.Integer, + 'wipLimit.value': { + type: Number, + decimal: false, + autoValue() { + if(this.isInsert){ + return 0; + } + return this.value; + }, optional: true, }, - "wipLimit.enabled":{ + 'wipLimit.enabled':{ type: Boolean, autoValue() { if(this.isInsert){ return false; } + return this.value; }, optional: true, }, @@ -89,6 +97,17 @@ Lists.helpers({ board() { return Boards.findOne(this.boardId); }, + + getWipLimit(option){ + const list = Lists.findOne({ _id: this._id }); + if(!list.wipLimit) { // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set + return 0; + } else if(!option) { + return list.wipLimit; + } else { + return list.wipLimit[option] ? list.wipLimit[option] : 0; // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set + } + }, }); Lists.mutations({ @@ -105,11 +124,29 @@ Lists.mutations({ }, toggleWipLimit(toggle) { - return { $set: { "wipLimit.enabled": toggle } }; + return { $set: { 'wipLimit.enabled': toggle } }; }, setWipLimit(limit) { - return { $set: { "wipLimit.value": limit } }; + return { $set: { 'wipLimit.value': limit } }; + }, +}); + +Meteor.methods({ + applyWipLimit(listId, limit){ + check(listId, String); + check(limit, Number); + Lists.findOne({ _id: listId }).setWipLimit(limit); + }, + + enableWipLimit(listId) { + check(listId, String); + const list = Lists.findOne({ _id: listId }); + if( list.getWipLimit() ){ // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set + list.toggleWipLimit(!list.wipLimit.enabled); + } else { + list.toggleWipLimit(true); // First time toggle is always to 'true' because default is 'false' + } }, }); From f77da76c682ec7ad1b5e141d113d4b74371f46ae Mon Sep 17 00:00:00 2001 From: amadilsons Date: Thu, 5 Oct 2017 17:22:03 +0200 Subject: [PATCH 6/8] added i18n translation, minor fix --- client/components/lists/listHeader.jade | 6 +++--- client/components/lists/listHeader.js | 4 ++-- i18n/en-GB.i18n.json | 3 +++ i18n/en.i18n.json | 3 +++ i18n/pt-BR.i18n.json | 3 +++ models/lists.js | 4 ++-- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index f0c4e5f1e..d5738dd92 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -76,7 +76,7 @@ template(name="setWipLimitPopup") #js-wip-limit-edit lable {{_ 'set-wip-limit-value'}} ul.pop-over-list - li: a.js-enable-wip-limit Enable WIP Limit + li: a.js-enable-wip-limit {{_ 'enable-wip-limit'}} if isWipLimitEnabled i.fa.fa-check if isWipLimitEnabled @@ -87,6 +87,6 @@ template(name="setWipLimitPopup") template(name="wipLimitErrorPopup") .wip-limit-invalid - p The number of tasks in this list is higher than the WIP limit you've defined. - p Please move some tasks out of this list, or set a higher WIP limit. + p {{_ 'wipLimitErrorPopup-dialog-pt1'}} + p {{_ 'wipLimitErrorPopup-dialog-pt2'}} button.full.js-back-view(type="submit") {{_ 'cancel'}} diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js index 361f69cf9..9974c7889 100644 --- a/client/components/lists/listHeader.js +++ b/client/components/lists/listHeader.js @@ -93,10 +93,10 @@ BlazeComponent.extendComponent({ enableWipLimit() { const list = Template.currentData(); // Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list - if(list.getWipLimit() && !list.wipLimit.enabled && list.wipLimit.value < list.cards().count()){ + if(list.getWipLimit() && !list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){ list.setWipLimit(list.cards().count()); } - Meteor.call('enableWipLimit', Template.currentData()._id); + Meteor.call('enableWipLimit', list._id); }, isWipLimitEnabled() { diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index f49d3d843..9af3ed1c7 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -186,6 +186,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -350,6 +351,8 @@ "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index a16a3b3bd..19844036b 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -186,6 +186,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -350,6 +351,8 @@ "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 97927e6d5..9a42d4047 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -186,6 +186,7 @@ "email-sent": "Email enviado", "email-verifyEmail-subject": "Verifique seu endereço de email em __siteName__", "email-verifyEmail-text": "Olá __user__\nPara verificar sua conta de email, clique no link abaixo.\n__url__\nObrigado.", + "enable-wip-limit": "Ativar Limite WIP", "error-board-doesNotExist": "Este quadro não existe", "error-board-notAdmin": "Você precisa ser administrador desse quadro para fazer isto", "error-board-notAMember": "Você precisa ser um membro desse quadro para fazer isto", @@ -350,6 +351,8 @@ "welcome-list2": "Avançado", "what-to-do": "O que você gostaria de fazer?", "wipLimitErrorPopup-title": "Limite WIP Inválido", + "wipLimitErrorPopup-dialog-pt1": "O número de tarefas nesta lista excede o limite WIP definido.", + "wipLimitErrorPopup-dialog-pt2": "Por favor, mova algumas tarefas para fora desta lista, ou defina um limite WIP mais elevado.", "admin-panel": "Painel Administrativo", "settings": "Configurações", "people": "Pessoas", diff --git a/models/lists.js b/models/lists.js index 877b3d83f..1b999b077 100644 --- a/models/lists.js +++ b/models/lists.js @@ -142,8 +142,8 @@ Meteor.methods({ enableWipLimit(listId) { check(listId, String); const list = Lists.findOne({ _id: listId }); - if( list.getWipLimit() ){ // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set - list.toggleWipLimit(!list.wipLimit.enabled); + if(list.getWipLimit()){ // Necessary check to avoid exceptions for the case where the doc doesn't have the wipLimit field yet set + list.toggleWipLimit(!list.getWipLimit('enabled')); } else { list.toggleWipLimit(true); // First time toggle is always to 'true' because default is 'false' } From de2acaec68dccd2f4ab1745641bfcd444bd21c25 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 9 Oct 2017 15:37:43 +0300 Subject: [PATCH 7/8] Update translations. --- i18n/ar.i18n.json | 7 ++ i18n/br.i18n.json | 7 ++ i18n/ca.i18n.json | 7 ++ i18n/cs.i18n.json | 7 ++ i18n/de.i18n.json | 7 ++ i18n/en-GB.i18n.json | 4 +- i18n/eo.i18n.json | 7 ++ i18n/es.i18n.json | 273 ++++++++++++++++++++++--------------------- i18n/eu.i18n.json | 7 ++ i18n/fa.i18n.json | 7 ++ i18n/fi.i18n.json | 7 ++ i18n/fr.i18n.json | 7 ++ i18n/gl.i18n.json | 7 ++ i18n/he.i18n.json | 7 ++ i18n/hu.i18n.json | 7 ++ i18n/id.i18n.json | 7 ++ i18n/it.i18n.json | 7 ++ i18n/ja.i18n.json | 7 ++ i18n/ko.i18n.json | 7 ++ i18n/nb.i18n.json | 7 ++ i18n/nl.i18n.json | 7 ++ i18n/pl.i18n.json | 7 ++ i18n/pt-BR.i18n.json | 2 +- i18n/ro.i18n.json | 7 ++ i18n/ru.i18n.json | 7 ++ i18n/sr.i18n.json | 7 ++ i18n/sv.i18n.json | 9 +- i18n/ta.i18n.json | 7 ++ i18n/th.i18n.json | 7 ++ i18n/tr.i18n.json | 7 ++ i18n/uk.i18n.json | 7 ++ i18n/vi.i18n.json | 7 ++ i18n/zh-CN.i18n.json | 7 ++ i18n/zh-TW.i18n.json | 7 ++ 34 files changed, 361 insertions(+), 137 deletions(-) diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index 3ef309961..132b50d89 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -171,6 +171,7 @@ "edit": "تعديل", "edit-avatar": "تعديل الصورة الشخصية", "edit-profile": "تعديل الملف الشخصي", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "تغيير تاريخ البدء", "editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق", "editLabelPopup-title": "تعديل العلامة", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "حفظ", "search": "بحث", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "الإكمال التلقائي للرموز التعبيرية", "shortcut-autocomplete-members": "الإكمال التلقائي لأسماء الأعضاء", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "ماذا تريد أن تنجز?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 2b77db285..73bc98cda 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -171,6 +171,7 @@ "edit": "Kemmañ", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 3764d81fe..ce29c894b 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -171,6 +171,7 @@ "edit": "Edita", "edit-avatar": "Canvia Avatar", "edit-profile": "Edita el teu Perfil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Canvia data d'inici", "editCardDueDatePopup-title": "Canvia data de finalització", "editLabelPopup-title": "Canvia etiqueta", @@ -189,6 +190,7 @@ "email-sent": "Correu enviat", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hola __user__, \n\n per verificar el teu correu, segueix l'enllaç següent.\n\n __url__\n\n Gràcies.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Aquest tauler no existeix", "error-board-notAdmin": "Necessites ser administrador d'aquest tauler per dur a lloc aquest acció", "error-board-notAMember": "Necessites ser membre d'aquest tauler per dur a terme aquesta acció", @@ -310,6 +312,8 @@ "save": "Desa", "search": "Cerca", "select-color": "Selecciona color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assigna't la ftixa actual", "shortcut-autocomplete-emoji": "Autocompleta emoji", "shortcut-autocomplete-members": "Autocompleta membres", @@ -350,6 +354,9 @@ "welcome-list1": "Bàsics", "welcome-list2": "Avançades", "what-to-do": "Què vols fer?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Tauler d'administració", "settings": "Configuració", "people": "Persones", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index a46529e15..0a573cb3e 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -171,6 +171,7 @@ "edit": "Upravit", "edit-avatar": "Změnit avatar", "edit-profile": "Upravit profil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Změnit datum startu úkolu", "editCardDueDatePopup-title": "Změnit datum dokončení úkolu", "editLabelPopup-title": "Změnit štítek", @@ -189,6 +190,7 @@ "email-sent": "Email byl odeslán", "email-verifyEmail-subject": "Ověř svou emailovou adresu na", "email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Toto tablo neexistuje", "error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla", "error-board-notAMember": "K provedení změny musíš být členem tohoto tabla", @@ -310,6 +312,8 @@ "save": "Uložit", "search": "Hledat", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Přiřadit sebe k aktuální kartě", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Automatický výběr uživatel", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "Co chcete dělat?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Nastavení", "people": "Lidé", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 7d1806561..8b5a12507 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -171,6 +171,7 @@ "edit": "Bearbeiten", "edit-avatar": "Profilbild ändern", "edit-profile": "Profil ändern", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Startdatum ändern", "editCardDueDatePopup-title": "Enddatum ändern", "editLabelPopup-title": "Label ändern", @@ -189,6 +190,7 @@ "email-sent": "E-Mail gesendet", "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Dieses Board existiert nicht", "error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein", "error-board-notAMember": "Um das zu tun, müssen Sie Mitglied dieses Boards sein", @@ -310,6 +312,8 @@ "save": "Speichern", "search": "Suchen", "select-color": "Farbe auswählen", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu", "shortcut-autocomplete-emoji": "Emojis vervollständigen", "shortcut-autocomplete-members": "Mitglieder vervollständigen", @@ -350,6 +354,9 @@ "welcome-list1": "Grundlagen", "welcome-list2": "Fortgeschritten", "what-to-do": "Was wollen Sie tun?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Administration", "settings": "Einstellungen", "people": "Nutzer", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 718e487cf..e2eb099ab 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -312,7 +312,7 @@ "save": "Save", "search": "Search", "select-color": "Select Color", - "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list:", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", @@ -402,4 +402,4 @@ "no": "No", "accounts": "Accounts", "accounts-allowEmailChange": "Allow Email Change" -} +} \ No newline at end of file diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index c7fa1264a..1c8e1f805 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -171,6 +171,7 @@ "edit": "Redakti", "edit-avatar": "Change Avatar", "edit-profile": "Redakti profilo", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Redakti komencdato", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Ŝanĝi etikedo", @@ -189,6 +190,7 @@ "email-sent": "Sendis retpoŝton", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Savi", "search": "Serĉi", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "Kion vi volas fari?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index ebd8261a3..90a9338a9 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -1,62 +1,62 @@ { "accept": "Aceptar", "act-activity-notify": "[Wekan] Notificación de actividad", - "act-addAttachment": "__attachment__ adjuntado a __card__", - "act-addChecklist": "añadida lista de tareas __checklist__ a __card__", - "act-addChecklistItem": "__checklistItem__ añadido a la lista de tareas __checklist__ en __card__", - "act-addComment": "comentado en __card__: __comment__", - "act-createBoard": "__board__ creado", - "act-createCard": "__card__ añadida a __list__", - "act-createList": "__list__ añadida a __board__", - "act-addBoardMember": "__member__ añadido a __board__", - "act-archivedBoard": "__board__ archivado", - "act-archivedCard": "__card__ archivada", - "act-archivedList": "__list__ archivada", - "act-importBoard": "__board__ importado", - "act-importCard": "__card__ importada", - "act-importList": "__list__ importada", - "act-joinMember": "__member__ añadido a __card__", - "act-moveCard": "__card__ movida desde __oldList__ a __list__", - "act-removeBoardMember": "__member__ borrado de __board__", - "act-restoredCard": "__card__ restaurada en __board__", - "act-unjoinMember": "__member__ borrado de __card__", + "act-addAttachment": "ha adjuntado __attachment__ a __card__", + "act-addChecklist": "ha añadido la lista de tareas __checklist__ a __card__", + "act-addChecklistItem": "ha añadido __checklistItem__ a la lista de tareas __checklist__ en __card__", + "act-addComment": "ha comentado en __card__: __comment__", + "act-createBoard": "ha creado __board__", + "act-createCard": "ha añadido __card__ a __list__", + "act-createList": "ha añadido __list__ a __board__", + "act-addBoardMember": "ha añadido a __member__ a __board__", + "act-archivedBoard": "ha archivado __board__", + "act-archivedCard": "ha archivado __card__", + "act-archivedList": "ha archivado __list__", + "act-importBoard": "ha importado __board__", + "act-importCard": "ha importado __card__", + "act-importList": "ha importado __list__", + "act-joinMember": "ha añadido a __member__ a __card__", + "act-moveCard": "ha movido __card__ desde __oldList__ a __list__", + "act-removeBoardMember": "ha desvinculado a __member__ de __board__", + "act-restoredCard": "ha restaurado __card__ en __board__", + "act-unjoinMember": "ha desvinculado a __member__ de __card__", "act-withBoardTitle": "[Wekan] __board__", "act-withCardTitle": "[__board__] __card__", "actions": "Acciones", "activities": "Actividades", "activity": "Actividad", - "activity-added": "%s añadido a %s", - "activity-archived": "%s archivado", - "activity-attached": "%s adjuntado a %s", - "activity-created": "%s creado", - "activity-excluded": "%s excluido de %s", - "activity-imported": "%s importado en %s desde %s", - "activity-imported-board": "%s importado desde %s", - "activity-joined": "%s se ha unido", - "activity-moved": "%s movido de %s a %s", + "activity-added": "ha añadido %s a %s", + "activity-archived": "ha archivado %s", + "activity-attached": "ha adjuntado %s a %s", + "activity-created": "ha creado %s", + "activity-excluded": "ha excluido %s de %s", + "activity-imported": "ha importado %s a %s desde %s", + "activity-imported-board": "ha importado %s desde %s", + "activity-joined": "se ha unido a %s", + "activity-moved": "ha movido %s de %s a %s", "activity-on": "en %s", - "activity-removed": "%s eliminado de %s", - "activity-sent": "%s enviado a %s", - "activity-unjoined": "separado %s", - "activity-checklist-added": "añadida lista de tareas a %s", - "activity-checklist-item-added": "añadido el elemento de la lista de tareas a '%s' en %s", + "activity-removed": "ha eliminado %s de %s", + "activity-sent": "ha enviado %s a %s", + "activity-unjoined": "se ha desvinculado de %s", + "activity-checklist-added": "ha añadido una lista de tareas a %s", + "activity-checklist-item-added": "ha añadido el elemento de la lista de tareas a '%s' en %s", "add": "Añadir", "add-attachment": "Añadir adjunto", "add-board": "Añadir tablero", - "add-card": "Añadir tarjeta", - "add-checklist": "Añadir lista de tareas", + "add-card": "Añadir una tarjeta", + "add-checklist": "Añadir una lista de tareas", "add-checklist-item": "Añadir un elemento a la lista de tareas", - "add-cover": "Añadir cubierta", - "add-label": "Añadir etiqueta", - "add-list": "Añadir lista", + "add-cover": "Añadir portada", + "add-label": "Añadir una etiqueta", + "add-list": "Añadir una lista", "add-members": "Añadir miembros", - "added": "Añadido", + "added": "Añadido el", "addMemberPopup-title": "Miembros", "admin": "Administrador", - "admin-desc": "Puedes ver y editar fichas, eliminar miembros, y cambiar los ajustes del tablero", - "admin-announcement": "Anuncio", - "admin-announcement-active": "Activar anuncio del sistema", - "admin-announcement-title": "Anuncio del administrator", + "admin-desc": "Puedes ver y editar tarjetas, eliminar miembros, y cambiar los ajustes del tablero", + "admin-announcement": "Aviso", + "admin-announcement-active": "Activar el aviso para todo el sistema", + "admin-announcement-title": "Aviso del administrador", "all-boards": "Tableros", "and-n-other-card": "y __count__ tarjeta más", "and-n-other-card_plural": "y otras __count__ tarjetas", @@ -64,69 +64,69 @@ "app-is-offline": "Wekan se está cargando, por favor espere. Actualizar la página provocará la pérdida de datos. Si Wekan no se carga, por favor verifique que el servidor de Wekan no está detenido.", "archive": "Archivar", "archive-all": "Archivar todo", - "archive-board": "Archivar tablero", - "archive-card": "Archivar tarjeta", - "archive-list": "Archivar lista", - "archive-selection": "Archivar seleción", - "archiveBoardPopup-title": "¿Archivar tablero?", + "archive-board": "Archivar el tablero", + "archive-card": "Archivar la tarjeta", + "archive-list": "Archivar la lista", + "archive-selection": "Archivar la selección", + "archiveBoardPopup-title": "¿Archivar el tablero?", "archived-items": "Elementos archivados", "archived-boards": "Tableros archivados", - "restore-board": "Restaurar tablero", + "restore-board": "Restaurar el tablero", "no-archived-boards": "No hay tableros archivados", "archives": "Archivos", "assign-member": "Asignar miembros", "attached": "adjuntado", "attachment": "Adjunto", "attachment-delete-pop": "El borrado de un archivo adjunto es permanente. Esta acción no puede deshacerse.", - "attachmentDeletePopup-title": "¿Borrar adjunto?", + "attachmentDeletePopup-title": "¿Borrar el adjunto?", "attachments": "Adjuntos", "auto-watch": "Suscribirse automáticamente a los tableros cuando son creados", "avatar-too-big": "El avatar es muy grande (70KB máx.)", "back": "Atrás", - "board-change-color": "Cambiar color", + "board-change-color": "Cambiar el color", "board-nb-stars": "%s destacados", "board-not-found": "Tablero no encontrado", "board-private-info": "Este tablero será privado.", "board-public-info": "Este tablero será público.", - "boardChangeColorPopup-title": "Cambiar fondo del tablero", - "boardChangeTitlePopup-title": "Renombrar tablero", + "boardChangeColorPopup-title": "Cambiar el fondo del tablero", + "boardChangeTitlePopup-title": "Renombrar el tablero", "boardChangeVisibilityPopup-title": "Cambiar visibilidad", "boardChangeWatchPopup-title": "Cambiar vigilancia", "boardMenuPopup-title": "Menú del tablero", "boards": "Tableros", - "bucket-example": "Como 'Cosas por hacer' por ejemplo", + "bucket-example": "Como “Cosas por hacer” por ejemplo", "cancel": "Cancelar", - "card-archived": "Esta ficha está archivada.", - "card-comments-title": "Esta ficha tiene %s comentarios.", - "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta ficha.", + "card-archived": "Esta tarjeta está archivada.", + "card-comments-title": "Esta tarjeta tiene %s comentarios.", + "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta tarjeta.", "card-delete-pop": "Se eliminarán todas las acciones de la historia y no se podrá volver a abrir la tarjeta. Esta acción no puede deshacerse.", "card-delete-suggest-archive": "Puede archivar una tarjeta para eliminarla del tablero y conservar la actividad.", - "card-due": "Motivo", - "card-due-on": "Debido a", - "card-edit-attachments": "Editar adjuntos", - "card-edit-labels": "Editar etiquetas", - "card-edit-members": "Editar miembros", - "card-labels-title": "Cambia las etiquetas de la ficha", - "card-members-title": "Añadir o eliminar miembros del tablero desde la ficha.", + "card-due": "Finalizar", + "card-due-on": "Vence el", + "card-edit-attachments": "Editar los adjuntos", + "card-edit-labels": "Editar las etiquetas", + "card-edit-members": "Editar los miembros", + "card-labels-title": "Cambia las etiquetas de la tarjeta", + "card-members-title": "Añadir o eliminar miembros del tablero desde la tarjeta.", "card-start": "Empezar", - "card-start-on": "Empieza", + "card-start-on": "Empieza el", "cardAttachmentsPopup-title": "Adjuntar desde", - "cardDeletePopup-title": "¿Borrar la ficha?", + "cardDeletePopup-title": "¿Borrar la tarjeta?", "cardDetailsActionsPopup-title": "Acciones de la tarjeta", "cardLabelsPopup-title": "Etiquetas", "cardMembersPopup-title": "Miembros", "cardMorePopup-title": "Más", "cards": "Tarjetas", "change": "Cambiar", - "change-avatar": "Cambiar avatar", + "change-avatar": "Cambiar el avatar", "change-password": "Cambiar la contraseña", - "change-permissions": "Cambiar permisos", - "change-settings": "Cambiar preferencias", - "changeAvatarPopup-title": "Cambiar avatar", - "changeLanguagePopup-title": "Cambiar idioma", + "change-permissions": "Cambiar los permisos", + "change-settings": "Cambiar las preferencias", + "changeAvatarPopup-title": "Cambiar el avatar", + "changeLanguagePopup-title": "Cambiar el idioma", "changePasswordPopup-title": "Cambiar la contraseña", - "changePermissionsPopup-title": "Cambiar permisos", - "changeSettingsPopup-title": "Cambiar preferencias", + "changePermissionsPopup-title": "Cambiar los permisos", + "changeSettingsPopup-title": "Cambiar las preferencias", "checklists": "Lista de tareas", "click-to-star": "Haz clic para destacar este tablero.", "click-to-unstar": "Haz clic para dejar de destacar este tablero.", @@ -134,24 +134,24 @@ "close": "Cerrar", "close-board": "Cerrar el tablero", "close-board-pop": "Podrá restaurar el tablero haciendo clic en el botón 'Archivos' en el encabezado al inicio.", - "color-black": "negro", + "color-black": "negra", "color-blue": "azul", "color-green": "verde", "color-lime": "lima", "color-orange": "naranja", "color-pink": "rosa", "color-purple": "púrpura", - "color-red": "rojo", - "color-sky": "cielo", - "color-yellow": "amarillo", + "color-red": "roja", + "color-sky": "celeste", + "color-yellow": "amarilla", "comment": "Comentario", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", - "comment-only-desc": "Solo se puede comentar en tarjetas.", + "comment-only-desc": "Solo se puede comentar en las tarjetas.", "computer": "Ordenador", "confirm-checklist-delete-dialog": "¿Seguro que desea eliminar la lista de tareas?", "copy-card-link-to-clipboard": "Copiar enlace a la tarjeta al portapapeles", - "copyCardPopup-title": "Copiar tarjeta", + "copyCardPopup-title": "Copiar la tarjeta", "create": "Crear", "createBoardPopup-title": "Crear tablero", "chooseBoardSourcePopup-title": "Importar tablero", @@ -161,7 +161,7 @@ "decline": "Declinar", "default-avatar": "Avatar por defecto", "delete": "Borrar", - "deleteLabelPopup-title": "Borrar etiqueta", + "deleteLabelPopup-title": "¿Borrar la etiqueta?", "description": "Descripción", "disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta", "disambiguateMultiMemberPopup-title": "Desambiguar la acción de miembro", @@ -169,13 +169,14 @@ "done": "Hecho", "download": "Descargar", "edit": "Editar", - "edit-avatar": "Cambiar Avatar", - "edit-profile": "Editar perfil", - "editCardStartDatePopup-title": "Cambiar fecha de inicio", - "editCardDueDatePopup-title": "Cambiar fecha de vencimiento", - "editLabelPopup-title": "Cambiar etiqueta", - "editNotificationPopup-title": "Editar notificación", - "editProfilePopup-title": "Editar perfil", + "edit-avatar": "Cambiar el avatar", + "edit-profile": "Editar el perfil", + "edit-wip-limit": "Edit WIP Limit", + "editCardStartDatePopup-title": "Cambiar la fecha de inicio", + "editCardDueDatePopup-title": "Cambiar la fecha de vencimiento", + "editLabelPopup-title": "Cambiar la etiqueta", + "editNotificationPopup-title": "Editar las notificaciones", + "editProfilePopup-title": "Editar el perfil", "email": "Correo electrónico", "email-enrollAccount-subject": "Cuenta creada en __siteName__", "email-enrollAccount-text": "Hola __user__,\n\nPara empezar a utilizar el servicio, simplemente haz clic en el siguiente enlace.\n\n__url__\n\nGracias.", @@ -189,6 +190,7 @@ "email-sent": "Correo enviado", "email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "El tablero no existe", "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso", "error-board-notAMember": "Es necesario ser miembro de este tablero para hacer eso", @@ -199,55 +201,55 @@ "error-user-notAllowSelf": "No puedes invitarte a ti mismo", "error-user-notCreated": "El usuario no ha sido creado", "error-username-taken": "Este nombre de usuario ya está en uso", - "error-email-taken": "Esta direccion de Email ya está en uso", - "export-board": "Exportar tablero", + "error-email-taken": "Esta dirección de correo ya está en uso", + "export-board": "Exportar el tablero", "filter": "Filtro", - "filter-cards": "Fichas filtradas", + "filter-cards": "Filtrar tarjetas", "filter-clear": "Limpiar filtro", "filter-no-label": "Sin etiqueta", "filter-no-member": "Sin miembro", "filter-on": "Filtro activo", - "filter-on-desc": "Estás filtrando fichas en este tablero. Haz clic aquí para editar el filtro.", + "filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.", "filter-to-selection": "Filtrar la selección", "fullname": "Nombre completo", "header-logo-title": "Volver a tu página de tableros", - "hide-system-messages": "Ocultar los mensajes del sistema", + "hide-system-messages": "Ocultar las notificaciones de actividad", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", - "import-board": "importar tablero", - "import-board-c": "Importar tablero", - "import-board-title-trello": "Importar tablero desde Trello", - "import-board-title-wekan": "Importar tablero desde Wekan", - "import-sandstorm-warning": "El tablero importado va a borrar todos los datos existentes en este tablero y reemplazarlos con los datos del tablero importado.", + "import-board": "importar el tablero", + "import-board-c": "Importar el tablero", + "import-board-title-trello": "Importar un tablero desde Trello", + "import-board-title-wekan": "Importar un tablero desde Wekan", + "import-sandstorm-warning": "El tablero importado va a borrar todos los datos existentes en este tablero y a reemplazarlos con los datos del tablero importado.", "from-trello": "Desde Trello", "from-wekan": "Desde Wekan", - "import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más', 'Imprimir y Exportar', 'Exportar JSON', y copia el texto resultante.", - "import-board-instruction-wekan": "En tu tablero Wekan, ve a 'Menú', luego 'Exportar tablero', y copia el texto en el archivo descargado.", + "import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más' > 'Imprimir y exportar' > 'Exportar JSON', y copia el texto resultante.", + "import-board-instruction-wekan": "En tu tablero Wekan, ve a 'Menú', luego 'Exportar el tablero', y copia el texto del archivo descargado.", "import-json-placeholder": "Pega tus datos JSON válidos aquí", "import-map-members": "Mapa de miembros", "import-members-map": "El tablero importado tiene algunos miembros. Por favor mapea los miembros que deseas importar a los usuarios de Wekan", "import-show-user-mapping": "Revisión de la asignación de miembros", - "import-user-select": "Escoje el usuario de Wekan que deseas utilizar como miembro", - "importMapMembersAddPopup-title": "Seleccionar un miembro de Wekan", + "import-user-select": "Escoge el usuario de Wekan que deseas utilizar como miembro", + "importMapMembersAddPopup-title": "Selecciona un miembro de Wekan", "info": "Versión", "initials": "Iniciales", "invalid-date": "Fecha no válida", "joined": "se ha unido", "just-invited": "Has sido invitado a este tablero", "keyboard-shortcuts": "Atajos de teclado", - "label-create": "Crear etiqueta", - "label-default": "%s etiqueta (por defecto)", - "label-delete-pop": "Esto eliminará esta etiqueta de todas las fichas y destruirá su historia. Esta acción no puede deshacerse.", + "label-create": "Crear una etiqueta", + "label-default": "etiqueta %s (por defecto)", + "label-delete-pop": "Esto eliminará esta etiqueta de todas las tarjetas y destruirá su historia. Esta acción no puede deshacerse.", "labels": "Etiquetas", "language": "Idioma", "last-admin-desc": "No puedes cambiar roles porque debe haber al menos un administrador.", "leave-board": "Abandonar el tablero", - "link-card": "Enlace a esta ficha", - "list-archive-cards": "Archivar todas las tarjetas en esta lista", - "list-archive-cards-pop": "Esto eliminara todas las fichas de esta lista del tablero. Para ver fichas archivadas y recuperarlas en el tablero, haz clic en 'Menú' / 'Artículos Archivados'.", - "list-move-cards": "Mover todas las tarjetas en esta lista", - "list-select-cards": "Seleccionar todas las tarjetas en esta lista", + "link-card": "Enlace a esta tarjeta", + "list-archive-cards": "Archivar todas las tarjetas de esta lista", + "list-archive-cards-pop": "Esto eliminara todas las tarjetas de esta lista del tablero. Para ver las tarjetas archivadas y recuperarlas en el tablero, haz clic en 'Menú' > 'Elementos archivados'.", + "list-move-cards": "Mover todas las tarjetas de esta lista", + "list-select-cards": "Seleccionar todas las tarjetas de esta lista", "listActionPopup-title": "Acciones de la lista", "listImportCardPopup-title": "Importar una tarjeta de Trello", "listMorePopup-title": "Más", @@ -258,16 +260,16 @@ "log-out": "Finalizar la sesión", "log-in": "Iniciar sesión", "loginPopup-title": "Iniciar sesión", - "memberMenuPopup-title": "Preferencias de miembro", + "memberMenuPopup-title": "Mis preferencias", "members": "Miembros", "menu": "Menú", - "move-selection": "Mover selección", - "moveCardPopup-title": "Mover tarjeta", + "move-selection": "Mover la selección", + "moveCardPopup-title": "Mover la tarjeta", "moveCardToBottom-title": "Mover al final", - "moveCardToTop-title": "Movel al principio", - "moveSelectionPopup-title": "Mover selección", - "multi-selection": "Multi-selección", - "multi-selection-on": "Multi-selección activada", + "moveCardToTop-title": "Mover al principio", + "moveSelectionPopup-title": "Mover la selección", + "multi-selection": "Selección múltiple", + "multi-selection-on": "Selección múltiple activada", "muted": "Silenciado", "muted-info": "No serás notificado de ningún cambio en este tablero", "my-boards": "Mis tableros", @@ -276,13 +278,13 @@ "no-archived-lists": "No hay listas archivadas.", "no-results": "Sin resultados", "normal": "Normal", - "normal-desc": "Puedes ver y editar fichas. No puedes cambiar la configuración.", - "not-accepted-yet": "Invitación no aceptada aún", + "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.", + "not-accepted-yet": "La invitación no ha sido aceptada aún", "notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participas como creador o miembro", "notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando", "optional": "opcional", "or": "o", - "page-maybe-private": "Esta página puede ser privada. Puedes verla al iniciar sesión.", + "page-maybe-private": "Esta página puede ser privada. Es posible que puedas verla al iniciar sesión.", "page-not-found": "Página no encontrada.", "password": "Contraseña", "paste-or-dragdrop": "pegar o arrastrar y soltar un archivo de imagen (sólo imagen)", @@ -294,22 +296,24 @@ "private-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.", "profile": "Perfil", "public": "Público", - "public-desc": "Este tablero es público. Es visible para cualquier persona con el enlace y se mostrará en los motores de búsqueda como Google. Sólo personas añadidas al tablero pueden editarlo.", + "public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.", "quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.", - "remove-cover": "Eliminar cubierta", - "remove-from-board": "Borrar del tablero", - "remove-label": "Eliminar etiqueta", - "listDeletePopup-title": "¿Eliminar lista?", + "remove-cover": "Eliminar portada", + "remove-from-board": "Desvincular del tablero", + "remove-label": "Eliminar la etiqueta", + "listDeletePopup-title": "¿Eliminar la lista?", "remove-member": "Eliminar miembro", - "remove-member-from-card": "Eliminar de la ficha", + "remove-member-from-card": "Eliminar de la tarjeta", "remove-member-pop": "¿Eliminar __name__ (__username__) de __boardTitle__? El miembro será eliminado de todas las tarjetas de este tablero. En ellas se mostrará una notificación.", "removeMemberPopup-title": "¿Eliminar miembro?", "rename": "Renombrar", - "rename-board": "Renombrar tablero", + "rename-board": "Renombrar el tablero", "restore": "Restaurar", "save": "Guardar", "search": "Buscar", "select-color": "Selecciona un color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar miembros", @@ -329,13 +333,13 @@ "subscribe": "Suscribirse", "team": "Equipo", "this-board": "este tablero", - "this-card": "esta ficha", + "this-card": "esta tarjeta", "time": "Hora", "title": "Título", "tracking": "Seguimiento", "tracking-info": "Serás notificado de cualquier cambio en las tarjetas en las que participas como creador o miembro.", - "unassign-member": "Desasignar miembro", - "unsaved-description": "Tienes unas descripción no guardada.", + "unassign-member": "Desvincular al miembro", + "unsaved-description": "Tienes una descripción sin guardar.", "unwatch": "Dejar de vigilar", "upload": "Cargar", "upload-avatar": "Cargar un avatar", @@ -350,6 +354,9 @@ "welcome-list1": "Básicos", "welcome-list2": "Avanzados", "what-to-do": "¿Qué deseas hacer?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Panel del administrador", "settings": "Ajustes", "people": "Personas", @@ -367,15 +374,15 @@ "smtp-username": "Nombre de usuario", "smtp-password": "Contraseña", "smtp-tls": "Soporte TLS", - "send-from": "De", + "send-from": "Desde", "invitation-code": "Código de Invitación", "email-invite-register-subject": "__inviter__ te ha enviado una invitación", "email-invite-register-text": "Estimado __user__,\n\n__inviter__ te invita a unirte a Wekan para colaborar.\n\nPor favor, haz clic en el siguiente enlace:\n__url__\n\nTu código de invitación es: __icode__\n\nGracias.", "error-invitation-code-not-exist": "El código de invitación no existe", "error-notAuthorized": "No estás autorizado a ver esta página.", - "outgoing-webhooks": "Webhooks salientes", - "outgoingWebhooksPopup-title": "Webhooks salientes", - "new-outgoing-webhook": "Nuevo Webhook saliente", + "outgoing-webhooks": "Webhooks salientes", + "outgoingWebhooksPopup-title": "Webhooks salientes", + "new-outgoing-webhook": "Nuevo webhook saliente", "no-name": "(Desconocido)", "Wekan_version": "Versión de Wekan", "Node_version": "Versión de Node", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index 4aac43d4b..6806a558b 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -171,6 +171,7 @@ "edit": "Editatu", "edit-avatar": "Aldatu avatarra", "edit-profile": "Editatu profila", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Aldatu hasiera data", "editCardDueDatePopup-title": "Aldatu epemuga data", "editLabelPopup-title": "Aldatu etiketa", @@ -189,6 +190,7 @@ "email-sent": "E-posta bidali da", "email-verifyEmail-subject": "Egiaztatu __siteName__ guneko zure e-posta helbidea.", "email-verifyEmail-text": "Kaixo __user__,\n\nZure e-posta kontua egiaztatzeko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Arbel hau ez da existitzen", "error-board-notAdmin": "Arbel honetako kudeatzailea izan behar zara hori egin ahal izateko", "error-board-notAMember": "Arbel honetako kidea izan behar zara hori egin ahal izateko", @@ -310,6 +312,8 @@ "save": "Gorde", "search": "Bilatu", "select-color": "Aukeratu kolorea", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Esleitu zure burua txartel honetara", "shortcut-autocomplete-emoji": "Automatikoki osatu emojia", "shortcut-autocomplete-members": "Automatikoki osatu kideak", @@ -350,6 +354,9 @@ "welcome-list1": "Oinarrizkoa", "welcome-list2": "Aurreratua", "what-to-do": "Zer egin nahi duzu?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Kudeaketa panela", "settings": "Ezarpenak", "people": "Jendea", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 3ff24ff7a..c43193290 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -171,6 +171,7 @@ "edit": "ویرایش", "edit-avatar": "تغییر تصویر", "edit-profile": "ویرایش پروفایل", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "تغییر تاریخ آغاز", "editCardDueDatePopup-title": "تغییر تاریخ بدلیل", "editLabelPopup-title": "تغیر برچسب", @@ -189,6 +190,7 @@ "email-sent": "نامه الکترونیکی فرستاده شد", "email-verifyEmail-subject": "تایید آدرس الکترونیکی شما در __siteName__", "email-verifyEmail-text": "سلام __user__\nبه منظور تایید آدرس الکترونیکی حساب خود، آدرس زیر را دنبال نمایید، باتشکر:\n__url__.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "تخته مورد نظر وجود ندارد", "error-board-notAdmin": "شما جهت انجام آن باید مدیر تخته باشید", "error-board-notAMember": "شما انجام آن ،اید عضو این تخته باشید.", @@ -310,6 +312,8 @@ "save": "ذخیره", "search": "جستجو", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "اختصاص خود به کارت فعلی", "shortcut-autocomplete-emoji": "تکمیل خودکار شکلکها", "shortcut-autocomplete-members": "تکمیل خودکار کاربرها", @@ -350,6 +354,9 @@ "welcome-list1": "پایه ای ها", "welcome-list2": "پیشرفته", "what-to-do": "چه کاری می خواهید انجام دهید؟", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "پیشخوان مدیریتی", "settings": "تنظمات", "people": "افراد", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 9587cee6b..3d141af52 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -171,6 +171,7 @@ "edit": "Muokkaa", "edit-avatar": "Muokkaa profiilikuvaa", "edit-profile": "Muokkaa profiilia", + "edit-wip-limit": "Muokkaa WIP-rajaa", "editCardStartDatePopup-title": "Muokkaa aloituspäivää", "editCardDueDatePopup-title": "Muokkaa eräpäivää", "editLabelPopup-title": "Muokkaa tunnistetta", @@ -189,6 +190,7 @@ "email-sent": "Sähköposti lähetetty", "email-verifyEmail-subject": "Varmista sähköpostiosoitteesi osoitteessa __url__", "email-verifyEmail-text": "Hei __user__,\n\nvahvistaaksesi sähköpostiosoitteesi, klikkaa allaolevaa linkkiä.\n\n__url__\n\nKiitos.", + "enable-wip-limit": "Ota käyttöön WIP-raja", "error-board-doesNotExist": "Tämä taulu ei ole olemassa", "error-board-notAdmin": "Tehdäksesi tämän sinun täytyy olla tämän taulun ylläpitäjä", "error-board-notAMember": "Tehdäksesi tämän sinun täytyy olla tämän taulun jäsen", @@ -310,6 +312,8 @@ "save": "Tallenna", "search": "Etsi", "select-color": "Valitse väri", + "set-wip-limit-value": "Aseta tämän listan tehtävien enimmäismäärä", + "setWipLimitPopup-title": "Aseta WIP-raja", "shortcut-assign-self": "Valitse itsesi nykyiselle kortille", "shortcut-autocomplete-emoji": "Automaattinen täydennys emojille", "shortcut-autocomplete-members": "Automaattinen täydennys jäsenille", @@ -350,6 +354,9 @@ "welcome-list1": "Perusasiat", "welcome-list2": "Edistynyt", "what-to-do": "Mitä haluat tehdä?", + "wipLimitErrorPopup-title": "Virheellinen WIP-raja", + "wipLimitErrorPopup-dialog-pt1": "Tässä listassa olevien tehtävien määrä on korkeampi kuin asettamasi WIP-raja.", + "wipLimitErrorPopup-dialog-pt2": "Siirrä joitain tehtäviä pois tästä listasta tai määritä korkeampi WIP-raja.", "admin-panel": "Hallintapaneeli", "settings": "Asetukset", "people": "Ihmiset", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 252601ee0..c507eefc7 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -171,6 +171,7 @@ "edit": "Modifier", "edit-avatar": "Modifier l'avatar", "edit-profile": "Modifier le profil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Modifier la date de début", "editCardDueDatePopup-title": "Modifier la date d'échéance", "editLabelPopup-title": "Modifier l'étiquette", @@ -189,6 +190,7 @@ "email-sent": "Courriel envoyé", "email-verifyEmail-subject": "Vérifier votre adresse de courriel sur __siteName__", "email-verifyEmail-text": "Bonjour __user__,\n\nPour vérifier votre compte courriel, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Ce tableau n'existe pas", "error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela", "error-board-notAMember": "Vous devez être membre de ce tableau pour faire cela", @@ -310,6 +312,8 @@ "save": "Enregistrer", "search": "Chercher", "select-color": "Sélectionner une couleur", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Affecter cette carte à vous-même", "shortcut-autocomplete-emoji": "Auto-complétion des emoji", "shortcut-autocomplete-members": "Auto-complétion des membres", @@ -350,6 +354,9 @@ "welcome-list1": "Basiques", "welcome-list2": "Avancés", "what-to-do": "Que voulez-vous faire ?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Panneau d'administration", "settings": "Paramètres", "people": "Personne", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 523a6f53e..7427426e7 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -171,6 +171,7 @@ "edit": "Editar", "edit-avatar": "Cambiar de avatar", "edit-profile": "Editar o perfil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Cambiar a data de inicio", "editCardDueDatePopup-title": "Cambiar a data límite", "editLabelPopup-title": "Cambiar a etiqueta", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Fundamentos", "welcome-list2": "Avanzado", "what-to-do": "Que desexa facer?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Panel de administración", "settings": "Configuración", "people": "Persoas", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 4f72ce627..d4a642e9f 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -171,6 +171,7 @@ "edit": "עריכה", "edit-avatar": "החלפת תמונת משתמש", "edit-profile": "עריכת פרופיל", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "שינוי מועד התחלה", "editCardDueDatePopup-title": "שינוי מועד סיום", "editLabelPopup-title": "שינוי תווית", @@ -189,6 +190,7 @@ "email-sent": "הודעת הדוא״ל נשלחה", "email-verifyEmail-subject": "אימות כתובת הדוא״ל שלך באתר __siteName__", "email-verifyEmail-text": "__user__ שלום,\n\nלאימות כתובת הדוא״ל המשויכת לחשבונך, עליך פשוט ללחוץ על הקישור המופיע להלן.\n\n__url__\n\nתודה.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "לוח זה אינו קיים", "error-board-notAdmin": "צריכות להיות לך הרשאות ניהול על לוח זה כדי לעשות זאת", "error-board-notAMember": "עליך לקבל חברות בלוח זה כדי לעשות זאת", @@ -310,6 +312,8 @@ "save": "שמירה", "search": "חיפוש", "select-color": "בחירת צבע", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "להקצות אותי לכרטיס הנוכחי", "shortcut-autocomplete-emoji": "השלמה אוטומטית לאימוג׳י", "shortcut-autocomplete-members": "השלמה אוטומטית של חברים", @@ -350,6 +354,9 @@ "welcome-list1": "יסודות", "welcome-list2": "מתקדם", "what-to-do": "מה ברצונך לעשות?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "חלונית ניהול המערכת", "settings": "הגדרות", "people": "אנשים", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 37a296d0a..d556a8a7d 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -171,6 +171,7 @@ "edit": "Szerkeszt", "edit-avatar": "Avatar módosítása", "edit-profile": "Profil szerkesztése", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Kezdő dátum módosítása", "editCardDueDatePopup-title": "Lejárati dátum módosítása", "editLabelPopup-title": "Cimke módosítása", @@ -189,6 +190,7 @@ "email-sent": "Email elküldve", "email-verifyEmail-subject": "Igazold vissza az email címedet a __siteName__ oldalon", "email-verifyEmail-text": "Üdvözöljük __user__,\n\nAz Email címe ellenőrzéséhez kérjük kattintson az alábbi linkre.\n\n__url__\n\nKöszönjük.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Ez a tábla nem létezik", "error-board-notAdmin": "Adminisztrátor joggal kell rendelkezned hogy megtehesd ezen a táblán", "error-board-notAMember": "Az tábla tagjának kell lenned, hogy megtehesd", @@ -310,6 +312,8 @@ "save": "Mentés", "search": "Keresés", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Add hozzá magad az aktuális kártyához", "shortcut-autocomplete-emoji": "Automatikus emoji kiegészítés", "shortcut-autocomplete-members": "Automatikus tag név kiegészítés", @@ -350,6 +354,9 @@ "welcome-list1": "Alapok", "welcome-list2": "Speciális", "what-to-do": "Mit akarsz csinálni?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Adminisztrációs felület", "settings": "Beállítások", "people": "Ember", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 08c037884..8cb77a77a 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -171,6 +171,7 @@ "edit": "Sunting", "edit-avatar": "Ubah Avatar", "edit-profile": "Sunting Profil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Ubah tanggal mulai", "editCardDueDatePopup-title": "Ubah tanggal selesai", "editLabelPopup-title": "Ubah Label", @@ -189,6 +190,7 @@ "email-sent": "Email terkirim", "email-verifyEmail-subject": "Verifikasi surel Anda pada __siteName__", "email-verifyEmail-text": "Halo __user__,\n\nUntuk memverifikasi surel Anda, silakan klik tautan berikut.\n\n__url__\n\nTerima kasih.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Panel ini tidak ada", "error-board-notAdmin": "Anda harus admin dari panel ini untuk melakukan itu", "error-board-notAMember": "Anda harus jadi member panel ini untuk melakukannya", @@ -310,6 +312,8 @@ "save": "Simpan", "search": "Cari", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Masukkan diri anda sendiri ke kartu ini", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete partisipan", @@ -350,6 +354,9 @@ "welcome-list1": "Tingkat dasar", "welcome-list2": "Tingkat lanjut", "what-to-do": "Apa yang mau Anda lakukan?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Panel Admin", "settings": "Setelan", "people": "Orang-orang", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index 02245f736..462c7025b 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -171,6 +171,7 @@ "edit": "Modifica", "edit-avatar": "Cambia avatar", "edit-profile": "Modifica profilo", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Cambia data di inizio", "editCardDueDatePopup-title": "Cambia data di scadenza", "editLabelPopup-title": "Cambia etichetta", @@ -189,6 +190,7 @@ "email-sent": "Email inviata", "email-verifyEmail-subject": "Verifica il tuo indirizzo email su on __siteName__", "email-verifyEmail-text": "Ciao __user__,\n\nPer verificare il tuo account email, clicca sul link seguente:\n\n__url__\n\nGrazie.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Questa bacheca non esiste", "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare", "error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare", @@ -310,6 +312,8 @@ "save": "Salva", "search": "Cerca", "select-color": "Seleziona Colore", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Aggiungi te stesso alla scheda corrente", "shortcut-autocomplete-emoji": "Autocompletamento emoji", "shortcut-autocomplete-members": "Autocompletamento membri", @@ -350,6 +354,9 @@ "welcome-list1": "Basi", "welcome-list2": "Avanzate", "what-to-do": "Cosa vuoi fare?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Pannello dell'Amministratore", "settings": "Impostazioni", "people": "Persone", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 2dcf87cdb..ad0af3e4d 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -171,6 +171,7 @@ "edit": "編集", "edit-avatar": "アバターの変更", "edit-profile": "プロフィールの編集", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "開始日の変更", "editCardDueDatePopup-title": "期限の変更", "editLabelPopup-title": "ラベルの変更", @@ -189,6 +190,7 @@ "email-sent": "メールを送信しました", "email-verifyEmail-subject": "あなたの __siteName__ のメールアドレスを確認する", "email-verifyEmail-text": "こんにちは、__user__さん。\n\nメールアドレスを認証するために、以下のリンクをクリックしてください。\n\n__url__\n\nよろしくお願いします。", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "ボードがありません", "error-board-notAdmin": "操作にはボードの管理者権限が必要です", "error-board-notAMember": "操作にはボードメンバーである必要があります", @@ -310,6 +312,8 @@ "save": "保存", "search": "検索", "select-color": "色を選択", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "自分をこのカードに割り当てる", "shortcut-autocomplete-emoji": "絵文字の補完", "shortcut-autocomplete-members": "メンバーの補完", @@ -350,6 +354,9 @@ "welcome-list1": "基本", "welcome-list2": "高度", "what-to-do": "何をしたいですか?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "管理パネル", "settings": "設定", "people": "メンバー", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index d253d999f..4497a08ce 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -171,6 +171,7 @@ "edit": "수정", "edit-avatar": "아바타 변경", "edit-profile": "프로필 변경", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "시작일 변경", "editCardDueDatePopup-title": "종료일 변경", "editLabelPopup-title": "라벨 변경", @@ -189,6 +190,7 @@ "email-sent": "이메일 전송", "email-verifyEmail-subject": "이메일 인증: __siteName__", "email-verifyEmail-text": "안녕하세요. __user__님,\n\n당신의 계정과 이메일을 활성하려면 아래 링크를 클릭하십시오.\n\n__url__\n\n감사합니다.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "보드가 없습니다.", "error-board-notAdmin": "이 작업은 보드의 관리자만 실행할 수 있습니다.", "error-board-notAMember": "이 작업은 보드의 멤버만 실행할 수 있습니다.", @@ -310,6 +312,8 @@ "save": "저장", "search": "검색", "select-color": "색 선택", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "현재 카드에 자신을 지정하세요.", "shortcut-autocomplete-emoji": "이모티콘 자동완성", "shortcut-autocomplete-members": "멤버 자동완성", @@ -350,6 +354,9 @@ "welcome-list1": "신규", "welcome-list2": "진행", "what-to-do": "무엇을 하고 싶으신가요?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "관리자 패널", "settings": "설정", "people": "사람", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index fead15c66..b31c5bb91 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Endre avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index cfebef2bb..f9692b0b6 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -171,6 +171,7 @@ "edit": "Wijzig", "edit-avatar": "Wijzig avatar", "edit-profile": "Wijzig profiel", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Wijzig start datum", "editCardDueDatePopup-title": "Wijzig deadline", "editLabelPopup-title": "Wijzig label", @@ -189,6 +190,7 @@ "email-sent": "E-mail is verzonden", "email-verifyEmail-subject": "Verifieer je e-mailadres op __siteName__", "email-verifyEmail-text": "Hallo __user__,\n\nOm je e-mail te verifiëren vragen we je om op de link hieronder te drukken.\n\n__url__\n\nBedankt.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Dit bord bestaat niet.", "error-board-notAdmin": "Je moet een administrator zijn van dit bord om dat te doen.", "error-board-notAMember": "Je moet een lid zijn van dit bord om dat te doen.", @@ -310,6 +312,8 @@ "save": "Opslaan", "search": "Zoek", "select-color": "Selecteer kleur", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Wijs jezelf toe aan huidige kaart", "shortcut-autocomplete-emoji": "Emojis automatisch aanvullen", "shortcut-autocomplete-members": "Leden automatisch aanvullen", @@ -350,6 +354,9 @@ "welcome-list1": "Basis", "welcome-list2": "Geadvanceerd", "what-to-do": "Wat wil je doen?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Administrator paneel", "settings": "Instellingen", "people": "Mensen", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 48c3f6821..97a215a00 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -171,6 +171,7 @@ "edit": "Edytuj", "edit-avatar": "Zmień Avatar", "edit-profile": "Edytuj profil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Zmień etykietę", @@ -189,6 +190,7 @@ "email-sent": "Email wysłany", "email-verifyEmail-subject": "Zweryfikuj swój adres email na __siteName__", "email-verifyEmail-text": "Witaj __user__,\nAby zweryfikować adres email, kliknij w link poniżej.\n__url__\nDzięki.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Ta tablica nie istnieje", "error-board-notAdmin": "Musisz być administratorem tej tablicy żeby to zrobić", "error-board-notAMember": "Musisz być członkiem tej tablicy żeby to zrobić", @@ -310,6 +312,8 @@ "save": "Zapisz", "search": "Wyszukaj", "select-color": "Wybierz kolor", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Przypisz siebie do obecnej karty", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "Co chcesz zrobić?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Panel administracyjny", "settings": "Ustawienia", "people": "Osoby", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index e219fb30a..d0a09246a 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -402,4 +402,4 @@ "no": "Não", "accounts": "Contas", "accounts-allowEmailChange": "Permitir Mudança de Email" -} +} \ No newline at end of file diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index ad95902b4..d4e69a41b 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Salvează", "search": "Caută", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "Ce ai vrea sa faci?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 88dfbce2f..1a8270feb 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -171,6 +171,7 @@ "edit": "Редактировать", "edit-avatar": "Изменить аватар", "edit-profile": "Изменить Профиль", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Сменить дату начала", "editCardDueDatePopup-title": "Изменить дату до", "editLabelPopup-title": "Редактирование метки", @@ -189,6 +190,7 @@ "email-sent": "Письмо отправлено", "email-verifyEmail-subject": "Подтвердите вашу эл.почту перейдя по ссылке __url__", "email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения вашей электронной почты перейдите по ссылке ниже.\n\n__url__\n\nСпасибо.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Доска не найдена", "error-board-notAdmin": "Вы должны обладать правами администратора этой доски, чтобы сделать это", "error-board-notAMember": "Вы должны быть пользователем доски, чтобы сделать это", @@ -310,6 +312,8 @@ "save": "Сохранить", "search": "Поиск", "select-color": "Выбрать цвет", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Связать себя с текущей карточкой", "shortcut-autocomplete-emoji": "Автозаполнение emoji", "shortcut-autocomplete-members": "Автозаполнение пользователей", @@ -350,6 +354,9 @@ "welcome-list1": "Основы", "welcome-list2": "Расширенно", "what-to-do": "Что вы хотите сделать?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Административная Панель", "settings": "Настройки", "people": "Люди", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 9c1a8245d..178fd804c 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Izmeni početni datum", "editCardDueDatePopup-title": "Izmeni krajnji datum", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Snimi", "search": "Pretraga", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Pridruži sebe trenutnoj kartici", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Sam popuni članove", @@ -350,6 +354,9 @@ "welcome-list1": "Osnove", "welcome-list2": "Napredno", "what-to-do": "Šta želiš da uradiš ?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 574dc3e30..7aa36077a 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -149,7 +149,7 @@ "comment-only": "Kommentera endast", "comment-only-desc": "Kan endast kommentera kort.", "computer": "Dator", - "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", + "confirm-checklist-delete-dialog": "Är du säker på att du vill ta bort checklista", "copy-card-link-to-clipboard": "Kopiera kortlänk till urklipp", "copyCardPopup-title": "Kopiera kort", "create": "Skapa", @@ -171,6 +171,7 @@ "edit": "Redigera", "edit-avatar": "Ändra avatar", "edit-profile": "Redigera profil", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Ändra startdatum", "editCardDueDatePopup-title": "Ändra förfallodatum", "editLabelPopup-title": "Ändra etikett", @@ -189,6 +190,7 @@ "email-sent": "E-post skickad", "email-verifyEmail-subject": "Verifiera din e-post adress på __siteName__", "email-verifyEmail-text": "Hej __user__,\n\nFör att verifiera din konto e-post, klicka på länken nedan.\n\n__url__\n\nTack.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Denna anslagstavla finns inte", "error-board-notAdmin": "Du måste vara administratör för denna anslagstavla för att göra det", "error-board-notAMember": "Du måste vara medlem i denna anslagstavla för att göra det", @@ -310,6 +312,8 @@ "save": "Spara", "search": "Sök", "select-color": "Välj färg", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Tilldela dig nuvarande kort", "shortcut-autocomplete-emoji": "Komplettera automatiskt emoji", "shortcut-autocomplete-members": "Komplettera automatiskt medlemmar", @@ -350,6 +354,9 @@ "welcome-list1": "Grunderna", "welcome-list2": "Avancerad", "what-to-do": "Vad vill du göra?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Administratörspanel ", "settings": "Inställningar", "people": "Personer", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index c7794d4ff..5f067c7c0 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 0568ceaef..b7c5dba65 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -171,6 +171,7 @@ "edit": "แก้ไข", "edit-avatar": "เปลี่ยนภาพ", "edit-profile": "แก้ไขโปรไฟล์", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น", "editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด", "editLabelPopup-title": "เปลี่ยนป้ายกำกับ", @@ -189,6 +190,7 @@ "email-sent": "ส่งอีเมล์", "email-verifyEmail-subject": "ยืนยันที่อยู่อีเม์ของคุณบน __siteName__", "email-verifyEmail-text": "สวัสดี __user__,\n\nตรวจสอบบัญชีอีเมล์ของคุณ ง่าย ๆ ตามลิงค์ด้านล่าง \n\n__url__\n\n ขอบคุณค่ะ", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "บอร์ดนี้ไม่มีอยู่แล้ว", "error-board-notAdmin": "คุณจะต้องเป็นผู้ดูแลระบบถึงจะทำสิ่งเหล่านี้ได้", "error-board-notAMember": "คุณต้องเป็นสมาชิกของบอร์ดนี้ถึงจะทำได้", @@ -310,6 +312,8 @@ "save": "บันทึก", "search": "ค้นหา", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "กำหนดตัวเองให้การ์ดนี้", "shortcut-autocomplete-emoji": "เติม emoji อัตโนมัติ", "shortcut-autocomplete-members": "เติมสมาชิกอัตโนมัติ", @@ -350,6 +354,9 @@ "welcome-list1": "พื้นฐาน", "welcome-list2": "ก้าวหน้า", "what-to-do": "ต้องการทำอะไร", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index b9270ae5d..b549ecfa2 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -171,6 +171,7 @@ "edit": "Düzenle", "edit-avatar": "Avatar Değiştir", "edit-profile": "Profili Düzenle", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Başlangıç tarihini değiştir", "editCardDueDatePopup-title": "Bitiş tarihini değiştir", "editLabelPopup-title": "Etiket Değiştir", @@ -189,6 +190,7 @@ "email-sent": "E-posta gönderildi", "email-verifyEmail-subject": "__siteName__ üzerindeki e-posta adresini doğrulama", "email-verifyEmail-text": "Merhaba __user__,\n\nHesap e-posta adresini doğrulamak için aşağıdaki linke tıklaman yeterli.\n\n__url__\n\nTeşekkürler.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "Pano bulunamadı", "error-board-notAdmin": "Bu işlemi yapmak için pano yöneticisi olmalısın.", "error-board-notAMember": "Bu işlemi yapmak için panoya üye olmalısın.", @@ -310,6 +312,8 @@ "save": "Kaydet", "search": "Arama", "select-color": "Renk Seç", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Kendini karta ata", "shortcut-autocomplete-emoji": "Emojileri otomatik tamamla", "shortcut-autocomplete-members": "Üye isimlerini otomatik tamamla", @@ -350,6 +354,9 @@ "welcome-list1": "Temel", "welcome-list2": "Gelişmiş", "what-to-do": "Ne yapmak istiyorsunuz?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Yönetici Paneli", "settings": "Ayarlar", "people": "Kullanıcılar", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 041213210..9f5817501 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 6ae0d150d..f0a935df3 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -171,6 +171,7 @@ "edit": "Edit", "edit-avatar": "Change Avatar", "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", "editLabelPopup-title": "Change Label", @@ -189,6 +190,7 @@ "email-sent": "Email sent", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -310,6 +312,8 @@ "save": "Save", "search": "Search", "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", @@ -350,6 +354,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", "settings": "Settings", "people": "People", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index 3c4fafb21..67d0575cb 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -171,6 +171,7 @@ "edit": "编辑", "edit-avatar": "更改头像", "edit-profile": "编辑资料", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "修改起始日期", "editCardDueDatePopup-title": "修改截止日期", "editLabelPopup-title": "更改标签", @@ -189,6 +190,7 @@ "email-sent": "邮件已发送", "email-verifyEmail-subject": "在 __siteName__ 验证您的邮件地址", "email-verifyEmail-text": "尊敬的 __user__,\n\n点击下面的链接,验证您的邮件地址:\n\n__url__\n\n谢谢。", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "该看板不存在", "error-board-notAdmin": "需要成为管理员才能执行此操作", "error-board-notAMember": "需要成为看板成员才能执行此操作", @@ -310,6 +312,8 @@ "save": "保存", "search": "搜索", "select-color": "选择颜色", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "分配当前卡片给自己", "shortcut-autocomplete-emoji": "表情符号自动补全", "shortcut-autocomplete-members": "自动补全成员", @@ -350,6 +354,9 @@ "welcome-list1": "基本", "welcome-list2": "高阶", "what-to-do": "要做什么?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "管理面板", "settings": "设置", "people": "人员", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 60045b915..38ddec06d 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -171,6 +171,7 @@ "edit": "編輯", "edit-avatar": "更改大頭貼", "edit-profile": "編輯資料", + "edit-wip-limit": "Edit WIP Limit", "editCardStartDatePopup-title": "更改開始日期", "editCardDueDatePopup-title": "更改到期日期", "editLabelPopup-title": "更改標籤", @@ -189,6 +190,7 @@ "email-sent": "郵件已寄送", "email-verifyEmail-subject": "驗證您在 __siteName__ 的電子郵件", "email-verifyEmail-text": "親愛的 __user__,\n\n點選下面的連結,驗證您的電子郵件地址:\n\n__url__\n\n謝謝。", + "enable-wip-limit": "Enable WIP Limit", "error-board-doesNotExist": "該看板不存在", "error-board-notAdmin": "需要成為管理員才能執行此操作", "error-board-notAMember": "需要成為看板成員才能執行此操作", @@ -310,6 +312,8 @@ "save": "儲存", "search": "搜尋", "select-color": "選擇顏色", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "分配目前卡片給自己", "shortcut-autocomplete-emoji": "自動完成表情符號", "shortcut-autocomplete-members": "自動補齊成員", @@ -350,6 +354,9 @@ "welcome-list1": "基本", "welcome-list2": "進階", "what-to-do": "要做什麼?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "控制台", "settings": "設定", "people": "成員", From c346743234833da6210beb8580dbf1290b2fbb04 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 9 Oct 2017 15:55:11 +0300 Subject: [PATCH 8/8] WIP Limits. Thanks to amadilsons ! Closes #783 --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfbd739fc..ec7e1146c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,14 @@ # Upcoming Wekan release -This release fixes the following bugs: +This release adds the following new features: + +* [WIP Limits](https://github.com/wekan/wekan/pull/1278). + +and fixes the following bugs: * [Admin announcement can be viewed without signing in](https://github.com/wekan/wekan/issues/1281). -Thanks to Github user nztqa for contributions. +Thanks to Github users amadilsons and nztqa for their contributions. # v0.47 2017-10-04 Wekan release