From c94edb6bb01933f6dae2cfb61bef0d43d7588414 Mon Sep 17 00:00:00 2001 From: Yuping Zuo Date: Tue, 19 Jun 2018 10:37:59 +0800 Subject: [PATCH 01/35] Update en.i18n.json Fixed incorrect syntax in advanced filter description. --- i18n/en.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 83b5caed2..68a7612d9 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", From 18e936fd28192538cc39d0413d7a85a69b65c6cb Mon Sep 17 00:00:00 2001 From: pravdomil Date: Tue, 19 Jun 2018 14:12:17 +0200 Subject: [PATCH 02/35] less margin-bottom after minicard --- client/components/cards/minicard.styl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl index 38f829d0d..335182a39 100644 --- a/client/components/cards/minicard.styl +++ b/client/components/cards/minicard.styl @@ -5,7 +5,7 @@ position: relative display: flex align-items: center - margin-bottom: 9px + margin-bottom: 2px &.placeholder background: darken(white, 20%) From b8bbdcc4c5e69871054ef379d751cbef4f52a1b2 Mon Sep 17 00:00:00 2001 From: pravdomil Date: Tue, 19 Jun 2018 14:19:52 +0200 Subject: [PATCH 03/35] fix vertical align of user avatar initials --- client/components/users/userAvatar.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/users/userAvatar.jade b/client/components/users/userAvatar.jade index 83e2c8d09..df2ac4619 100644 --- a/client/components/users/userAvatar.jade +++ b/client/components/users/userAvatar.jade @@ -17,7 +17,7 @@ template(name="userAvatar") template(name="userAvatarInitials") svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15") - text(x="50%" y="13" text-anchor="middle")= initials + text(x="50%" y="50%" text-anchor="middle" alignment-baseline="central")= initials template(name="userPopup") .board-member-menu From 77ae6c17e718669edcae8898792e20be3db18053 Mon Sep 17 00:00:00 2001 From: pravdomil Date: Tue, 19 Jun 2018 16:35:06 +0200 Subject: [PATCH 04/35] submit inline form on click outside --- client/lib/inlinedform.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/client/lib/inlinedform.js b/client/lib/inlinedform.js index 56768a13b..c652c6464 100644 --- a/client/lib/inlinedform.js +++ b/client/lib/inlinedform.js @@ -75,6 +75,16 @@ InlinedForm = BlazeComponent.extendComponent({ EscapeActions.register('inlinedForm', () => { currentlyOpenedForm.get().close(); }, () => { return currentlyOpenedForm.get() !== null; }, { - noClickEscapeOn: '.js-inlined-form', + enabledOnClick: false } ); + +// submit on click outside +document.addEventListener("click", function(evt) { + const formIsOpen = currentlyOpenedForm.get() && currentlyOpenedForm.get().isOpen.get(); + const isClickOutside = $(evt.target).closest(".js-inlined-form").length === 0; + if (formIsOpen && isClickOutside) { + $('.js-inlined-form button[type=submit]').click(); + currentlyOpenedForm.get().close(); + } +}, true); From 620bbb3394bdfabeb63eb7a43f822b37da7ceab5 Mon Sep 17 00:00:00 2001 From: pravdomil Date: Tue, 19 Jun 2018 16:41:27 +0200 Subject: [PATCH 05/35] refactor --- client/lib/inlinedform.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/lib/inlinedform.js b/client/lib/inlinedform.js index c652c6464..272d79f76 100644 --- a/client/lib/inlinedform.js +++ b/client/lib/inlinedform.js @@ -81,10 +81,10 @@ EscapeActions.register('inlinedForm', // submit on click outside document.addEventListener("click", function(evt) { - const formIsOpen = currentlyOpenedForm.get() && currentlyOpenedForm.get().isOpen.get(); + const openedForm = currentlyOpenedForm.get() const isClickOutside = $(evt.target).closest(".js-inlined-form").length === 0; - if (formIsOpen && isClickOutside) { + if (openedForm && isClickOutside) { $('.js-inlined-form button[type=submit]').click(); - currentlyOpenedForm.get().close(); + openedForm.close(); } }, true); From 9a55f38d90dcaa20c1cad988547b256b36968058 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Jun 2018 23:57:53 +0300 Subject: [PATCH 06/35] Change fr.md to not be executeable. --- meta/t9n-changelog/fr.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 meta/t9n-changelog/fr.md diff --git a/meta/t9n-changelog/fr.md b/meta/t9n-changelog/fr.md old mode 100755 new mode 100644 From 0b5ecd24f996305bed741f6ad81e4ce290290108 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 00:01:02 +0300 Subject: [PATCH 07/35] Update translations. --- i18n/ja.i18n.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index a66e96688..03a4224f1 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -292,7 +292,7 @@ "list-move-cards": "リストの全カードを移動する", "list-select-cards": "リストの全カードを選択", "listActionPopup-title": "操作一覧", - "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneActionPopup-title": "スイムレーン操作", "listImportCardPopup-title": "Trelloのカードをインポート", "listMorePopup-title": "さらに見る", "link-list": "このリストへのリンク", @@ -463,12 +463,12 @@ "createdAt": "Created at", "verified": "Verified", "active": "Active", - "card-received": "Received", - "card-received-on": "Received on", - "card-end": "End", - "card-end-on": "Ends on", - "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date", + "card-received": "受付", + "card-received-on": "受付日", + "card-end": "終了", + "card-end-on": "終了日", + "editCardReceivedDatePopup-title": "受付日の変更", + "editCardEndDatePopup-title": "終了日の変更", "assigned-by": "Assigned By", "requested-by": "Requested By", "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", From 43a967b2740e123187f98022d2ec6abd186b7d51 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 00:37:02 +0300 Subject: [PATCH 08/35] - Fix typo in English translation. Thanks to zypA13510 ! --- CHANGELOG.md | 8 ++++++++ i18n/ar.i18n.json | 2 +- i18n/bg.i18n.json | 2 +- i18n/br.i18n.json | 2 +- i18n/ca.i18n.json | 2 +- i18n/cs.i18n.json | 2 +- i18n/el.i18n.json | 2 +- i18n/en-GB.i18n.json | 2 +- i18n/eo.i18n.json | 2 +- i18n/es-AR.i18n.json | 2 +- i18n/eu.i18n.json | 2 +- i18n/fa.i18n.json | 2 +- i18n/fi.i18n.json | 2 +- i18n/gl.i18n.json | 2 +- i18n/he.i18n.json | 2 +- i18n/hu.i18n.json | 2 +- i18n/hy.i18n.json | 2 +- i18n/id.i18n.json | 2 +- i18n/ig.i18n.json | 2 +- i18n/it.i18n.json | 2 +- i18n/ja.i18n.json | 2 +- i18n/km.i18n.json | 2 +- i18n/ko.i18n.json | 2 +- i18n/lv.i18n.json | 2 +- i18n/mn.i18n.json | 2 +- i18n/nb.i18n.json | 2 +- i18n/nl.i18n.json | 2 +- i18n/pl.i18n.json | 2 +- i18n/pt-BR.i18n.json | 2 +- i18n/pt.i18n.json | 2 +- i18n/ro.i18n.json | 2 +- i18n/ru.i18n.json | 2 +- i18n/sr.i18n.json | 2 +- i18n/sv.i18n.json | 2 +- i18n/ta.i18n.json | 2 +- i18n/th.i18n.json | 2 +- i18n/tr.i18n.json | 2 +- i18n/uk.i18n.json | 2 +- i18n/vi.i18n.json | 2 +- i18n/zh-CN.i18n.json | 2 +- i18n/zh-TW.i18n.json | 2 +- 41 files changed, 48 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 198ff6398..210b7fef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +* [Fix typo in English translation](https://github.com/wekan/wekan/commit/c94edb6bb01933f6dae2cfb61bef0d43d7588414). + +Thanks to GitHub user zypA13510 for contributions. + # v1.07 2018-06-14 Wekan release This release adds the following new features: diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index edb39a942..e3522abf0 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.", "filter-to-selection": "تصفية بالتحديد", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "الإسم الكامل", "header-logo-title": "الرجوع إلى صفحة اللوحات", "hide-system-messages": "إخفاء رسائل النظام", diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 162c44ee5..a09cd94b2 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "В момента филтрирате картите в това табло. Моля, натиснете тук, за да промените филтъра.", "filter-to-selection": "Филтрирай избраните", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Име", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Скриване на системните съобщения", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 8123445a4..58415db19 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 6354e4950..66b4a2c1d 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.", "filter-to-selection": "Filtra selecció", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nom complet", "header-logo-title": "Torna a la teva pàgina de taulers", "hide-system-messages": "Oculta missatges del sistema", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index 92dceb953..aec461911 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.", "filter-to-selection": "Filtrovat výběr", "advanced-filter-label": "Pokročilý filtr", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Celé jméno", "header-logo-title": "Jit zpět na stránku s tably.", "hide-system-messages": "Skrýt systémové zprávy", diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index bc6ad3744..9436d7bd4 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Πλήρες Όνομα", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 48888c99e..13b0ae524 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 276f0e3a3..0ef394116 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index b48395e39..61a31ebb0 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Estás filtrando cartas en este tablero. Clickeá acá para editar el filtro.", "filter-to-selection": "Filtrar en la selección", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nombre Completo", "header-logo-title": "Retroceder a tu página de tableros.", "hide-system-messages": "Esconder mensajes del sistema", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index 973b4bf9e..a2d996313 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Arbel honetako txartela iragazten ari zara. Egin klik hemen iragazkia editatzeko.", "filter-to-selection": "Iragazketa aukerara", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Izen abizenak", "header-logo-title": "Itzuli zure arbelen orrira.", "hide-system-messages": "Ezkutatu sistemako mezuak", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 7078b3340..107b5894e 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "شما صافی ـFilterـ برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.", "filter-to-selection": "صافی ـFilterـ برای موارد انتخابی", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "نام و نام خانوادگی", "header-logo-title": "بازگشت به صفحه تخته.", "hide-system-messages": "عدم نمایش پیامهای سیستمی", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 2f23c6c0a..0b363b7bc 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Suodatat kortteja tällä taululla. Klikkaa tästä muokataksesi suodatinta.", "filter-to-selection": "Suodata valintaan", "advanced-filter-label": "Edistynyt suodatin", - "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: == != <= >= && || ( ) Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huom: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit hypätä yksittäisen kontrollimerkkien (' \\/) yli käyttämällä \\. Esimerkki: Field1 = I\\'m. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 = V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 && (F2 == V2 || F2 == V3). Voit myös etsiä tekstikentistä regexillä: F1 == /Tes.*/i", + "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: == != <= >= && || ( ) Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huom: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit hypätä yksittäisen kontrollimerkkien (' \\/) yli käyttämällä \\. Esimerkki: Field1 = I\\'m. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 == V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 && (F2 == V2 || F2 == V3). Voit myös etsiä tekstikentistä regexillä: F1 == /Tes.*/i", "fullname": "Koko nimi", "header-logo-title": "Palaa taulut sivullesi.", "hide-system-messages": "Piilota järjestelmäviestit", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index b8904e167..7462b1d39 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nome completo", "header-logo-title": "Retornar á páxina dos seus taboleiros.", "hide-system-messages": "Agochar as mensaxes do sistema", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index cff165401..943062e1e 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "מסנן כרטיסים פעיל בלוח זה. יש ללחוץ כאן לעריכת המסנן.", "filter-to-selection": "סינון לבחירה", "advanced-filter-label": "מסנן מתקדם", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "המסנן המתקדם מאפשר לך לכתוב מחרוזת שמכילה את הפעולות הבאות: == != <= >= && || ( ) רווח מכהן כמפריד בין הפעולות. ניתן לסנן את כל השדות המותאמים אישית על ידי הקלדת שמם והערך שלהם. למשל: שדה1 == ערך1. לתשומת לבך: אם שדות או ערכים מכילים רווח, יש לעטוף אותם במירכא מכל צד. למשל: 'שדה 1' == 'ערך 1'. ניתן גם לשלב מגוון תנאים. למשל: F1 == V1 || F1 == V2. על פי רוב כל הפעולות מפוענחות משמאל לימין. ניתן לשנות את הסדר על ידי הצבת סוגריים. למשל: ( F1 == V1 && ( F2 == V2 || F2 == V3 ", "fullname": "שם מלא", "header-logo-title": "חזרה לדף הלוחות שלך.", "hide-system-messages": "הסתרת הודעות מערכת", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 2ce434377..a4fc3c8c8 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "A kártyaszűrés be van kapcsolva ezen a táblán. Kattintson ide a szűrő szerkesztéséhez.", "filter-to-selection": "Szűrés a kijelöléshez", "advanced-filter-label": "Speciális szűrő", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Teljes név", "header-logo-title": "Vissza a táblák oldalára.", "hide-system-messages": "Rendszerüzenetek elrejtése", diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index bf0f10764..fcbb7a9a3 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 8d76113c4..8eb0d2de4 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Anda memfilter kartu di panel ini. Klik di sini untuk menyunting filter", "filter-to-selection": "Saring berdasarkan yang dipilih", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nama Lengkap", "header-logo-title": "Kembali ke laman panel anda", "hide-system-messages": "Sembunyikan pesan-pesan sistem", diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 2014b8017..ece8e7ccf 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index c373eda08..d3e5870fc 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,", "filter-to-selection": "Seleziona", "advanced-filter-label": "Filtro avanzato", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nome completo", "header-logo-title": "Torna alla tua bacheca.", "hide-system-messages": "Nascondi i messaggi di sistema", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 03a4224f1..0f478842e 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。", "filter-to-selection": "フィルターした項目を全選択", "advanced-filter-label": "高度なフィルター", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "フルネーム", "header-logo-title": "自分のボードページに戻る。", "hide-system-messages": "システムメッセージを隠す", diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 6ffee9307..29b82bf56 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 409bfc94b..b9996c886 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.", "filter-to-selection": "선택 항목으로 필터링", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "실명", "header-logo-title": "보드 페이지로 돌아가기.", "hide-system-messages": "시스템 메시지 숨기기", diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 203847e41..47667c40a 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index d0205a455..8f2475fe7 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index 5ecda2ced..30e1963ba 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 621630fd4..903f6a8ff 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.", "filter-to-selection": "Filter zoals selectie", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Volledige naam", "header-logo-title": "Ga terug naar jouw borden pagina.", "hide-system-messages": "Verberg systeemberichten", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 6cdc2d7f2..3f618075f 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.", "filter-to-selection": "Odfiltruj zaznaczenie", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Wróć do swojej strony z tablicami.", "hide-system-messages": "Ukryj wiadomości systemowe", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 9047b6950..3193da3e3 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.", "filter-to-selection": "Filtrar esta seleção", "advanced-filter-label": "Filtro avançado", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Nome Completo", "header-logo-title": "Voltar para a lista de quadros.", "hide-system-messages": "Esconde mensagens de sistema", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 6c2fa56fc..7404cc09f 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index c8e902eab..3795e189a 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index b5a06d2b1..5ad4a4fb4 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Расширенный фильтр", - "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в кавычки. Например: «Поле 1» == «Значение 1». Для одиночных управляющих символов ('\\ /), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I \\ m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 = V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью regex: F1 == /Tes.*/i", + "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в кавычки. Например: «Поле 1» == «Значение 1». Для одиночных управляющих символов ('\\ /), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I \\ m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью regex: F1 == /Tes.*/i", "fullname": "Полное имя", "header-logo-title": "Вернуться к доскам.", "hide-system-messages": "Скрыть системные сообщения", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 39ed5e017..4debc5e5f 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Sakrij sistemske poruke", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 4ab69efbf..c91f19282 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.", "filter-to-selection": "Filter till val", "advanced-filter-label": "Avancerat filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Namn", "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.", "hide-system-messages": "Göm systemmeddelanden", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index d68b0de6b..f8f74ce73 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index a2fc18857..673e4d801 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "คุณกำลังกรองการ์ดในบอร์ดนี้ คลิกที่นี่เพื่อแก้ไขตัวกรอง", "filter-to-selection": "กรองตัวเลือก", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "ชื่อ นามสกุล", "header-logo-title": "ย้อนกลับไปที่หน้าบอร์ดของคุณ", "hide-system-messages": "ซ่อนข้อความของระบบ", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 1b63d6a04..b7a351566 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.", "filter-to-selection": "Seçime göre filtreleme yap", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Ad Soyad", "header-logo-title": "Panolar sayfanıza geri dön.", "hide-system-messages": "Sistem mesajlarını gizle", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 9d34f905a..1d6605d90 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index c7827c597..9529b0161 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index bfa9cb6e0..de79364c8 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。", "filter-to-selection": "要选择的过滤器", "advanced-filter-label": "高级过滤器", - "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\/),请使用 \\ 转义字符。例如: Field1 = I\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 = V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", + "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\/),请使用 \\ 转义字符。例如: Field1 = I\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。", "fullname": "全称", "header-logo-title": "返回您的看板页", "hide-system-messages": "隐藏系统消息", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index a46ba5697..043cad12a 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -247,7 +247,7 @@ "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。", "filter-to-selection": "要選擇的過濾條件", "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "全稱", "header-logo-title": "返回您的看板頁面", "hide-system-messages": "隱藏系統訊息", From fde26c21834cf5e817e5bd7b04fa1cb9d4de55f3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 00:45:51 +0300 Subject: [PATCH 09/35] - Fix vertical align of user avatar initials. Thanks to pravdomil ! --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 210b7fef8..358763c36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,10 @@ This release fixes the following bugs: -* [Fix typo in English translation](https://github.com/wekan/wekan/commit/c94edb6bb01933f6dae2cfb61bef0d43d7588414). +* [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710); +* [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714). -Thanks to GitHub user zypA13510 for contributions. +Thanks to GitHub users pravdomil and zypA13510 for their contributions. # v1.07 2018-06-14 Wekan release From 6a587299b80a49fce0789628ff65885b5ed2c837 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 01:02:19 +0300 Subject: [PATCH 10/35] - Add more card inner shadow. Thanks to pravdomil and xet7 ! Related #1690 --- client/components/cards/minicard.styl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl index 335182a39..391a63165 100644 --- a/client/components/cards/minicard.styl +++ b/client/components/cards/minicard.styl @@ -37,7 +37,7 @@ flex-wrap: wrap background-color: #fff min-height: 20px - box-shadow: 0 1px 2px rgba(0,0,0,.15) + box-shadow: 0 0px 16px rgba(0,0,0,0.15) inset border-radius: 2px color: #4d4d4d overflow: hidden From b7d51456eb859cbdf5fbd627796d2c5038ad26d8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 01:06:14 +0300 Subject: [PATCH 11/35] - Add more card inner shadow; - Less margin-bottom after minicard. Thanks pravdomil and xet7 ! Related #1690 Related https://github.com/wekan/wekan/pull/1713 --- CHANGELOG.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 358763c36..a801988c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Upcoming Wekan release -This release fixes the following bugs: +This release adds the following new features: + +* [Add more card inner shadow](https://github.com/wekan/wekan/commit/6a587299b80a49fce0789628ff65885b5ed2c837); +* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713); + +and fixes the following bugs: * [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710); * [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714). -Thanks to GitHub users pravdomil and zypA13510 for their contributions. +Thanks to GitHub users pravdomil, xet7 and zypA13510 for their contributions. # v1.07 2018-06-14 Wekan release From aa2a15bf1b1c7cc95bc6cb93a25c0932db402573 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 01:36:44 +0300 Subject: [PATCH 12/35] Fix lint errors. --- client/lib/inlinedform.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/lib/inlinedform.js b/client/lib/inlinedform.js index 272d79f76..e5e4d4edc 100644 --- a/client/lib/inlinedform.js +++ b/client/lib/inlinedform.js @@ -75,14 +75,14 @@ InlinedForm = BlazeComponent.extendComponent({ EscapeActions.register('inlinedForm', () => { currentlyOpenedForm.get().close(); }, () => { return currentlyOpenedForm.get() !== null; }, { - enabledOnClick: false + enabledOnClick: false, } ); // submit on click outside -document.addEventListener("click", function(evt) { - const openedForm = currentlyOpenedForm.get() - const isClickOutside = $(evt.target).closest(".js-inlined-form").length === 0; +document.addEventListener('click', function(evt) { + const openedForm = currentlyOpenedForm.get(); + const isClickOutside = $(evt.target).closest('.js-inlined-form').length === 0; if (openedForm && isClickOutside) { $('.js-inlined-form button[type=submit]').click(); openedForm.close(); From daa95c582e9f11e15bb67389de5a97ded45dbc42 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 01:40:13 +0300 Subject: [PATCH 13/35] - Submit inline form on click outside, fixes "You have an unsaved description" doesn't go away after saving. Thanks to pravdomil and xet7 ! Fixes #1287 --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a801988c9..e1fe261c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,9 @@ This release adds the following new features: and fixes the following bugs: * [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710); -* [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714). +* [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714); +* [Submit inline form on click outside]https://github.com/wekan/wekan/pull/1717), fixes + ["You have an unsaved description" doesn't go away after saving](https://github.com/wekan/wekan/issues/1287). Thanks to GitHub users pravdomil, xet7 and zypA13510 for their contributions. From 97922c90cb42be6c6615639bb164173748982f56 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 02:11:37 +0300 Subject: [PATCH 14/35] - Fix "Error: title is required" by removing find() from all of migrations. Thanks to xet7 ! Closes #1576 --- server/migrations.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/migrations.js b/server/migrations.js index a1a5c65a1..976e478c0 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -55,7 +55,7 @@ Migrations.add('lowercase-board-permission', () => { // Security migration: see https://github.com/wekan/wekan/issues/99 Migrations.add('change-attachments-type-for-non-images', () => { const newTypeForNonImage = 'application/octet-stream'; - Attachments.find().forEach((file) => { + Attachments.forEach((file) => { if (!file.isImage()) { Attachments.update(file._id, { $set: { @@ -68,7 +68,7 @@ Migrations.add('change-attachments-type-for-non-images', () => { }); Migrations.add('card-covers', () => { - Cards.find().forEach((card) => { + Cards.forEach((card) => { const cover = Attachments.findOne({ cardId: card._id, cover: true }); if (cover) { Cards.update(card._id, {$set: {coverId: cover._id}}, noValidate); @@ -86,7 +86,7 @@ Migrations.add('use-css-class-for-boards-colors', () => { '#2C3E50': 'midnight', '#E67E22': 'pumpkin', }; - Boards.find().forEach((board) => { + Boards.forEach((board) => { const oldBoardColor = board.background.color; const newBoardColor = associationTable[oldBoardColor]; Boards.update(board._id, { @@ -97,7 +97,7 @@ Migrations.add('use-css-class-for-boards-colors', () => { }); Migrations.add('denormalize-star-number-per-board', () => { - Boards.find().forEach((board) => { + Boards.forEach((board) => { const nStars = Users.find({'profile.starredBoards': board._id}).count(); Boards.update(board._id, {$set: {stars: nStars}}, noValidate); }); @@ -132,7 +132,7 @@ Migrations.add('add-member-isactive-field', () => { }); Migrations.add('add-sort-checklists', () => { - Checklists.find().forEach((checklist, index) => { + Checklists.forEach((checklist, index) => { if (!checklist.hasOwnProperty('sort')) { Checklists.direct.update( checklist._id, @@ -153,7 +153,7 @@ Migrations.add('add-sort-checklists', () => { }); Migrations.add('add-swimlanes', () => { - Boards.find().forEach((board) => { + Boards.forEach((board) => { const swimlane = Swimlanes.findOne({ boardId: board._id }); let swimlaneId = ''; if (swimlane) @@ -177,7 +177,7 @@ Migrations.add('add-swimlanes', () => { }); Migrations.add('add-views', () => { - Boards.find().forEach((board) => { + Boards.forEach((board) => { if (!board.hasOwnProperty('view')) { Boards.direct.update( { _id: board._id }, @@ -189,7 +189,7 @@ Migrations.add('add-views', () => { }); Migrations.add('add-checklist-items', () => { - Checklists.find().forEach((checklist) => { + Checklists.forEach((checklist) => { // Create new items _.sortBy(checklist.items, 'sort').forEach((item, index) => { ChecklistItems.direct.insert({ @@ -210,7 +210,7 @@ Migrations.add('add-checklist-items', () => { }); Migrations.add('add-profile-view', () => { - Users.find().forEach((user) => { + Users.forEach((user) => { if (!user.hasOwnProperty('profile.boardView')) { // Set default view Users.direct.update( From 43dde4a10fc7980089f9344a7be04b8fe673cf28 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 02:14:52 +0300 Subject: [PATCH 15/35] - Fix "Error: title is required" by removing find() from all of migrations. Thanks to xet7 ! Closes #1576 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1fe261c5..d3c4aa555 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ and fixes the following bugs: * [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710); * [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714); * [Submit inline form on click outside]https://github.com/wekan/wekan/pull/1717), fixes - ["You have an unsaved description" doesn't go away after saving](https://github.com/wekan/wekan/issues/1287). + ["You have an unsaved description" doesn't go away after saving](https://github.com/wekan/wekan/issues/1287); +* [Fix "Error: title is required" by removing find() from all of migrations](https://github.com/wekan/wekan/commit/97922c90cb42be6c6615639bb164173748982f56). Thanks to GitHub users pravdomil, xet7 and zypA13510 for their contributions. From 226d25ca943e3be8256639f0fc9b517cb0c217a0 Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Tue, 26 Jun 2018 19:55:23 +0300 Subject: [PATCH 16/35] Introducing third board view: calendar. A dependency to rzymek:fullcalendar has also been added. --- .meteor/packages | 1 + .meteor/versions | 2 ++ client/components/boards/boardBody.js | 6 ++++++ client/components/boards/boardHeader.js | 4 +++- client/components/lists/listBody.js | 2 +- client/components/swimlanes/swimlanes.js | 2 ++ i18n/en.i18n.json | 1 + models/users.js | 5 +++++ 8 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index c1b8ab883..c2b0aff75 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -84,3 +84,4 @@ accounts-password@1.5.0 cfs:gridfs browser-policy eluck:accounts-lockout +rzymek:fullcalendar diff --git a/.meteor/versions b/.meteor/versions index 2ab1af110..5dd1f2ce4 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -103,6 +103,7 @@ mixmax:smart-disconnect@0.0.4 mobile-status-bar@1.0.14 modules@0.11.0 modules-runtime@0.9.1 +momentjs:moment@2.8.4 mongo@1.3.1 mongo-dev-server@1.1.0 mongo-id@1.0.6 @@ -139,6 +140,7 @@ reactive-var@1.0.11 reload@1.1.11 retry@1.0.9 routepolicy@1.0.12 +rzymek:fullcalendar@3.8.0 service-configuration@1.0.11 session@1.1.7 sha@1.0.9 diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index dfe7b8d27..a377dd73a 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -98,6 +98,12 @@ BlazeComponent.extendComponent({ return (currentUser.profile.boardView === 'board-view-lists'); }, + isViewCalendar() { + const currentUser = Meteor.user(); + if (!currentUser) return true; + return (currentUser.profile.boardView === 'board-view-cal'); + }, + openNewListForm() { if (this.isViewSwimlanes()) { this.childComponents('swimlane')[0] diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index b26404746..222cc4048 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -89,9 +89,11 @@ BlazeComponent.extendComponent({ 'click .js-toggle-board-view'() { const currentUser = Meteor.user(); if (currentUser.profile.boardView === 'board-view-swimlanes') { - currentUser.setBoardView('board-view-lists'); + currentUser.setBoardView('board-view-cal'); } else if (currentUser.profile.boardView === 'board-view-lists') { currentUser.setBoardView('board-view-swimlanes'); + } else if (currentUser.profile.boardView === 'board-view-cal') { + currentUser.setBoardView('board-view-lists'); } }, 'click .js-open-filter-view'() { diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 4bf7b3697..adb2fadba 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -45,7 +45,7 @@ BlazeComponent.extendComponent({ const boardView = Meteor.user().profile.boardView; if (boardView === 'board-view-swimlanes') swimlaneId = this.parentComponent().parentComponent().data()._id; - else if (boardView === 'board-view-lists') + else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal')) swimlaneId = Swimlanes.findOne({boardId})._id; if (title) { diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js index 7965c2bc6..c67fe6af4 100644 --- a/client/components/swimlanes/swimlanes.js +++ b/client/components/swimlanes/swimlanes.js @@ -7,6 +7,8 @@ function currentCardIsInThisList(listId, swimlaneId) { return currentCard && currentCard.listId === listId; else if (currentUser.profile.boardView === 'board-view-swimlanes') return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId; + else if (currentUser.profile.boardView === 'board-view-cal') + return currentCard; else return false; } diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 68a7612d9..51a9b4cc7 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/models/users.js b/models/users.js index 0093f7cbf..5a7fbbe56 100644 --- a/models/users.js +++ b/models/users.js @@ -100,6 +100,11 @@ Users.attachSchema(new SimpleSchema({ 'profile.boardView': { type: String, optional: true, + allowedValues: [ + 'board-view-lists', + 'board-view-swimlanes', + 'board-view-cal', + ], }, services: { type: Object, From b198a3ed993f161f110929330d80fd21c516024c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 21:29:38 +0300 Subject: [PATCH 17/35] Fix typo. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3c4aa555..acb1dc5c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and fixes the following bugs: * [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710); * [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714); -* [Submit inline form on click outside]https://github.com/wekan/wekan/pull/1717), fixes +* [Submit inline form on click outside](https://github.com/wekan/wekan/pull/1717), fixes ["You have an unsaved description" doesn't go away after saving](https://github.com/wekan/wekan/issues/1287); * [Fix "Error: title is required" by removing find() from all of migrations](https://github.com/wekan/wekan/commit/97922c90cb42be6c6615639bb164173748982f56). From d501e5832ab5ac2548f1b814bce3e1d3411fa2b5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 21:31:29 +0300 Subject: [PATCH 18/35] Fix typo. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index acb1dc5c4..123303b86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This release adds the following new features: * [Add more card inner shadow](https://github.com/wekan/wekan/commit/6a587299b80a49fce0789628ff65885b5ed2c837); -* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713); +* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713). and fixes the following bugs: From 2a165dccd4a17f2797876ce349b4cfbf4c7b5882 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Jun 2018 21:37:21 +0300 Subject: [PATCH 19/35] Update translations (sv). --- i18n/sv.i18n.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index c91f19282..ba9c8f3f7 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -99,7 +99,7 @@ "boardChangeWatchPopup-title": "Ändra bevaka", "boardMenuPopup-title": "Anslagstavla meny", "boards": "Anslagstavlor", - "board-view": "Board View", + "board-view": "Anslagstavelsvy", "board-view-swimlanes": "Simbanor", "board-view-lists": "Listor", "bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel", @@ -108,7 +108,7 @@ "card-comments-title": "Detta kort har %s kommentar.", "card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.", "card-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsflöde och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.", - "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "Du kan flytta ett kort till papperskorgen for att ta bort det från anslagstavlan och bevara aktiviteten.", "card-due": "Förfaller", "card-due-on": "Förfaller på", "card-spent": "Spenderad tid", @@ -146,7 +146,7 @@ "clipboard": "Urklipp eller dra och släpp", "close": "Stäng", "close-board": "Stäng anslagstavla", - "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", + "close-board-pop": "Du kan återskapa anslagstavlan genom att klicka på \"Papperskorgen\" från huvudmenyn.", "color-black": "svart", "color-blue": "blå", "color-green": "grön", @@ -165,9 +165,9 @@ "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", - "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", + "copyChecklistToManyCardsPopup-title": "Kopiera checklist-mallen till flera kort", "copyChecklistToManyCardsPopup-instructions": "Destinationskorttitlar och beskrivningar i detta JSON-format", - "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Första kortets titel\", \"description\":\"Första kortets beskrivning\"}, {\"title\":\"Andra kortets titel\",\"description\":\"Andra kortets beskrivning\"},{\"title\":\"Sista kortets titel\",\"description\":\"Sista kortets beskrivning\"} ]", "create": "Skapa", "createBoardPopup-title": "Skapa anslagstavla", "chooseBoardSourcePopup-title": "Importera anslagstavla", @@ -178,7 +178,7 @@ "custom-field-delete-pop": "Det går inte att ångra. Detta tar bort det här anpassade fältet från alla kort och förstör dess historia.", "custom-field-checkbox": "Kryssruta", "custom-field-date": "Datum", - "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown": "Rullgardingsmeny", "custom-field-dropdown-none": "(inga)", "custom-field-dropdown-options": "Listalternativ", "custom-field-dropdown-options-placeholder": "Tryck på enter för att lägga till fler alternativ", @@ -247,7 +247,7 @@ "filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.", "filter-to-selection": "Filter till val", "advanced-filter-label": "Avancerat filter", - "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "advanced-filter-description": "Avancerade Filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\/) kan du använda \\. Till exempel: Fält1 == I\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i", "fullname": "Namn", "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.", "hide-system-messages": "Göm systemmeddelanden", @@ -288,7 +288,7 @@ "leaveBoardPopup-title": "Lämna anslagstavla ?", "link-card": "Länka till detta kort", "list-archive-cards": "Flytta alla kort i den här listan till papperskorgen", - "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.", + "list-archive-cards-pop": "Detta tar bort alla kort i den här listan från anslagstavlan. För att se kort i papperskorgen och få tillbaka dem till den här anslagstavlan, klicka på \"Meny\" > \"Papperskorgen\".", "list-move-cards": "Flytta alla kort i denna lista", "list-select-cards": "Välj alla kort i denna lista", "listActionPopup-title": "Liståtgärder", @@ -436,9 +436,9 @@ "email-smtp-test-text": "Du har skickat ett e-postmeddelande", "error-invitation-code-not-exist": "Inbjudningskod finns inte", "error-notAuthorized": "Du är inte behörig att se den här sidan.", - "outgoing-webhooks": "Outgoing Webhooks", - "outgoingWebhooksPopup-title": "Outgoing Webhooks", - "new-outgoing-webhook": "New Outgoing Webhook", + "outgoing-webhooks": "Utgående Webhookar", + "outgoingWebhooksPopup-title": "Utgående Webhookar", + "new-outgoing-webhook": "Ny utgående webhook", "no-name": "(Okänd)", "Wekan_version": "Wekan version", "Node_version": "Nodversion", @@ -471,8 +471,8 @@ "editCardEndDatePopup-title": "Ändra slutdatum", "assigned-by": "Tilldelad av", "requested-by": "Efterfrågad av", - "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", - "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "board-delete-notice": "Borttagningen är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här anslagstavlan.", + "delete-board-confirm-popup": "Alla listor, kort, etiketter och aktiviteter kommer tas bort och du kommer inte kunna återställa anslagstavlans innehåll. Det går inte att ångra.", "boardDeletePopup-title": "Ta bort anslagstavla?", "delete-board": "Ta bort anslagstavla" } \ No newline at end of file From 18467dfe40f2f715262b79c35f6084cc7814d363 Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Tue, 26 Jun 2018 22:11:51 +0300 Subject: [PATCH 20/35] Show cards in calendar --- .meteor/packages | 1 + .meteor/versions | 2 +- client/components/boards/boardBody.jade | 2 + client/components/boards/boardBody.js | 56 +++++++++++++++++++++++++ models/boards.js | 27 ++++++++++++ 5 files changed, 87 insertions(+), 1 deletion(-) diff --git a/.meteor/packages b/.meteor/packages index c2b0aff75..15d3aa591 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -85,3 +85,4 @@ cfs:gridfs browser-policy eluck:accounts-lockout rzymek:fullcalendar +momentjs:moment@2.22.2 diff --git a/.meteor/versions b/.meteor/versions index 5dd1f2ce4..caad25fa0 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -103,7 +103,7 @@ mixmax:smart-disconnect@0.0.4 mobile-status-bar@1.0.14 modules@0.11.0 modules-runtime@0.9.1 -momentjs:moment@2.8.4 +momentjs:moment@2.22.2 mongo@1.3.1 mongo-dev-server@1.1.0 mongo-id@1.0.6 diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index 29a613b93..b480bc0fe 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -25,3 +25,5 @@ template(name="boardBody") +swimlane(this) if isViewLists +listsGroup + if isViewCalendar + +fullcalendar(calendarOptions) diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index a377dd73a..935c550f7 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -114,6 +114,62 @@ BlazeComponent.extendComponent({ } }, + calendarOptions() { + return { + id: 'calendar-view', + defaultView: 'basicWeek', + header: { + left: 'title', + center: 'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,timelineMonth timelineYear', + right: 'today prev,next', + }, + views: { + basic: { + // options apply to basicWeek and basicDay views + }, + agenda: { + // options apply to agendaWeek and agendaDay views + }, + week: { + // options apply to basicWeek and agendaWeek views + }, + day: { + // options apply to basicDay and agendaDay views + }, + }, + themeSystem: 'jquery-ui', + height: 'parent', + /* TODO: lists as resources: https://fullcalendar.io/docs/vertical-resource-view */ + navLinks: true, + nowIndicator: true, + businessHours: { + // days of week. an array of zero-based day of week integers (0=Sunday) + dow: [ 1, 2, 3, 4, 5 ], // Monday - Thursday + start: '8:00', + end: '18:00', + }, + locale: TAPi18n.getLanguage(), + events(start, end, timezone, callback) { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + const events = []; + currentBoard.cardsInInterval(start.toDate(), end.toDate()).forEach(function(card){ + events.push({ + id: card.id, + title: card.title, + start: card.startAt, + end: card.endAt, + url: FlowRouter.url('card', { + boardId: currentBoard._id, + slug: currentBoard.slug, + cardId: card._id, + }), + }); + }); + callback(events); + }, + }; + }, + events() { return [{ // XXX The board-overlay div should probably be moved to the parent diff --git a/models/boards.js b/models/boards.js index 911d82a17..3b6c280ba 100644 --- a/models/boards.js +++ b/models/boards.js @@ -284,6 +284,33 @@ Boards.helpers({ return Cards.find(query, projection); }, + + cardsInInterval(start, end) { + return Cards.find({ + $or: [ + { + startAt: { + $lte: start, + }, endAt: { + $gte: start, + }, + }, { + startAt: { + $lte: end, + }, endAt: { + $gte: end, + }, + }, { + startAt: { + $gte: start, + }, endAt: { + $lte: end, + }, + }, + ], + }); + }, + }); Boards.mutations({ From 663a4040f965be6e6b120d93cd9fbcf86dcf8906 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Jun 2018 10:24:07 +0300 Subject: [PATCH 21/35] Add Georgian language. --- CHANGELOG.md | 3 +- i18n/ka.i18n.json | 478 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 480 insertions(+), 1 deletion(-) create mode 100644 i18n/ka.i18n.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 123303b86..2393effdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ This release adds the following new features: * [Add more card inner shadow](https://github.com/wekan/wekan/commit/6a587299b80a49fce0789628ff65885b5ed2c837); -* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713). +* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713); +* Add Georgian language. and fixes the following bugs: diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json new file mode 100644 index 000000000..f8f74ce73 --- /dev/null +++ b/i18n/ka.i18n.json @@ -0,0 +1,478 @@ +{ + "accept": "Accept", + "act-activity-notify": "[Wekan] Activity Notification", + "act-addAttachment": "attached __attachment__ to __card__", + "act-addChecklist": "added checklist __checklist__ to __card__", + "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addComment": "commented on __card__: __comment__", + "act-createBoard": "created __board__", + "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", + "act-createList": "added __list__ to __board__", + "act-addBoardMember": "added __member__ to __board__", + "act-archivedBoard": "__board__ moved to Recycle Bin", + "act-archivedCard": "__card__ moved to Recycle Bin", + "act-archivedList": "__list__ moved to Recycle Bin", + "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", + "act-importBoard": "imported __board__", + "act-importCard": "imported __card__", + "act-importList": "imported __list__", + "act-joinMember": "added __member__ to __card__", + "act-moveCard": "moved __card__ from __oldList__ to __list__", + "act-removeBoardMember": "removed __member__ from __board__", + "act-restoredCard": "restored __card__ to __board__", + "act-unjoinMember": "removed __member__ from __card__", + "act-withBoardTitle": "[Wekan] __board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Recycle Bin", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "add": "Add", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-card": "Add Card", + "add-swimlane": "Add Swimlane", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "add-cover": "Add Cover", + "add-label": "Add Label", + "add-list": "Add List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.", + "archive": "Move to Recycle Bin", + "archive-all": "Move All to Recycle Bin", + "archive-board": "Move Board to Recycle Bin", + "archive-card": "Move Card to Recycle Bin", + "archive-list": "Move List to Recycle Bin", + "archive-swimlane": "Move Swimlane to Recycle Bin", + "archive-selection": "Move selection to Recycle Bin", + "archiveBoardPopup-title": "Move Board to Recycle Bin?", + "archived-items": "Recycle Bin", + "archived-boards": "Boards in Recycle Bin", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Recycle Bin.", + "archives": "Recycle Bin", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (70KB max)", + "back": "Back", + "board-change-color": "Change color", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be private.", + "board-public-info": "This board will be public.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Menu", + "boards": "Boards", + "board-view": "Board View", + "board-view-swimlanes": "Swimlanes", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Recycle Bin.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardDeletePopup-title": "Delete Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cards": "Cards", + "cards-count": "Cards", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", + "color-black": "black", + "color-blue": "blue", + "color-green": "green", + "color-lime": "lime", + "color-orange": "orange", + "color-pink": "pink", + "color-purple": "purple", + "color-red": "red", + "color-sky": "sky", + "color-yellow": "yellow", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copyCardPopup-title": "Copy Card", + "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", + "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "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", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "filter": "Filter", + "filter-cards": "Filter Cards", + "filter-clear": "Clear filter", + "filter-no-label": "No label", + "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "hide-system-messages": "Hide system messages", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from Wekan", + "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.", + "from-trello": "From Trello", + "from-wekan": "From Wekan", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick the Wekan user you want to use as this member", + "importMapMembersAddPopup-title": "Select Wekan member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "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 ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Recycle Bin", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "listActionPopup-title": "List Actions", + "swimlaneActionPopup-title": "Swimlane Actions", + "listImportCardPopup-title": "Import a Trello card", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Recycle Bin.", + "no-archived-lists": "No lists in Recycle Bin.", + "no-archived-swimlanes": "No swimlanes in Recycle Bin.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creater or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by logging in.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove Cover", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "save": "Save", + "search": "Search", + "search-cards": "Search from card titles and descriptions on this board", + "search-example": "Text to search for?", + "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", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "username": "Username", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "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", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email From Wekan", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "outgoing-webhooks": "Outgoing Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Wekan_version": "Wekan version", + "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", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "createdAt": "Created at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" +} \ No newline at end of file From 766b58d91b7a76738ee7c95da2522ef62de866b1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Jun 2018 11:06:37 +0300 Subject: [PATCH 22/35] v1.08 --- CHANGELOG.md | 3 ++- Dockerfile | 3 +-- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 3 +-- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2393effdc..67bf5d07f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ -# Upcoming Wekan release +# v1.08 2018-06-27 Wekan release This release adds the following new features: * [Add more card inner shadow](https://github.com/wekan/wekan/commit/6a587299b80a49fce0789628ff65885b5ed2c837); * [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713); +* Updated newest node fork binary from Sandstorm to Wekan, see https://releases.wekan.team/node.txt * Add Georgian language. and fixes the following bugs: diff --git a/Dockerfile b/Dockerfile index 196124293..8b8b6a09c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,9 +47,8 @@ RUN \ # Fiber.poolSize = 1e9; # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm # Description at https://releases.wekan.team/node.txt - # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d wget https://releases.wekan.team/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \ - echo "509e79f1bfccc849b65bd3f207a56095dfa608f17502997e844fa9c9d01e6c20 node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \ + echo "308d0caaef0a1da3e98d1a1615016aad9659b3caf31d0f09ced20cabedb8acbf node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \ \ # Verify nodejs authenticity grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \ diff --git a/package.json b/package.json index 078e8c889..6dd212172 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "1.07.0", + "version": "1.08.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index a7d46939a..56c0640d2 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 92, + appVersion = 93, # Increment this for every release. - appMarketingVersion = (defaultText = "1.07.0~2018-06-14"), + appMarketingVersion = (defaultText = "1.07.0~2018-06-27"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index d1b89a679..b18957014 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -110,8 +110,7 @@ parts: # Fiber.poolSize = 1e9; # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm # Description at https://releases.wekan.team/node.txt - # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d - echo "5f2703af5f7bd48e85fc8ed32d61de7c7cf81c53d0dcd73f6c218ed87e950fae node" >> node-SHASUMS256.txt.asc + echo "13baa1b3114a5ea3248875e0f36cb46fcf8acd212de1fb74ba68ef4c9a4e1d93 node" >> node-SHASUMS256.txt.asc curl https://releases.wekan.team/node -o node # Verify Fibers patched node authenticity echo "Fibers 100% CPU issue patched node authenticity:" From d23ac2b385d777f6ea22cb0c78557a75ee0018b1 Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Wed, 27 Jun 2018 15:30:52 +0300 Subject: [PATCH 23/35] Restore invitation code logic --- client/components/settings/invitationCode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/settings/invitationCode.js b/client/components/settings/invitationCode.js index c02f860fc..a403d8ab8 100644 --- a/client/components/settings/invitationCode.js +++ b/client/components/settings/invitationCode.js @@ -1,6 +1,6 @@ Template.invitationCode.onRendered(() => { const setting = Settings.findOne(); - if (setting || setting.disableRegistration) { + if (!setting || !setting.disableRegistration) { $('#invitationcode').hide(); } }); From 19d239f4cf90686db9c775bb0c3899b65760b06c Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Wed, 27 Jun 2018 16:25:57 +0300 Subject: [PATCH 24/35] Prevent errors due to missing date fields --- client/components/cards/cardDate.js | 57 ++++++++++++++++++----------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index c3e0524dc..02ea09ae0 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -218,10 +218,13 @@ class CardReceivedDate extends CardDate { } classes() { - let classes = 'received-date' + ' '; - if (this.date.get().isBefore(this.now.get(), 'minute') && - this.now.get().isBefore(this.data().dueAt)) { - classes += 'current'; + let classes = 'received-date '; + const dueAt = this.data().dueAt; + if (dueAt) { + if (this.date.get().isBefore(this.now.get(), 'minute') && + this.now.get().isBefore(dueAt)) { + classes += 'current'; + } } return classes; } @@ -249,9 +252,12 @@ class CardStartDate extends CardDate { classes() { let classes = 'start-date' + ' '; - if (this.date.get().isBefore(this.now.get(), 'minute') && - this.now.get().isBefore(this.data().dueAt)) { - classes += 'current'; + const dueAt = this.data().dueAt; + if (dueAt) { + if (this.date.get().isBefore(this.now.get(), 'minute') && + this.now.get().isBefore(dueAt)) { + classes += 'current'; + } } return classes; } @@ -279,18 +285,23 @@ class CardDueDate extends CardDate { classes() { let classes = 'due-date' + ' '; + // if endAt exists & is < dueAt, dueAt doesn't need to be flagged - if ((this.data().endAt !== 0) && - (this.data().endAt !== null) && - (this.data().endAt !== '') && - (this.data().endAt !== undefined) && - (this.date.get().isBefore(this.data().endAt))) + const endAt = this.data().endAt; + const theDate = this.date.get(); + const now = this.now.get(); + + if ((endAt !== 0) && + (endAt !== null) && + (endAt !== '') && + (endAt !== undefined) && + (theDate.isBefore(endAt))) classes += 'current'; - else if (this.now.get().diff(this.date.get(), 'days') >= 2) + else if (now.diff(theDate, 'days') >= 2) classes += 'long-overdue'; - else if (this.now.get().diff(this.date.get(), 'minute') >= 0) + else if (now.diff(theDate, 'minute') >= 0) classes += 'due'; - else if (this.now.get().diff(this.date.get(), 'days') >= -1) + else if (now.diff(theDate, 'days') >= -1) classes += 'almost-due'; return classes; } @@ -318,12 +329,16 @@ class CardEndDate extends CardDate { classes() { let classes = 'end-date' + ' '; - if (this.data.dueAt.diff(this.date.get(), 'days') >= 2) - classes += 'long-overdue'; - else if (this.data.dueAt.diff(this.date.get(), 'days') > 0) - classes += 'due'; - else if (this.data.dueAt.diff(this.date.get(), 'days') <= 0) - classes += 'current'; + const dueAt = this.data.dueAt; + if (dueAt) { + const diff = dueAt.diff(this.date.get(), 'days'); + if (diff >= 2) + classes += 'long-overdue'; + else if (diff > 0) + classes += 'due'; + else if (diff <= 0) + classes += 'current'; + } return classes; } From 0394a78ecea21c0174dd0b6f1d9d31947fa3b48e Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Wed, 27 Jun 2018 17:39:29 +0300 Subject: [PATCH 25/35] Get rid of extra package staringatlights:flow-router is another incarnation of kadira:flow-router kadira:flow-router is not an explicit dependency but useraccounts:flow-routing depends on it. This commit gets rid of an anoying message informing that a route has not been found. --- .meteor/packages | 1 - .meteor/versions | 1 - 2 files changed, 2 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index 15d3aa591..8f83280f3 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -77,7 +77,6 @@ email@1.2.3 horka:swipebox dynamic-import@0.2.0 staringatlights:fast-render -staringatlights:flow-router mixmax:smart-disconnect accounts-password@1.5.0 diff --git a/.meteor/versions b/.meteor/versions index caad25fa0..a173e7e44 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -157,7 +157,6 @@ srp@1.0.10 standard-minifier-css@1.3.5 standard-minifier-js@2.2.3 staringatlights:fast-render@2.16.5 -staringatlights:flow-router@2.12.2 staringatlights:inject-data@2.0.5 stylus@2.513.13 tap:i18n@1.8.2 From 864ad3827d07653f489fc6b5ae87e6e81af7dd81 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Jun 2018 23:25:48 +0300 Subject: [PATCH 26/35] - To fix "title is required" fix only add-checklist-items and revert all other migration changes. Closes #1576, closes #1734 --- server/migrations.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/migrations.js b/server/migrations.js index 976e478c0..91ab4cb91 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -55,7 +55,7 @@ Migrations.add('lowercase-board-permission', () => { // Security migration: see https://github.com/wekan/wekan/issues/99 Migrations.add('change-attachments-type-for-non-images', () => { const newTypeForNonImage = 'application/octet-stream'; - Attachments.forEach((file) => { + Attachments.find().forEach((file) => { if (!file.isImage()) { Attachments.update(file._id, { $set: { @@ -68,7 +68,7 @@ Migrations.add('change-attachments-type-for-non-images', () => { }); Migrations.add('card-covers', () => { - Cards.forEach((card) => { + Cards.find().forEach((card) => { const cover = Attachments.findOne({ cardId: card._id, cover: true }); if (cover) { Cards.update(card._id, {$set: {coverId: cover._id}}, noValidate); @@ -86,7 +86,7 @@ Migrations.add('use-css-class-for-boards-colors', () => { '#2C3E50': 'midnight', '#E67E22': 'pumpkin', }; - Boards.forEach((board) => { + Boards.find().forEach((board) => { const oldBoardColor = board.background.color; const newBoardColor = associationTable[oldBoardColor]; Boards.update(board._id, { @@ -97,7 +97,7 @@ Migrations.add('use-css-class-for-boards-colors', () => { }); Migrations.add('denormalize-star-number-per-board', () => { - Boards.forEach((board) => { + Boards.find().forEach((board) => { const nStars = Users.find({'profile.starredBoards': board._id}).count(); Boards.update(board._id, {$set: {stars: nStars}}, noValidate); }); @@ -132,7 +132,7 @@ Migrations.add('add-member-isactive-field', () => { }); Migrations.add('add-sort-checklists', () => { - Checklists.forEach((checklist, index) => { + Checklists.find().forEach((checklist, index) => { if (!checklist.hasOwnProperty('sort')) { Checklists.direct.update( checklist._id, @@ -153,7 +153,7 @@ Migrations.add('add-sort-checklists', () => { }); Migrations.add('add-swimlanes', () => { - Boards.forEach((board) => { + Boards.find().forEach((board) => { const swimlane = Swimlanes.findOne({ boardId: board._id }); let swimlaneId = ''; if (swimlane) @@ -177,7 +177,7 @@ Migrations.add('add-swimlanes', () => { }); Migrations.add('add-views', () => { - Boards.forEach((board) => { + Boards.find().forEach((board) => { if (!board.hasOwnProperty('view')) { Boards.direct.update( { _id: board._id }, @@ -210,7 +210,7 @@ Migrations.add('add-checklist-items', () => { }); Migrations.add('add-profile-view', () => { - Users.forEach((user) => { + Users.find().forEach((user) => { if (!user.hasOwnProperty('profile.boardView')) { // Set default view Users.direct.update( From 5619eef6202f3c6f0f483310676724e89ee89632 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Jun 2018 23:37:50 +0300 Subject: [PATCH 27/35] - Restore invitation code logic. Please test and add comment to those invitation code issues that this fixes. Thanks to TNick ! --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67bf5d07f..e261c68e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +* To fix ["title is required"](https://github.com/wekan/wekan/issues/1576) fix only + add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734); +* [Restore invitation code logic](https://github.com/wekan/wekan/pull/1732). Please test and add comment + to those invitation code issues that this fixes. + +Thanks to GitHub users TNick and xet7 for their contributions. + # v1.08 2018-06-27 Wekan release This release adds the following new features: From bccfa320a96511fc9576cf127e9d28d244a22f3d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Jun 2018 23:56:15 +0300 Subject: [PATCH 28/35] - Calendar. Thanks to TNick ! --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e261c68e2..c9ed8cf28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Upcoming Wekan release -This release fixes the following bugs: +This release adds the following new features: + +* [Calendar](https://github.com/wekan/wekan/pull/1728). + +and fixes the following bugs: * To fix ["title is required"](https://github.com/wekan/wekan/issues/1576) fix only add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734); From d0611e1bffc05cc4cd66ac936a6b3c568f4a2387 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 00:09:52 +0300 Subject: [PATCH 29/35] Update translations. --- i18n/ar.i18n.json | 1 + i18n/bg.i18n.json | 1 + i18n/br.i18n.json | 1 + i18n/ca.i18n.json | 1 + i18n/cs.i18n.json | 1 + i18n/de.i18n.json | 1 + i18n/el.i18n.json | 1 + i18n/en-GB.i18n.json | 1 + i18n/eo.i18n.json | 1 + i18n/es-AR.i18n.json | 1 + i18n/es.i18n.json | 1 + i18n/eu.i18n.json | 1 + i18n/fa.i18n.json | 1 + i18n/fi.i18n.json | 1 + i18n/fr.i18n.json | 1 + i18n/gl.i18n.json | 1 + i18n/he.i18n.json | 1 + i18n/hu.i18n.json | 1 + i18n/hy.i18n.json | 1 + i18n/id.i18n.json | 1 + i18n/ig.i18n.json | 1 + i18n/it.i18n.json | 1 + i18n/ja.i18n.json | 1 + i18n/ka.i18n.json | 1 + i18n/km.i18n.json | 1 + i18n/ko.i18n.json | 1 + i18n/lv.i18n.json | 1 + i18n/mn.i18n.json | 1 + i18n/nb.i18n.json | 1 + i18n/nl.i18n.json | 1 + i18n/pl.i18n.json | 1 + i18n/pt-BR.i18n.json | 1 + i18n/pt.i18n.json | 1 + i18n/ro.i18n.json | 1 + i18n/ru.i18n.json | 1 + i18n/sr.i18n.json | 1 + i18n/sv.i18n.json | 1 + i18n/ta.i18n.json | 1 + i18n/th.i18n.json | 1 + i18n/tr.i18n.json | 1 + i18n/uk.i18n.json | 1 + i18n/vi.i18n.json | 1 + i18n/zh-CN.i18n.json | 1 + i18n/zh-TW.i18n.json | 1 + 44 files changed, 44 insertions(+) diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index e3522abf0..47c120e86 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "قائمة اللوحة", "boards": "لوحات", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "القائمات", "bucket-example": "مثل « todo list » على سبيل المثال", diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index a09cd94b2..c28743644 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Меню на Таблото", "boards": "Табла", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Коридори", "board-view-lists": "Списъци", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 58415db19..fa2c25e28 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 66b4a2c1d..5badc85e4 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menú del tauler", "boards": "Taulers", "board-view": "Visió del tauler", + "board-view-cal": "Calendar", "board-view-swimlanes": "Carrils de Natació", "board-view-lists": "Llistes", "bucket-example": "Igual que “Bucket List”, per exemple", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index aec461911..f067e9d36 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu tabla", "boards": "Tabla", "board-view": "Náhled tabla", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Seznamy", "bucket-example": "Například \"Než mě odvedou\"", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index d0973aa3b..756bc8f66 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Boardmenü", "boards": "Boards", "board-view": "Boardansicht", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listen", "bucket-example": "z.B. \"Löffelliste\"", diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index 9436d7bd4..cd00671a4 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Λίστες", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 13b0ae524..0fe7b2375 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 0ef394116..a0897302b 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listoj", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index 61a31ebb0..97a740e25 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menú del Tablero", "boards": "Tableros", "board-view": "Vista de Tablero", + "board-view-cal": "Calendar", "board-view-swimlanes": "Calles", "board-view-lists": "Listas", "bucket-example": "Como \"Lista de Contenedores\" por ejemplo", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 8a7c5cc54..fa4f2f114 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menú del tablero", "boards": "Tableros", "board-view": "Vista del tablero", + "board-view-cal": "Calendar", "board-view-swimlanes": "Carriles", "board-view-lists": "Listas", "bucket-example": "Como “Cosas por hacer” por ejemplo", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index a2d996313..9bd3510ae 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Arbelaren menua", "boards": "Arbelak", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Zerrendak", "bucket-example": "Esaterako \"Pertz zerrenda\"", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 107b5894e..caa87dedb 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "منوی تخته", "boards": "تخته‌ها", "board-view": "نمایش تخته", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "فهرست‌ها", "bucket-example": "برای مثال چیزی شبیه \"لیست سبدها\"", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 0b363b7bc..34e58d1ba 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Taulu valikko", "boards": "Taulut", "board-view": "Taulu näkymä", + "board-view-cal": "Kalenteri", "board-view-swimlanes": "Swimlanet", "board-view-lists": "Listat", "bucket-example": "Kuten “Laatikko lista” esimerkiksi", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 2cdbe2fc4..53e45eb89 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu du tableau", "boards": "Tableaux", "board-view": "Vue du tableau", + "board-view-cal": "Calendar", "board-view-swimlanes": "Couloirs", "board-view-lists": "Listes", "bucket-example": "Comme « todo list » par exemple", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 7462b1d39..25e3e662e 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Taboleiros", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listas", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 943062e1e..6d5dd8124 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "תפריט לוח", "boards": "לוחות", "board-view": "תצוגת לוח", + "board-view-cal": "Calendar", "board-view-swimlanes": "מסלולים", "board-view-lists": "רשימות", "bucket-example": "כמו למשל „רשימת המשימות“", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index a4fc3c8c8..e14e7995e 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Tábla menü", "boards": "Táblák", "board-view": "Tábla nézet", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listák", "bucket-example": "Mint például „Bakancslista”", diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index fcbb7a9a3..0911aed1e 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 8eb0d2de4..3954f67cb 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu Panel", "boards": "Panel", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Daftar", "bucket-example": "Contohnya seperti “Bucket List” ", diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index ece8e7ccf..f522a92c9 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index d3e5870fc..99c846994 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu bacheca", "boards": "Bacheche", "board-view": "Visualizza bacheca", + "board-view-cal": "Calendar", "board-view-swimlanes": "Corsie", "board-view-lists": "Liste", "bucket-example": "Per esempio come \"una lista di cose da fare\"", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 0f478842e..4b8a6d8dd 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "ボードメニュー", "boards": "ボード", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "スイムレーン", "board-view-lists": "リスト", "bucket-example": "例:バケットリスト", diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index f8f74ce73..53c2f91ab 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 29b82bf56..9484c7ccb 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index b9996c886..97963a8a6 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "보드 메뉴", "boards": "보드", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "목록들", "bucket-example": "예: “프로젝트 이름“ 입력", diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 47667c40a..46d958ccd 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 8f2475fe7..b5b97822f 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index 30e1963ba..1d09cb7c5 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Tavlemeny", "boards": "Tavler", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Som \"Bucket List\" for eksempel", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 903f6a8ff..5dd23d417 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Bord menu", "boards": "Borden", "board-view": "Bord overzicht", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lijsten", "bucket-example": "Zoals \"Bucket List\" bijvoorbeeld", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 3f618075f..1d52d2ee0 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu tablicy", "boards": "Tablice", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listy", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 3193da3e3..15496c0d2 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Menu do Quadro", "boards": "Quadros", "board-view": "Visão de quadro", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listas", "bucket-example": "\"Bucket List\", por exemplo", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 7404cc09f..9f8b9b968 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 3795e189a..0d854bbd1 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Liste", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 5ad4a4fb4..1b85c355c 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Меню доски", "boards": "Доски", "board-view": "Вид доски", + "board-view-cal": "Calendar", "board-view-swimlanes": "Дорожки", "board-view-lists": "Списки", "bucket-example": "Например “Список дел”", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 4debc5e5f..853e867db 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Meni table", "boards": "Table", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Na primer \"Lista zadataka\"", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index ba9c8f3f7..164a56207 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Anslagstavla meny", "boards": "Anslagstavlor", "board-view": "Anslagstavelsvy", + "board-view-cal": "Calendar", "board-view-swimlanes": "Simbanor", "board-view-lists": "Listor", "bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index f8f74ce73..53c2f91ab 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Boards", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 673e4d801..e7048f6ef 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "เมนูบอร์ด", "boards": "บอร์ด", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "รายการ", "bucket-example": "ตัวอย่างเช่น “ระบบที่ต้องทำ”", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index b7a351566..037981300 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Pano menüsü", "boards": "Panolar", "board-view": "Pano Görünümü", + "board-view-cal": "Calendar", "board-view-swimlanes": "Kulvarlar", "board-view-lists": "Listeler", "bucket-example": "Örn: \"Marketten Alacaklarım\"", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 1d6605d90..ef76ed5f9 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Дошки", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 9529b0161..320942e1d 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "Board Menu", "boards": "Bảng", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Lists", "bucket-example": "Like “Bucket List” for example", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index de79364c8..3205f1070 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "看板菜单", "boards": "看板", "board-view": "看板视图", + "board-view-cal": "Calendar", "board-view-swimlanes": "泳道图", "board-view-lists": "列表", "bucket-example": "例如 “目标清单”", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 043cad12a..88e9bc181 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -100,6 +100,7 @@ "boardMenuPopup-title": "看板選單", "boards": "看板", "board-view": "Board View", + "board-view-cal": "Calendar", "board-view-swimlanes": "Swimlanes", "board-view-lists": "清單", "bucket-example": "例如 “目標清單”", From 541dc67a02fbcaaddd106d9aded49c60184d9ce6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 00:14:02 +0300 Subject: [PATCH 30/35] v1.09 --- CHANGELOG.md | 4 ++-- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9ed8cf28..c7701572e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -# Upcoming Wekan release +# v1.09 2018-06-28 Wekan release This release adds the following new features: -* [Calendar](https://github.com/wekan/wekan/pull/1728). +* [Calendar](https://github.com/wekan/wekan/pull/1728). Click Lists / Swimlanes / Calendar. and fixes the following bugs: diff --git a/package.json b/package.json index 6dd212172..e61130451 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "1.08.0", + "version": "1.09.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 56c0640d2..1553133ee 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 93, + appVersion = 94, # Increment this for every release. - appMarketingVersion = (defaultText = "1.07.0~2018-06-27"), + appMarketingVersion = (defaultText = "1.09.0~2018-06-28"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From a86a8eff2dc1c1862f9ffd53fe722b01faaba8c0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 00:26:37 +0300 Subject: [PATCH 31/35] Fix typo. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7701572e..f15246229 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ This release adds the following new features: and fixes the following bugs: * To fix ["title is required"](https://github.com/wekan/wekan/issues/1576) fix only - add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734); + [add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734); * [Restore invitation code logic](https://github.com/wekan/wekan/pull/1732). Please test and add comment to those invitation code issues that this fixes. From e044769d854dbbce18f2c6af3adbdf6869156694 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 13:48:36 +0300 Subject: [PATCH 32/35] - Fix migration error "TypeError: Checklists.foreach" Thanks to Jubi94, kestrelhawk and xet7 ! Fixes #1736, fixes wekan/wekan-snap#51 --- server/migrations.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/migrations.js b/server/migrations.js index 91ab4cb91..a1a5c65a1 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -189,7 +189,7 @@ Migrations.add('add-views', () => { }); Migrations.add('add-checklist-items', () => { - Checklists.forEach((checklist) => { + Checklists.find().forEach((checklist) => { // Create new items _.sortBy(checklist.items, 'sort').forEach((item, index) => { ChecklistItems.direct.insert({ From 9fceb212d9339977d659421fef7d0c820145dd20 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 13:56:41 +0300 Subject: [PATCH 33/35] Fix migration error "TypeError: Checklists.foreach" at Snap, Docker etc. Thanks to Jubi94, kestrelhawk and xet7 ! --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f15246229..444cd9706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +* Fix migration error "TypeError: Checklists.foreach" at [Snap](https://github.com/wekan/wekan-snap/issues/51), + [Docker](https://github.com/wekan/wekan/issues/1736) etc. + +Thanks to Jubi94, kestrelhawk and xet7 ! + # v1.09 2018-06-28 Wekan release This release adds the following new features: From 5adce79842be8539f6051b951af47488c0e20cfa Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 13:59:43 +0300 Subject: [PATCH 34/35] Update translations (de) --- i18n/de.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 756bc8f66..2ae21b930 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -100,7 +100,7 @@ "boardMenuPopup-title": "Boardmenü", "boards": "Boards", "board-view": "Boardansicht", - "board-view-cal": "Calendar", + "board-view-cal": "Kalender", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listen", "bucket-example": "z.B. \"Löffelliste\"", From ad54a8a48404a84b0bf5ff7dab5348be6dda574e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 28 Jun 2018 14:02:57 +0300 Subject: [PATCH 35/35] v1.10 --- CHANGELOG.md | 4 ++-- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 444cd9706..56fc9f2a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ -# Upcoming Wekan release +# v1.10 2018-06-28 Wekan release This release fixes the following bugs: * Fix migration error "TypeError: Checklists.foreach" at [Snap](https://github.com/wekan/wekan-snap/issues/51), [Docker](https://github.com/wekan/wekan/issues/1736) etc. -Thanks to Jubi94, kestrelhawk and xet7 ! +Thanks to GitHub users Jubi94, kestrelhawk and xet7 for their contributions. # v1.09 2018-06-28 Wekan release diff --git a/package.json b/package.json index e61130451..e3f7b0d84 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "1.09.0", + "version": "1.10.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 1553133ee..6dccb65de 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 94, + appVersion = 95, # Increment this for every release. - appMarketingVersion = (defaultText = "1.09.0~2018-06-28"), + appMarketingVersion = (defaultText = "1.10.0~2018-06-28"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0,