summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicu Tofan <nicu.tofan@gmail.com>2018-07-05 20:17:18 +0300
committerNicu Tofan <nicu.tofan@gmail.com>2018-07-05 20:17:18 +0300
commit243797d2e94a09a5a59e816cb18ce125673016aa (patch)
treebde7eae555957062b57fdfba775ebbb0e9ff22fc
parentdb5ff4e1e2640b7312533cb276b545c4b9920110 (diff)
parentc997786e6435a7e5728eab32c0e24bd458db75ae (diff)
downloadwekan-243797d2e94a09a5a59e816cb18ce125673016aa.tar.gz
wekan-243797d2e94a09a5a59e816cb18ce125673016aa.tar.bz2
wekan-243797d2e94a09a5a59e816cb18ce125673016aa.zip
Merge branch 'upstream-devel' into calendar
-rw-r--r--CHANGELOG.md50
-rw-r--r--Dockerfile3
-rw-r--r--client/components/cards/cardDate.js2
-rw-r--r--client/components/cards/minicard.styl6
-rw-r--r--client/components/settings/invitationCode.js2
-rw-r--r--client/components/sidebar/sidebarFilters.jade4
-rw-r--r--client/components/users/userAvatar.jade2
-rw-r--r--i18n/ar.i18n.json1
-rw-r--r--i18n/bg.i18n.json1
-rw-r--r--i18n/br.i18n.json1
-rw-r--r--i18n/ca.i18n.json1
-rw-r--r--i18n/cs.i18n.json1
-rw-r--r--i18n/de.i18n.json1
-rw-r--r--i18n/el.i18n.json1
-rw-r--r--i18n/en-GB.i18n.json1
-rw-r--r--i18n/eo.i18n.json1
-rw-r--r--i18n/es-AR.i18n.json1
-rw-r--r--i18n/es.i18n.json1
-rw-r--r--i18n/eu.i18n.json1
-rw-r--r--i18n/fa.i18n.json1
-rw-r--r--i18n/fi.i18n.json1
-rw-r--r--i18n/fr.i18n.json1
-rw-r--r--i18n/gl.i18n.json1
-rw-r--r--i18n/he.i18n.json1
-rw-r--r--i18n/hu.i18n.json1
-rw-r--r--i18n/hy.i18n.json1
-rw-r--r--i18n/id.i18n.json1
-rw-r--r--i18n/ig.i18n.json1
-rw-r--r--i18n/it.i18n.json1
-rw-r--r--i18n/ja.i18n.json1
-rw-r--r--i18n/ka.i18n.json479
-rw-r--r--i18n/km.i18n.json1
-rw-r--r--i18n/ko.i18n.json1
-rw-r--r--i18n/lv.i18n.json1
-rw-r--r--i18n/mn.i18n.json1
-rw-r--r--i18n/nb.i18n.json1
-rw-r--r--i18n/nl.i18n.json1
-rw-r--r--i18n/pl.i18n.json1
-rw-r--r--i18n/pt-BR.i18n.json1
-rw-r--r--i18n/pt.i18n.json1
-rw-r--r--i18n/ro.i18n.json1
-rw-r--r--i18n/ru.i18n.json1
-rw-r--r--i18n/sr.i18n.json1
-rw-r--r--i18n/sv.i18n.json27
-rw-r--r--i18n/ta.i18n.json1
-rw-r--r--i18n/th.i18n.json1
-rw-r--r--i18n/tr.i18n.json1
-rw-r--r--i18n/uk.i18n.json1
-rw-r--r--i18n/vi.i18n.json1
-rw-r--r--i18n/zh-CN.i18n.json1
-rw-r--r--i18n/zh-TW.i18n.json1
-rw-r--r--package.json2
-rw-r--r--sandstorm-pkgdef.capnp4
-rw-r--r--server/migrations.js18
-rw-r--r--snapcraft.yaml3
55 files changed, 606 insertions, 38 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d3c4aa55..b23eb958 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,15 +1,63 @@
# Upcoming Wekan release
+This release fixes the following bugs:
+
+- [Fix warning about missing space in jade file](https://github.com/wekan/wekan/commit/067aef9de948ef0cb6037d52602100b00d214706);
+- Revert [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714), so that [initials are again
+ visible](https://github.com/wekan/wekan/commit/122a61b3333fb77c0f08bbdc6fe0d3c2f6db97df);
+- Fix lint warning: [EditCardDate is assigned a value but never used
+ no-unused-vars](https://github.com/wekan/wekan/commit/dd324aa581bed7ea31f20968c6b596f373e7054f).
+
+Thanks to GitHub users pravdomil and xet7 for their contributions.
+
+# v1.11 2018-06-30 Wekan release
+
+This release fixes the following bugs:
+
+* [Remove card shadow](https://github.com/wekan/wekan/pull/1726), Wekan users now prefer not to have it;
+* [Revert](https://github.com/wekan/wekan/commit/928d88cfe1da4187797519c929cd2fdd9ffe9c2e) previous
+ [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713).
+
+Thanks to GitHub users pravdomil and xet7 for their contributions.
+
+# 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 GitHub users Jubi94, kestrelhawk and xet7 for their contributions.
+
+# v1.09 2018-06-28 Wekan release
+
+This release adds the following new features:
+
+* [Calendar](https://github.com/wekan/wekan/pull/1728). Click Lists / Swimlanes / Calendar.
+
+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);
+* [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:
* [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:
* [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).
diff --git a/Dockerfile b/Dockerfile
index 19612429..8b8b6a09 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/client/components/cards/cardDate.js b/client/components/cards/cardDate.js
index 02ea09ae..b0f2baa3 100644
--- a/client/components/cards/cardDate.js
+++ b/client/components/cards/cardDate.js
@@ -1,5 +1,5 @@
// Edit received, start, due & end dates
-const EditCardDate = BlazeComponent.extendComponent({
+BlazeComponent.extendComponent({
template() {
return 'editCardDate';
},
diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl
index 391a6316..b89805be 100644
--- a/client/components/cards/minicard.styl
+++ b/client/components/cards/minicard.styl
@@ -5,11 +5,11 @@
position: relative
display: flex
align-items: center
- margin-bottom: 2px
+ margin-bottom: 9px
&.placeholder
background: darken(white, 20%)
- border-radius: 2px
+ border-radius: 9px
&.ui-sortable-helper
cursor: grabbing
@@ -37,7 +37,7 @@
flex-wrap: wrap
background-color: #fff
min-height: 20px
- box-shadow: 0 0px 16px rgba(0,0,0,0.15) inset
+ box-shadow: 0 1px 2px rgba(0,0,0,.15)
border-radius: 2px
color: #4d4d4d
overflow: hidden
diff --git a/client/components/settings/invitationCode.js b/client/components/settings/invitationCode.js
index c02f860f..a403d8ab 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();
}
});
diff --git a/client/components/sidebar/sidebarFilters.jade b/client/components/sidebar/sidebarFilters.jade
index 514870b8..f11528b1 100644
--- a/client/components/sidebar/sidebarFilters.jade
+++ b/client/components/sidebar/sidebarFilters.jade
@@ -52,9 +52,9 @@ template(name="filterSidebar")
li(class="{{#if Filter.customFields.isSelected _id}}active{{/if}}")
a.name.js-toggle-custom-fields-filter
span.sidebar-list-item-description
- {{ name }}
+ | {{ name }}
if Filter.customFields.isSelected _id
- i.fa.fa-check
+ i.fa.fa-check
hr
span {{_ 'advanced-filter-label'}}
input.js-field-advanced-filter(type="text")
diff --git a/client/components/users/userAvatar.jade b/client/components/users/userAvatar.jade
index df2ac461..83e2c8d0 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="50%" text-anchor="middle" alignment-baseline="central")= initials
+ text(x="50%" y="13" text-anchor="middle")= initials
template(name="userPopup")
.board-member-menu
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index e3522abf..47c120e8 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 a09cd94b..c2874364 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 58415db1..fa2c25e2 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 66b4a2c1..5badc85e 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 aec46191..f067e9d3 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 d0973aa3..2ae21b93 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": "Kalender",
"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 9436d7bd..cd00671a 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 13b0ae52..0fe7b237 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 0ef39411..a0897302 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 61a31ebb..97a740e2 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 8a7c5cc5..fa4f2f11 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 a2d99631..9bd3510a 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 107b5894..caa87ded 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 0b363b7b..34e58d1b 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 2cdbe2fc..cae8c836 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": "Calendrier",
"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 7462b1d3..25e3e662 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 943062e1..6d5dd812 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 a4fc3c8c..e14e7995 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 fcbb7a9a..0911aed1 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 8eb0d2de..3954f67c 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 ece8e7cc..f522a92c 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 d3e5870f..99c84699 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 0f478842..4b8a6d8d 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
new file mode 100644
index 00000000..53c2f91a
--- /dev/null
+++ b/i18n/ka.i18n.json
@@ -0,0 +1,479 @@
+{
+ "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 <strong>private</strong>.",
+ "board-public-info": "This board will be <strong>public</strong>.",
+ "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-cal": "Calendar",
+ "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 <a href='%s'>logging in</a>.",
+ "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
diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json
index 29b82bf5..9484c7cc 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 b9996c88..97963a8a 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 47667c40..46d958cc 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 8f2475fe..b5b97822 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 30e1963b..1d09cb7c 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 903f6a8f..5dd23d41 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 3f618075..1d52d2ee 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 3193da3e..15496c0d 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 7404cc09..9f8b9b96 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 3795e189..0d854bbd 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 5ad4a4fb..1b85c355 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 4debc5e5..853e867d 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 c91f1928..164a5620 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -99,7 +99,8 @@
"boardChangeWatchPopup-title": "Ändra bevaka",
"boardMenuPopup-title": "Anslagstavla meny",
"boards": "Anslagstavlor",
- "board-view": "Board View",
+ "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",
@@ -108,7 +109,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 +147,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 +166,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 +179,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 +248,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 +289,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 +437,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 +472,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
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index f8f74ce7..53c2f91a 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 673e4d80..e7048f6e 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 b7a35156..03798130 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 1d6605d9..ef76ed5f 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 9529b016..320942e1 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 de79364c..3205f107 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 043cad12..88e9bc18 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": "例如 “目標清單”",
diff --git a/package.json b/package.json
index 078e8c88..117baa70 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "1.07.0",
+ "version": "1.11.0",
"description": "The open-source Trello-like kanban",
"private": true,
"scripts": {
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index a7d46939..22f53168 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 = 96,
# Increment this for every release.
- appMarketingVersion = (defaultText = "1.07.0~2018-06-14"),
+ appMarketingVersion = (defaultText = "1.11.0~2018-06-30"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
diff --git a/server/migrations.js b/server/migrations.js
index 976e478c..a1a5c65a 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 },
@@ -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({
@@ -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(
diff --git a/snapcraft.yaml b/snapcraft.yaml
index d1b89a67..b1895701 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:"