Răsfoiți Sursa

Merge branch 'amadilsons-softwiplimit' into devel

Soft WIP Limit. Thanks to amadilsons and xet7 ! Closes #1311
Lauri Ojansivu 7 ani în urmă
părinte
comite
6eef4043ca

+ 8 - 0
CHANGELOG.md

@@ -1,3 +1,11 @@
+# Upcoming Wekan release
+
+This release adds the following new features:
+
+* [Soft WIP Limit](https://github.com/wekan/wekan/pull/1319).
+
+Thanks to GitHub users amadilsons and xet7 for their contributions.
+
 # v0.52 2017-10-31 Wekan release
 # v0.52 2017-10-31 Wekan release
 
 
 This release adds the following new features:
 This release adds the following new features:

+ 9 - 0
client/components/lists/list.styl

@@ -79,6 +79,9 @@
   .list-header-plus-icon
   .list-header-plus-icon
     color: #a6a6a6
     color: #a6a6a6
 
 
+  .highlight
+    color: #ce1414
+
 .list-body
 .list-body
   flex: 1
   flex: 1
   display: flex
   display: flex
@@ -126,3 +129,9 @@
 
 
   .wip-limit-error
   .wip-limit-error
     display: none
     display: none
+
+  .soft-wip-limit
+    margin-right: 8px
+
+  div
+    float: left

+ 1 - 2
client/components/lists/listBody.js

@@ -102,8 +102,7 @@ BlazeComponent.extendComponent({
 
 
   reachedWipLimit() {
   reachedWipLimit() {
     const list = Template.currentData();
     const list = Template.currentData();
-    if( !list.getWipLimit() ) { return false; }
-    return list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count();
+    return !list.getWipLimit('soft') && list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
   },
   },
 
 
   events() {
   events() {

+ 11 - 5
client/components/lists/listHeader.jade

@@ -5,10 +5,12 @@ template(name="listHeader")
     else
     else
       h2.list-header-name(
       h2.list-header-name(
         class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
         class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
-        = title
-        if isWipLimitEnabled
-          span
-            | ({{cards.count}}/#{wipLimit.value})
+        = title 
+        if wipLimit.enabled
+         |&nbsp;(
+         span(class="{{#if reachedWipLimit}}highlight{{/if}}") {{cards.count}}
+         |/#{wipLimit.value})
+        
         if showCardsCountForList cards.count
         if showCardsCountForList cards.count
           = cards.count
           = cards.count
           span.lowercase
           span.lowercase
@@ -18,7 +20,7 @@ template(name="listHeader")
           i.list-header-watch-icon.fa.fa-eye
           i.list-header-watch-icon.fa.fa-eye
         div.list-header-menu
         div.list-header-menu
           unless currentUser.isCommentOnly
           unless currentUser.isCommentOnly
-            unless isWipLimitEnabled
+            if canSeeAddCard
               a.js-add-card.fa.fa-plus.list-header-plus-icon
               a.js-add-card.fa.fa-plus.list-header-plus-icon
             a.fa.fa-navicon.js-open-list-menu
             a.fa.fa-navicon.js-open-list-menu
 
 
@@ -86,6 +88,10 @@ template(name="setWipLimitPopup")
         input.wip-limit-value(type="number" value="{{ wipLimitValue }}" min="1" max="99")
         input.wip-limit-value(type="number" value="{{ wipLimitValue }}" min="1" max="99")
         input.wip-limit-apply(type="submit" value="{{_ 'apply'}}")
         input.wip-limit-apply(type="submit" value="{{_ 'apply'}}")
         input.wip-limit-error
         input.wip-limit-error
+      p
+        .soft-wip-limit
+          .materialCheckBox(class="{{#if isWipLimitSoft}}is-checked{{/if}}")
+        label {{_ 'soft-wip-limit'}}
         
         
 template(name="wipLimitErrorPopup")
 template(name="wipLimitErrorPopup")
   .wip-limit-invalid
   .wip-limit-invalid

+ 26 - 10
client/components/lists/listHeader.js

@@ -1,4 +1,9 @@
 BlazeComponent.extendComponent({
 BlazeComponent.extendComponent({
+  canSeeAddCard() {
+    const list = Template.currentData();
+    return !list.getWipLimit('enabled') || list.getWipLimit('soft') || !this.reachedWipLimit();
+  },
+
   editTitle(evt) {
   editTitle(evt) {
     evt.preventDefault();
     evt.preventDefault();
     const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
     const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
@@ -13,18 +18,15 @@ BlazeComponent.extendComponent({
     return list.findWatcher(Meteor.userId());
     return list.findWatcher(Meteor.userId());
   },
   },
 
 
-  isWipLimitEnabled() {
-    const wipLimit = this.currentData().getWipLimit();
-    if(!wipLimit) {
-      return 0;
-    }
-    return wipLimit.enabled && wipLimit.value > 0;
-  },
-
   limitToShowCardsCount() {
   limitToShowCardsCount() {
     return Meteor.user().getLimitToShowCardsCount();
     return Meteor.user().getLimitToShowCardsCount();
   },
   },
 
 
+  reachedWipLimit() {
+    const list = Template.currentData();
+    return list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
+  },
+
   showCardsCountForList(count) {
   showCardsCountForList(count) {
     return count > this.limitToShowCardsCount();
     return count > this.limitToShowCardsCount();
   },
   },
@@ -82,7 +84,7 @@ BlazeComponent.extendComponent({
     const list = Template.currentData();
     const list = Template.currentData();
     const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
     const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
 
 
-    if(limit < list.cards().count()){
+    if(limit < list.cards().count() && !list.getWipLimit('soft')){
       Template.instance().$('.wip-limit-error').click();
       Template.instance().$('.wip-limit-error').click();
     } else {
     } else {
       Meteor.call('applyWipLimit', list._id, limit);
       Meteor.call('applyWipLimit', list._id, limit);
@@ -90,15 +92,28 @@ BlazeComponent.extendComponent({
     }
     }
   },
   },
 
 
+  enableSoftLimit() {
+    const list = Template.currentData();
+
+    if(list.getWipLimit('soft') && list.getWipLimit('value') < list.cards().count()){
+      list.setWipLimit(list.cards().count());
+    }
+    Meteor.call('enableSoftLimit', Template.currentData()._id);
+  },
+
   enableWipLimit() {
   enableWipLimit() {
     const list = Template.currentData();
     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
     // 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.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
+    if(!list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
       list.setWipLimit(list.cards().count());
       list.setWipLimit(list.cards().count());
     }
     }
     Meteor.call('enableWipLimit', list._id);
     Meteor.call('enableWipLimit', list._id);
   },
   },
 
 
+  isWipLimitSoft() {
+    return Template.currentData().getWipLimit('soft');
+  },
+
   isWipLimitEnabled() {
   isWipLimitEnabled() {
     return Template.currentData().getWipLimit('enabled');
     return Template.currentData().getWipLimit('enabled');
   },
   },
@@ -112,6 +127,7 @@ BlazeComponent.extendComponent({
       'click .js-enable-wip-limit': this.enableWipLimit,
       'click .js-enable-wip-limit': this.enableWipLimit,
       'click .wip-limit-apply': this.applyWipLimit,
       'click .wip-limit-apply': this.applyWipLimit,
       'click .wip-limit-error': Popup.open('wipLimitError'),
       'click .wip-limit-error': Popup.open('wipLimitError'),
+      'click .materialCheckBox': this.enableSoftLimit,
     }];
     }];
   },
   },
 }).register('setWipLimitPopup');
 }).register('setWipLimitPopup');

+ 1 - 0
i18n/ar.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "تعديل الصورة الشخصية",
     "edit-avatar": "تعديل الصورة الشخصية",
     "edit-profile": "تعديل الملف الشخصي",
     "edit-profile": "تعديل الملف الشخصي",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "تغيير تاريخ البدء",
     "editCardStartDatePopup-title": "تغيير تاريخ البدء",
     "editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
     "editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
     "editLabelPopup-title": "تعديل العلامة",
     "editLabelPopup-title": "تعديل العلامة",

+ 1 - 0
i18n/br.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/ca.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Canvia Avatar",
     "edit-avatar": "Canvia Avatar",
     "edit-profile": "Edita el teu Perfil",
     "edit-profile": "Edita el teu Perfil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Canvia data d'inici",
     "editCardStartDatePopup-title": "Canvia data d'inici",
     "editCardDueDatePopup-title": "Canvia data de finalització",
     "editCardDueDatePopup-title": "Canvia data de finalització",
     "editLabelPopup-title": "Canvia etiqueta",
     "editLabelPopup-title": "Canvia etiqueta",

+ 1 - 0
i18n/cs.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Změnit avatar",
     "edit-avatar": "Změnit avatar",
     "edit-profile": "Upravit profil",
     "edit-profile": "Upravit profil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Změnit datum startu úkolu",
     "editCardStartDatePopup-title": "Změnit datum startu úkolu",
     "editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
     "editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
     "editLabelPopup-title": "Změnit štítek",
     "editLabelPopup-title": "Změnit štítek",

+ 1 - 0
i18n/de.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Profilbild ändern",
     "edit-avatar": "Profilbild ändern",
     "edit-profile": "Profil ändern",
     "edit-profile": "Profil ändern",
     "edit-wip-limit": "WIP-Limit bearbeiten",
     "edit-wip-limit": "WIP-Limit bearbeiten",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Startdatum ändern",
     "editCardStartDatePopup-title": "Startdatum ändern",
     "editCardDueDatePopup-title": "Enddatum ändern",
     "editCardDueDatePopup-title": "Enddatum ändern",
     "editLabelPopup-title": "Label ändern",
     "editLabelPopup-title": "Label ändern",

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

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/en.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/eo.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Redakti profilo",
     "edit-profile": "Redakti profilo",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Redakti komencdato",
     "editCardStartDatePopup-title": "Redakti komencdato",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Ŝanĝi etikedo",
     "editLabelPopup-title": "Ŝanĝi etikedo",

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

@@ -172,6 +172,7 @@
     "edit-avatar": "Cambiar Avatar",
     "edit-avatar": "Cambiar Avatar",
     "edit-profile": "Editar Perfil",
     "edit-profile": "Editar Perfil",
     "edit-wip-limit": "Editar Lìmite de TEP",
     "edit-wip-limit": "Editar Lìmite de TEP",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Cambiar fecha de inicio",
     "editCardStartDatePopup-title": "Cambiar fecha de inicio",
     "editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
     "editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
     "editLabelPopup-title": "Cambiar Etiqueta",
     "editLabelPopup-title": "Cambiar Etiqueta",

+ 1 - 0
i18n/es.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Cambiar el avatar",
     "edit-avatar": "Cambiar el avatar",
     "edit-profile": "Editar el perfil",
     "edit-profile": "Editar el perfil",
     "edit-wip-limit": "Cambiar el límite del WIP",
     "edit-wip-limit": "Cambiar el límite del WIP",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Cambiar la fecha de inicio",
     "editCardStartDatePopup-title": "Cambiar la fecha de inicio",
     "editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
     "editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
     "editLabelPopup-title": "Cambiar la etiqueta",
     "editLabelPopup-title": "Cambiar la etiqueta",

+ 1 - 0
i18n/eu.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Aldatu avatarra",
     "edit-avatar": "Aldatu avatarra",
     "edit-profile": "Editatu profila",
     "edit-profile": "Editatu profila",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Aldatu hasiera data",
     "editCardStartDatePopup-title": "Aldatu hasiera data",
     "editCardDueDatePopup-title": "Aldatu epemuga data",
     "editCardDueDatePopup-title": "Aldatu epemuga data",
     "editLabelPopup-title": "Aldatu etiketa",
     "editLabelPopup-title": "Aldatu etiketa",

+ 1 - 0
i18n/fa.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "تغییر تصویر",
     "edit-avatar": "تغییر تصویر",
     "edit-profile": "ویرایش پروفایل",
     "edit-profile": "ویرایش پروفایل",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "تغییر تاریخ آغاز",
     "editCardStartDatePopup-title": "تغییر تاریخ آغاز",
     "editCardDueDatePopup-title": "تغییر تاریخ بدلیل",
     "editCardDueDatePopup-title": "تغییر تاریخ بدلیل",
     "editLabelPopup-title": "تغیر برچسب",
     "editLabelPopup-title": "تغیر برچسب",

+ 1 - 0
i18n/fi.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Muokkaa profiilikuvaa",
     "edit-avatar": "Muokkaa profiilikuvaa",
     "edit-profile": "Muokkaa profiilia",
     "edit-profile": "Muokkaa profiilia",
     "edit-wip-limit": "Muokkaa WIP-rajaa",
     "edit-wip-limit": "Muokkaa WIP-rajaa",
+    "soft-wip-limit": "Pehmeä WIP raja",
     "editCardStartDatePopup-title": "Muokkaa aloituspäivää",
     "editCardStartDatePopup-title": "Muokkaa aloituspäivää",
     "editCardDueDatePopup-title": "Muokkaa eräpäivää",
     "editCardDueDatePopup-title": "Muokkaa eräpäivää",
     "editLabelPopup-title": "Muokkaa tunnistetta",
     "editLabelPopup-title": "Muokkaa tunnistetta",

+ 1 - 0
i18n/fr.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Modifier l'avatar",
     "edit-avatar": "Modifier l'avatar",
     "edit-profile": "Modifier le profil",
     "edit-profile": "Modifier le profil",
     "edit-wip-limit": "Éditer la limite WIP",
     "edit-wip-limit": "Éditer la limite WIP",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Modifier la date de début",
     "editCardStartDatePopup-title": "Modifier la date de début",
     "editCardDueDatePopup-title": "Modifier la date d'échéance",
     "editCardDueDatePopup-title": "Modifier la date d'échéance",
     "editLabelPopup-title": "Modifier l'étiquette",
     "editLabelPopup-title": "Modifier l'étiquette",

+ 1 - 0
i18n/gl.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Cambiar de avatar",
     "edit-avatar": "Cambiar de avatar",
     "edit-profile": "Editar o perfil",
     "edit-profile": "Editar o perfil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Cambiar a data de inicio",
     "editCardStartDatePopup-title": "Cambiar a data de inicio",
     "editCardDueDatePopup-title": "Cambiar a data límite",
     "editCardDueDatePopup-title": "Cambiar a data límite",
     "editLabelPopup-title": "Cambiar a etiqueta",
     "editLabelPopup-title": "Cambiar a etiqueta",

+ 1 - 0
i18n/he.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "החלפת תמונת משתמש",
     "edit-avatar": "החלפת תמונת משתמש",
     "edit-profile": "עריכת פרופיל",
     "edit-profile": "עריכת פרופיל",
     "edit-wip-limit": "עריכת מגבלת „בעבודה”",
     "edit-wip-limit": "עריכת מגבלת „בעבודה”",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "שינוי מועד התחלה",
     "editCardStartDatePopup-title": "שינוי מועד התחלה",
     "editCardDueDatePopup-title": "שינוי מועד סיום",
     "editCardDueDatePopup-title": "שינוי מועד סיום",
     "editLabelPopup-title": "שינוי תווית",
     "editLabelPopup-title": "שינוי תווית",

+ 1 - 0
i18n/hu.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Avatar módosítása",
     "edit-avatar": "Avatar módosítása",
     "edit-profile": "Profil szerkesztése",
     "edit-profile": "Profil szerkesztése",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Kezdő dátum módosítása",
     "editCardStartDatePopup-title": "Kezdő dátum módosítása",
     "editCardDueDatePopup-title": "Lejárati dátum módosítása",
     "editCardDueDatePopup-title": "Lejárati dátum módosítása",
     "editLabelPopup-title": "Cimke módosítása",
     "editLabelPopup-title": "Cimke módosítása",

+ 1 - 0
i18n/id.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Ubah Avatar",
     "edit-avatar": "Ubah Avatar",
     "edit-profile": "Sunting Profil",
     "edit-profile": "Sunting Profil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Ubah tanggal mulai",
     "editCardStartDatePopup-title": "Ubah tanggal mulai",
     "editCardDueDatePopup-title": "Ubah tanggal selesai",
     "editCardDueDatePopup-title": "Ubah tanggal selesai",
     "editLabelPopup-title": "Ubah Label",
     "editLabelPopup-title": "Ubah Label",

+ 19 - 18
i18n/it.i18n.json

@@ -55,7 +55,7 @@
     "admin": "Amministratore",
     "admin": "Amministratore",
     "admin-desc": "Può vedere e modificare schede, rimuovere membri e modificare le impostazioni della bacheca.",
     "admin-desc": "Può vedere e modificare schede, rimuovere membri e modificare le impostazioni della bacheca.",
     "admin-announcement": "Annunci",
     "admin-announcement": "Annunci",
-    "admin-announcement-active": "Active System-Wide Announcement",
+    "admin-announcement-active": "Attiva annunci di sistema",
     "admin-announcement-title": "Annunci dall'Amministratore",
     "admin-announcement-title": "Annunci dall'Amministratore",
     "all-boards": "Tutte le bacheche",
     "all-boards": "Tutte le bacheche",
     "and-n-other-card": "E __count__ altra scheda",
     "and-n-other-card": "E __count__ altra scheda",
@@ -171,7 +171,8 @@
     "edit": "Modifica",
     "edit": "Modifica",
     "edit-avatar": "Cambia avatar",
     "edit-avatar": "Cambia avatar",
     "edit-profile": "Modifica profilo",
     "edit-profile": "Modifica profilo",
-    "edit-wip-limit": "Edit WIP Limit",
+    "edit-wip-limit": "Modifica limite di work in progress",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Cambia data di inizio",
     "editCardStartDatePopup-title": "Cambia data di inizio",
     "editCardDueDatePopup-title": "Cambia data di scadenza",
     "editCardDueDatePopup-title": "Cambia data di scadenza",
     "editLabelPopup-title": "Cambia etichetta",
     "editLabelPopup-title": "Cambia etichetta",
@@ -190,7 +191,7 @@
     "email-sent": "Email inviata",
     "email-sent": "Email inviata",
     "email-verifyEmail-subject": "Verifica il tuo indirizzo email su on __siteName__",
     "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.",
     "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",
+    "enable-wip-limit": "Abilita limite di  work in progress",
     "error-board-doesNotExist": "Questa bacheca non esiste",
     "error-board-doesNotExist": "Questa bacheca non esiste",
     "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare",
     "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",
     "error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare",
@@ -315,7 +316,7 @@
     "search": "Cerca",
     "search": "Cerca",
     "select-color": "Seleziona Colore",
     "select-color": "Seleziona Colore",
     "set-wip-limit-value": "Seleziona un limite per il massimo numero di attività in questa lista",
     "set-wip-limit-value": "Seleziona un limite per il massimo numero di attività in questa lista",
-    "setWipLimitPopup-title": "Set WIP Limit",
+    "setWipLimitPopup-title": "Imposta limite di work in progress",
     "shortcut-assign-self": "Aggiungi te stesso alla scheda corrente",
     "shortcut-assign-self": "Aggiungi te stesso alla scheda corrente",
     "shortcut-autocomplete-emoji": "Autocompletamento emoji",
     "shortcut-autocomplete-emoji": "Autocompletamento emoji",
     "shortcut-autocomplete-members": "Autocompletamento membri",
     "shortcut-autocomplete-members": "Autocompletamento membri",
@@ -356,9 +357,9 @@
     "welcome-list1": "Basi",
     "welcome-list1": "Basi",
     "welcome-list2": "Avanzate",
     "welcome-list2": "Avanzate",
     "what-to-do": "Cosa vuoi fare?",
     "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.",
+    "wipLimitErrorPopup-title": "Limite work in progress non valido. ",
+    "wipLimitErrorPopup-dialog-pt1": "Il numero di compiti in questa lista è maggiore del limite di work in progress che hai definito in precedenza. ",
+    "wipLimitErrorPopup-dialog-pt2": "Per favore, sposta alcuni dei compiti fuori da questa lista, oppure imposta un limite di work in progress più alto. ",
     "admin-panel": "Pannello dell'Amministratore",
     "admin-panel": "Pannello dell'Amministratore",
     "settings": "Impostazioni",
     "settings": "Impostazioni",
     "people": "Persone",
     "people": "Persone",
@@ -384,19 +385,19 @@
     "error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.",
     "error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.",
     "outgoing-webhooks": "Server esterni",
     "outgoing-webhooks": "Server esterni",
     "outgoingWebhooksPopup-title": "Server esterni",
     "outgoingWebhooksPopup-title": "Server esterni",
-    "new-outgoing-webhook": "New Outgoing Webhook",
+    "new-outgoing-webhook": "Nuovo webhook in uscita",
     "no-name": "(Sconosciuto)",
     "no-name": "(Sconosciuto)",
     "Wekan_version": "Versione di Wekan",
     "Wekan_version": "Versione di Wekan",
-    "Node_version": "Node version",
-    "OS_Arch": "OS Arch",
-    "OS_Cpus": "OS CPU Count",
-    "OS_Freemem": "OS Free Memory",
-    "OS_Loadavg": "OS Load Average",
-    "OS_Platform": "OS Platform",
-    "OS_Release": "OS Release",
-    "OS_Totalmem": "OS Total Memory",
-    "OS_Type": "OS Type",
-    "OS_Uptime": "OS Uptime",
+    "Node_version": "Versione di Node",
+    "OS_Arch": "Architettura del sistema operativo",
+    "OS_Cpus": "Conteggio della CPU del sistema operativo",
+    "OS_Freemem": "Memoria libera del sistema operativo ",
+    "OS_Loadavg": "Carico medio del sistema operativo ",
+    "OS_Platform": "Piattaforma del sistema operativo",
+    "OS_Release": "Versione di rilascio del sistema operativo",
+    "OS_Totalmem": "Memoria totale del sistema operativo ",
+    "OS_Type": "Tipo di sistema operativo ",
+    "OS_Uptime": "Tempo di attività del sistema operativo. ",
     "hours": "ore",
     "hours": "ore",
     "minutes": "minuti",
     "minutes": "minuti",
     "seconds": "secondi",
     "seconds": "secondi",

+ 1 - 0
i18n/ja.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "アバターの変更",
     "edit-avatar": "アバターの変更",
     "edit-profile": "プロフィールの編集",
     "edit-profile": "プロフィールの編集",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "開始日の変更",
     "editCardStartDatePopup-title": "開始日の変更",
     "editCardDueDatePopup-title": "期限の変更",
     "editCardDueDatePopup-title": "期限の変更",
     "editLabelPopup-title": "ラベルの変更",
     "editLabelPopup-title": "ラベルの変更",

+ 1 - 0
i18n/ko.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "아바타 변경",
     "edit-avatar": "아바타 변경",
     "edit-profile": "프로필 변경",
     "edit-profile": "프로필 변경",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "시작일 변경",
     "editCardStartDatePopup-title": "시작일 변경",
     "editCardDueDatePopup-title": "종료일 변경",
     "editCardDueDatePopup-title": "종료일 변경",
     "editLabelPopup-title": "라벨 변경",
     "editLabelPopup-title": "라벨 변경",

+ 1 - 0
i18n/nb.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Endre avatar",
     "edit-avatar": "Endre avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/nl.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Wijzig avatar",
     "edit-avatar": "Wijzig avatar",
     "edit-profile": "Wijzig profiel",
     "edit-profile": "Wijzig profiel",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Wijzig start datum",
     "editCardStartDatePopup-title": "Wijzig start datum",
     "editCardDueDatePopup-title": "Wijzig deadline",
     "editCardDueDatePopup-title": "Wijzig deadline",
     "editLabelPopup-title": "Wijzig label",
     "editLabelPopup-title": "Wijzig label",

+ 1 - 0
i18n/pl.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Zmień Avatar",
     "edit-avatar": "Zmień Avatar",
     "edit-profile": "Edytuj profil",
     "edit-profile": "Edytuj profil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Zmień etykietę",
     "editLabelPopup-title": "Zmień etykietę",

+ 1 - 0
i18n/pt-BR.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Alterar Avatar",
     "edit-avatar": "Alterar Avatar",
     "edit-profile": "Editar Perfil",
     "edit-profile": "Editar Perfil",
     "edit-wip-limit": "Editar Limite WIP",
     "edit-wip-limit": "Editar Limite WIP",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Altera data de início",
     "editCardStartDatePopup-title": "Altera data de início",
     "editCardDueDatePopup-title": "Altera data fim",
     "editCardDueDatePopup-title": "Altera data fim",
     "editLabelPopup-title": "Alterar Etiqueta",
     "editLabelPopup-title": "Alterar Etiqueta",

+ 1 - 0
i18n/ro.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/ru.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Изменить аватар",
     "edit-avatar": "Изменить аватар",
     "edit-profile": "Изменить Профиль",
     "edit-profile": "Изменить Профиль",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Сменить дату начала",
     "editCardStartDatePopup-title": "Сменить дату начала",
     "editCardDueDatePopup-title": "Изменить дату до",
     "editCardDueDatePopup-title": "Изменить дату до",
     "editLabelPopup-title": "Редактирование метки",
     "editLabelPopup-title": "Редактирование метки",

+ 1 - 0
i18n/sr.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Izmeni početni datum",
     "editCardStartDatePopup-title": "Izmeni početni datum",
     "editCardDueDatePopup-title": "Izmeni krajnji datum",
     "editCardDueDatePopup-title": "Izmeni krajnji datum",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/sv.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Ändra avatar",
     "edit-avatar": "Ändra avatar",
     "edit-profile": "Redigera profil",
     "edit-profile": "Redigera profil",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Ändra startdatum",
     "editCardStartDatePopup-title": "Ändra startdatum",
     "editCardDueDatePopup-title": "Ändra förfallodatum",
     "editCardDueDatePopup-title": "Ändra förfallodatum",
     "editLabelPopup-title": "Ändra etikett",
     "editLabelPopup-title": "Ändra etikett",

+ 1 - 0
i18n/ta.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/th.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "เปลี่ยนภาพ",
     "edit-avatar": "เปลี่ยนภาพ",
     "edit-profile": "แก้ไขโปรไฟล์",
     "edit-profile": "แก้ไขโปรไฟล์",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น",
     "editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น",
     "editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด",
     "editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด",
     "editLabelPopup-title": "เปลี่ยนป้ายกำกับ",
     "editLabelPopup-title": "เปลี่ยนป้ายกำกับ",

+ 21 - 20
i18n/tr.i18n.json

@@ -2,8 +2,8 @@
     "accept": "Kabul Et",
     "accept": "Kabul Et",
     "act-activity-notify": "[Wekan] Etkinlik Bildirimi",
     "act-activity-notify": "[Wekan] Etkinlik Bildirimi",
     "act-addAttachment": "__card__ kartına __attachment__ dosyasını ekledi",
     "act-addAttachment": "__card__ kartına __attachment__ dosyasını ekledi",
-    "act-addChecklist": "added checklist __checklist__ to __card__",
-    "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
+    "act-addChecklist": "__card__ kartında __checklist__ yapılacak listesini ekledi",
+    "act-addChecklistItem": "__checklistItem__ öğesini __card__ kartındaki __checklist__ yapılacak listesine ekledi",
     "act-addComment": "__card__ kartına bir yorum bıraktı: __comment__",
     "act-addComment": "__card__ kartına bir yorum bıraktı: __comment__",
     "act-createBoard": "__board__ panosunu oluşturdu",
     "act-createBoard": "__board__ panosunu oluşturdu",
     "act-createCard": "__card__ kartını ___list__ listesine ekledi.",
     "act-createCard": "__card__ kartını ___list__ listesine ekledi.",
@@ -12,9 +12,9 @@
     "act-archivedBoard": "__board__ panosunu arşivledi",
     "act-archivedBoard": "__board__ panosunu arşivledi",
     "act-archivedCard": "__card__ kartını arşivledi",
     "act-archivedCard": "__card__ kartını arşivledi",
     "act-archivedList": "__list__ listesini arşivledi",
     "act-archivedList": "__list__ listesini arşivledi",
-    "act-importBoard": "__board__ panosunu aktardı",
-    "act-importCard": "__card__ kartını aktardı",
-    "act-importList": "__list__ listesini aktardı",
+    "act-importBoard": "__board__ panosunu içe aktardı",
+    "act-importCard": "__card__ kartını içe aktardı",
+    "act-importList": "__list__ listesini içe aktardı",
     "act-joinMember": "__member__ kullanıcısnı __card__ kartına ekledi",
     "act-joinMember": "__member__ kullanıcısnı __card__ kartına ekledi",
     "act-moveCard": "__card__ kartını __oldList__ listesinden __list__ listesine taşıdı",
     "act-moveCard": "__card__ kartını __oldList__ listesinden __list__ listesine taşıdı",
     "act-removeBoardMember": "__board__ panosundan __member__ kullanıcısını çıkarttı",
     "act-removeBoardMember": "__board__ panosundan __member__ kullanıcısını çıkarttı",
@@ -54,9 +54,9 @@
     "addMemberPopup-title": "Üyeler",
     "addMemberPopup-title": "Üyeler",
     "admin": "Yönetici",
     "admin": "Yönetici",
     "admin-desc": "Kartları görüntüleyebilir ve düzenleyebilir, üyeleri çıkarabilir ve pano ayarlarını değiştirebilir.",
     "admin-desc": "Kartları görüntüleyebilir ve düzenleyebilir, üyeleri çıkarabilir ve pano ayarlarını değiştirebilir.",
-    "admin-announcement": "Announcement",
-    "admin-announcement-active": "Active System-Wide Announcement",
-    "admin-announcement-title": "Announcement from Administrator",
+    "admin-announcement": "Duyuru",
+    "admin-announcement-active": "Tüm Sistemde Etkin Duyuru",
+    "admin-announcement-title": "Yöneticiden Duyuru",
     "all-boards": "Tüm panolar",
     "all-boards": "Tüm panolar",
     "and-n-other-card": "Ve __count__ diğer kart",
     "and-n-other-card": "Ve __count__ diğer kart",
     "and-n-other-card_plural": "Ve __count__ diğer kart",
     "and-n-other-card_plural": "Ve __count__ diğer kart",
@@ -68,7 +68,7 @@
     "archive-card": "Kartı Arşivle",
     "archive-card": "Kartı Arşivle",
     "archive-list": "Listeyi Arşivle",
     "archive-list": "Listeyi Arşivle",
     "archive-selection": "Seçimi arşivle",
     "archive-selection": "Seçimi arşivle",
-    "archiveBoardPopup-title": "Pano arşivlensin mi?",
+    "archiveBoardPopup-title": "Pano Arşivlensin mi?",
     "archived-items": "Arşivlenmiş Öğeler",
     "archived-items": "Arşivlenmiş Öğeler",
     "archived-boards": "Arşivlenmiş Panolar",
     "archived-boards": "Arşivlenmiş Panolar",
     "restore-board": "Panoyu Geri Getir",
     "restore-board": "Panoyu Geri Getir",
@@ -89,7 +89,7 @@
     "board-private-info": "Bu pano <strong>gizli</strong> olacak.",
     "board-private-info": "Bu pano <strong>gizli</strong> olacak.",
     "board-public-info": "Bu pano <strong>genel</strong>e açılacaktır.",
     "board-public-info": "Bu pano <strong>genel</strong>e açılacaktır.",
     "boardChangeColorPopup-title": "Pano arkaplan rengini değiştir",
     "boardChangeColorPopup-title": "Pano arkaplan rengini değiştir",
-    "boardChangeTitlePopup-title": "Pano Adı Değiştirme",
+    "boardChangeTitlePopup-title": "Panonun Adını Değiştir",
     "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir",
     "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir",
     "boardChangeWatchPopup-title": "İzleme Durumunu Değiştir",
     "boardChangeWatchPopup-title": "İzleme Durumunu Değiştir",
     "boardMenuPopup-title": "Pano menüsü",
     "boardMenuPopup-title": "Pano menüsü",
@@ -149,7 +149,7 @@
     "comment-only": "Sadece yorum",
     "comment-only": "Sadece yorum",
     "comment-only-desc": "Sadece kartlara yorum yazabilir.",
     "comment-only-desc": "Sadece kartlara yorum yazabilir.",
     "computer": "Bilgisayar",
     "computer": "Bilgisayar",
-    "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
+    "confirm-checklist-delete-dialog": "Yapılacak listesini silmek istediğinize emin misiniz",
     "copy-card-link-to-clipboard": "Kartın linkini kopyala",
     "copy-card-link-to-clipboard": "Kartın linkini kopyala",
     "copyCardPopup-title": "Kartı Kopyala",
     "copyCardPopup-title": "Kartı Kopyala",
     "create": "Oluştur",
     "create": "Oluştur",
@@ -171,7 +171,8 @@
     "edit": "Düzenle",
     "edit": "Düzenle",
     "edit-avatar": "Avatar Değiştir",
     "edit-avatar": "Avatar Değiştir",
     "edit-profile": "Profili Düzenle",
     "edit-profile": "Profili Düzenle",
-    "edit-wip-limit": "Edit WIP Limit",
+    "edit-wip-limit": "Devam Eden İş Sınırını Düzenle",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
     "editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
     "editCardDueDatePopup-title": "Bitiş tarihini değiştir",
     "editCardDueDatePopup-title": "Bitiş tarihini değiştir",
     "editLabelPopup-title": "Etiket Değiştir",
     "editLabelPopup-title": "Etiket Değiştir",
@@ -190,7 +191,7 @@
     "email-sent": "E-posta gönderildi",
     "email-sent": "E-posta gönderildi",
     "email-verifyEmail-subject": "__siteName__ üzerindeki e-posta adresini doğrulama",
     "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.",
     "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",
+    "enable-wip-limit": "Devam Eden İş Sınırını Aç",
     "error-board-doesNotExist": "Pano bulunamadı",
     "error-board-doesNotExist": "Pano bulunamadı",
     "error-board-notAdmin": "Bu işlemi yapmak için pano yöneticisi olmalısın.",
     "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.",
     "error-board-notAMember": "Bu işlemi yapmak için panoya üye olmalısın.",
@@ -245,8 +246,8 @@
     "language": "Dil",
     "language": "Dil",
     "last-admin-desc": "En az bir yönetici olması gerektiğinden rolleri değiştiremezsiniz.",
     "last-admin-desc": "En az bir yönetici olması gerektiğinden rolleri değiştiremezsiniz.",
     "leave-board": "Panodan ayrıl",
     "leave-board": "Panodan ayrıl",
-    "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
-    "leaveBoardPopup-title": "Leave Board ?",
+    "leave-board-pop": "__boardTitle__ panosundan ayrılmak istediğinize emin misiniz? Panodaki tüm kartlardan kaldırılacaksınız.",
+    "leaveBoardPopup-title": "Panodan ayrılmak istediğinize emin misiniz?",
     "link-card": "Bu kartın bağlantısı",
     "link-card": "Bu kartın bağlantısı",
     "list-archive-cards": "Bu liste içindeki tüm kartları arşivle",
     "list-archive-cards": "Bu liste içindeki tüm kartları arşivle",
     "list-archive-cards-pop": "Bu işlem bu listedeki tüm kartları kaldıracak ve arşivleyecek. Arşivlenmiş kartları görmek ve panoya geri yüklemek için \"Menü\" altından \"Arşivlenmiş Öğeler\"e gidebilirsiniz.",
     "list-archive-cards-pop": "Bu işlem bu listedeki tüm kartları kaldıracak ve arşivleyecek. Arşivlenmiş kartları görmek ve panoya geri yüklemek için \"Menü\" altından \"Arşivlenmiş Öğeler\"e gidebilirsiniz.",
@@ -314,8 +315,8 @@
     "save": "Kaydet",
     "save": "Kaydet",
     "search": "Arama",
     "search": "Arama",
     "select-color": "Renk Seç",
     "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",
+    "set-wip-limit-value": "Bu listedeki en fazla öğe sayısı için bir sınır belirleyin",
+    "setWipLimitPopup-title": "Devam Eden İş Sınırı Belirle",
     "shortcut-assign-self": "Kendini karta ata",
     "shortcut-assign-self": "Kendini karta ata",
     "shortcut-autocomplete-emoji": "Emojileri otomatik tamamla",
     "shortcut-autocomplete-emoji": "Emojileri otomatik tamamla",
     "shortcut-autocomplete-members": "Üye isimlerini otomatik tamamla",
     "shortcut-autocomplete-members": "Üye isimlerini otomatik tamamla",
@@ -356,9 +357,9 @@
     "welcome-list1": "Temel",
     "welcome-list1": "Temel",
     "welcome-list2": "Gelişmiş",
     "welcome-list2": "Gelişmiş",
     "what-to-do": "Ne yapmak istiyorsunuz?",
     "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.",
+    "wipLimitErrorPopup-title": "Geçersiz Devam Eden İş Sınırı",
+    "wipLimitErrorPopup-dialog-pt1": "Bu listedeki iş sayısı belirlediğiniz sınırdan daha fazla.",
+    "wipLimitErrorPopup-dialog-pt2": "Lütfen bazı işleri bu listeden başka listeye taşıyın ya da devam eden iş sınırını yükseltin.",
     "admin-panel": "Yönetici Paneli",
     "admin-panel": "Yönetici Paneli",
     "settings": "Ayarlar",
     "settings": "Ayarlar",
     "people": "Kullanıcılar",
     "people": "Kullanıcılar",

+ 1 - 0
i18n/uk.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

+ 1 - 0
i18n/vi.i18n.json

@@ -172,6 +172,7 @@
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "Change start date",
     "editCardStartDatePopup-title": "Change start date",
     "editCardDueDatePopup-title": "Change due date",
     "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",

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

@@ -172,6 +172,7 @@
     "edit-avatar": "更改头像",
     "edit-avatar": "更改头像",
     "edit-profile": "编辑资料",
     "edit-profile": "编辑资料",
     "edit-wip-limit": "编辑最大任务数",
     "edit-wip-limit": "编辑最大任务数",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "修改起始日期",
     "editCardStartDatePopup-title": "修改起始日期",
     "editCardDueDatePopup-title": "修改截止日期",
     "editCardDueDatePopup-title": "修改截止日期",
     "editLabelPopup-title": "更改标签",
     "editLabelPopup-title": "更改标签",

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

@@ -172,6 +172,7 @@
     "edit-avatar": "更改大頭貼",
     "edit-avatar": "更改大頭貼",
     "edit-profile": "編輯資料",
     "edit-profile": "編輯資料",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
     "editCardStartDatePopup-title": "更改開始日期",
     "editCardStartDatePopup-title": "更改開始日期",
     "editCardDueDatePopup-title": "更改到期日期",
     "editCardDueDatePopup-title": "更改到期日期",
     "editLabelPopup-title": "更改標籤",
     "editLabelPopup-title": "更改標籤",

+ 1 - 1
models/cards.js

@@ -182,7 +182,7 @@ Cards.helpers({
 
 
   canBeRestored() {
   canBeRestored() {
     const list = Lists.findOne({_id: this.listId});
     const list = Lists.findOne({_id: this.listId});
-    if(list.getWipLimit() && list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count()){
+    if(!list.getWipLimit('soft') && list.getWipLimit('enabled') && list.getWipLimit('value') === list.cards().count()){
       return false;
       return false;
     }
     }
     return true;
     return true;

+ 23 - 19
models/lists.js

@@ -49,23 +49,15 @@ Lists.attachSchema(new SimpleSchema({
   'wipLimit.value': {
   'wipLimit.value': {
     type: Number,
     type: Number,
     decimal: false,
     decimal: false,
-    autoValue() {
-      if(this.isInsert){
-        return 0;
-      }
-      return this.value;
-    },
-    optional: true,
+    defaultValue: 1,
   },
   },
-  'wipLimit.enabled':{
+  'wipLimit.enabled': {
     type: Boolean,
     type: Boolean,
-    autoValue() {
-      if(this.isInsert){
-        return false;
-      }
-      return this.value;
-    },
-    optional: true,
+    defaultValue: false,
+  },
+  'wipLimit.soft': {
+    type: Boolean,
+    defaultValue: false,
   },
   },
 }));
 }));
 
 
@@ -123,6 +115,10 @@ Lists.mutations({
     return { $set: { archived: false } };
     return { $set: { archived: false } };
   },
   },
 
 
+  toggleSoftLimit(toggle) {
+    return { $set: { 'wipLimit.soft': toggle } };
+  },
+
   toggleWipLimit(toggle) {
   toggleWipLimit(toggle) {
     return { $set: { 'wipLimit.enabled': toggle } };
     return { $set: { 'wipLimit.enabled': toggle } };
   },
   },
@@ -136,17 +132,25 @@ Meteor.methods({
   applyWipLimit(listId, limit){
   applyWipLimit(listId, limit){
     check(listId, String);
     check(listId, String);
     check(limit, Number);
     check(limit, Number);
+    if(limit === 0){
+      limit = 1;
+    }
     Lists.findOne({ _id: listId }).setWipLimit(limit);
     Lists.findOne({ _id: listId }).setWipLimit(limit);
   },
   },
 
 
   enableWipLimit(listId) {
   enableWipLimit(listId) {
     check(listId, String);
     check(listId, String);
     const list = Lists.findOne({ _id: listId });
     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.getWipLimit('enabled'));
-    } else {
-      list.toggleWipLimit(true); // First time toggle is always to 'true' because default is 'false'
+    if(list.getWipLimit('value') === 0){
+      list.setWipLimit(1);
     }
     }
+    list.toggleWipLimit(!list.getWipLimit('enabled'));
+  },
+
+  enableSoftLimit(listId) {
+    check(listId, String);
+    const list = Lists.findOne({ _id: listId });
+    list.toggleSoftLimit(!list.getWipLimit('soft'));
   },
   },
 });
 });