diff options
73 files changed, 503 insertions, 2678 deletions
diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile new file mode 100644 index 00000000..be6e71f5 --- /dev/null +++ b/.gitpod.Dockerfile @@ -0,0 +1,10 @@ +FROM gitpod/workspace-mongodb + +USER gitpod + +# Install custom tools, runtime, etc. using apt-get +# For example, the command below would install "bastet" - a command line tetris clone: +# +# RUN sudo apt-get -q update && # sudo apt-get install -yq bastet && # sudo rm -rf /var/lib/apt/lists/* +# +# More information: https://www.gitpod.io/docs/config-docker/ diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000..6463af3b --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,4 @@ +tasks: + - init: npm install +image: + file: .gitpod.Dockerfile diff --git a/.sandstorm-meteor-1.8/package-lock.json b/.sandstorm-meteor-1.8/package-lock.json index d46097ee..b00234e7 100644 --- a/.sandstorm-meteor-1.8/package-lock.json +++ b/.sandstorm-meteor-1.8/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v3.92.0", + "version": "v3.94.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/.sandstorm-meteor-1.8/package.json b/.sandstorm-meteor-1.8/package.json index 6e6f2b5a..50db4726 100644 --- a/.sandstorm-meteor-1.8/package.json +++ b/.sandstorm-meteor-1.8/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v3.92.0", + "version": "v3.94.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/.travis.yml b/.travis.yml index 52da07c3..2081aad0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ sudo: required env: TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0 - TRAVIS_NODE_VERSION: 12.15.0 + TRAVIS_NODE_VERSION: 12.16.2 TRAVIS_NPM_VERSION: latest before_install: diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b750b8..248872b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,67 @@ +# Upcoming Wekan release + +This release adds the following new features: + +- [Add gitpod config](https://github.com/wekan/wekan/pull/3009). + This adds support for Gitpod.io, a free automated + dev environment that makes contributing and generally working on GitHub + projects much easier. It allows anyone to start a ready-to-code dev + environment for any branch, issue and pull request with a single click. + Thanks to juniormendonca. + +and fixes the following bugs: + +- [Fix styling issue in notifications drawer](https://github.com/wekan/wekan/pull/3012). + Thanks to boeserwolf. +- [Fix error in notifications cleanup cron](https://github.com/wekan/wekan/pull/3010). + Thanks to jtbairdsr. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v3.95 2020-04-12 Wekan release + +This release adds the following new features: + +- Upgrade Sandstorm Wekan to Meteor 1.10.1 and Node 12.x. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v3.94 2020-04-12 Wekan release + +This release adds the following new features: + +- [Public vote](https://github.com/wekan/wekan/pull/3006). + Thanks to NicoP-S. +- [Add robots.txt disallow all](https://github.com/wekan/wekan/commit/3fae5355d40055757bf4a5f0c503581195609720). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v3.93 2020-04-10 Wekan release + +This release adds the following new features: + +- [Trello vote import & hide export button if with_api is + disabled](https://github.com/wekan/wekan/pull/3000). + Thanks to NicoP-S. +- [When adding a user to a board that has subtasks, also add user to the subtask + board](https://github.com/wekan/wekan/pull/3004). + Thanks to slvrpdr. + +and adds the following updates: + +- Upgrade to Node v12.16.2 [Part1](https://github.com/wekan/wekan/commit/6db717b9b384fe1491063e507b80e67791a07e3a) + and [Part2](https://github.com/wekan/wekan/commit/268d7fcb32186a902a84e7f6d80c50b1f3790bad). + Thanks to Node developers and xet7. + +and fixes the following bugs: + +- [Fix bug that prevents editing or deleting + comments](https://github.com/wekan/wekan/pull/3005). + Thanks to jtbairdsr. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v3.92 2020-04-09 Wekan release This release adds the following new features: @@ -67,7 +131,7 @@ and fixes the following bugs: - [Fix start-wekan.sh MongoDB port to 27017](https://github.com/wekan/wekan/commit/c60a092fc0ed9fe15c417bcb443b1e3e3aaedf7e). Thanks to Keelan and xet7. - + Thanks to above GitHub users for their contributions and translators for their translations. # v3.87 2020-04-01 Wekan release @@ -107,7 +171,7 @@ This release fixes the following bugs: @member mention not close card, and disabling clicking of @member mention](https://github.com/wekan/wekan/commit/b9099a8b7ea6f63c79bdcbb871cb993b2cb7e325). Thanks to xet7 ! - + Thanks to above GitHub users for their contributions and translators for their translations. # v3.85 2020-03-23 Wekan release @@ -6,7 +6,7 @@ LABEL maintainer="wekan" # ENV BUILD_DEPS="paxctl" ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \ DEBUG=false \ - NODE_VERSION=v12.16.1 \ + NODE_VERSION=v12.16.2 \ METEOR_RELEASE=1.10-rc.2 \ USE_EDGE=false \ METEOR_EDGE=1.5-beta.17 \ @@ -1,3 +1,5 @@ +[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/wekan/wekan) + # Wekan - Open Source kanban [![Contributors](https://img.shields.io/github/contributors/wekan/wekan.svg "Contributors")](https://github.com/wekan/wekan/graphs/contributors) diff --git a/Stackerfile.yml b/Stackerfile.yml index 103baae9..ca8eaa5d 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v3.92.0" +appVersion: "v3.94.0" files: userUploads: - README.md diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js index 36214e19..5d356f6e 100644 --- a/client/components/activities/activities.js +++ b/client/components/activities/activities.js @@ -180,7 +180,7 @@ BlazeComponent.extendComponent({ { // XXX We should use Popup.afterConfirmation here 'click .js-delete-comment'() { - const commentId = this.currentData().commentId; + const commentId = this.currentData().activity.commentId; CardComments.remove(commentId); }, 'submit .js-edit-comment'(evt) { @@ -188,7 +188,7 @@ BlazeComponent.extendComponent({ const commentText = this.currentComponent() .getValue() .trim(); - const commentId = Template.parentData().commentId; + const commentId = Template.parentData().activity.commentId; if (commentText) { CardComments.update(commentId, { $set: { diff --git a/client/components/notifications/notificationsDrawer.styl b/client/components/notifications/notificationsDrawer.styl index b64f13f4..f99e1299 100644 --- a/client/components/notifications/notificationsDrawer.styl +++ b/client/components/notifications/notificationsDrawer.styl @@ -10,8 +10,7 @@ section#notifications-drawer border-radius: 2px max-height: calc(100vh - 28px - 36px) color: black - padding-top 36px; - overflow: scroll + padding-top 36px a:hover color: belize !important @@ -66,3 +65,5 @@ section#notifications-drawer display: block padding: 0px 16px margin: 0 + height: calc(100vh - 102px) + overflow-y: scroll diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index 72c8f003..004841e8 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "تغير التاريخ", "cardCustomFieldsPopup-title": "تعديل الحقل المعدل", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "حذف البطاقة ?", diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 4f422d0f..cc3b5a88 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Промени датата", "cardCustomFieldsPopup-title": "Промени собствените полета", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Желаете да изтриете картата?", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 10a33923..d7834c94 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Diverkañ ar gartenn ?", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 133d62ec..b363a47f 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Canviar data", "cardCustomFieldsPopup-title": "Editar camps personalitzats", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Esborrar fitxa?", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index 61b2ed98..96f2385f 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Změnit datum", "cardCustomFieldsPopup-title": "Upravit vlastní pole", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Smazat kartu?", diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index bfdd49c9..6645d691 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index d3537f77..3a0039eb 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Datum ändern", "cardCustomFieldsPopup-title": "Benutzerdefinierte Felder editieren", "cardStartVotingPopup-title": "Abstimmung starten", + "positiveVoteMembersPopup-title": "Befürworter", + "negativeVoteMembersPopup-title": "Gegner", "vote-question": "Abstimmen über", + "vote-public": "Öffentliche Abstimmung", "vote-for-it": "Dafür", "vote-against": "Dagegen", "cardDeletePopup-title": "Karte löschen?", diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index ecda7dc3..7d2e5ae3 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Διαγραφή Κάρτας;", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 2b171936..a9fd0ce7 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index d665a419..3491fabf 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index 105cae2a..5ee7aa4a 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Cambiar fecha", "cardCustomFieldsPopup-title": "Editar campos personalizados", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "¿Borrar Tarjeta?", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 6e47523e..ae11d005 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Cambiar la fecha", "cardCustomFieldsPopup-title": "Editar los campos personalizados", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "¿Eliminar la tarjeta?", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index 469b4692..5492c427 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Ezabatu txartela?", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 5d27144b..b26850d7 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -64,7 +64,7 @@ "activity-unchecked-item": "چک نشده %s در چک لیست %s از %s", "activity-checklist-added": "سیاهه به %s اضافه شد", "activity-checklist-removed": "از چک لیست حذف گردید", - "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-completed": "چکلیست انجام شده %s از %s", "activity-checklist-uncompleted": "تمام نشده ها در چک لیست %s از %s", "activity-checklist-item-added": "added checklist item to '%s' in %s", "activity-checklist-item-removed": "حذف شده از چک لیست '%s' در %s", @@ -152,8 +152,8 @@ "card-spent": "زمان صرف شده", "card-edit-attachments": "ویرایش ضمائم", "card-edit-custom-fields": "ویرایش فیلدهای شخصی", - "card-start-voting": "Start voting", - "card-cancel-voting": "Delete voting and all votes", + "card-start-voting": "شروع رای گیری", + "card-cancel-voting": "حذف رای گیری و همه آرا", "card-edit-labels": "ویرایش برچسب", "card-edit-members": "ویرایش اعضا", "card-labels-title": "تغییر برچسب کارت", @@ -163,8 +163,11 @@ "cardAttachmentsPopup-title": "ضمیمه از", "cardCustomField-datePopup-title": "تغییر تاریخ", "cardCustomFieldsPopup-title": "ویرایش فیلدهای شخصی", - "cardStartVotingPopup-title": "Start a vote", - "vote-question": "Voting question", + "cardStartVotingPopup-title": "شروع به رای", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "vote-question": "سوال رای گیری", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟", @@ -764,14 +767,14 @@ "cardAssigneesPopup-title": "Assignee", "addmore-detail": "Add a more detailed description", "show-on-card": "Show on Card", - "new": "New", - "editUserPopup-title": "Edit User", - "newUserPopup-title": "New User", - "notifications": "Notifications", - "view-all": "View All", - "filter-by-unread": "Filter by Unread", - "mark-all-as-read": "Mark all as read", - "remove-all-read": "Remove all read", + "new": "جدید", + "editUserPopup-title": "ویرایش کاربر", + "newUserPopup-title": "کاربر جدید", + "notifications": "اعلانها", + "view-all": "مشاهده همه", + "filter-by-unread": "فیلتر با خوانده نشده", + "mark-all-as-read": "علامت همه به خوانده شده", + "remove-all-read": "حذف همه خوانده شده", "allow-rename": "Allow Rename", "allowRenamePopup-title": "Allow Rename" } diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 2d210f14..a5fe05a6 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Muokkaa päivää", "cardCustomFieldsPopup-title": "Muokkaa mukautettuja kenttiä", "cardStartVotingPopup-title": "Äänestä", + "positiveVoteMembersPopup-title": "Kannattajat", + "negativeVoteMembersPopup-title": "Vastustajat", "vote-question": "Äänestys kysymys", + "vote-public": "Julkinen äänestys", "vote-for-it": "puolesta", "vote-against": "vastaan", "cardDeletePopup-title": "Poista kortti?", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 905308f0..d087c643 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Modifier la date", "cardCustomFieldsPopup-title": "Éditer les champs personnalisés", "cardStartVotingPopup-title": "Commencer un vote", + "positiveVoteMembersPopup-title": "Pour", + "negativeVoteMembersPopup-title": "Contre", "vote-question": "Question du vote", + "vote-public": "Vote public", "vote-for-it": "pour", "vote-against": "contre", "cardDeletePopup-title": "Supprimer la carte ?", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index bd7db55c..c3c22614 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 5a332086..5c6b84e5 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -152,7 +152,7 @@ "card-spent": "זמן שהושקע", "card-edit-attachments": "עריכת קבצים מצורפים", "card-edit-custom-fields": "עריכת שדות בהתאמה אישית", - "card-start-voting": "התחילו להצביע", + "card-start-voting": "ניתן להצביע", "card-cancel-voting": "מחיקת אפשרות ההצבעה ואת כל הקולות", "card-edit-labels": "עריכת תוויות", "card-edit-members": "עריכת חברים", @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "החלפת תאריך", "cardCustomFieldsPopup-title": "עריכת שדות בהתאמה אישית", "cardStartVotingPopup-title": "התחלת הצבעה", + "positiveVoteMembersPopup-title": "תומכים", + "negativeVoteMembersPopup-title": "יריבים", "vote-question": "שאלת הסקר", + "vote-public": "הצבעה ציבורית", "vote-for-it": "בעד", "vote-against": "נגד", "cardDeletePopup-title": "למחוק כרטיס?", diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index b1e18bac..eb64bf6b 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "तारीख बदलें", "cardCustomFieldsPopup-title": "संपादित करें प्रचलन क्षेत्र", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "मिटाएँ कार्ड?", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 7584e861..ea82b788 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Dátum megváltoztatása", "cardCustomFieldsPopup-title": "Egyéni mezők szerkesztése", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Törli a kártyát?", diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index 62a05875..0a7e06f9 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index d7ae48a2..3154f987 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Hapus kartu", diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 14fc63cd..bea9f57f 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index 921fd36d..f089203f 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -152,8 +152,8 @@ "card-spent": "Tempo trascorso", "card-edit-attachments": "Modifica allegati", "card-edit-custom-fields": "Modifica campo personalizzato", - "card-start-voting": "Start voting", - "card-cancel-voting": "Delete voting and all votes", + "card-start-voting": "Inizia a votare", + "card-cancel-voting": "Cancella votazione e tutti i voti", "card-edit-labels": "Modifica etichette", "card-edit-members": "Modifica membri", "card-labels-title": "Cambia le etichette per questa scheda.", @@ -163,10 +163,13 @@ "cardAttachmentsPopup-title": "Allega da", "cardCustomField-datePopup-title": "Cambia data", "cardCustomFieldsPopup-title": "Modifica campo personalizzato", - "cardStartVotingPopup-title": "Start a vote", - "vote-question": "Voting question", - "vote-for-it": "for it", - "vote-against": "against", + "cardStartVotingPopup-title": "Inizia una votazione", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "vote-question": "Domanda di votazione", + "vote-public": "Public vote", + "vote-for-it": "a favore", + "vote-against": "contro", "cardDeletePopup-title": "Elimina scheda?", "cardDetailsActionsPopup-title": "Azioni scheda", "cardLabelsPopup-title": "Etichette", @@ -325,7 +328,7 @@ "filter-clear": "Pulisci filtri", "filter-no-label": "Nessuna etichetta", "filter-no-member": "Nessun membro", - "filter-no-assignee": "No assignee", + "filter-no-assignee": "Nessun assegnatario", "filter-no-custom-fields": "Nessun campo personalizzato", "filter-show-archive": "Mostra le liste archiviate", "filter-hide-empty": "Nascondi liste vuote", @@ -771,7 +774,7 @@ "view-all": "Mostra Tutto", "filter-by-unread": "Filtra per non letto", "mark-all-as-read": "Segna come letto", - "remove-all-read": "Remove all read", + "remove-all-read": "Rimuovi tutti i già letti", "allow-rename": "Consenti Rinomina", "allowRenamePopup-title": "Consenti Rinomina" } diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 7b12f472..ce21e9a4 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -152,8 +152,8 @@ "card-spent": "作業時間", "card-edit-attachments": "添付ファイルの編集", "card-edit-custom-fields": "カスタムフィールドの編集", - "card-start-voting": "Start voting", - "card-cancel-voting": "Delete voting and all votes", + "card-start-voting": "投票を開始", + "card-cancel-voting": "投票と全ての結果を削除", "card-edit-labels": "ラベルの編集", "card-edit-members": "メンバーの編集", "card-labels-title": "カードのラベルを変更する", @@ -163,10 +163,13 @@ "cardAttachmentsPopup-title": "添付元", "cardCustomField-datePopup-title": "日時変更", "cardCustomFieldsPopup-title": "カスタムフィールドの編集", - "cardStartVotingPopup-title": "Start a vote", - "vote-question": "Voting question", - "vote-for-it": "for it", - "vote-against": "against", + "cardStartVotingPopup-title": "投票を開始", + "positiveVoteMembersPopup-title": "支持者", + "negativeVoteMembersPopup-title": "反対者", + "vote-question": "投票の質問事項", + "vote-public": "投票を公開", + "vote-for-it": "賛成", + "vote-against": "反対", "cardDeletePopup-title": "カードを削除しますか?", "cardDetailsActionsPopup-title": "カード操作", "cardLabelsPopup-title": "ラベル", @@ -325,7 +328,7 @@ "filter-clear": "フィルターの解除", "filter-no-label": "ラベルなし", "filter-no-member": "メンバーなし", - "filter-no-assignee": "No assignee", + "filter-no-assignee": "担当者なし", "filter-no-custom-fields": "カスタムフィールドなし", "filter-show-archive": "アーカイブされたリストを表示", "filter-hide-empty": "空のリストを隠す", @@ -447,7 +450,7 @@ "save": "保存", "search": "検索", "rules": "ルール", - "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-cards": "このボード上のカード/リストタイトル、詳細、カスタムフィールドから検索", "search-example": "検索文字", "select-color": "色を選択", "set-wip-limit-value": "このリスト中のタスクの最大数を設定", @@ -771,7 +774,7 @@ "view-all": "全てを表示", "filter-by-unread": "未読でフィルタ", "mark-all-as-read": "全て既読にする", - "remove-all-read": "Remove all read", + "remove-all-read": "全ての既読を削除", "allow-rename": "リネームを許可する", "allowRenamePopup-title": "リネームを許可する" } diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index 18bc006a..705011cf 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "დროის ცვლილება", "cardCustomFieldsPopup-title": "მომხმარებლის ველის შესწორება", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "წავშალოთ ბარათი? ", diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 364e9bfd..8a4ca3bb 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 51ba3420..8e56fadf 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "카드를 삭제합니까?", diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 1cc06023..1908cfd4 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 2e053004..ef45fb48 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Промени датата", "cardCustomFieldsPopup-title": "Промени собствените полета", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Желаете да изтриете картата?", diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index c16ae1f5..d38cd6a8 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index ac961e28..5e87b744 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Slett kort?", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index b5e22f81..8a576746 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -152,8 +152,8 @@ "card-spent": "Gespendeerde tijd", "card-edit-attachments": "Wijzig bijlagen", "card-edit-custom-fields": "Wijzig maatwerkvelden", - "card-start-voting": "Start voting", - "card-cancel-voting": "Delete voting and all votes", + "card-start-voting": "Start stemming", + "card-cancel-voting": "Verwijder stemming en verwijder stemmen", "card-edit-labels": "Wijzig labels", "card-edit-members": "Wijzig leden", "card-labels-title": "Wijzig de labels van de kaart.", @@ -163,10 +163,13 @@ "cardAttachmentsPopup-title": "Voeg bestand toe vanuit", "cardCustomField-datePopup-title": "Wijzigingsdatum", "cardCustomFieldsPopup-title": "Wijzig maatwerkvelden", - "cardStartVotingPopup-title": "Start a vote", - "vote-question": "Voting question", - "vote-for-it": "for it", - "vote-against": "against", + "cardStartVotingPopup-title": "Start een stemming", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "vote-question": "Stemvraag", + "vote-public": "Public vote", + "vote-for-it": "Voor", + "vote-against": "tegen", "cardDeletePopup-title": "Kaart verwijderen?", "cardDetailsActionsPopup-title": "Kaart actie ondernemen", "cardLabelsPopup-title": "Labels", @@ -325,7 +328,7 @@ "filter-clear": "Wis filter", "filter-no-label": "Geen label", "filter-no-member": "Geen lid", - "filter-no-assignee": "No assignee", + "filter-no-assignee": "Niemand toegewezen", "filter-no-custom-fields": "Geen maatwerkvelden", "filter-show-archive": "Toon gearchiveerde lijsten", "filter-hide-empty": "Verberg lege lijsten", @@ -771,7 +774,7 @@ "view-all": "Bekijk alles", "filter-by-unread": "Filter op Ongelezen", "mark-all-as-read": "Markeer alles als gelezen", - "remove-all-read": "Remove all read", + "remove-all-read": "verwijder alle gelezen", "allow-rename": "Sta Hernoemen toe", "allowRenamePopup-title": "Sta Hernoemen toe" } diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json index 81971fe1..9522b5c3 100644 --- a/i18n/oc.i18n.json +++ b/i18n/oc.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Cambiar la data", "cardCustomFieldsPopup-title": "Cambiar los camps personalizats", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Suprimir la carta?", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 0f4e66ec..27630664 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Zmień datę", "cardCustomFieldsPopup-title": "Edytuj niestandardowe pola", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Usunąć kartę?", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 01586cdb..d9ed7752 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Mudar data", "cardCustomFieldsPopup-title": "Editar campos customizados", "cardStartVotingPopup-title": "Iniciar um voto", + "positiveVoteMembersPopup-title": "Proponentes", + "negativeVoteMembersPopup-title": "Oponentes", "vote-question": "Questão em votação", + "vote-public": "Voto público", "vote-for-it": "a favor", "vote-against": "contra", "cardDeletePopup-title": "Excluir Cartão?", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 2323c79b..245ebfc1 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Alterar a data", "cardCustomFieldsPopup-title": "Editar campos personalizados", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Apagar Cartão?", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 090be43c..af5a719b 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index a6cec3fc..53ca30a5 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -64,7 +64,7 @@ "activity-unchecked-item": "снял %s в контрольном списке %s в %s", "activity-checklist-added": "добавил контрольный список в %s", "activity-checklist-removed": "удалил контрольный список из %s", - "activity-checklist-completed": "завершил чек-лист %s в %s", + "activity-checklist-completed": "завершил контрольный список %s в %s", "activity-checklist-uncompleted": "вновь открыл контрольный список %s в %s", "activity-checklist-item-added": "добавил пункт в контрольный список '%s' в карточке %s", "activity-checklist-item-removed": "удалил пункт из контрольного списка '%s' в карточке %s", @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Изменить дату", "cardCustomFieldsPopup-title": "редактировать настраиваемые поля", "cardStartVotingPopup-title": "Голосовать", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Вопрос для голосования", + "vote-public": "Public vote", "vote-for-it": "за", "vote-against": "против", "cardDeletePopup-title": "Удалить карточку?", @@ -771,7 +774,7 @@ "view-all": "Показать все", "filter-by-unread": "Фильтр по непрочитанным", "mark-all-as-read": "Отметить все как прочитанные", - "remove-all-read": "Remove all read", + "remove-all-read": "Удалить все прочитанные", "allow-rename": "Разрешить переименование", "allowRenamePopup-title": "Разрешить переименование" } diff --git a/i18n/sl.i18n.json b/i18n/sl.i18n.json index 19d1597d..65eff014 100644 --- a/i18n/sl.i18n.json +++ b/i18n/sl.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Spremeni datum", "cardCustomFieldsPopup-title": "Uredi poljubna polja", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Briši kartico?", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index be0241be..08e3df5a 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -79,30 +79,30 @@ "add-board": "Add Board", "add-card": "Dodaj karticu", "add-swimlane": "Add Swimlane", - "add-subtask": "Add Subtask", + "add-subtask": "Dodaj podzadatak", "add-checklist": "Add Checklist", "add-checklist-item": "Dodaj novu stavku u listu", "add-cover": "Dodaj zaglavlje", - "add-label": "Add Label", + "add-label": "Dodaj oznaku", "add-list": "Dodaj Listu", - "add-members": "Dodaj Članove", + "add-members": "Dodaj članove", "added": "Dodao", "addMemberPopup-title": "Članovi", "admin": "Administrator", "admin-desc": "Može da pregleda i menja kartice, uklanja članove i menja podešavanja table", - "admin-announcement": "Announcement", + "admin-announcement": "Najava", "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", + "admin-announcement-title": "Najava za administratora", "all-boards": "Sve table", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", "apply": "Primeni", "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", - "archive": "Move to Archive", - "archive-all": "Move All to Archive", + "archive": "Premesti u arhivu", + "archive-all": "Premesti sve u arhivu", "archive-board": "Move Board to Archive", - "archive-card": "Move Card to Archive", - "archive-list": "Move List to Archive", + "archive-card": "Premesti karticu u arhivu", + "archive-list": "Premesti listu u arhivu", "archive-swimlane": "Move Swimlane to Archive", "archive-selection": "Move selection to Archive", "archiveBoardPopup-title": "Move Board to Archive?", @@ -117,7 +117,7 @@ "attached": "Prikačeno", "attachment": "Prikačeni dokument", "attachment-delete-pop": "Brisanje prikačenog dokumenta je trajno. Ne postoji vraćanje obrisanog.", - "attachmentDeletePopup-title": "Obrisati prikačeni dokument ?", + "attachmentDeletePopup-title": "Obrisati prikačeni dokument?", "attachments": "Prikačeni dokumenti", "auto-watch": "Automatically watch boards when they are created", "avatar-too-big": "Avatar je prevelik (maksimum je 70KB)", @@ -129,25 +129,25 @@ "board-public-info": "Ova tabla će biti <strong>javna<strong>.", "boardChangeColorPopup-title": "Promeni pozadinu table", "boardChangeTitlePopup-title": "Preimenuj tablu", - "boardChangeVisibilityPopup-title": "Promeni Vidljivost", + "boardChangeVisibilityPopup-title": "Promeni vidljivost", "boardChangeWatchPopup-title": "Change Watch", "boardMenuPopup-title": "Board Settings", "boardChangeViewPopup-title": "Board View", "boards": "Table", "board-view": "Board View", - "board-view-cal": "Calendar", + "board-view-cal": "Kalendar", "board-view-swimlanes": "Swimlanes", "board-view-collapse": "Sažmi", - "board-view-lists": "Lists", + "board-view-lists": "Liste", "bucket-example": "Na primer \"Lista zadataka\"", "cancel": "Otkaži", - "card-archived": "This card is moved to Archive.", + "card-archived": "Ova kartica je premeštena u arhivu.", "board-archived": "This board is moved to Archive.", "card-comments-title": "Ova kartica ima %s komentar.", "card-delete-notice": "Brisanje je trajno. Izgubićeš sve akcije povezane sa ovom karticom.", "card-delete-pop": "Sve akcije će biti uklonjene sa liste aktivnosti i kartica neće moći biti ponovo otvorena. Nema vraćanja unazad.", "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", - "card-due": "Krajnji datum", + "card-due": "Rok", "card-due-on": "Završava se", "card-spent": "Spent Time", "card-edit-attachments": "Uredi priloge", @@ -161,110 +161,113 @@ "card-start": "Početak", "card-start-on": "Počinje", "cardAttachmentsPopup-title": "Attach From", - "cardCustomField-datePopup-title": "Change date", + "cardCustomField-datePopup-title": "Promeni datum", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Novo glasanje", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Pitanje za glasanje", + "vote-public": "Public vote", "vote-for-it": "za", "vote-against": "protiv", - "cardDeletePopup-title": "Delete Card?", + "cardDeletePopup-title": "Obrisati karticu?", "cardDetailsActionsPopup-title": "Card Actions", - "cardLabelsPopup-title": "Labels", + "cardLabelsPopup-title": "Oznake", "cardMembersPopup-title": "Članovi", - "cardMorePopup-title": "More", - "cardTemplatePopup-title": "Create template", - "cards": "Cards", - "cards-count": "Cards", + "cardMorePopup-title": "Više", + "cardTemplatePopup-title": "Napravi šemu", + "cards": "Kartice", + "cards-count": "Kartice", "casSignIn": "Sign In with CAS", - "cardType-card": "Card", - "cardType-linkedCard": "Linked Card", + "cardType-card": "Kartica", + "cardType-linkedCard": "Povezana kartica", "cardType-linkedBoard": "Linked Board", - "change": "Change", - "change-avatar": "Change Avatar", - "change-password": "Change Password", - "change-permissions": "Change permissions", - "change-settings": "Izmeni podešavanja", - "changeAvatarPopup-title": "Change Avatar", - "changeLanguagePopup-title": "Change Language", - "changePasswordPopup-title": "Change Password", - "changePermissionsPopup-title": "Change Permissions", - "changeSettingsPopup-title": "Izmeni podešavanja", - "subtasks": "Subtasks", + "change": "Promeni", + "change-avatar": "Promeni avatara", + "change-password": "Promeni lozinku", + "change-permissions": "Promeni dozvole", + "change-settings": "Promeni podešavanja", + "changeAvatarPopup-title": "Promeni avatara", + "changeLanguagePopup-title": "Promeni jezik", + "changePasswordPopup-title": "Promeni lozinku", + "changePermissionsPopup-title": "Promeni dozvole", + "changeSettingsPopup-title": "Promeni podešavanja", + "subtasks": "Podzadaci", "checklists": "Liste", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", "clipboard": "Clipboard or drag & drop", - "close": "Close", + "close": "Zatvori", "close-board": "Close Board", "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", - "color-black": "black", - "color-blue": "blue", - "color-crimson": "crimson", - "color-darkgreen": "darkgreen", - "color-gold": "gold", - "color-gray": "gray", - "color-green": "green", + "color-black": "crno", + "color-blue": "plavo", + "color-crimson": "grimizno", + "color-darkgreen": "tamnozeleno", + "color-gold": "zlatno", + "color-gray": "sivo", + "color-green": "zeleno", "color-indigo": "indigo", "color-lime": "lime", "color-magenta": "magenta", "color-mistyrose": "mistyrose", - "color-navy": "navy", - "color-orange": "orange", + "color-navy": "mornarsko", + "color-orange": "narandžasto", "color-paleturquoise": "paleturquoise", "color-peachpuff": "peachpuff", "color-pink": "pink", - "color-plum": "plum", - "color-purple": "purple", - "color-red": "red", + "color-plum": "šljiva", + "color-purple": "ljubičasto", + "color-red": "crveno", "color-saddlebrown": "saddlebrown", - "color-silver": "silver", - "color-sky": "sky", + "color-silver": "srebrno", + "color-sky": "nebesko", "color-slateblue": "slateblue", - "color-white": "white", - "color-yellow": "yellow", + "color-white": "belo", + "color-yellow": "žuto", "unset-color": "Unset", - "comment": "Comment", - "comment-placeholder": "Write Comment", - "comment-only": "Comment only", + "comment": "Komentar", + "comment-placeholder": "Napiši komentar", + "comment-only": "Samo komentari", "comment-only-desc": "Can comment on cards only.", "no-comments": "No comments", "no-comments-desc": "Can not see comments and activities.", "worker": "Radnik", "worker-desc": "Može samo da pomera kartice, dodeljuje sebe kartici i da komentariše. ", - "computer": "Computer", + "computer": "Računar", "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?", "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?", "copy-card-link-to-clipboard": "Copy card link to clipboard", - "linkCardPopup-title": "Link Card", + "linkCardPopup-title": "Poveži karticu", "searchElementPopup-title": "Pretraga", - "copyCardPopup-title": "Copy Card", + "copyCardPopup-title": "Kopiraj karticu", "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", + "create": "Napravi", "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", - "createLabelPopup-title": "Create Label", - "createCustomField": "Create Field", - "createCustomFieldPopup-title": "Create Field", + "createLabelPopup-title": "Napravi oznaku", + "createCustomField": "Napravi polje", + "createCustomFieldPopup-title": "Napravi polje", "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": "Datum", - "custom-field-dropdown": "Dropdown List", - "custom-field-dropdown-none": "(none)", - "custom-field-dropdown-options": "List Options", + "custom-field-dropdown": "Padajuća lista", + "custom-field-dropdown-none": "(ništa)", + "custom-field-dropdown-options": "Opcije liste", "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-field-dropdown-unknown": "(nepoznato)", + "custom-field-number": "Broj", + "custom-field-text": "Tekst", "custom-fields": "Custom Fields", "date": "Datum", - "decline": "Decline", + "decline": "Odbij", "default-avatar": "Default avatar", - "delete": "Delete", + "delete": "Obriši", "deleteCustomFieldPopup-title": "Delete Custom Field?", - "deleteLabelPopup-title": "Delete Label?", + "deleteLabelPopup-title": "Obrisati oznaku?", "description": "Opis", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", @@ -272,21 +275,21 @@ "done": "Završeno", "download": "Preuzmi", "edit": "Uredi", - "edit-avatar": "Change Avatar", + "edit-avatar": "Promeni avatara", "edit-profile": "Uredi profil", "edit-wip-limit": "Edit WIP Limit", "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Izmeni početni datum", "editCardDueDatePopup-title": "Izmeni krajnji datum", - "editCustomFieldPopup-title": "Edit Field", + "editCustomFieldPopup-title": "Izmeni polje", "editCardSpentTimePopup-title": "Change spent time", - "editLabelPopup-title": "Change Label", - "editNotificationPopup-title": "Izmeni notifikaciju", - "editProfilePopup-title": "Edit Profile", - "email": "Email", + "editLabelPopup-title": "Izmeni oznaku", + "editNotificationPopup-title": "Izmeni obaveštenje", + "editProfilePopup-title": "Izmeni profil", + "email": "Epošta", "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": "Neuspelo slanje epošte", "email-fail-text": "Error trying to send email", "email-invalid": "Invalid email", "email-invite": "Invite via Email", @@ -304,9 +307,9 @@ "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-user-doesNotExist": "Korisnik ne postoji", + "error-user-notAllowSelf": "Ne možeš pozvati samog sebe", + "error-user-notCreated": "Korisnik nije kreiran", "error-username-taken": "Korisničko ime je već zauzeto", "error-email-taken": "Email has already been taken", "export-board": "Export board", @@ -322,25 +325,25 @@ "filter": "Filter", "filter-cards": "Filtriraj kartice ili liste", "list-filter-label": "Filtriraj liste po naslovu", - "filter-clear": "Clear filter", + "filter-clear": "Očisti filter", "filter-no-label": "Nema oznake", "filter-no-member": "Nema člana", "filter-no-assignee": "Nema zastupnika", "filter-no-custom-fields": "No Custom Fields", "filter-show-archive": "Prikaži arhivirane liste", "filter-hide-empty": "Sakrij prazne liste", - "filter-on": "Filter is on", + "filter-on": "Filter je uključen", "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-label": "Napredni 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", + "fullname": "Puno ime", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Sakrij sistemske poruke", "headerBarCreateBoardPopup-title": "Create Board", - "home": "Home", - "import": "Import", - "link": "Link", + "home": "Početna", + "import": "Uvezi", + "link": "Veza", "import-board": "import board", "import-board-c": "Import board", "import-board-title-trello": "Uvezi tablu iz Trella", @@ -349,7 +352,7 @@ "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 previous export", - "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-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 board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", "import-json-placeholder": "Paste your valid JSON data here", @@ -357,48 +360,48 @@ "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", "import-show-user-mapping": "Review members mapping", "import-user-select": "Pick your existing user you want to use as this member", - "importMapMembersAddPopup-title": "Select member", - "info": "Version", - "initials": "Initials", + "importMapMembersAddPopup-title": "Izaberi člana", + "info": "Verzija", + "initials": "Inicijali", "invalid-date": "Neispravan datum", - "invalid-time": "Invalid time", - "invalid-user": "Invalid user", + "invalid-time": "Neispravno vreme", + "invalid-user": "Neispravan korisnik", "joined": "joined", "just-invited": "You are just invited to this board", - "keyboard-shortcuts": "Keyboard shortcuts", - "label-create": "Create Label", + "keyboard-shortcuts": "Prečice tastature", + "label-create": "Napravi oznaku", "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", + "labels": "Oznake", + "language": "Jezik", "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", + "link-card": "Veza do ove kartice", "list-archive-cards": "Move all cards in this list to Archive", "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", - "list-move-cards": "Move all cards in this list", - "list-select-cards": "Select all cards in this list", - "set-color-list": "Set Color", + "list-move-cards": "Premesti sve kartice u ovoj listi", + "list-select-cards": "Izaberi sve kartice u ovoj listi", + "set-color-list": "Postavi boju", "listActionPopup-title": "List Actions", "swimlaneActionPopup-title": "Swimlane Actions", "swimlaneAddPopup-title": "Add a Swimlane below", "listImportCardPopup-title": "Import a Trello card", - "listMorePopup-title": "More", + "listMorePopup-title": "Više", "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 Archive to remove it from the board and preserve the activity.", - "lists": "Lists", + "lists": "Liste", "swimlanes": "Swimlanes", - "log-out": "Log Out", - "log-in": "Log In", - "loginPopup-title": "Log In", + "log-out": "Odjavi se", + "log-in": "Prijava", + "loginPopup-title": "Prijava", "memberMenuPopup-title": "Member Settings", "members": "Članovi", - "menu": "Menu", + "menu": "Meni", "move-selection": "Move selection", - "moveCardPopup-title": "Move Card", + "moveCardPopup-title": "Premesti karticu", "moveCardToBottom-title": "Premesti na dno", "moveCardToTop-title": "Premesti na vrh", "moveSelectionPopup-title": "Move selection", @@ -416,7 +419,7 @@ "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": "Budite obavešteni o novim događajima u tablama, listama ili karticama koje pratite.", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", "optional": "opciono", "or": "ili", "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", @@ -435,21 +438,21 @@ "quick-access-description": "Star a board to add a shortcut in this bar.", "remove-cover": "Remove Cover", "remove-from-board": "Ukloni iz table", - "remove-label": "Remove Label", - "listDeletePopup-title": "Delete List ?", + "remove-label": "Ukloni oznaku", + "listDeletePopup-title": "Obrisati listu?", "remove-member": "Ukloni člana", "remove-member-from-card": "Ukloni iz kartice", "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": "Ukloni člana ?", + "removeMemberPopup-title": "Ukloni člana?", "rename": "Preimenuj", "rename-board": "Preimenuj tablu", "restore": "Oporavi", "save": "Snimi", "search": "Pretraga", - "rules": "Rules", + "rules": "Pravila", "search-cards": "Pretraži u naslovima kartica/listi, opsima i proizvoljnim poljima sa ove table", - "search-example": "Text to search for?", - "select-color": "Select Color", + "search-example": "Tekst za pretragu?", + "select-color": "Izaberi boju", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", "shortcut-assign-self": "Pridruži sebe trenutnoj kartici", @@ -481,7 +484,7 @@ "title": "Naslov", "tracking": "Praćenje", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", - "type": "Type", + "type": "Tip", "unassign-member": "Unassign member", "unsaved-description": "Imaš nesnimljen opis.", "unwatch": "Ne posmatraj", @@ -498,22 +501,22 @@ "welcome-swimlane": "Milestone 1", "welcome-list1": "Osnove", "welcome-list2": "Napredno", - "card-templates-swimlane": "Card Templates", - "list-templates-swimlane": "List Templates", + "card-templates-swimlane": "Šeme kartice", + "list-templates-swimlane": "Šeme liste", "board-templates-swimlane": "Board Templates", "what-to-do": "Šta želiš da uradiš ?", "wipLimitErrorPopup-title": "Invalid WIP Limit", "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", "admin-panel": "Admin Panel", - "settings": "Settings", - "people": "People", - "registration": "Registration", + "settings": "Podešavanja", + "people": "Ljudi", + "registration": "Registracija", "disable-self-registration": "Disable Self-Registration", "invite": "Invite", "invite-people": "Invite People", "to-boards": "To board(s)", - "email-addresses": "Email Addresses", + "email-addresses": "Adrese epošte", "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", @@ -521,8 +524,8 @@ "smtp-port": "SMTP Port", "smtp-username": "Korisničko ime", "smtp-password": "Lozinka", - "smtp-tls": "TLS support", - "send-from": "From", + "smtp-tls": "TLS podrška", + "send-from": "Od", "send-smtp-test": "Send a test email to yourself", "invitation-code": "Invitation Code", "email-invite-register-subject": "__inviter__ sent you an invitation", @@ -540,8 +543,8 @@ "disable-webhook": "Onesposobi ovu mrežnu kuku", "global-webhook": "Globalna mrežna kuka", "new-outgoing-webhook": "New Outgoing Webhook", - "no-name": "(Unknown)", - "Node_version": "Node version", + "no-name": "(Nepoznato)", + "Node_version": "Verzija čvora", "Meteor_version": "Verzija Meteor-a", "MongoDB_version": "Verzija MongoDB-a", "MongoDB_storage_engine": "MongoDB mehanizam za skladištenje", @@ -555,16 +558,16 @@ "OS_Totalmem": "OS Total Memory", "OS_Type": "OS Type", "OS_Uptime": "OS Uptime", - "days": "days", - "hours": "hours", - "minutes": "minutes", - "seconds": "seconds", + "days": "dana", + "hours": "sati", + "minutes": "minuta", + "seconds": "sekundi", "show-field-on-card": "Show this field on card", "automatically-field-on-card": "Auto create field to all cards", "showLabel-field-on-card": "Show field label on minicard", - "yes": "Yes", - "no": "No", - "accounts": "Accounts", + "yes": "Da", + "no": "Ne", + "accounts": "Nalozi", "accounts-allowEmailChange": "Allow Email Change", "accounts-allowUserNameChange": "Allow Username Change", "createdAt": "Created at", @@ -576,10 +579,10 @@ "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", "editCardEndDatePopup-title": "Change end date", - "setCardColorPopup-title": "Set color", - "setCardActionsColorPopup-title": "Choose a color", - "setSwimlaneColorPopup-title": "Choose a color", - "setListColorPopup-title": "Choose a color", + "setCardColorPopup-title": "Podesi boju", + "setCardActionsColorPopup-title": "Izaberi boju", + "setSwimlaneColorPopup-title": "Izaberi boju", + "setListColorPopup-title": "Izaberi boju", "assigned-by": "Dodeljeno od strane", "requested-by": "Requested By", "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", @@ -587,7 +590,7 @@ "boardDeletePopup-title": "Delete Board?", "delete-board": "Delete Board", "default-subtasks-board": "Subtasks for __board__ board", - "default": "Default", + "default": "Predefinisano", "queue": "Queue", "subtask-settings": "Subtasks Settings", "card-settings": "Podešavanja kartice", @@ -612,22 +615,22 @@ "activity-delete-attach-card": "deleted an attachment", "activity-set-customfield": "set custom field '%s' to '%s' in %s", "activity-unset-customfield": "unset custom field '%s' in %s", - "r-rule": "Rule", - "r-add-trigger": "Add trigger", - "r-add-action": "Add action", + "r-rule": "Pravilo", + "r-add-trigger": "Dodaj okidač", + "r-add-action": "Dodaj akciju", "r-board-rules": "Board rules", - "r-add-rule": "Add rule", - "r-view-rule": "View rule", - "r-delete-rule": "Delete rule", - "r-new-rule-name": "New rule title", - "r-no-rules": "No rules", - "r-when-a-card": "When a card", - "r-is": "is", - "r-is-moved": "is moved", - "r-added-to": "added to", - "r-removed-from": "Removed from", - "r-the-board": "the board", - "r-list": "list", + "r-add-rule": "Dodaj pravilo", + "r-view-rule": "Pregledaj pravilo", + "r-delete-rule": "Obriši pravilo", + "r-new-rule-name": "Novi naslov pravila", + "r-no-rules": "Nema pravila", + "r-when-a-card": "Kada kartica", + "r-is": "je", + "r-is-moved": "je premeštena", + "r-added-to": "dodata u", + "r-removed-from": "Uklonjena iz", + "r-the-board": "table", + "r-list": "liste", "set-filter": "Set Filter", "r-moved-to": "Moved to", "r-moved-from": "Moved from", @@ -643,7 +646,7 @@ "r-when-a-attach": "When an attachment", "r-when-a-checklist": "When a checklist is", "r-when-the-checklist": "When the checklist", - "r-completed": "Completed", + "r-completed": "Završeno", "r-made-incomplete": "Made incomplete", "r-when-a-item": "When a checklist item is", "r-when-the-item": "When the checklist item", @@ -655,11 +658,11 @@ "r-its-list": "its list", "r-archive": "Move to Archive", "r-unarchive": "Restore from Archive", - "r-card": "card", + "r-card": "kartica", "r-add": "Dodaj", - "r-remove": "Remove", - "r-label": "label", - "r-member": "member", + "r-remove": "Ukloni", + "r-label": "oznaka", + "r-member": "član", "r-remove-all": "Remove all members from the card", "r-set-color": "Set color to", "r-checklist": "checklist", @@ -668,30 +671,30 @@ "r-items-check": "items of checklist", "r-check": "Check", "r-uncheck": "Uncheck", - "r-item": "item", + "r-item": "stavka", "r-of-checklist": "of checklist", - "r-send-email": "Send an email", - "r-to": "to", - "r-subject": "subject", - "r-rule-details": "Rule details", + "r-send-email": "Pošalji epoštu", + "r-to": "za", + "r-subject": "naslov", + "r-rule-details": "Detalji pravila", "r-d-move-to-top-gen": "Move card to top of its list", "r-d-move-to-top-spec": "Move card to top of list", "r-d-move-to-bottom-gen": "Move card to bottom of its list", "r-d-move-to-bottom-spec": "Move card to bottom of list", - "r-d-send-email": "Send email", - "r-d-send-email-to": "to", - "r-d-send-email-subject": "subject", - "r-d-send-email-message": "message", + "r-d-send-email": "Pošalji epoštu", + "r-d-send-email-to": "za", + "r-d-send-email-subject": "naslov", + "r-d-send-email-message": "poruka", "r-d-archive": "Move card to Archive", "r-d-unarchive": "Restore card from Archive", - "r-d-add-label": "Add label", - "r-d-remove-label": "Remove label", - "r-create-card": "Create new card", - "r-in-list": "in list", + "r-d-add-label": "Dodaj oznaku", + "r-d-remove-label": "Ukloni oznaku", + "r-create-card": "Napravi novu karticu", + "r-in-list": "u listi", "r-in-swimlane": "in swimlane", - "r-d-add-member": "Add member", - "r-d-remove-member": "Remove member", - "r-d-remove-all-member": "Remove all member", + "r-d-add-member": "Dodaj člana", + "r-d-remove-member": "Ukloni člana", + "r-d-remove-all-member": "Ukloni sve članove", "r-d-check-all": "Check all items of a list", "r-d-uncheck-all": "Uncheck all items of a list", "r-d-check-one": "Check item", @@ -720,11 +723,11 @@ "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", - "authentication-method": "Authentication method", - "authentication-type": "Authentication type", + "authentication-method": "Metod autentifikacije", + "authentication-type": "Tip autentifikacije", "custom-product-name": "Custom Product Name", - "layout": "Layout", - "hide-logo": "Hide Logo", + "layout": "Raspored", + "hide-logo": "Sakrij logo", "add-custom-html-after-body-start": "Add Custom HTML after <body> start", "add-custom-html-before-body-end": "Add Custom HTML before </body> end", "error-undefined": "Something went wrong", @@ -736,8 +739,8 @@ "swimlaneDeletePopup-title": "Delete Swimlane ?", "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", "restore-all": "Restore all", - "delete-all": "Delete all", - "loading": "Loading, please wait.", + "delete-all": "Obriši sve", + "loading": "Učitavanje, molim sačekajte.", "previous_as": "prošli put je bio", "act-a-dueAt": "modifikovano u vreme\nKada:__vremenskaVrednost__\nGde:__kartica__\nprethodni rok je bio__StaraVremenskaVrednost", "act-a-endAt": "izmenjeno vreme završetaka za__vremenskaVrednost__od (__StaraVremenskaVrednost__)", @@ -760,8 +763,8 @@ "accounts-allowUserDelete": "Dozvoli korisnicima da sami brišu svoj nalog", "hide-minicard-label-text": "Sakrij tekst nalepnice minikartice", "show-desktop-drag-handles": "Prikaži kvake za povlačenje sa radne površine", - "assignee": "Asignat", - "cardAssigneesPopup-title": "Asignat", + "assignee": "Zastupnik", + "cardAssigneesPopup-title": "Zastupnik", "addmore-detail": "Dodaj detaljaniji opis", "show-on-card": "Prikaži na kartici", "new": "Novo", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 997ac99f..a10a1c81 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Ändra datum", "cardCustomFieldsPopup-title": "Redigera anpassade fält", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Ta bort kort?", diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index 45cf8991..9f9e6741 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Badilisha tarehe", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index a95fbd6d..5643cf2c 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 0491767a..d53d34ee 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "ลบการ์ดนี้หรือไม่", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 4865ce7c..1f989fc5 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Tarihi değiştir", "cardCustomFieldsPopup-title": "Özel alanları düzenle", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Kart Silinsin mi?", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 20d637d4..3dd0b54d 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Видалити картку?", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index d1160611..8fee3373 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index dfd0ac21..ef1b5856 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "修改日期", "cardCustomFieldsPopup-title": "编辑自定义字段", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "彻底删除卡片?", diff --git a/i18n/zh-HK.i18n.json b/i18n/zh-HK.i18n.json index 3fca3497..fda2f6de 100644 --- a/i18n/zh-HK.i18n.json +++ b/i18n/zh-HK.i18n.json @@ -164,7 +164,10 @@ "cardCustomField-datePopup-title": "Change date", "cardCustomFieldsPopup-title": "Edit custom fields", "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", "vote-question": "Voting question", + "vote-public": "Public vote", "vote-for-it": "for it", "vote-against": "against", "cardDeletePopup-title": "Delete Card?", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 8065b261..b477250e 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -152,8 +152,8 @@ "card-spent": "耗時", "card-edit-attachments": "編輯附件", "card-edit-custom-fields": "編輯自訂欄位", - "card-start-voting": "Start voting", - "card-cancel-voting": "Delete voting and all votes", + "card-start-voting": "開始投票", + "card-cancel-voting": "移除投票", "card-edit-labels": "編輯標籤", "card-edit-members": "編輯成員", "card-labels-title": "更改該卡片上的標籤", @@ -163,10 +163,13 @@ "cardAttachmentsPopup-title": "附件來源", "cardCustomField-datePopup-title": "修改日期", "cardCustomFieldsPopup-title": "編輯自訂欄位", - "cardStartVotingPopup-title": "Start a vote", - "vote-question": "Voting question", - "vote-for-it": "for it", - "vote-against": "against", + "cardStartVotingPopup-title": "建立投票", + "positiveVoteMembersPopup-title": "支持", + "negativeVoteMembersPopup-title": "反對", + "vote-question": "投票題目", + "vote-public": "公開投票", + "vote-for-it": "同意", + "vote-against": "反對", "cardDeletePopup-title": "徹底刪除卡片?", "cardDetailsActionsPopup-title": "卡片操作", "cardLabelsPopup-title": "標籤", @@ -325,7 +328,7 @@ "filter-clear": "清除篩選條件", "filter-no-label": "沒有標籤", "filter-no-member": "沒有成員", - "filter-no-assignee": "No assignee", + "filter-no-assignee": "沒有代理人", "filter-no-custom-fields": "沒有自訂欄位", "filter-show-archive": "顯示封存的清單", "filter-hide-empty": "隱藏空清單", @@ -771,7 +774,7 @@ "view-all": "檢視全部", "filter-by-unread": "篩選: 未讀", "mark-all-as-read": "標示全部已讀", - "remove-all-read": "Remove all read", + "remove-all-read": "移除所有已讀", "allow-rename": "允許更名", "allowRenamePopup-title": "允許更名" } diff --git a/models/users.js b/models/users.js index 8a05a0d2..3700d1c8 100644 --- a/models/users.js +++ b/models/users.js @@ -814,6 +814,16 @@ if (Meteor.isServer) { board.addMember(user._id); user.addInvite(boardId); + //Check if there is a subtasks board + if (board.subtasksDefaultBoardId) { + const subBoard = Boards.findOne(board.subtasksDefaultBoardId); + //If there is, also add user to that board + if (subBoard) { + subBoard.addMember(user._id); + user.addInvite(subBoard._id); + } + } + try { const params = { user: user.username, @@ -942,6 +952,7 @@ const addCronJob = _.debounce( schedule: parser => parser.text('every 1 days'), job: () => { for (const user of Users.find()) { + if (!user.profile || !user.profile.notifications) continue; for (const notification of user.profile.notifications) { if (notification.read) { const removeDate = new Date(notification.read); diff --git a/package-lock.json b/package-lock.json index 4fea76bf..7871cacb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v3.92.0", + "version": "v3.94.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b8e6698c..0ed67b3c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v3.92.0", + "version": "v3.94.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 063348bc..ff586d41 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <ul class="toc-list-h1"> <li> - <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.92">Wekan REST API v3.92</a> + <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.94">Wekan REST API v3.94</a> </li> @@ -1791,45 +1791,6 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc </li> <li> - <a href="#wekan-rest-api-cards" class="toc-h1 toc-link" data-title="Cards">Cards</a> - - <ul class="toc-list-h2"> - - <li> - <a href="#get_all_cards" class="toc-h2 toc-link" data-title="get_all_cards">get_all_cards</a> - - </li> - - <li> - <a href="#new_card" class="toc-h2 toc-link" data-title="new_card">new_card</a> - - </li> - - <li> - <a href="#get_board_list_card" class="toc-h2 toc-link" data-title="get_board_list_card">get_board_list_card</a> - - </li> - - <li> - <a href="#put_board_list_card" class="toc-h2 toc-link" data-title="put_board_list_card">put_board_list_card</a> - - </li> - - <li> - <a href="#delete_board_list_card" class="toc-h2 toc-link" data-title="delete_board_list_card">delete_board_list_card</a> - - </li> - - <li> - <a href="#get_board_swimlane_cards" class="toc-h2 toc-link" data-title="get_board_swimlane_cards">get_board_swimlane_cards</a> - - </li> - - </ul> - - </li> - - <li> <a href="#wekan-rest-api-users" class="toc-h1 toc-link" data-title="Users">Users</a> <ul class="toc-list-h2"> @@ -1933,21 +1894,6 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc </li> <li> - <a href="#tocscards" class="toc-h2 toc-link" data-title="Cards">Cards</a> - - </li> - - <li> - <a href="#tocscardsvote" class="toc-h2 toc-link" data-title="CardsVote">CardsVote</a> - - </li> - - <li> - <a href="#tocscardscustomfields" class="toc-h2 toc-link" data-title="CardsCustomfields">CardsCustomfields</a> - - </li> - - <li> <a href="#tocschecklistitems" class="toc-h2 toc-link" data-title="ChecklistItems">ChecklistItems</a> </li> @@ -2022,7 +1968,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <div class="page-wrapper"> <div class="dark-box"></div> <div class="content"> - <h1 id="wekan-rest-api">Wekan REST API v3.92</h1> + <h1 id="wekan-rest-api">Wekan REST API v3.94</h1> <blockquote> <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p> </blockquote> @@ -9652,1396 +9598,6 @@ The list is not put in the recycle bin.</p> To perform this operation, you must be authenticated by means of one of the following methods: UserSecurity </aside> -<h1 id="wekan-rest-api-cards">Cards</h1> -<h2 id="get_all_cards">get_all_cards</h2> -<p><a id="opIdget_all_cards"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X GET /api/boards/{board}/lists/{list}/cards \ - -H <span class="hljs-string">'Accept: application/json'</span> \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards</span> HTTP/1.1 - -<span class="http"><span class="hljs-attribute">Accept</span>: application/json - -<span class="undefined"></span></span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'get'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); - -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'GET'</span>, - - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Accept'</span> => <span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.get <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.get(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/lists/{list}/cards"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"GET"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>}, - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"GET"</span>, <span class="hljs-string">"/api/boards/{board}/lists/{list}/cards"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>GET /api/boards/{board}/lists/{list}/cards</code></p> -<p><em>Get all Cards attached to a List</em></p> -<h3 id="get_all_cards-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board ID</td> -</tr> -<tr> -<td>list</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the list ID</td> -</tr> -</tbody> -</table> -<h4 id="detailed-descriptions">Detailed descriptions</h4> -<p><strong>board</strong>: the board ID</p> -<p><strong>list</strong>: the list ID</p> -<blockquote> -<p>Example responses</p> -</blockquote> -<blockquote> -<p>200 Response</p> -</blockquote> -<pre class="highlight tab tab-json"><code>[ - { - <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"description"</span>: <span class="hljs-string">"string"</span> - } -] -</code></pre> -<h3 id="get_all_cards-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>Inline</td> -</tr> -</tbody> -</table> -<h3 id="get_all_cards-responseschema">Response Schema</h3> -<p>Status Code <strong>200</strong></p> -<table> -<thead> -<tr> -<th>Name</th> -<th>Type</th> -<th>Required</th> -<th>Restrictions</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>» _id</td> -<td>string</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -<tr> -<td>» title</td> -<td>string</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -<tr> -<td>» description</td> -<td>string</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> -<h2 id="new_card">new_card</h2> -<p><a id="opIdnew_card"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X POST /api/boards/{board}/lists/{list}/cards \ - -H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \ - -H <span class="hljs-string">'Accept: application/json'</span> \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards</span> HTTP/1.1 - -<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span> -Accept: application/json - -</span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'post'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); -<span class="hljs-keyword">const</span> inputBody = <span class="hljs-string">'{ - "authorId": "string", - "members": "string", - "assignees": "string", - "title": "string", - "description": "string", - "swimlaneId": "string" -}'</span>; -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'POST'</span>, - <span class="hljs-attr">body</span>: inputBody, - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Content-Type'</span> => <span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Accept'</span> => <span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.post <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>, - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.post(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/lists/{list}/cards"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"POST"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>}, - <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>}, - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"POST"</span>, <span class="hljs-string">"/api/boards/{board}/lists/{list}/cards"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>POST /api/boards/{board}/lists/{list}/cards</code></p> -<p><em>Create a new Card</em></p> -<blockquote> -<p>Body parameter</p> -</blockquote> -<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">authorId:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">members:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">assignees:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">title:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">description:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">swimlaneId:</span> <span class="hljs-string">string</span> - -</code></pre> -<h3 id="new_card-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board ID of the new card</td> -</tr> -<tr> -<td>list</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the list ID of the new card</td> -</tr> -<tr> -<td>body</td> -<td>body</td> -<td>object</td> -<td>false</td> -<td>none</td> -</tr> -<tr> -<td>» authorId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the authorId value</td> -</tr> -<tr> -<td>» members</td> -<td>body</td> -<td>string</td> -<td>false</td> -<td>the member IDs list of the new card</td> -</tr> -<tr> -<td>» assignees</td> -<td>body</td> -<td>string</td> -<td>false</td> -<td>the array of maximum one ID of assignee of the new card</td> -</tr> -<tr> -<td>» title</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the title of the new card</td> -</tr> -<tr> -<td>» description</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the description of the new card</td> -</tr> -<tr> -<td>» swimlaneId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the swimlane ID of the new card</td> -</tr> -</tbody> -</table> -<h4 id="detailed-descriptions">Detailed descriptions</h4> -<p><strong>board</strong>: the board ID of the new card</p> -<p><strong>list</strong>: the list ID of the new card</p> -<blockquote> -<p>Example responses</p> -</blockquote> -<blockquote> -<p>200 Response</p> -</blockquote> -<pre class="highlight tab tab-json"><code>{ - <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span> -} -</code></pre> -<h3 id="new_card-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>Inline</td> -</tr> -</tbody> -</table> -<h3 id="new_card-responseschema">Response Schema</h3> -<p>Status Code <strong>200</strong></p> -<table> -<thead> -<tr> -<th>Name</th> -<th>Type</th> -<th>Required</th> -<th>Restrictions</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>» _id</td> -<td>string</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> -<h2 id="get_board_list_card">get_board_list_card</h2> -<p><a id="opIdget_board_list_card"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1 - -<span class="undefined"></span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'get'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); - -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'GET'</span>, - - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.get <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.get(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"GET"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"GET"</span>, <span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>GET /api/boards/{board}/lists/{list}/cards/{card}</code></p> -<h3 id="get_board_list_card-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board value</td> -</tr> -<tr> -<td>list</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the list value</td> -</tr> -<tr> -<td>card</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the card value</td> -</tr> -</tbody> -</table> -<h3 id="get_board_list_card-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>None</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> -<h2 id="put_board_list_card">put_board_list_card</h2> -<p><a id="opIdput_board_list_card"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \ - -H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">PUT</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1 - -<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span> - -</span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'put'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); -<span class="hljs-keyword">const</span> inputBody = <span class="hljs-string">'{ - "title": "string", - "listId": "string", - "authorId": "string", - "parentId": "string", - "description": "string", - "color": "string", - "labelIds": "string", - "requestedBy": "string", - "assignedBy": "string", - "receivedAt": "string", - "startAt": "string", - "dueAt": "string", - "endAt": "string", - "spentTime": "string", - "isOverTime": "string", - "customFields": "string", - "members": "string", - "assignees": "string", - "swimlaneId": "string" -}'</span>; -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'PUT'</span>, - <span class="hljs-attr">body</span>: inputBody, - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Content-Type'</span> => <span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.put <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>, - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.put(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"PUT"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>}, - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"PUT"</span>, <span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>PUT /api/boards/{board}/lists/{list}/cards/{card}</code></p> -<blockquote> -<p>Body parameter</p> -</blockquote> -<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">title:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">listId:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">authorId:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">parentId:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">description:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">color:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">labelIds:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">requestedBy:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">assignedBy:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">receivedAt:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">startAt:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">dueAt:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">endAt:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">spentTime:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">isOverTime:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">customFields:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">members:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">assignees:</span> <span class="hljs-string">string</span> -<span class="hljs-attr">swimlaneId:</span> <span class="hljs-string">string</span> - -</code></pre> -<h3 id="put_board_list_card-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board value</td> -</tr> -<tr> -<td>list</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the list value</td> -</tr> -<tr> -<td>card</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the card value</td> -</tr> -<tr> -<td>body</td> -<td>body</td> -<td>object</td> -<td>false</td> -<td>none</td> -</tr> -<tr> -<td>» title</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the title value</td> -</tr> -<tr> -<td>» listId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the listId value</td> -</tr> -<tr> -<td>» authorId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the authorId value</td> -</tr> -<tr> -<td>» parentId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the parentId value</td> -</tr> -<tr> -<td>» description</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the description value</td> -</tr> -<tr> -<td>» color</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the color value</td> -</tr> -<tr> -<td>» labelIds</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the labelIds value</td> -</tr> -<tr> -<td>» requestedBy</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the requestedBy value</td> -</tr> -<tr> -<td>» assignedBy</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the assignedBy value</td> -</tr> -<tr> -<td>» receivedAt</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the receivedAt value</td> -</tr> -<tr> -<td>» startAt</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the startAt value</td> -</tr> -<tr> -<td>» dueAt</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the dueAt value</td> -</tr> -<tr> -<td>» endAt</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the endAt value</td> -</tr> -<tr> -<td>» spentTime</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the spentTime value</td> -</tr> -<tr> -<td>» isOverTime</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the isOverTime value</td> -</tr> -<tr> -<td>» customFields</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the customFields value</td> -</tr> -<tr> -<td>» members</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the members value</td> -</tr> -<tr> -<td>» assignees</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the assignees value</td> -</tr> -<tr> -<td>» swimlaneId</td> -<td>body</td> -<td>string</td> -<td>true</td> -<td>the swimlaneId value</td> -</tr> -</tbody> -</table> -<h3 id="put_board_list_card-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>None</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> -<h2 id="delete_board_list_card">delete_board_list_card</h2> -<p><a id="opIddelete_board_list_card"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1 - -<span class="undefined"></span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'delete'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); - -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'DELETE'</span>, - - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.delete <span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.delete(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"DELETE"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"DELETE"</span>, <span class="hljs-string">"/api/boards/{board}/lists/{list}/cards/{card}"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>DELETE /api/boards/{board}/lists/{list}/cards/{card}</code></p> -<h3 id="delete_board_list_card-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board value</td> -</tr> -<tr> -<td>list</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the list value</td> -</tr> -<tr> -<td>card</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the card value</td> -</tr> -</tbody> -</table> -<h3 id="delete_board_list_card-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>None</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> -<h2 id="get_board_swimlane_cards">get_board_swimlane_cards</h2> -<p><a id="opIdget_board_swimlane_cards"></a></p> -<blockquote> -<p>Code samples</p> -</blockquote> -<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span> -curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \ - -H <span class="hljs-string">'Authorization: API_KEY'</span> - -</code></pre> -<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/swimlanes/{swimlane}/cards</span> HTTP/1.1 - -<span class="undefined"></span></code></pre> -<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -$.ajax({ - <span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}/cards'</span>, - <span class="hljs-attr">method</span>: <span class="hljs-string">'get'</span>, - - <span class="hljs-attr">headers</span>: headers, - <span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{ - <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data)); - } -}) - -</code></pre> -<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>); - -<span class="hljs-keyword">const</span> headers = { - <span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span> - -}; - -fetch(<span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}/cards'</span>, -{ - <span class="hljs-attr">method</span>: <span class="hljs-string">'GET'</span>, - - <span class="hljs-attr">headers</span>: headers -}) -.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{ - <span class="hljs-keyword">return</span> res.json(); -}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{ - <span class="hljs-built_in">console</span>.log(body); -}); - -</code></pre> -<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span> -<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span> - -headers = { - <span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span> -} - -result = RestClient.get <span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}/cards'</span>, - <span class="hljs-symbol">params:</span> { - }, <span class="hljs-symbol">headers:</span> headers - -p JSON.parse(result) - -</code></pre> -<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests -headers = { - <span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span> -} - -r = requests.get(<span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}/cards'</span>, params={ - -}, headers = headers) - -<span class="hljs-keyword">print</span> r.json() - -</code></pre> -<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/swimlanes/{swimlane}/cards"</span>); -HttpURLConnection con = (HttpURLConnection) obj.openConnection(); -con.setRequestMethod(<span class="hljs-string">"GET"</span>); -<span class="hljs-keyword">int</span> responseCode = con.getResponseCode(); -BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader( - <span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream())); -String inputLine; -StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer(); -<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) { - response.append(inputLine); -} -in.close(); -System.out.println(response.toString()); - -</code></pre> -<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main - -<span class="hljs-keyword">import</span> ( - <span class="hljs-string">"bytes"</span> - <span class="hljs-string">"net/http"</span> -) - -<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> { - - headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{ - <span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>}, - - } - - data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq}) - req, err := http.NewRequest(<span class="hljs-string">"GET"</span>, <span class="hljs-string">"/api/boards/{board}/swimlanes/{swimlane}/cards"</span>, data) - req.Header = headers - - client := &http.Client{} - resp, err := client.Do(req) - <span class="hljs-comment">// ...</span> -} - -</code></pre> -<p><code>GET /api/boards/{board}/swimlanes/{swimlane}/cards</code></p> -<h3 id="get_board_swimlane_cards-parameters">Parameters</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>In</th> -<th>Type</th> -<th>Required</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>board</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the board value</td> -</tr> -<tr> -<td>swimlane</td> -<td>path</td> -<td>string</td> -<td>true</td> -<td>the swimlane value</td> -</tr> -</tbody> -</table> -<h3 id="get_board_swimlane_cards-responses">Responses</h3> -<table> -<thead> -<tr> -<th>Status</th> -<th>Meaning</th> -<th>Description</th> -<th>Schema</th> -</tr> -</thead> -<tbody> -<tr> -<td>200</td> -<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td> -<td>200 response</td> -<td>None</td> -</tr> -</tbody> -</table> -<aside class="warning"> -To perform this operation, you must be authenticated by means of one of the following methods: -UserSecurity -</aside> <h1 id="wekan-rest-api-users">Users</h1> <h2 id="add_board_member">add_board_member</h2> <p><a id="opIdadd_board_member"></a></p> @@ -14342,457 +12898,6 @@ UserSecurity </tr> </tbody> </table> -<h2 id="tocscards">Cards</h2> -<p><a id="schemacards"></a></p> -<pre class="highlight tab tab-json"><code>{ - <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"archived"</span>: <span class="hljs-literal">true</span>, - <span class="hljs-attr">"parentId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"listId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"swimlaneId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"boardId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"coverId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"color"</span>: <span class="hljs-string">"white"</span>, - <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"customFields"</span>: [ - {} - ], - <span class="hljs-attr">"dateLastActivity"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"description"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"requestedBy"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"assignedBy"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"labelIds"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"members"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"assignees"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"receivedAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"startAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"dueAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"endAt"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"spentTime"</span>: <span class="hljs-number">0</span>, - <span class="hljs-attr">"isOvertime"</span>: <span class="hljs-literal">true</span>, - <span class="hljs-attr">"userId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>, - <span class="hljs-attr">"subtaskSort"</span>: <span class="hljs-number">0</span>, - <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"linkedId"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"vote"</span>: { - <span class="hljs-attr">"question"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"positive"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"negative"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"end"</span>: <span class="hljs-string">"string"</span> - } -} - -</code></pre> -<h3 id="properties">Properties</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>Type</th> -<th>Required</th> -<th>Restrictions</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>title</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>the title of the card</td> -</tr> -<tr> -<td>archived</td> -<td>boolean</td> -<td>true</td> -<td>none</td> -<td>is the card archived</td> -</tr> -<tr> -<td>parentId</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>ID of the parent card</td> -</tr> -<tr> -<td>listId</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>List ID where the card is</td> -</tr> -<tr> -<td>swimlaneId</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>Swimlane ID where the card is</td> -</tr> -<tr> -<td>boardId</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Board ID of the card</td> -</tr> -<tr> -<td>coverId</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Cover ID of the card</td> -</tr> -<tr> -<td>color</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -<tr> -<td>createdAt</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>creation date</td> -</tr> -<tr> -<td>modifiedAt</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>none</td> -</tr> -<tr> -<td>customFields</td> -<td>[<a href="#schemacardscustomfields">CardsCustomfields</a>]|null</td> -<td>false</td> -<td>none</td> -<td>list of custom fields</td> -</tr> -<tr> -<td>dateLastActivity</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>Date of last activity</td> -</tr> -<tr> -<td>description</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>description of the card</td> -</tr> -<tr> -<td>requestedBy</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>who requested the card (ID of the user)</td> -</tr> -<tr> -<td>assignedBy</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>who assigned the card (ID of the user)</td> -</tr> -<tr> -<td>labelIds</td> -<td>[string]|null</td> -<td>false</td> -<td>none</td> -<td>list of labels ID the card has</td> -</tr> -<tr> -<td>members</td> -<td>[string]|null</td> -<td>false</td> -<td>none</td> -<td>list of members (user IDs)</td> -</tr> -<tr> -<td>assignees</td> -<td>[string]|null</td> -<td>false</td> -<td>none</td> -<td>who is assignee of the card (user ID), maximum one ID of assignee in array.</td> -</tr> -<tr> -<td>receivedAt</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Date the card was received</td> -</tr> -<tr> -<td>startAt</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Date the card was started to be worked on</td> -</tr> -<tr> -<td>dueAt</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Date the card is due</td> -</tr> -<tr> -<td>endAt</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>Date the card ended</td> -</tr> -<tr> -<td>spentTime</td> -<td>number|null</td> -<td>false</td> -<td>none</td> -<td>How much time has been spent on this</td> -</tr> -<tr> -<td>isOvertime</td> -<td>boolean|null</td> -<td>false</td> -<td>none</td> -<td>is the card over time?</td> -</tr> -<tr> -<td>userId</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>user ID of the author of the card</td> -</tr> -<tr> -<td>sort</td> -<td>number</td> -<td>true</td> -<td>none</td> -<td>Sort value</td> -</tr> -<tr> -<td>subtaskSort</td> -<td>number|null</td> -<td>false</td> -<td>none</td> -<td>subtask sort value</td> -</tr> -<tr> -<td>type</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>type of the card</td> -</tr> -<tr> -<td>linkedId</td> -<td>string|null</td> -<td>false</td> -<td>none</td> -<td>ID of the linked card</td> -</tr> -<tr> -<td>vote</td> -<td><a href="#schemacardsvote">CardsVote</a></td> -<td>false</td> -<td>none</td> -<td>vote object, see below</td> -</tr> -</tbody> -</table> -<h4 id="enumerated-values">Enumerated Values</h4> -<table> -<thead> -<tr> -<th>Property</th> -<th>Value</th> -</tr> -</thead> -<tbody> -<tr> -<td>color</td> -<td>white</td> -</tr> -<tr> -<td>color</td> -<td>green</td> -</tr> -<tr> -<td>color</td> -<td>yellow</td> -</tr> -<tr> -<td>color</td> -<td>orange</td> -</tr> -<tr> -<td>color</td> -<td>red</td> -</tr> -<tr> -<td>color</td> -<td>purple</td> -</tr> -<tr> -<td>color</td> -<td>blue</td> -</tr> -<tr> -<td>color</td> -<td>sky</td> -</tr> -<tr> -<td>color</td> -<td>lime</td> -</tr> -<tr> -<td>color</td> -<td>pink</td> -</tr> -<tr> -<td>color</td> -<td>black</td> -</tr> -<tr> -<td>color</td> -<td>silver</td> -</tr> -<tr> -<td>color</td> -<td>peachpuff</td> -</tr> -<tr> -<td>color</td> -<td>crimson</td> -</tr> -<tr> -<td>color</td> -<td>plum</td> -</tr> -<tr> -<td>color</td> -<td>darkgreen</td> -</tr> -<tr> -<td>color</td> -<td>slateblue</td> -</tr> -<tr> -<td>color</td> -<td>magenta</td> -</tr> -<tr> -<td>color</td> -<td>gold</td> -</tr> -<tr> -<td>color</td> -<td>navy</td> -</tr> -<tr> -<td>color</td> -<td>gray</td> -</tr> -<tr> -<td>color</td> -<td>saddlebrown</td> -</tr> -<tr> -<td>color</td> -<td>paleturquoise</td> -</tr> -<tr> -<td>color</td> -<td>mistyrose</td> -</tr> -<tr> -<td>color</td> -<td>indigo</td> -</tr> -</tbody> -</table> -<h2 id="tocscardsvote">CardsVote</h2> -<p><a id="schemacardsvote"></a></p> -<pre class="highlight tab tab-json"><code>{ - <span class="hljs-attr">"question"</span>: <span class="hljs-string">"string"</span>, - <span class="hljs-attr">"positive"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"negative"</span>: [ - <span class="hljs-string">"string"</span> - ], - <span class="hljs-attr">"end"</span>: <span class="hljs-string">"string"</span> -} - -</code></pre> -<h3 id="properties">Properties</h3> -<table> -<thead> -<tr> -<th>Name</th> -<th>Type</th> -<th>Required</th> -<th>Restrictions</th> -<th>Description</th> -</tr> -</thead> -<tbody> -<tr> -<td>question</td> -<td>string</td> -<td>true</td> -<td>none</td> -<td>none</td> -</tr> -<tr> -<td>positive</td> -<td>[string]</td> -<td>false</td> -<td>none</td> -<td>list of members (user IDs)</td> -</tr> -<tr> -<td>negative</td> -<td>[string]</td> -<td>false</td> -<td>none</td> -<td>list of members (user IDs)</td> -</tr> -<tr> -<td>end</td> -<td>string</td> -<td>false</td> -<td>none</td> -<td>none</td> -</tr> -</tbody> -</table> -<h2 id="tocscardscustomfields">CardsCustomfields</h2> -<p><a id="schemacardscustomfields"></a></p> -<pre class="highlight tab tab-json"><code>{} - -</code></pre> -<h3 id="properties">Properties</h3> -<p><em>None</em></p> <h2 id="tocschecklistitems">ChecklistItems</h2> <p><a id="schemachecklistitems"></a></p> <pre class="highlight tab tab-json"><code>{ diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 31f4f4e7..2b25fd97 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v3.92 + version: v3.94 description: | The REST API allows you to control and extend Wekan with ease. @@ -1221,296 +1221,6 @@ paths: properties: _id: type: string - /api/boards/{board}/lists/{list}/cards: - get: - operationId: get_all_cards - summary: Get all Cards attached to a List - tags: - - Cards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: list - in: path - description: | - the list ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - title: - type: string - description: - type: string - post: - operationId: new_card - summary: Create a new Card - tags: - - Cards - consumes: - - multipart/form-data - - application/json - parameters: - - name: authorId - in: formData - description: the authorId value - type: string - required: true - - name: members - in: formData - description: | - the member IDs list of the new card - type: string - required: false - - name: assignees - in: formData - description: | - the array of maximum one ID of assignee of the new card - type: string - required: false - - name: title - in: formData - description: | - the title of the new card - type: string - required: true - - name: description - in: formData - description: | - the description of the new card - type: string - required: true - - name: swimlaneId - in: formData - description: | - the swimlane ID of the new card - type: string - required: true - - name: board - in: path - description: | - the board ID of the new card - type: string - required: true - - name: list - in: path - description: | - the list ID of the new card - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/lists/{list}/cards/{card}: - get: - operationId: get_board_list_card - tags: - - Cards - parameters: - - name: board - in: path - description: the board value - type: string - required: true - - name: list - in: path - description: the list value - type: string - required: true - - name: card - in: path - description: the card value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - put: - operationId: put_board_list_card - tags: - - Cards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: the title value - type: string - required: true - - name: listId - in: formData - description: the listId value - type: string - required: true - - name: authorId - in: formData - description: the authorId value - type: string - required: true - - name: parentId - in: formData - description: the parentId value - type: string - required: true - - name: description - in: formData - description: the description value - type: string - required: true - - name: color - in: formData - description: the color value - type: string - required: true - - name: labelIds - in: formData - description: the labelIds value - type: string - required: true - - name: requestedBy - in: formData - description: the requestedBy value - type: string - required: true - - name: assignedBy - in: formData - description: the assignedBy value - type: string - required: true - - name: receivedAt - in: formData - description: the receivedAt value - type: string - required: true - - name: startAt - in: formData - description: the startAt value - type: string - required: true - - name: dueAt - in: formData - description: the dueAt value - type: string - required: true - - name: endAt - in: formData - description: the endAt value - type: string - required: true - - name: spentTime - in: formData - description: the spentTime value - type: string - required: true - - name: isOverTime - in: formData - description: the isOverTime value - type: string - required: true - - name: customFields - in: formData - description: the customFields value - type: string - required: true - - name: members - in: formData - description: the members value - type: string - required: true - - name: assignees - in: formData - description: the assignees value - type: string - required: true - - name: swimlaneId - in: formData - description: the swimlaneId value - type: string - required: true - - name: board - in: path - description: the board value - type: string - required: true - - name: list - in: path - description: the list value - type: string - required: true - - name: card - in: path - description: the card value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - delete: - operationId: delete_board_list_card - tags: - - Cards - parameters: - - name: board - in: path - description: the board value - type: string - required: true - - name: list - in: path - description: the list value - type: string - required: true - - name: card - in: path - description: the card value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response /api/boards/{board}/members/{member}: post: operationId: set_board_member_permission @@ -1780,30 +1490,6 @@ paths: '200': description: |- 200 response - /api/boards/{board}/swimlanes/{swimlane}/cards: - get: - operationId: get_board_swimlane_cards - tags: - - Cards - parameters: - - name: board - in: path - description: the board value - type: string - required: true - - name: swimlane - in: path - description: the swimlane value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response /api/user: get: operationId: get_current_user @@ -2349,219 +2035,6 @@ definitions: - createdAt - modifiedAt - userId - Cards: - type: object - properties: - title: - description: | - the title of the card - type: string - x-nullable: true - archived: - description: | - is the card archived - type: boolean - parentId: - description: | - ID of the parent card - type: string - x-nullable: true - listId: - description: | - List ID where the card is - type: string - x-nullable: true - swimlaneId: - description: | - Swimlane ID where the card is - type: string - boardId: - description: | - Board ID of the card - type: string - x-nullable: true - coverId: - description: | - Cover ID of the card - type: string - x-nullable: true - color: - type: string - enum: - - white - - green - - yellow - - orange - - red - - purple - - blue - - sky - - lime - - pink - - black - - silver - - peachpuff - - crimson - - plum - - darkgreen - - slateblue - - magenta - - gold - - navy - - gray - - saddlebrown - - paleturquoise - - mistyrose - - indigo - x-nullable: true - createdAt: - description: | - creation date - type: string - modifiedAt: - type: string - customFields: - description: | - list of custom fields - type: array - items: - $ref: "#/definitions/CardsCustomfields" - x-nullable: true - dateLastActivity: - description: | - Date of last activity - type: string - description: - description: | - description of the card - type: string - x-nullable: true - requestedBy: - description: | - who requested the card (ID of the user) - type: string - x-nullable: true - assignedBy: - description: | - who assigned the card (ID of the user) - type: string - x-nullable: true - labelIds: - description: | - list of labels ID the card has - type: array - items: - type: string - x-nullable: true - x-nullable: true - members: - description: | - list of members (user IDs) - type: array - items: - type: string - x-nullable: true - x-nullable: true - assignees: - description: | - who is assignee of the card (user ID), - maximum one ID of assignee in array. - type: array - items: - type: string - x-nullable: true - x-nullable: true - receivedAt: - description: | - Date the card was received - type: string - x-nullable: true - startAt: - description: | - Date the card was started to be worked on - type: string - x-nullable: true - dueAt: - description: | - Date the card is due - type: string - x-nullable: true - endAt: - description: | - Date the card ended - type: string - x-nullable: true - spentTime: - description: | - How much time has been spent on this - type: number - x-nullable: true - isOvertime: - description: | - is the card over time? - type: boolean - x-nullable: true - userId: - description: | - user ID of the author of the card - type: string - sort: - description: | - Sort value - type: number - subtaskSort: - description: | - subtask sort value - type: number - x-nullable: true - type: - description: | - type of the card - type: string - linkedId: - description: | - ID of the linked card - type: string - x-nullable: true - vote: - description: | - vote object, see below - $ref: "#/definitions/CardsVote" - x-nullable: true - required: - - archived - - swimlaneId - - createdAt - - modifiedAt - - dateLastActivity - - userId - - sort - - type - CardsVote: - type: object - properties: - question: - type: string - positive: - description: | - list of members (user IDs) - type: array - items: - type: string - x-nullable: true - negative: - description: | - list of members (user IDs) - type: array - items: - type: string - x-nullable: true - end: - type: string - required: - - question - CardsCustomfields: - type: object ChecklistItems: type: object description: An item in a checklist diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 00000000..1f53798b --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/rebuild-wekan.bat b/rebuild-wekan.bat index 0a9a8eac..232629ce 100644 --- a/rebuild-wekan.bat +++ b/rebuild-wekan.bat @@ -18,8 +18,8 @@ REM Install chocolatey choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
-curl -O https://nodejs.org/dist/v12.16.1/node-v12.16.1-x64.msi
-call node-v12.16.1-x64.msi
+curl -O https://nodejs.org/dist/v12.16.2/node-v12.16.2-x64.msi
+call node-v12.16.2-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index 957e634f..61c19928 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -5,7 +5,7 @@ echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correct echo " You can still use any other locale as your main locale." #Below script installs newest node 8.x for Debian/Ubuntu/Mint. -#NODE_VERSION=12.16.1 +#NODE_VERSION=12.16.2 #X64NODE="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" function pause(){ @@ -79,7 +79,7 @@ do curl -0 -L https://npmjs.org/install.sh | sudo sh sudo chown -R $(id -u):$(id -g) $HOME/.npm sudo npm -g install n - sudo n 12.16.1 + sudo n 12.16.2 #curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - #sudo apt-get install -y nodejs elif [[ "$OSTYPE" == "darwin"* ]]; then diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index ff7eb54f..18124e31 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 = 392, + appVersion = 394, # Increment this for every release. - appMarketingVersion = (defaultText = "3.92.0~2020-04-09"), + appMarketingVersion = (defaultText = "3.94.0~2020-04-12"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 2b6b1ef9..940bb378 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -81,7 +81,7 @@ parts: wekan: source: . plugin: nodejs - node-engine: 12.16.1 + node-engine: 12.16.2 node-packages: - node-gyp - node-pre-gyp diff --git a/stacksmith/user-scripts/build.sh b/stacksmith/user-scripts/build.sh index 00448514..22b88dc9 100755 --- a/stacksmith/user-scripts/build.sh +++ b/stacksmith/user-scripts/build.sh @@ -2,7 +2,7 @@ set -euxo pipefail BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA" -NODE_VERSION=v12.16.1 +NODE_VERSION=v12.16.2 #METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer USE_EDGE=false METEOR_EDGE=1.5-beta.17 |