diff --git a/.gitignore b/.gitignore index 175c66dd2..7037d0625 100644 --- a/.gitignore +++ b/.gitignore @@ -31,5 +31,4 @@ Thumbs.db ehthumbs.db .eslintcache .meteor/local -.meteor-1.6-snap/.meteor/local .devcontainer/docker-compose.extend.yml diff --git a/.tx/config b/.tx/config index ddf173871..f70912248 100644 --- a/.tx/config +++ b/.tx/config @@ -39,7 +39,7 @@ host = https://www.transifex.com # tap:i18n requires us to use `-` separator in the language identifiers whereas # Transifex uses a `_` separator, without an option to customize it on one side # or the other, so we need to do a Manual mapping. -lang_map = ar_EG:ar-EG, bg_BG:bg, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK +lang_map = ar_EG:ar-EG, bg_BG:bg, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK [wekan.application] file_filter = i18n/.i18n.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 85b5c5bf4..3ffc07460 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,81 @@ -# Upcoming Wekan release +# v5.08 2021-03-26 Wekan release This release adds the following new features: +- [Admin Panel/Settings/Accounts: Hide system messages of all users](https://github.com/wekan/wekan/commit/a249ffc8054189d8e3db9b4c8f082cc7ce7dcb52). + Thanks to bbyszio, r4nc0r and xet7. + +and adds the following improvements: + +- [Add Trello attached links to the card description](https://github.com/wekan/wekan/pull/3669). + Thanks to jrsupplee. +- [Added package-lock.json and updated .gitignore](https://github.com/wekan/wekan/commit/d532a3591f338cec9a3839d43d9a1e9d69f59dc2). + Thanks to xet7. + +and adds the following new translations: + +- [Added translation: español de América Latina](https://github.com/wekan/wekan/commit/ccc9efb2703efda4e199a861920b9ec88e634b59). + Thanks to translators. + +and fixes the following bugs: + +- [Fix typos in translations](https://github.com/wekan/wekan/commit/a0e1b6f918dbb252a13db05d6b9e1f832c28654f). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v5.07 2021-03-19 Wekan release + +This release fixes the following bugs: + +- [Fixed sort cards feature](https://github.com/wekan/wekan/pull/3662). + Thanks to ednamaeG. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v5.06 2021-03-18 Wekan release + +This release fixes the following bugs: + +- [Fixed Bug: Calendar & parent cards URLs used absolute URLs](https://github.com/wekan/wekan/pull/3648). + Thanks to Majed6. +- [Fixed Bug: copy to clipboard uses pathname](https://github.com/wekan/wekan/pull/3661). + Thanks to Majed6. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v5.05 2021-03-11 Wekan release + +This release fixes the following bugs: + +- [Change URL scheme recognition for allowing abasurl to link](https://github.com/wekan/wekan/pull/3641). + Thanks to tod31 and chrisi51. + +Thanks to above GitHub users for their contributions and translators for their translations. + +# v5.04 2021-03-07 Wekan release + +This release adds the following speed improvements: + +- [Speed improvement: Delete presences older than one week, and add database index to presences + serverId](https://github.com/wekan/wekan/commit/9db3c931161adfbeb6fc52d3e4cf621fb9a4955f). + Thanks to xet7. + +and adds the following new features: + - [Added autolinking settings in Admin Panel](https://github.com/wekan/wekan/pull/3633). Thanks to chrisi51. - [Add custom field editing to the REST API](https://github.com/wekan/wekan/pull/3593). Thanks to dudeofawesome. +- [Related to custom field editing, Fixed generating API docs and Wekan Custom Fields + REST API](https://github.com/wekan/wekan/commit/0bb3b670753c6ba20b0ad63f63d273036f609ee5). + Thanks to xet7. + +and adds back the following platforms: + +- [OpenPower Minicloud emergency maintenance has finished, so can now build Wekan for + ppc64le](https://github.com/wekan/wekan/commit/ac9b23f00f10b0170b8693e1e997bfb54f807adc). + Thanks to OpenPower Minicloud. and fixes the following bugs: diff --git a/README.md b/README.md index 63086056c..8b7623d8c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/wekan/wekan) +[![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 @@ -32,7 +32,7 @@ It's better than at chat where details get lost when chat scrolls up. ## FAQ -**NOTE**: +**NOTE**: - Please read the [FAQ](https://github.com/wekan/wekan/wiki/FAQ) first - Please don't feed the [trolls](https://github.com/wekan/wekan/wiki/FAQ#why-am-i-called-a-troll) and [spammers](https://github.com/wekan/wekan/wiki/FAQ#why-am-i-called-a-spammer) that are mentioned in the FAQ :) @@ -52,7 +52,7 @@ that by providing one-click installation on various platforms. - Wekan is used in [most countries of the world](https://snapcraft.io/wekan). - Wekan largest user has 13k users using Wekan in their company. -- Wekan has been [translated](https://transifex.com/wekan/wekan) to about 61 languages. +- Wekan has been [translated](https://transifex.com/wekan/wekan) to about 62 languages. - [Features][features]: Wekan has real-time user interface. - [Platforms][platforms]: Wekan supports many platforms. Wekan is critical part of new platforms Wekan is currently being integrated to. @@ -64,7 +64,7 @@ that by providing one-click installation on various platforms. [More Platforms](https://github.com/wekan/wekan/wiki/Platforms), bundle for RasPi3 ARM and other CPUs where Node.js and MongoDB exists. - 1 GB RAM minimum free for Wekan. Production server should have minimum total 4 GB RAM. For thousands of users, for example with [Docker](https://github.com/wekan/wekan/blob/master/docker-compose.yml): 3 frontend servers, - each having 2 CPU and 2 wekan-app containers. One backend wekan-db server with many CPUs. + each having 2 CPU and 2 wekan-app containers. One backend wekan-db server with many CPUs. - Enough disk space and alerts about low disk space. If you run out disk space, MongoDB database gets corrupted. - SECURITY: Updating to newest Wekan version very often. Please check you do not have automatic updates of Sandstorm or Snap turned off. Old versions have security issues because of old versions Node.js etc. Only newest Wekan is supported. diff --git a/Stackerfile.yml b/Stackerfile.yml index ee21663b0..2e13208d3 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v5.03.0" +appVersion: "v5.08.0" files: userUploads: - README.md diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index b08de3384..900931d05 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -360,7 +360,7 @@ BlazeComponent.extendComponent({ end: end || card.endAt, allDay: Math.abs(end.getTime() - start.getTime()) / 1000 === 24 * 3600, - url: FlowRouter.url('card', { + url: FlowRouter.path('card', { boardId: currentBoard._id, slug: currentBoard.slug, cardId: card._id, diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index b59e650e0..e1b50eb0e 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -34,9 +34,12 @@ template(name="boardHeaderBar") if $eq watchLevel "muted" i.fa.fa-bell-slash span {{_ watchLevel}} - a.board-header-btn.js-sort-cards(title="{{_ 'sort-cards'}}") + a.board-header-btn(title="{{_ 'sort-cards'}}" class="{{#if isSortActive }}emphasis{{else}} js-sort-cards {{/if}}") i.fa.fa-sort - | {{_ 'sort-cards'}} {{sortCardsBy.get}} + span {{#if isSortActive }}{{_ 'Sort is on'}}{{else}}{{_ 'sort-cards'}}{{/if}} + if isSortActive + a.board-header-btn-close.js-sort-reset(title="Remove Sort") + i.fa.fa-times-thin else a.board-header-btn.js-log-in( diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index bbd847db8..1cca7f11b 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -54,6 +54,10 @@ Template.boardChangeTitlePopup.events({ }); BlazeComponent.extendComponent({ + onCreated() { + // set sort to default + Session.set('sortBy', ''); + }, watchLevel() { const currentBoard = Boards.findOne(Session.get('currentBoard')); return currentBoard && currentBoard.getWatchLevel(Meteor.userId()); @@ -129,6 +133,9 @@ BlazeComponent.extendComponent({ Sidebar.setView(); Filter.reset(); }, + 'click .js-sort-reset'() { + Session.set('sortBy', ''); + }, 'click .js-open-search-view'() { Sidebar.setView('search'); }, @@ -162,6 +169,9 @@ Template.boardHeaderBar.helpers({ boardView() { return Utils.boardView(); }, + isSortActive() { + return Session.get('sortBy') ? true : false; + }, }); Template.boardChangeViewPopup.events({ @@ -407,14 +417,6 @@ BlazeComponent.extendComponent({ sortCardsBy.set(TAPi18n.__('date-created-oldest-first')); Popup.close(); }, - 'click .js-sort-default'() { - const sortBy = { - sort: 1, - }; - Session.set('sortBy', sortBy); - sortCardsBy.set(TAPi18n.__('default')); - Popup.close(); - }, }, ]; }, diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index bd8a8346a..245ab773d 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -12,7 +12,6 @@ template(name="cardDetails") a.fa.fa-link.card-copy-button.js-copy-link( class="fa-link" title="{{_ 'copy-card-link-to-clipboard'}}" - value="{{ originRelativeUrl }}" ) if isMiniScreen a.fa.fa-times-thin.close-card-details-mobile-web.js-close-card-details diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 832007f6d..c745f0730 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -114,7 +114,7 @@ BlazeComponent.extendComponent({ if (card) { const board = Boards.findOne(card.boardId); if (board) { - result = FlowRouter.url('card', { + result = FlowRouter.path('card', { boardId: card.boardId, slug: board.slug, cardId: card._id, @@ -291,6 +291,8 @@ BlazeComponent.extendComponent({ }, 'click .js-copy-link'() { StringToCopyElement = document.getElementById('cardURL_copy'); + StringToCopyElement.value = + window.location.origin + window.location.pathname; StringToCopyElement.select(); if (document.execCommand('copy')) { StringToCopyElement.blur(); diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 207dadda8..a43a49d6c 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -77,8 +77,6 @@ Template.userFormsLayout.helpers({ } else if (lang.name === 'ar-EG') { // ar-EG = Arabic (Egypt), simply Masri (مَصرى, [ˈmɑsˤɾi], Egyptian, Masr refers to Cairo) name = 'مَصرى'; - } else if (lang.name === 'es-PY') { - name = 'Español de Paraguayo'; } else if (lang.name === 'fa-IR') { // fa-IR = Persian (Iran) name = 'فارسی/پارسی (ایران‎)'; @@ -94,6 +92,14 @@ Template.userFormsLayout.helpers({ name = 'Latviešu'; } else if (lang.name === 'Español') { name = 'español'; + } else if (lang.name === 'es_419') { + name = 'español de América Latina'; + } else if (lang.name === 'es-419') { + name = 'español de América Latina'; + } else if (lang.name === 'Español de América Latina') { + name = 'español de América Latina'; + } else if (lang.name === 'es-LA') { + name = 'español de América Latina'; } else if (lang.name === 'Español de Argentina') { name = 'español de Argentina'; } else if (lang.name === 'Español de Chile') { @@ -104,6 +110,8 @@ Template.userFormsLayout.helpers({ name = 'español de México'; } else if (lang.name === 'es-PY') { name = 'español de Paraguayo'; + } else if (lang.name === 'Español de Paraguayo') { + name = 'español de Paraguayo'; } else if (lang.name === 'Español de Perú') { name = 'español de Perú'; } else if (lang.name === 'Español de Puerto Rico') { diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index 84d7a1b18..f8cfc3a59 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -122,6 +122,8 @@ template(name='email') template(name='accountSettings') ul#account-setting.setting-detail + li + button.js-all-hide-system-messages.primary {{_ 'hide-system-messages-of-all-users'}} li.accounts-form .title {{_ 'accounts-allowEmailChange'}} .form-group.flex @@ -129,23 +131,18 @@ template(name='accountSettings') span {{_ 'yes'}} input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}") span {{_ 'no'}} - li - li.accounts-form .title {{_ 'accounts-allowUserNameChange'}} .form-group.flex input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}") span {{_ 'yes'}} input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}") span {{_ 'no'}} - li - li.accounts-form .title {{_ 'accounts-allowUserDelete'}} .form-group.flex input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}") span {{_ 'yes'}} input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}") span {{_ 'no'}} - li button.js-accounts-save.primary {{_ 'save'}} template(name='announcementSettings') diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 68126589e..596b40613 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -274,7 +274,6 @@ BlazeComponent.extendComponent({ $set: { booleanValue: allowUserDelete }, }); }, - allowEmailChange() { return AccountSettings.findOne('accounts-allowEmailChange').booleanValue; }, @@ -284,12 +283,31 @@ BlazeComponent.extendComponent({ allowUserDelete() { return AccountSettings.findOne('accounts-allowUserDelete').booleanValue; }, + allHideSystemMessages() { + Meteor.call('setAllUsersHideSystemMessages', (err, ret) => { + if (!err && ret) { + if (ret === true) { + const message = `${TAPi18n.__( + 'now-system-messages-of-all-users-are-hidden', + )}`; + alert(message); + } + } else { + const reason = err.reason || ''; + const message = `${TAPi18n.__(err.error)}\n${reason}`; + alert(message); + } + }); + }, events() { return [ { 'click button.js-accounts-save': this.saveAccountsChange, }, + { + 'click button.js-all-hide-system-messages': this.allHideSystemMessages, + }, ]; }, }).register('accountSettings'); diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 1e291ecac..7b484bc48 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -171,8 +171,6 @@ Template.changeLanguagePopup.helpers({ } else if (lang.name === 'ar-EG') { // ar-EG = Arabic (Egypt), simply Masri (مَصرى, [ˈmɑsˤɾi], Egyptian, Masr refers to Cairo) name = 'مَصرى'; - } else if (lang.name === 'es-PY') { - name = 'Español de Paraguayo'; } else if (lang.name === 'fa-IR') { // fa-IR = Persian (Iran) name = 'فارسی/پارسی (ایران‎)'; @@ -188,6 +186,14 @@ Template.changeLanguagePopup.helpers({ name = 'Latviešu'; } else if (lang.name === 'Español') { name = 'español'; + } else if (lang.name === 'es_419') { + name = 'español de América Latina'; + } else if (lang.name === 'es-419') { + name = 'español de América Latina'; + } else if (lang.name === 'Español de América Latina') { + name = 'español de América Latina'; + } else if (lang.name === 'es-LA') { + name = 'español de América Latina'; } else if (lang.name === 'Español de Argentina') { name = 'español de Argentina'; } else if (lang.name === 'Español de Chile') { @@ -198,6 +204,8 @@ Template.changeLanguagePopup.helpers({ name = 'español de México'; } else if (lang.name === 'es-PY') { name = 'español de Paraguayo'; + } else if (lang.name === 'Español de Paraguayo') { + name = 'español de Paraguayo'; } else if (lang.name === 'Español de Perú') { name = 'español de Perú'; } else if (lang.name === 'Español de Puerto Rico') { diff --git a/i18n/ar-EG.i18n.json b/i18n/ar-EG.i18n.json index f412cdeda..65b8bfc9e 100644 --- a/i18n/ar-EG.i18n.json +++ b/i18n/ar-EG.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index d98fde55d..10e64c627 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "اسم المستخدم", "import-usernames": "Import Usernames", "view-it": "شاهدها", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index d5272ae7b..f151e8267 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Потребителско име", "import-usernames": "Import Usernames", "view-it": "Прегледайте", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 2f90c9f48..3010240b8 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 3773f85b1..f9f09e12d 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nom d'Usuari", "import-usernames": "Import Usernames", "view-it": "Vist", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index e8a2bc16f..7a8715b7c 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL vlastního loga přihlášení", "custom-login-logo-link-url": "URL odkazu vlastního loga přihlášení", "text-below-custom-login-logo": "Text pod vlastním logem přihlášení", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Uživatelské jméno", "import-usernames": "Importovat uživatelská jména", "view-it": "Zobrazit", @@ -905,7 +906,7 @@ "operator-modified": "modifikováno", "operator-sort": "třídění", "operator-comment": "komentář", - "operator-has": "has", + "operator-has": "má", "operator-limit": "limit", "predicate-archived": "archivováno", "predicate-open": "otevřít", @@ -979,5 +980,8 @@ "due-date": "Požadovaný termín", "title-alphabetically": "Nadpis (Abecedně)", "created-at-newest-first": "Vyvtořeno (Od nejnovějších)", - "created-at-oldest-first": "Vytvořeno (Od nejstarších)" + "created-at-oldest-first": "Vytvořeno (Od nejstarších)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index 94faedf96..2a5c632ce 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Brugernavn", "import-usernames": "Import Usernames", "view-it": "Vis den", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 57998a458..b58601cff 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Benutzerdefiniertes Login Logo Bild URL", "custom-login-logo-link-url": "Benutzerdefiniertes Login Logo Link URL", "text-below-custom-login-logo": "Text unterhalb benutzerdefiniertem Login Logo", + "automatic-linked-url-schemes": "Spezielle URL-Schemas, die durch Klick automatisch öffenbar sein sollen. Ein URL-Schema pro Zeile", "username": "Benutzername", "import-usernames": "Nutzernamen importieren", "view-it": "Ansehen", @@ -979,5 +980,8 @@ "due-date": "Fälligkeitsdatum", "title-alphabetically": "Überschrift (alphabetisch)", "created-at-newest-first": "Erstelldatum (neueste zuerst)", - "created-at-oldest-first": "Erstelldatum (älteste zuerst)" + "created-at-oldest-first": "Erstelldatum (älteste zuerst)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen", + "now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen" } diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index f73430c2a..18296c660 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Όνομα Χρήστη", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 09047ed65..82a20625f 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 7420018b8..a76e27324 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -981,5 +981,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 331693bbc..1bc18bdc9 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Uzantnomo", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index 03bc7733c..765d857c5 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nombre de usuario", "import-usernames": "Import Usernames", "view-it": "Verlo", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es-CL.i18n.json b/i18n/es-CL.i18n.json index ad1db048b..7fc24476f 100644 --- a/i18n/es-CL.i18n.json +++ b/i18n/es-CL.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nombre de usuario", "import-usernames": "Import Usernames", "view-it": "Verla", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es-LA.i18n.json b/i18n/es-LA.i18n.json new file mode 100644 index 000000000..65b8bfc9e --- /dev/null +++ b/i18n/es-LA.i18n.json @@ -0,0 +1,987 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-card": "Add Card", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "add-cover": "Add Cover", + "add-label": "Add Label", + "add-list": "Add List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "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-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (520KB max)", + "back": "Back", + "board-change-color": "Change color", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be private.", + "board-public-info": "This board will be public.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardDeletePopup-title": "Delete Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “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-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "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", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", + "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "exportBoardPopup-title": "Export board", + "sort": "Sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "hide-system-messages": "Hide system messages", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "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-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "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", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "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", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to 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", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creater or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by logging in.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove Cover", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "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-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-trigger": "Trigger", + "r-action": "Action", + "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", + "list": "List", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "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-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "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-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-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-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value.", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "add-custom-html-after-body-start": "Add Custom HTML after start", + "add-custom-html-before-body-end": "Add Custom HTML before end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is:", + "team-number": "The number of teams is:", + "people-number": "The number of people is:", + "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.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "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", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "board": "Board", + "context-separator": "/", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" +} diff --git a/i18n/es-MX.i18n.json b/i18n/es-MX.i18n.json index 273fc1c19..0d8c15234 100644 --- a/i18n/es-MX.i18n.json +++ b/i18n/es-MX.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es-PE.i18n.json b/i18n/es-PE.i18n.json index 34434a205..ada34b58f 100644 --- a/i18n/es-PE.i18n.json +++ b/i18n/es-PE.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL de imagen del logo personalizado de inicio de sesión", "custom-login-logo-link-url": "URL de enlace del logo personalizado de inicio de sesión", "text-below-custom-login-logo": "Texto debajo del logo personalizado de inicio de sesión", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nombre de usuario", "import-usernames": "Import Usernames", "view-it": "Verla", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es-PY.i18n.json b/i18n/es-PY.i18n.json index f412cdeda..65b8bfc9e 100644 --- a/i18n/es-PY.i18n.json +++ b/i18n/es-PY.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 43f420ab5..1c7edd072 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nombre de usuario", "import-usernames": "Import Usernames", "view-it": "Verla", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index fa5294cf3..f2d1f8d55 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Erabiltzaile-izena", "import-usernames": "Import Usernames", "view-it": "Ikusi", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/fa-IR.i18n.json b/i18n/fa-IR.i18n.json index f412cdeda..65b8bfc9e 100644 --- a/i18n/fa-IR.i18n.json +++ b/i18n/fa-IR.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 89d505578..f62d1b00c 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "آدرس تصویر لوگوی سفارشی در لاگین", "custom-login-logo-link-url": "آدرس لینک لوگوی سفارشی در لاگین", "text-below-custom-login-logo": "متن پایین لوگوی سفارشی در فرم لاگین", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "نام کاربری", "import-usernames": "درون ریزی کاربران", "view-it": "مشاهده", @@ -979,5 +980,8 @@ "due-date": "تاریخ اجرا", "title-alphabetically": "تیتر (به صورت الفبا)", "created-at-newest-first": "ساخته شده در تاریخ (با اولویت جدید تر)", - "created-at-oldest-first": "ساخته شده در تاریخ (با اولویت قدیمی تر)" + "created-at-oldest-first": "ساخته شده در تاریخ (با اولویت قدیمی تر)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index d3e2769cc..ff70162d0 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Mukautettu kirjautumis logo kuvan URL", "custom-login-logo-link-url": "Mukautettu kirjautumis logon linkki URL", "text-below-custom-login-logo": "Teksti mukautetun kirjautumis logon alla", + "automatic-linked-url-schemes": "Mukautetut URL-mallit, joiden pitäisi olla automaattisesti klikattavissa. Yksi URL-malli riviä kohden", "username": "Käyttäjätunnus", "import-usernames": "Tuo käyttäjänimet", "view-it": "Näytä se", @@ -979,5 +980,8 @@ "due-date": "Eräpäivä", "title-alphabetically": "Otsikko (Aakkosjärjestyksessä)", "created-at-newest-first": "Luotu (Uusin ensin)", - "created-at-oldest-first": "Luotu (Vanhin ensin)" + "created-at-oldest-first": "Luotu (Vanhin ensin)", + "links-heading": "Linkit", + "hide-system-messages-of-all-users": "Piilota kaikkien käyttäjien järjestelmäviestit", + "now-system-messages-of-all-users-are-hidden": "Nyt kaikkien käyttäjien järjestelmäviestit on piilotettu" } diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index a627ebee8..29d54e74d 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL de l'image du logo de connexion personnalisé", "custom-login-logo-link-url": "Lien URL du logo de connexion personnalisé", "text-below-custom-login-logo": "Texte sous le logo de connexion personnalisé", + "automatic-linked-url-schemes": "Schémas d'URI personnalisés qui devraient être automatiquement cliquables. Un schéma d'URI par ligne", "username": "Nom d'utilisateur", "import-usernames": "Importer les noms d'utilisateurs", "view-it": "Le voir", @@ -946,22 +947,22 @@ "globalSearch-instructions-operator-comment": "`__operator_comment__:<texte>` - cartes dont le commentaire contient *<texte>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<couleur>` `__operator_label__:<nom>` - cartes qui ont une étiquette correspondant à *<couleur>* ou à *<nom>*.", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<nom|couleur>` - raccourci pour `__operator_label__:<couleur>` ou `__operator_label__:<nom>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *assigné* ou est un *participant*.", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:<nom>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins", + "globalSearch-instructions-operator-status": "`__operator_status__:<état>` - où *<état>* est l'un des choix suivants :", "globalSearch-instructions-status-archived": "`__predicate_archived__` - cartes qui ont été archivées.", "globalSearch-instructions-status-all": "`__predicate_all__` - toutes les cartes : archivées et non archivées.", "globalSearch-instructions-status-ended": "`__predicate_ended__` - cartes ayant une date de fin.", "globalSearch-instructions-status-public": "`__predicate_public__` - uniquement les cartes qui sont dans un tableau public.", "globalSearch-instructions-status-private": "`__predicate_private__` - uniquement les cartes qui sont dans un tableau privé.", "globalSearch-instructions-operator-has": "`__operator_has__:<champ>` - où *<champ>* est un parmi `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` ou `__predicate_member__`. Placer un `-` au début de *<champ>* recherche l'absence de valeur dans ce champ (par exemple. __operator_has:__predicate_due` recherche les carte sans date d'échéance).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<tri>` - où *<tri>* est une méthode parmi `__predicate_due__`, `__predicate_created__` ou `__predicate_modified__`. Pour un tri descendant, préfixez la méthode par `-`.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - où *<n>* est un entier positif exprimant le nombre de cartes à afficher par page.", "globalSearch-instructions-notes-1": "Il est possible d'utiliser plusieurs opérateurs.", "globalSearch-instructions-notes-2": "Les opérateurs similaires deviennent *optionnels*. Les cartes correspondant à n'importe quelle condition sont retournées.\n`__operator_list__:Disponible __operator_list__:Bloquée` retournera les cartes contenues dans la liste *Disponible* ou dans la liste *Bloquée*.", "globalSearch-instructions-notes-3": "Les opérateurs différents sont *combinés*. Seules les cartes correspondant à tous les critères sont retournées. `__operator_list__:Disponible __operator_label__:rouge` ne retourne que les cartes dans la liste *Disponible* avec une étiquette *rouge*.", @@ -979,5 +980,8 @@ "due-date": "Date d'échéance", "title-alphabetically": "Titre (Alphabétiquement)", "created-at-newest-first": "Date de création (Plus récentes en premier)", - "created-at-oldest-first": "Date de création (Plus anciennes en premier)" + "created-at-oldest-first": "Date de création (Plus anciennes en premier)", + "links-heading": "Liens", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 3b812527b..90b3e59eb 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nome de usuario", "import-usernames": "Import Usernames", "view-it": "Velo", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index e097a4495..a03c66392 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "כתובת תמונת לוגו משלך לכניסה", "custom-login-logo-link-url": "כתובת קישור לוגו משלך לכניסה", "text-below-custom-login-logo": "טקסט מתחת לשיטת כניסה מותאמת", + "automatic-linked-url-schemes": "סכמות כתובות בהתאמה אישית שיהפכו ללחיצות אוטומטית. סכמת כתובת אחת בשורה", "username": "שם משתמש", "import-usernames": "ייבוא שמות משתמשים", "view-it": "הצגה", @@ -945,27 +946,27 @@ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - כרטיסים במסלולים שעונים על *<title>* שצוין", "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - כרטיסים עם הערה שמכילים *<text>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - כרטיסים שיש להם תווית שתואמת את *<color>* או את *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - קיצור של `__operator_label__:<color>` או `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - כרטיסים שהוקצו אל *<username>* או שהוא *חבר* בהם", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - קיצור של `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - כרטיסים בהם *<username>* *חבר*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - כרטיסים שהוקצו אל *<username>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - כרטיסים שהתוקף שלהם יפוג עד עוד *<n>* ימים מעכשיו. `__operator_due__:__predicate_overdue__ מציג את כל הכרטיסים שתאריך התוקף שלהם עבר.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - כרטיסים שנוצרו לפני *<n>* ימים או פחות", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - כרטיסים שנערכו לפני *<n>* ימים או פחות", "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - כאשר *<status>* יכול להיות אחד מהבאים:", "globalSearch-instructions-status-archived": "`__predicate_archived__` - כרטיסים בארכיון", "globalSearch-instructions-status-all": "`__predicate_all__` - כל הכרטיסים שבארכיון ומחוצה לו.", "globalSearch-instructions-status-ended": "`__predicate_ended__` - כרטיסים עם מועד סיום", "globalSearch-instructions-status-public": "`__predicate_public__` - כרטיסים בלוחות ציבוריים בלבד", "globalSearch-instructions-status-private": "`__predicate_private__` - כרטיסים בלוחות פרטיים בלבד.", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - כאשר *<field>* הוא אחד מבין `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` או `__predicate_member__`. הוספת `-` לפני חיפושי *<field>* מחפש שדות שאין בהם את הערך שצוין (למשל: `has:-due` יחפש כרטיסים בלי תאריך תפוגה).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - כאשר *<sort-name>* הוא אחד מבין `__predicate_due__`, `__predicate_created__` או `__predicate_modified__`. לסדר יורד יש להציב `-` לפני שם המיון.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - כאשר *<n>* הוא מספר שלם וחיובי שמבטא את מספר הכרטיסים שיופיעו בכל עמוד.", "globalSearch-instructions-notes-1": "אפשר לציין מגוון סימוני פעולה.", "globalSearch-instructions-notes-2": "על פעולות דומות חל שער לוגי *או* (*OR*). כרטיסים שתואמים אי אילו מהכללים יוחזרו.\n`__operator_list__:זמינים __operator_list__:חסומים` תחזרנה כרטיסים שמופיעים ברשימות עם השמות *חסומים* או *זמינים*.", "globalSearch-instructions-notes-3": "על פעולות שונות חל שער לוגי *וגם* (*AND*). רק כרטיסים שתואמים את שתי הפעולות השונות יוחזרו. `__operator_list__:זמינים __operator_label__:אדום` תחזיר רק כרטיסים מהרשימה *זמינים* עם תווית בצבע *אדום*.", - "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-3-2": "ניתן לציין ימים כמספר שלם חיובי או שלילי או על ידי ציון `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` או `__predicate_year__` לתקופה הנוכחית.", "globalSearch-instructions-notes-4": "חיפושי טקסט הם תלויי רישיות.", "globalSearch-instructions-notes-5": "כבררת מחדל לא מתבצע חיפוש בכרטיסים שבארכיון.", "link-to-search": "קישור לחיפוש הזה", @@ -979,5 +980,8 @@ "due-date": "מועד סיום", "title-alphabetically": "כותרת (לפי האלפבית)", "created-at-newest-first": "מועד יצירה (החדש ביותר בהתחלה)", - "created-at-oldest-first": "מועד יצירה (הישן ביותר בהתחלה)" + "created-at-oldest-first": "מועד יצירה (הישן ביותר בהתחלה)", + "links-heading": "קישורים", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index d36059129..f5a36dc3e 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "आलोकन it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/hr.i18n.json b/i18n/hr.i18n.json index 7c626571f..58f5a16a6 100644 --- a/i18n/hr.i18n.json +++ b/i18n/hr.i18n.json @@ -51,30 +51,30 @@ "activity-created": "kreirao/la je %s", "activity-customfield-created": "kreirao/la je prilagođeno polje %s", "activity-excluded": "izdvojio/la je %s iz %s", - "activity-imported": "imported %s into %s from %s", - "activity-imported-board": "imported %s from %s", - "activity-joined": "joined %s", + "activity-imported": "uvezeno %s u %s iz %s ", + "activity-imported-board": "uvezeno %s iz %s", + "activity-joined": "spojen", "activity-moved": "moved %s from %s to %s", "activity-on": "na %s", - "activity-removed": "removed %s from %s", - "activity-sent": "sent %s to %s", - "activity-unjoined": "unjoined %s", - "activity-subtask-added": "added subtask to %s", - "activity-checked-item": "checked %s in checklist %s of %s", - "activity-unchecked-item": "unchecked %s in checklist %s of %s", - "activity-checklist-added": "added checklist to %s", - "activity-checklist-removed": "removed a checklist from %s", - "activity-checklist-completed": "completed checklist %s of %s", - "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", - "activity-checklist-item-added": "added checklist item to '%s' in %s", - "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "activity-removed": "uklonjen %s iz %s", + "activity-sent": "poslano %s u %s", + "activity-unjoined": "odspojen %s", + "activity-subtask-added": "dodan podzadatak u %s", + "activity-checked-item": "označen %s u listi provjere %s od %s", + "activity-unchecked-item": "odznačen %s u listi provjere %s od %s", + "activity-checklist-added": "dodana lista provjere u %s", + "activity-checklist-removed": "uklonjena lista provjere iz %s", + "activity-checklist-completed": "dovršena lista provjere %s od %s", + "activity-checklist-uncompleted": "nedovršena lista provjere %s od %s", + "activity-checklist-item-added": "dodana stavka '%s' u %s", + "activity-checklist-item-removed": "uklonjena stavka iz '%s' u %s", "add": "Dodaj", - "activity-checked-item-card": "checked %s in checklist %s", - "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checked-item-card": "označeno %s u listi provjere %s", + "activity-unchecked-item-card": "odznačeno %s u listi provjere %s", "activity-checklist-completed-card": "lista provjere __checklist__ na kartici __card__ na listi __list__ u traci __swimlane__ na ploči __board__ je potpuno završena", "activity-checklist-uncompleted-card": "uncompleted the checklist %s", - "activity-editComment": "edited comment %s", - "activity-deleteComment": "deleted comment %s", + "activity-editComment": "uređen komentar %s", + "activity-deleteComment": "obrisan komentar %s", "activity-receivedDate": "edited received date to %s of %s", "activity-startDate": "edited start date to %s of %s", "activity-dueDate": "edited due date to %s of %s", @@ -86,49 +86,49 @@ "add-subtask": "Dodaj podzadatak", "add-checklist": "Dodaj listu provjere", "add-checklist-item": "Dodaj stavku listi provjere", - "add-cover": "Add Cover", + "add-cover": "Dodaj naslovnicu", "add-label": "Dodaj oznaku", "add-list": "Dodaj listu", "add-members": "Dodaj korisnika", - "added": "Added", + "added": "Dodano", "addMemberPopup-title": "Korisnici", "admin": "Administrator", - "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-desc": "Može pregledavati i uređivati ​​kartice, uklanjati članove i mijenjati postavke ploče.", "admin-announcement": "Obavijest", - "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-active": "Aktivne sistemske obavijesti", "admin-announcement-title": "Administratorske obavijesti", "all-boards": "Sve ploče", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", "apply": "Primjeni", "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-board": "Move Board to Archive", - "archive-card": "Move Card to Archive", - "archive-list": "Move List to Archive", - "archive-swimlane": "Move Swimlane to Archive", - "archive-selection": "Move selection to Archive", - "archiveBoardPopup-title": "Move Board to Archive?", + "archive": "Preseli u arhivu", + "archive-all": "Preseli sve u arhivu", + "archive-board": "Preseli ploču u arhivu", + "archive-card": "Preseli karticu u arhivu", + "archive-list": "Preseli listu u arhivu", + "archive-swimlane": "Preseli traku u arhivu", + "archive-selection": "Preseli selekciju u arhivu", + "archiveBoardPopup-title": "Želite preseliti ploču u arhivu?", "archived-items": "Arhiva", "archived-boards": "Ploče u arhivi", - "restore-board": "Restore Board", - "no-archived-boards": "No Boards in Archive.", + "restore-board": "Vrati ploču", + "no-archived-boards": "Nema ploča u arhivi.", "archives": "Arhiva", "template": "Predložak", "templates": "Predlošci", - "assign-member": "Assign member", - "attached": "attached", + "assign-member": "Dodijeli člana", + "attached": "u prilogu", "attachment": "Privitak", - "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachment-delete-pop": "Brisanje priloga je trajno. Nema poništavanja brisanja.", "attachmentDeletePopup-title": "Obrisati privitak?", "attachments": "Privitci", - "auto-watch": "Automatically watch boards when they are created", - "avatar-too-big": "The avatar is too large (520KB max)", + "auto-watch": "Automatski pratite nove ploče kada su kreirane", + "avatar-too-big": "Slika za avatar je prevelika (maksimalno 520KB)", "back": "Nazad", - "board-change-color": "Change color", - "board-nb-stars": "%s stars", - "board-not-found": "Board not found", + "board-change-color": "Promijeni boju", + "board-nb-stars": "%s zvjezdica", + "board-not-found": "Ploča nije pronađena", "board-private-info": "This board will be <strong>private</strong>.", "board-public-info": "This board will be <strong>public</strong>.", "boardChangeColorPopup-title": "Change Board Background", @@ -190,16 +190,16 @@ "cardType-card": "Kartica", "cardType-linkedCard": "Povezane kartice", "cardType-linkedBoard": "Povezane ploče", - "change": "Promjeni", - "change-avatar": "Promjeni avatara", - "change-password": "Promjeni lozinku", - "change-permissions": "Promjeni dozvole", - "change-settings": "Promjeni postavke", - "changeAvatarPopup-title": "Promjeni avatara", - "changeLanguagePopup-title": "Promjeni jezik", - "changePasswordPopup-title": "Promjeni lozinku", - "changePermissionsPopup-title": "Promjeni dozvole", - "changeSettingsPopup-title": "Promjeni postavke", + "change": "Promijeni", + "change-avatar": "Promijeni avatara", + "change-password": "Promijeni lozinku", + "change-permissions": "Promijeni dozvole", + "change-settings": "Promijeni postavke", + "changeAvatarPopup-title": "Promijeni avatara", + "changeLanguagePopup-title": "Promijeni jezik", + "changePasswordPopup-title": "Promijeni lozinku", + "changePermissionsPopup-title": "Promijeni dozvole", + "changeSettingsPopup-title": "Promijeni postavke", "subtasks": "Podzadaci", "checklists": "Liste provjere", "click-to-star": "Click to star this board.", @@ -285,15 +285,15 @@ "done": "Done", "download": "Preuzmi", "edit": "Uredi", - "edit-avatar": "Promjeni avatara", + "edit-avatar": "Promijeni avatara", "edit-profile": "Uredi profil", "edit-wip-limit": "Edit WIP Limit", "soft-wip-limit": "Soft WIP Limit", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", + "editCardStartDatePopup-title": "Promijeni datum početka", + "editCardDueDatePopup-title": "Promijeni datum dospijeća", "editCustomFieldPopup-title": "Uredi polje", "editCardSpentTimePopup-title": "Change spent time", - "editLabelPopup-title": "Change Label", + "editLabelPopup-title": "Promijeni oznaku", "editNotificationPopup-title": "Edit Notification", "editProfilePopup-title": "Uredi profil", "email": "Email", @@ -403,7 +403,7 @@ "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", "labels": "Oznake", "language": "Jezik", - "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "last-admin-desc": "Ne možeš promijeniti uloge jer mora postojati barem jedan administrator.", "leave-board": "Napusti ploču", "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", "leaveBoardPopup-title": "Napustiti ploču?", @@ -441,7 +441,7 @@ "multi-selection-member": "Set member for selection", "multi-selection-on": "Multi-Selection is on", "muted": "Bez obavijesti", - "muted-info": "You will never be notified of any changes in this board", + "muted-info": "Nikada nećeš biti obaviješten o bilo kakvim promjenama na ovoj ploči", "my-boards": "Moje ploče", "name": "Ime", "no-archived-cards": "Nema kartica u arhivi", @@ -449,7 +449,7 @@ "no-archived-swimlanes": "Nema traka u arhivi", "no-results": "Bez rezultata", "normal": "Normalno", - "normal-desc": "Can view and edit cards. Can't change settings.", + "normal-desc": "Može pregledavati i uređivati ​​kartice. Nije moguće promijeniti postavke.", "not-accepted-yet": "Invitation not accepted yet", "notify-participate": "Receive updates to any cards you participate as creater or member", "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", @@ -518,7 +518,7 @@ "time": "Vrijeme", "title": "Naziv", "tracking": "Tracking", - "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "tracking-info": "Bit ćeš obaviješten o svim promjenama na onim karticama u koje si uključen kao autor ili član.", "type": "Tip", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", @@ -532,13 +532,14 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Korisničko ime", "import-usernames": "Import Usernames", "view-it": "View it", "warn-list-archived": "warning: this card is in an list at Archive", "watch": "Prati", "watching": "Watching", - "watching-info": "You will be notified of any change in this board", + "watching-info": "Bit ćeš obaviješten o svim promjenama na ovoj ploči", "welcome-board": "Welcome Board", "welcome-swimlane": "Milestone 1", "welcome-list1": "Osnove", @@ -703,7 +704,7 @@ "r-top-of": "Top of", "r-bottom-of": "Bottom of", "r-its-list": "its list", - "r-archive": "Move to Archive", + "r-archive": "Preseli u arhivu", "r-unarchive": "Restore from Archive", "r-card": "card", "r-add": "Dodati", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 964c1951b..5c04163f7 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Felhasználónév", "import-usernames": "Import Usernames", "view-it": "Megtekintés", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index ace5591b9..bc6a49a29 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 907795e47..0f51d603e 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -1,15 +1,15 @@ { "accept": "Terima", - "act-activity-notify": "Pemeberitahuan Aktifitas", - "act-addAttachment": "ditambahkan lampiran __attachment__ di kartu __card__ pada daftar __list__ pada swimline __swimline__ pada papan __board__", - "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-activity-notify": "Pemberitahuan Aktifitas", + "act-addAttachment": "menambahkan lampiran __attachment__ ke kartu __card__ pada daftar __list__ pada jalur __swimline__ dalam papan __board__", + "act-deleteAttachment": "menghapus lampiran __attachment__ di kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-addSubtask": "menambah tugas __subtask__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-addLabel": "Menambah label __label__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-addedLabel": "Menambah label __label__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-removeLabel": "Menghapus label __label__ dari kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-removedLabel": "Menghapus label __label__ dari kartu__card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-addChecklist": "menambah daftar cek __checklist__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", + "act-addChecklistItem": "menambah item cek __checklistItem__ ke daftar cek __checklist__ di kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nama Pengguna", "import-usernames": "Import Usernames", "view-it": "Lihat", @@ -572,7 +573,7 @@ "invitation-code": "Kode Undangan", "email-invite-register-subject": "__inviter__ mengirim undangan ke Anda", "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "email-smtp-test-subject": "SMTP Tes Surel", + "email-smtp-test-subject": "Tes Surel SMTP", "email-smtp-test-text": "You have successfully sent an email", "error-invitation-code-not-exist": "Kode undangan tidak ada", "error-notAuthorized": "You are not authorized to view this page.", @@ -683,7 +684,7 @@ "r-moved-from": "Dipindahkan dari", "r-archived": "Dipindahkan ke Arsip", "r-unarchived": "Dipulihkan dari Arsip", - "r-a-card": "Kartu", + "r-a-card": "satu kartu", "r-when-a-label-is": "Ketika label adalah", "r-when-the-label": "Ketika label", "r-list-name": "nama daftar", @@ -702,8 +703,8 @@ "r-move-card-to": "Move card to", "r-top-of": "Top of", "r-bottom-of": "Bottom of", - "r-its-list": "daftar ini", - "r-archive": "Pindahlan ke Arsip", + "r-its-list": "daftarnya", + "r-archive": "Pindahkan ke Arsip", "r-unarchive": "Pulihkan dari Arsip", "r-card": "Kartu", "r-add": "Tambah", @@ -718,12 +719,12 @@ "r-items-check": "items of checklist", "r-check": "Check", "r-uncheck": "Uncheck", - "r-item": "Item", + "r-item": "item", "r-of-checklist": "of checklist", "r-send-email": "Send an email", "r-to": "kepada", "r-of": "dari", - "r-subject": "Subyek", + "r-subject": "subyek", "r-rule-details": "Rule details", "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", @@ -731,15 +732,15 @@ "r-d-move-to-bottom-spec": "Move card to bottom of list", "r-d-send-email": "Kirim surel", "r-d-send-email-to": "kepada", - "r-d-send-email-subject": "Subyek", + "r-d-send-email-subject": "subyek", "r-d-send-email-message": "pesan", - "r-d-archive": "Pindahlan kartu ke Arsip", + "r-d-archive": "Pindahkan kartu ke Arsip", "r-d-unarchive": "Pulihkan kartu dari Arsip", "r-d-add-label": "Tambahkan label", "r-d-remove-label": "Hapus label", "r-create-card": "Buat kartu baru", "r-in-list": "pada daftar", - "r-in-swimlane": "in swimlane", + "r-in-swimlane": "pada jalur", "r-d-add-member": "Tambahkan anggota", "r-d-remove-member": "Hapus anggota", "r-d-remove-all-member": "Hapus semua anggota", @@ -753,7 +754,7 @@ "r-by": "oleh", "r-add-checklist": "Tambahkan daftar periksa", "r-with-items": "dengan item", - "r-items-list": "item 1, item2, item 3", + "r-items-list": "item1, item2, item3", "r-add-swimlane": "Add swimlane", "r-swimlane-name": "swimlane name", "r-board-note": "Note: leave a field empty to match every possible value.", @@ -761,20 +762,20 @@ "r-when-a-card-is-moved": "When a card is moved to another list", "r-set": "Tetapkan", "r-update": "Ubah", - "r-datefield": "bidang tanggal", + "r-datefield": "kolom tanggal", "r-df-start-at": "mulai", "r-df-due-at": "sampai", "r-df-end-at": "berakhir", "r-df-received-at": "diterima", - "r-to-current-datetime": "to current date/time", - "r-remove-value-from": "Remove value from", + "r-to-current-datetime": "ke tanggal/waktu sekarang", + "r-remove-value-from": "Hapus nilai dari", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", "authentication-method": "Metode Autentikasi", "authentication-type": "Tipe Autentikasi", "custom-product-name": "Custom Product Name", - "layout": "Tata letak", + "layout": "Tata Letak", "hide-logo": "Sembunyikan Logo", "add-custom-html-after-body-start": "Tambahkan HTML khusus setelah <body> mulai", "add-custom-html-before-body-end": "Tambahkan HTML khusus sebelum </body> berakhir", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 45f8c1c49..300b7df01 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "Hụ ya", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index d09fcae7e..edc58d0b6 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -1,45 +1,45 @@ { "accept": "Accetta", "act-activity-notify": "Notifica attività", - "act-addAttachment": "Aggiunto allegato __attachment__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-deleteAttachment": "Eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-addSubtask": "Aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-addLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-addedLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-removeLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-removedLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-removeChecklistItem": "rimosso elemento __checklistItem__ dalla lista di controllo __checkList__ della scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", - "act-checkedItem": "attivato __checklistItem__ nella lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", - "act-uncheckedItem": "disattivato __checklistItem__ della lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", - "act-completeChecklist": "completata lista di controllo __checklist__ nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", - "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__", - "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della corsia __swimlane__ della bacheca __board__", + "act-addAttachment": "Aggiunto allegato __attachment__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-deleteAttachment": "Eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-addSubtask": "Aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-addLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-addedLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-removeLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-removedLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-removeChecklistItem": "rimosso elemento __checklistItem__ dalla lista di controllo __checkList__ della scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", + "act-checkedItem": "attivato __checklistItem__ nella lista di controllo __checklist__ della scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__", + "act-uncheckedItem": "disattivato __checklistItem__ della lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__", + "act-completeChecklist": "completata lista di controllo __checklist__ nella scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__", + "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in swimlane __swimlane__ della bacheca __board__", + "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della swimlane __swimlane__ della bacheca __board__", "act-editComment": "commento modificato sulla scheda __card__: __comment__ nella lista __list__ nella swim lane __swimlane__ nella bacheca __board__", "act-deleteComment": "commento eliminato sulla scheda __card__: __comment__ nella lista __list__ nella swim lane __swimlane__ nella bacheca __board__", "act-createBoard": "bacheca __board__ creata", - "act-createSwimlane": "creata corsia __swimlane__ alla bacheca __board__", - "act-createCard": "scheda __card__ creata nella lista __list__ della corsia __swimlane__ della bacheca __board__", + "act-createSwimlane": "creata swimlane __swimlane__ alla bacheca __board__", + "act-createCard": "scheda __card__ creata nella lista __list__ della swimlane __swimlane__ della bacheca __board__", "act-createCustomField": "creato campo personalizzato __customField__ nella bacheca __board", "act-deleteCustomField": "campo personalizzato eliminato __customField__ nella bacheca __board", "act-setCustomField": "campo personalizzato modificato __customField__: __customFieldValue__ sulla scheda __card__ sulla lista __list__ sulla swimlane __swimlane__ sulla bacheca __board__", "act-createList": "aggiunta lista __list__ alla bacheca __board__", "act-addBoardMember": "aggiunto membro __member__ alla bacheca __board__", "act-archivedBoard": "Bacheca __board__ archiviata", - "act-archivedCard": "Scheda __card__ della lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata", - "act-archivedList": "Lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata", + "act-archivedCard": "Scheda __card__ della lista __list__ della swimlane __swimlane__ della bacheca __board__ archiviata", + "act-archivedList": "Lista __list__ della swimlane __swimlane__ della bacheca __board__ archiviata", "act-archivedSwimlane": "Corsia __swimlane__ della bacheca __board__ archiviata", "act-importBoard": "Bacheca __board__ importata", - "act-importCard": "scheda importata __card__ nella lista __list__ della corsia __swimlane__ della bacheca __board__", - "act-importList": "lista __list__ importata nella corsia __swimlane__ della bacheca __board__", - "act-joinMember": "aggiunto membro __member__ alla scheda __card__ della list __list__ nella corsia __swimlane__ della bacheca __board__", - "act-moveCard": "spostata scheda __card__ della bacheca __board__ dalla lista __oldList__ della corsia __oldSwimlane__ alla lista __list__ della corsia __swimlane__", - "act-moveCardToOtherBoard": "postata scheda __card__ dalla lista __oldList__ della corsia __oldSwimlane__ della bacheca __oldBoard__ alla lista __list__ nella corsia __swimlane__ della bacheca __board__", + "act-importCard": "scheda importata __card__ nella lista __list__ della swimlane __swimlane__ della bacheca __board__", + "act-importList": "lista __list__ importata nella swimlane __swimlane__ della bacheca __board__", + "act-joinMember": "aggiunto membro __member__ alla scheda __card__ della list __list__ nella swimlane __swimlane__ della bacheca __board__", + "act-moveCard": "spostata scheda __card__ della bacheca __board__ dalla lista __oldList__ della swimlane __oldSwimlane__ alla lista __list__ della swimlane __swimlane__", + "act-moveCardToOtherBoard": "postata scheda __card__ dalla lista __oldList__ della swimlane __oldSwimlane__ della bacheca __oldBoard__ alla lista __list__ nella swimlane __swimlane__ della bacheca __board__", "act-removeBoardMember": "rimosso membro __member__ dalla bacheca __board__", - "act-restoredCard": "scheda ripristinata __card__ della lista __list__ nella corsia __swimlane__ della bacheca __board__", - "act-unjoinMember": "rimosso membro __member__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__", + "act-restoredCard": "scheda ripristinata __card__ della lista __list__ nella swimlane __swimlane__ della bacheca __board__", + "act-unjoinMember": "rimosso membro __member__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Azioni", @@ -54,7 +54,7 @@ "activity-imported": "importato %s in %s da %s", "activity-imported-board": "importato %s da %s", "activity-joined": "si è unito a %s", - "activity-moved": "spostato %s da %s a %s", + "activity-moved": "ha spostato %s da %s a %s", "activity-on": "su %s", "activity-removed": "rimosso %s da %s", "activity-sent": "inviato %s a %s", @@ -62,7 +62,7 @@ "activity-subtask-added": "aggiunto il sottocompito a 1%s", "activity-checked-item": "selezionata %s nella checklist %s di %s", "activity-unchecked-item": "disattivato %s nella checklist %s di %s", - "activity-checklist-added": "aggiunta checklist a %s", + "activity-checklist-added": "ha aggiunto una checklist a %s", "activity-checklist-removed": "È stata rimossa una checklist da%s", "activity-checklist-completed": "%s di %s checklists completate", "activity-checklist-uncompleted": "La checklist non è stata completata", @@ -71,24 +71,24 @@ "add": "Aggiungi", "activity-checked-item-card": "%s è stato selezionato nella checklist %s", "activity-unchecked-item-card": "%s è stato deselezionato nella checklist %s", - "activity-checklist-completed-card": "checklist __checklist__ completata nella scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", + "activity-checklist-completed-card": "checklist __checklist__ completata nella scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__", "activity-checklist-uncompleted-card": "La checklist %s non è completa", "activity-editComment": "commento modificato %s", "activity-deleteComment": "commento eliminato %s", - "activity-receivedDate": "data della ricevuta modificata da %s di %s", - "activity-startDate": "modificata data di inizio a %s di %s", - "activity-dueDate": "modificata data di scadenza a %s di %s", - "activity-endDate": "modificata data di fine a %s di %s ", + "activity-receivedDate": "ha modificato la data di ricevuta a %s di %s", + "activity-startDate": "ha modificato la data di inizio a %s di %s", + "activity-dueDate": "ha modificato la data di scadenza a %s di %s", + "activity-endDate": "ha modificato la data di fine a %s di %s ", "add-attachment": "Aggiungi allegato", "add-board": "Aggiungi bacheca", "add-card": "Aggiungi scheda", - "add-swimlane": "Aggiungi Diagramma Swimlane", + "add-swimlane": "Aggiungi swimlane", "add-subtask": "Aggiungi sotto-compito", "add-checklist": "Aggiungi Checklist", "add-checklist-item": "Aggiungi un elemento alla checklist", "add-cover": "Aggiungi copertina", "add-label": "Aggiungi etichetta", - "add-list": "Aggiungi Lista", + "add-list": "Aggiungi lista", "add-members": "Aggiungi membri", "added": "Aggiunto/a", "addMemberPopup-title": "Membri", @@ -102,14 +102,14 @@ "and-n-other-card_plural": "E __count__ altre schede", "apply": "Applica", "app-is-offline": "Caricamento, attendere prego. Aggiornare la pagina porterà ad una perdita dei dati. Se il caricamento non dovesse funzionare, per favore controlla che il server non sia stato fermato.", - "archive": "Sposta nell'Archivio", - "archive-all": "Sposta tutto nell'Archivio", + "archive": "Sposta nell'archivio", + "archive-all": "Sposta tutto nell'archivio", "archive-board": "Sposta la bacheca nell'archivio", - "archive-card": "Sposta la scheda nell'Archivio", - "archive-list": "Sposta elenco nell'Archivio", - "archive-swimlane": "Sposta diagramma nell'Archivio", + "archive-card": "Sposta scheda nell'archivio", + "archive-list": "Sposta lista nell'archivio", + "archive-swimlane": "Sposta swimlane nell'archivio", "archive-selection": "Sposta elementi selezionati nell'archivio", - "archiveBoardPopup-title": "Spostare al bacheca nell'archivio?", + "archiveBoardPopup-title": "Spostare bacheca nell'archivio?", "archived-items": "Archivio", "archived-boards": "Bacheche nell'archivio", "restore-board": "Ripristina bacheca", @@ -120,11 +120,11 @@ "assign-member": "Assegna a un membro", "attached": "allegato", "attachment": "Allegato", - "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile annullare.", + "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile tornare indietro.", "attachmentDeletePopup-title": "Eliminare l'allegato?", "attachments": "Allegati", "auto-watch": "Segui automaticamente le bacheche quando vengono create.", - "avatar-too-big": "L'avatar è troppo grande (520KB max)", + "avatar-too-big": "L'avatar è troppo grande (520 KB massimo)", "back": "Indietro", "board-change-color": "Cambia colore", "board-nb-stars": "%s stelle", @@ -138,20 +138,20 @@ "boardMenuPopup-title": "Impostazioni bacheca", "boardChangeViewPopup-title": "Vista bacheca", "boards": "Bacheche", - "board-view": "Visualizza bacheca", + "board-view": "Vista bacheca", "board-view-cal": "Calendario", - "board-view-swimlanes": "Diagramma Swimlane", + "board-view-swimlanes": "Swimlane", "board-view-collapse": "Comprimi", "board-view-gantt": "Gantt", "board-view-lists": "Liste", - "bucket-example": "Per esempio come \"una lista di cose da fare\"", + "bucket-example": "Come \"una lista di cose da fare\" per esempio", "cancel": "Cancella", "card-archived": "Questa scheda è stata spostata nell'archivio", "board-archived": "Questa bacheca è stata spostata nell'archivio", "card-comments-title": "Questa scheda ha %s commenti.", "card-delete-notice": "L'eliminazione è permanente. Tutte le azioni associate a questa scheda andranno perse.", "card-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di riaprire la scheda. Non potrai tornare indietro.", - "card-delete-suggest-archive": "Puoi spostare una scheda nell'archivio per rimuoverla dalla bacheca e mantenere la sua attività", + "card-delete-suggest-archive": "Puoi spostare una scheda nell'archivio per rimuoverla dalla bacheca e mantenere la sua attività.", "card-due": "Scadenza", "card-due-on": "Scade il", "card-spent": "Tempo trascorso", @@ -204,14 +204,14 @@ "checklists": "Checklist", "click-to-star": "Clicca per stellare questa bacheca", "click-to-unstar": "Clicca per togliere la stella da questa bacheca.", - "clipboard": "Clipboard o drag & drop", + "clipboard": "Appunti o trascinamento", "close": "Chiudi", "close-board": "Chiudi bacheca", "close-board-pop": "Potrai ripristinare la bacheca cliccando sul tasto \"Archivio\" presente nell'intestazione della home.", "color-black": "nero", "color-blue": "blu", "color-crimson": "Rosso cremisi", - "color-darkgreen": "Verde scuro", + "color-darkgreen": "verde scuro", "color-gold": "oro", "color-gray": "grigio", "color-green": "verde", @@ -234,8 +234,8 @@ "color-white": "bianco", "color-yellow": "giallo", "unset-color": "Non impostato", - "comment": "Commento", - "comment-placeholder": "Scrivi Commento", + "comment": "Commenta", + "comment-placeholder": "Scrivi un commento...", "comment-only": "Solo commenti", "comment-only-desc": "Puoi commentare solo le schede.", "no-comments": "Non ci sono commenti.", @@ -245,10 +245,10 @@ "computer": "Computer", "confirm-subtask-delete-dialog": "Sei sicuro di voler eliminare il sotto-compito?", "confirm-checklist-delete-dialog": "Sei sicuro di voler eliminare la checklist?", - "copy-card-link-to-clipboard": "Copia link della scheda sulla clipboard", + "copy-card-link-to-clipboard": "Copia link della scheda negli appunti", "linkCardPopup-title": "Collega scheda", "searchElementPopup-title": "Cerca", - "copyCardPopup-title": "Copia Scheda", + "copyCardPopup-title": "Copia scheda", "copyChecklistToManyCardsPopup-title": "Copia template checklist su più schede", "copyChecklistToManyCardsPopup-instructions": "Titolo e la descrizione della scheda di destinazione in questo formato JSON", "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Titolo prima scheda\", \"description\":\"Descrizione prima scheda\"}, {\"title\":\"Titolo seconda scheda\",\"description\":\"Descrizione seconda scheda\"},{\"title\":\"Titolo ultima scheda\",\"description\":\"Descrizione ultima scheda\"} ]", @@ -298,19 +298,19 @@ "editProfilePopup-title": "Modifica profilo", "email": "Email", "email-enrollAccount-subject": "Creato un account per te su __siteName__", - "email-enrollAccount-text": "Ciao __user__,\n\nPer iniziare ad usare il servizio, clicca sul link seguente:\n\n__url__\n\nGrazie.", + "email-enrollAccount-text": "Ciao __user__,\n\nPer iniziare ad utilizzare il servizio, clicca sul link seguente:\n\n__url__\n\nGrazie.", "email-fail": "Invio email fallito", "email-fail-text": "Errore nel tentativo di invio email", "email-invalid": "Email non valida", "email-invite": "Invita via email", "email-invite-subject": "__inviter__ ti ha inviato un invito", - "email-invite-text": "Caro __user__,\n\n__inviter__ ti ha invitato ad unirti alla bacheca \"__board__\" per le collaborazioni.\n\nPer favore clicca sul link seguente:\n\n__url__\n\nGrazie.", + "email-invite-text": "Caro __user__,\n\n__inviter__ ti ha invitato ad unirti alla bacheca \"__board__\" per collaborare.\n\nPer favore clicca sul link seguente:\n\n__url__\n\nGrazie.", "email-resetPassword-subject": "Ripristina la tua password su on __siteName__", "email-resetPassword-text": "Ciao __user__,\n\nPer ripristinare la tua password, clicca sul link seguente:\n\n__url__\n\nGrazie.", "email-sent": "Email inviata", "email-verifyEmail-subject": "Verifica il tuo indirizzo email su __siteName__", "email-verifyEmail-text": "Ciao __user__,\n\nPer verificare il tuo account email, clicca sul link seguente:\n\n__url__\n\nGrazie.", - "enable-wip-limit": "Abilita limite di work in progress", + "enable-wip-limit": "Abilita limite Work In Progress", "error-board-doesNotExist": "Questa bacheca non esiste", "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare", "error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare", @@ -335,7 +335,7 @@ "exportBoardPopup-title": "Esporta bacheca", "sort": "Ordina", "sort-desc": "Clicca per ordinare la lista", - "list-sort-by": "Ordina la lista per:", + "list-sort-by": "Ordina lista per:", "list-label-modifiedAt": "Orario ultimo accesso", "list-label-title": "Nome della lista", "list-label-sort": "Il tuo ordine manuale", @@ -354,7 +354,7 @@ "filter-no-assignee": "Nessun assegnatario", "filter-custom-fields-label": "Filtra secondo campi personalizzati", "filter-no-custom-fields": "Nessun campo personalizzato", - "filter-show-archive": "Mostra le liste archiviate", + "filter-show-archive": "Mostra liste archiviate", "filter-hide-empty": "Nascondi liste vuote", "filter-on": "Il filtro è attivo", "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,", @@ -408,15 +408,15 @@ "leave-board-pop": "Sei sicuro di voler abbandonare __boardTitle__? Sarai rimosso da tutte le schede in questa bacheca.", "leaveBoardPopup-title": "Abbandonare la bacheca?", "link-card": "Link a questa scheda", - "list-archive-cards": "Sposta tutte le schede in questo elenco nell'Archivio", + "list-archive-cards": "Sposta tutte le schede in questa lista nell'archivio", "list-archive-cards-pop": "Questo rimuoverà tutte le schede nell'elenco dalla bacheca. Per vedere le schede nell'archivio e portarle dov'erano nella bacheca, clicca su \"Menu\" > \"Archivio\".", "list-move-cards": "Sposta tutte le schede in questa lista", - "list-select-cards": "Selezione tutte le schede in questa lista", - "set-color-list": "Imposta il colore", - "listActionPopup-title": "Azioni disponibili", + "list-select-cards": "Seleziona tutte le schede in questa lista", + "set-color-list": "Imposta colore", + "listActionPopup-title": "Azioni lista", "settingsUserPopup-title": "Impostazioni utente", - "swimlaneActionPopup-title": "Azioni diagramma Swimlane", - "swimlaneAddPopup-title": "Aggiungi un diagramma Swimlane di seguito", + "swimlaneActionPopup-title": "Azioni swimlane", + "swimlaneAddPopup-title": "Aggiungi un swimlane sotto", "listImportCardPopup-title": "Importa una scheda di Trello", "listImportCardsTsvPopup-title": "Importa CSV/TSV di Excel", "listMorePopup-title": "Altro", @@ -424,7 +424,7 @@ "list-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di recuperare la lista. Non potrai tornare indietro.", "list-delete-suggest-archive": "Puoi spostare un elenco nell'archivio per rimuoverlo dalla bacheca e mantentere la sua attività.", "lists": "Liste", - "swimlanes": "Diagramma Swimlane", + "swimlanes": "Swimlane", "log-out": "Esci", "log-in": "Accedi", "loginPopup-title": "Accedi", @@ -445,8 +445,8 @@ "my-boards": "Le mie bacheche", "name": "Nome", "no-archived-cards": "Non ci sono schede nell'archivio.", - "no-archived-lists": "Non ci sono elenchi nell'archivio.", - "no-archived-swimlanes": "Non ci sono diagrammi Swimlane nell'archivio.", + "no-archived-lists": "Non ci sono liste nell'archivio.", + "no-archived-swimlanes": "Non ci sono swimlane nell'archivio.", "no-results": "Nessun risultato", "normal": "Normale", "normal-desc": "Può visionare e modificare le schede. Non può cambiare le impostazioni.", @@ -454,7 +454,7 @@ "notify-participate": "Ricevi aggiornamenti per qualsiasi scheda a cui partecipi come creatore o membro", "notify-watch": "Ricevi aggiornamenti per tutte le bacheche, liste o schede che stai seguendo", "optional": "opzionale", - "or": "o", + "or": "oppure", "page-maybe-private": "Questa pagina potrebbe essere privata. Potresti essere in grado di vederla <a href='%s'>facendo il log-in</a>.", "page-not-found": "Pagina non trovata.", "password": "Password", @@ -500,8 +500,8 @@ "shortcut-toggle-searchbar": "Apri/chiudi la barra laterale di ricerca", "shortcut-toggle-sidebar": "Apri/chiudi la barra laterale della bacheca", "show-cards-minimum-count": "Mostra il contatore delle schede se la lista ne contiene più di", - "sidebar-open": "Apri Sidebar", - "sidebar-close": "Chiudi Sidebar", + "sidebar-open": "Apri sidebar", + "sidebar-close": "Chiudi sidebar", "signupPopup-title": "Crea un account", "star-board-title": "Clicca per stellare questa bacheca. Sarà mostrata all'inizio della tua lista bacheche.", "starred-boards": "Bacheche stellate", @@ -532,10 +532,11 @@ "custom-login-logo-image-url": "URL dell'immagine del logo personalizzato per il login", "custom-login-logo-link-url": "Link dell'immagine del logo personalizzato per il login", "text-below-custom-login-logo": "Testo sotto il logo personalizzato per il login", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Importa Username", "view-it": "Vedi", - "warn-list-archived": "Attenzione:questa scheda si trova in un elenco dell'archivio", + "warn-list-archived": "attenzione: questa scheda si trova in una lista nell'archivio", "watch": "Segui", "watching": "Stai seguendo", "watching-info": "Sarai notificato per tutte le modifiche in questa bacheca", @@ -580,8 +581,8 @@ "webhook-token": "Token (facoltativo per l'autenticazione)", "outgoing-webhooks": "Webhook in uscita", "bidirectional-webhooks": "Webhook a due vie", - "outgoingWebhooksPopup-title": "Server esterni", - "boardCardTitlePopup-title": "Filtro per Titolo Scheda", + "outgoingWebhooksPopup-title": "Webhook in uscita", + "boardCardTitlePopup-title": "Filtro per titolo scheda", "disable-webhook": "Disattiva questo webhook", "global-webhook": "Webhook globali", "new-outgoing-webhook": "Nuovo webhook in uscita", @@ -592,14 +593,14 @@ "MongoDB_storage_engine": "Storage engine di MongoDB", "MongoDB_Oplog_enabled": "MongoDB Oplog abilitato", "OS_Arch": "Architettura SO", - "OS_Cpus": "Conteggio della CPU del sistema operativo", - "OS_Freemem": "Memoria libera del sistema operativo", - "OS_Loadavg": "Carico medio del sistema operativo", - "OS_Platform": "Piattaforma del sistema operativo", - "OS_Release": "Versione di rilascio del sistema operativo", - "OS_Totalmem": "Memoria totale del sistema operativo", - "OS_Type": "Tipo di sistema operativo", - "OS_Uptime": "Tempo di attività del sistema operativo", + "OS_Cpus": "Numero CPU del SO", + "OS_Freemem": "Memoria libera del SO", + "OS_Loadavg": "Carico medio del SO", + "OS_Platform": "Piattaforma del SO", + "OS_Release": "Versione di rilascio del SO", + "OS_Totalmem": "Memoria totale del SO", + "OS_Type": "Tipo di SO", + "OS_Uptime": "Tempo di attività del SO", "days": "giorni", "hours": "ore", "minutes": "minuti", @@ -651,8 +652,8 @@ "parent-card": "Scheda genitore", "source-board": "Bacheca d'origine", "no-parent": "Non mostrare i genitori", - "activity-added-label": "L' etichetta '%s' è stata aggiunta a %s", - "activity-removed-label": "L'etichetta '%s' è stata rimossa da %s", + "activity-added-label": "ha aggiunto l'etichetta '%s' a %s", + "activity-removed-label": "ha rimosso l'etichetta '%s' da %s", "activity-delete-attach": "rimosso un allegato da %s", "activity-added-label-card": "aggiunta etichetta '%s'", "activity-removed-label-card": "L' etichetta '%s' è stata rimossa.", @@ -686,7 +687,7 @@ "r-a-card": "una scheda", "r-when-a-label-is": "Quando un'etichetta viene", "r-when-the-label": "Quando l'etichetta viene", - "r-list-name": "Nome dell'elenco", + "r-list-name": "nome lista", "r-when-a-member": "Quando un membro viene", "r-when-the-member": "Quando un membro viene", "r-name": "nome", @@ -702,8 +703,8 @@ "r-move-card-to": "Sposta scheda a", "r-top-of": "Al di sopra di", "r-bottom-of": "Al di sotto di", - "r-its-list": "il suo elenco", - "r-archive": "Sposta nell'Archivio", + "r-its-list": "la sua lista", + "r-archive": "Sposta nell'archivio", "r-unarchive": "Ripristina dall'archivio", "r-card": "scheda", "r-add": "Aggiungi", @@ -711,7 +712,7 @@ "r-label": "etichetta", "r-member": "membro", "r-remove-all": "Rimuovi tutti i membri dalla scheda", - "r-set-color": "Imposta il colore a", + "r-set-color": "Imposta il colore", "r-checklist": "checklist", "r-check-all": "Seleziona tutti", "r-uncheck-all": "Togli la spunta a tutti", @@ -729,20 +730,20 @@ "r-d-move-to-top-spec": "Sposta la scheda in cima alla lista", "r-d-move-to-bottom-gen": "Sposta la scheda in fondo alla sua lista", "r-d-move-to-bottom-spec": "Muovi la scheda in fondo alla lista", - "r-d-send-email": "Spedisci email", + "r-d-send-email": "Invia email", "r-d-send-email-to": "a", "r-d-send-email-subject": "oggetto", "r-d-send-email-message": "messaggio", - "r-d-archive": "Sposta la scheda nell'archivio", + "r-d-archive": "Sposta scheda nell'archivio", "r-d-unarchive": "Ripristina la scheda dall'archivio", "r-d-add-label": "Aggiungi etichetta", "r-d-remove-label": "Rimuovi etichetta", "r-create-card": "Crea una nuova scheda", - "r-in-list": "in elenco", - "r-in-swimlane": "nel diagramma swimlane", + "r-in-list": "in lista", + "r-in-swimlane": "nella swimlane", "r-d-add-member": "Aggiungi membro", "r-d-remove-member": "Rimuovi membro", - "r-d-remove-all-member": "Rimouvi tutti i membri", + "r-d-remove-all-member": "Rimuovi tutti i membri", "r-d-check-all": "Seleziona tutti gli item di una lista", "r-d-uncheck-all": "Deseleziona tutti gli items di una lista", "r-d-check-one": "Seleziona elemento", @@ -754,11 +755,11 @@ "r-add-checklist": "Aggiungi checklist", "r-with-items": "con elementi", "r-items-list": "elemento1,elemento2,elemento3", - "r-add-swimlane": "Aggiungi un diagramma swimlane", - "r-swimlane-name": "Nome diagramma swimlane", + "r-add-swimlane": "Aggiungi swimlane", + "r-swimlane-name": "nome swimlane", "r-board-note": "Nota: Lascia un campo vuoto per abbinare ogni possibile valore", "r-checklist-note": "Nota: Gli elementi della checklist devono essere scritti come valori separati dalla virgola", - "r-when-a-card-is-moved": "Quando una scheda viene spostata su un'altra lista", + "r-when-a-card-is-moved": "Quando una scheda viene spostata in un'altra lista", "r-set": "Imposta", "r-update": "Aggiorna", "r-datefield": "campo data", @@ -772,7 +773,7 @@ "oauth2": "OAuth2", "cas": "CAS", "authentication-method": "Metodo di Autenticazione", - "authentication-type": "Tipo Autenticazione", + "authentication-type": "Tipo di autenticazione", "custom-product-name": "Nome prodotto personalizzato", "layout": "Layout", "hide-logo": "Nascondi il logo", @@ -786,7 +787,7 @@ "org-number": "Il numero di organizzazioni è:", "team-number": "Il numero di teams è:", "people-number": "Il numero di persone è:", - "swimlaneDeletePopup-title": "Cancella diagramma swimlane ?", + "swimlaneDeletePopup-title": "Eliminare la 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": "Ripristina tutto", "delete-all": "Elimina tutto", @@ -827,7 +828,7 @@ "notifications": "Notifiche", "view-all": "Mostra tutte", "filter-by-unread": "Filtra per non letto", - "mark-all-as-read": "Segna come letto", + "mark-all-as-read": "Segna tutto come letto", "remove-all-read": "Rimuovi tutti i già letti", "allow-rename": "Consenti Rinomina", "allowRenamePopup-title": "Consenti Rinomina", @@ -855,7 +856,7 @@ "organizations": "Organizzazioni", "teams": "Teams", "displayName": "Nome da visualizzare", - "shortName": "Nome Corto", + "shortName": "Nome corto", "website": "Sito Web", "person": "Persona", "my-cards": "Le mie schede", @@ -872,7 +873,7 @@ "dueCardsViewChange-choice-me": "Me", "dueCardsViewChange-choice-all": "Tutti gli utenti", "dueCardsViewChange-choice-all-description": "Visualizza tutte le schede non completate con una data di *scadenza* dalle bacheche in cui l'utente ha il permesso.", - "broken-cards": "Schede rotte", + "broken-cards": "Schede danneggiate", "board-title-not-found": "Bacheca '%s' non trovata.", "swimlane-title-not-found": "Swimlane '%s' non trovata.", "list-title-not-found": "Lista '%s' non trovata.", @@ -909,7 +910,7 @@ "operator-limit": "limite", "predicate-archived": "archiviato", "predicate-open": "aperto/a", - "predicate-ended": "finito/a", + "predicate-ended": "finito", "predicate-all": "tutto", "predicate-overdue": "in ritardo", "predicate-week": "settimana", @@ -930,7 +931,7 @@ "predicate-private": "privato", "operator-unknown-error": "%s non è un operatore", "operator-number-expected": "l'operatore __operator__ prevede un numero, invece è stato fornito '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", + "operator-sort-invalid": "L'ordinamento di '%s' non è valido", "operator-status-invalid": "'%s' non è uno stato valido", "operator-has-invalid": "%s non è un controllo di esistenza valido", "operator-limit-invalid": "%s non è un limite valido. Il limite dovrebbe essere un numero intero positivo.", @@ -938,13 +939,13 @@ "previous-page": "Pagina precedente", "heading-notes": "Note", "globalSearch-instructions-heading": "Istruzioni ricerca", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-description": "Per affinare le ricerche si possono includere degli operatori. Questi vanno specificati indicandone il nome ed il valore separati dai due punti. Ad esempio, specificare `list:Blocked` limita la ricerca alle schede contenute nella lista denominata *Blocked*. Se il valore del criterio contiene spazi o caratteri speciali, va racchiuso tra virgolette (es.: `__operator_list__:\"Da Controllare\"`)", "globalSearch-instructions-operators": "Operatori disponibili:", "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - schede nelle bacheche corrispondenti a *<title>*", "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - schede nelle liste corrispondenti a *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - schede in swimlane corrispondenti a *<title>*", "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - schede con commenti contenenti *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - schede aventi un'etichetta corrispondete a *<color>* oppure *<name>", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - schede aventi un'etichetta corrispondente a *<color>* oppure *<name>*", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - abbreviazione per `__operator_label__:<color>` oppure `__operator_label__:<name>`", "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - schede dove *<username>* è un *membro* oppure *assegnatario*", "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - abbreviazione per `user:<username>`", @@ -953,25 +954,25 @@ "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - schede create *<n>* giorni fa o prima", "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - schede modificate *<n>* giorni fa o prima", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - dove *<status>* è una delle seguenti:", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - dove *<status>* è uno dei seguenti:", "globalSearch-instructions-status-archived": "`__predicate_archived__` - schede archiviate", "globalSearch-instructions-status-all": "`__predicate_all__` - tutte le schede archiviate e non archiviate", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - schede con una data di fine", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - schede aventi una data di fine", "globalSearch-instructions-status-public": "`__predicate_public__` - schede soltanto in bacheche pubbliche", "globalSearch-instructions-status-private": "`__predicate_private__` - schede soltanto in bacheche private", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - dove *<field>* è uno di `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` oppure `__predicate_member__`. Inserendo `-` davanti a *<field>* cerca per l'assenza di un valore nel campo (per esempio `has:-due` cerca per schede senza una data di scadenza).", "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - dove *<sort-name>* è uno dei `__predicate_due__`, `__predicate_created__` oppure `__predicate_modified__`. Per un ordine discendente, aggiungi un `-` davanti al nome.", "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - dove *<n>* è un numero intero positivo che esprime il numero delle schede da visualizzare per pagina.", "globalSearch-instructions-notes-1": "È possibile specificare più operatori.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-2": "Valori diversi dello stesso criterio di ricerca vengono combinati tramite *OR*. Vengono quindi selezionate tutte le schede che soddisfano almeno uno dei criteri. `__operator_list__:Available __operator_list__:Blocked` selezionerà le schede contenute in qualsiasi lista chiamata *Blocked* o *Available*.", + "globalSearch-instructions-notes-3": "Più criteri di ricerca sono combinati con l'operatore *AND*. Vengono selezionate solo le schede che soddisfano tutti gli operatori. `__operator_list__:Available __operator_label__:red` seleziona solo le schede nella lista *Available* che hanno una etichetta *red*.", "globalSearch-instructions-notes-3-2": "I giorni possono essere specificati come numeri interi positivi/negativi oppure utilizzando `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` oppure `__predicate_year__` per il periodo corrente.", - "globalSearch-instructions-notes-4": "Le ricerche di testo non effettuano distinzione tra maiuscole e minuscole.", + "globalSearch-instructions-notes-4": "La distinzione tra maiuscole e minuscole non viene effettuata nelle ricerche di testo.", "globalSearch-instructions-notes-5": "Per impostazione predefinita le schede archiviate non sono incluse nella ricerca.", - "link-to-search": "Collegamento a questa ricerca", + "link-to-search": "Link a questa ricerca", "excel-font": "Arial", "number": "Numero", - "label-colors": "Colori etichetta", + "label-colors": "Colori etichette", "label-names": "Nomi etichette", "archived-at": "archiviata il", "sort-cards": "Ordina schede", @@ -979,5 +980,8 @@ "due-date": "Data di scadenza", "title-alphabetically": "Titolo (ordine alfabetico)", "created-at-newest-first": "Data di creazione (dalla più nuova)", - "created-at-oldest-first": "Data di creazione (dalla più vecchia)" + "created-at-oldest-first": "Data di creazione (dalla più vecchia)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index bca810a13..58c4192dc 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -322,8 +322,8 @@ "error-user-notAllowSelf": "自分を招待することはできません。", "error-user-notCreated": "ユーザーが作成されていません", "error-username-taken": "このユーザ名は既に使用されています", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", + "error-orgname-taken": "この組織名はすでに使われています", + "error-teamname-taken": "このチーム名はすでに使われています", "error-email-taken": "メールは既に受け取られています", "export-board": "ボードのエクスポート", "export-board-json": "ボードをJSONにエクスポート", @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "カスタムのログインロゴイメージのURL", "custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL", "text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "ユーザー名", "import-usernames": "インポートするユーザー名", "view-it": "見る", @@ -930,7 +931,7 @@ "predicate-private": "非公開", "operator-unknown-error": "%sは演算子ではありません", "operator-number-expected": "演算子 __operator__ には数値の指定が必要ですが、「__value__」が入力されました", - "operator-sort-invalid": "sort of '%s' is invalid", + "operator-sort-invalid": "ソート「%s」は無効です", "operator-status-invalid": "「%s」は無効なステータスです", "operator-has-invalid": "%s is not a valid existence check", "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", @@ -974,10 +975,13 @@ "label-colors": "ラベル色", "label-names": "ラベル名", "archived-at": "archived at", - "sort-cards": "Sort Cards", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "sort-cards": "カードの並び替え", + "cardsSortPopup-title": "カードの並び替え", + "due-date": "期限日", + "title-alphabetically": "タイトル(アルファベット順)", + "created-at-newest-first": "作成日(新しいものから)", + "created-at-oldest-first": "作成日(古いものから)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index 0dd8ddacc..b8c3f17bf 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "მომხმარებლის სახელი", "import-usernames": "Import Usernames", "view-it": "ნახვა", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index bff5e479c..05d1d2b6b 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 68ffb4f7e..99a81f479 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "아이디", "import-usernames": "Import Usernames", "view-it": "보기", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/lt.i18n.json b/i18n/lt.i18n.json index f412cdeda..65b8bfc9e 100644 --- a/i18n/lt.i18n.json +++ b/i18n/lt.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 5e14795d2..3c154ccb6 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Logo pierakstīšanās ekrānā - URL", "custom-login-logo-link-url": "Logo saite pierakstīšanās ekrānā - URL", "text-below-custom-login-logo": "Teksts zem logo pierakstīšanās lapā", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Lietotājvārds", "import-usernames": "Import Usernames", "view-it": "Skatīt", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index ac53d6b5b..910d9de2f 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Потребителско име", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 427a15d1f..ef490b83c 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index f09765396..a51ffa7e9 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL Voor Maatwerk Login Logo Afbeelding", "custom-login-logo-link-url": "URL Voor Maatwerk Login Logo Link", "text-below-custom-login-logo": "Tekst onder Maatwerk Login Logo", + "automatic-linked-url-schemes": "Maatwerk URL-schema's die automatisch klikbaar zouden moeten zijn. Een URL per regel.", "username": "Gebruikersnaam", "import-usernames": "Importeer Gebruikersnamen", "view-it": "Bekijk het", @@ -979,5 +980,8 @@ "due-date": "vervaldatum", "title-alphabetically": "Titel (Alfabetisch)", "created-at-newest-first": "Aangemaakt op (Nieuwste Eerst)", - "created-at-oldest-first": "Aangemaakt op (Oudste Eerst)" + "created-at-oldest-first": "Aangemaakt op (Oudste Eerst)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Verberg systeemberichten voor alle gebruikers", + "now-system-messages-of-all-users-are-hidden": "Systeemberichten zijn nu verborgen voor alle gebruikers" } diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json index 41e4b3686..239510ab8 100644 --- a/i18n/oc.i18n.json +++ b/i18n/oc.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nom d’utilizaire", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/pa.i18n.json b/i18n/pa.i18n.json index f412cdeda..65b8bfc9e 100644 --- a/i18n/pa.i18n.json +++ b/i18n/pa.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index af108b6bf..7008117f0 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL obrazu logo ekranu logowania", "custom-login-logo-link-url": "URL linku logo ekranu logowania", "text-below-custom-login-logo": "Tekst pod logo na ekranie logowania", + "automatic-linked-url-schemes": "Schematy adresów URL, które powinny być automatycznie przekształcane w aktywne. Wpisz jeden schemat URL w każdej linii", "username": "Nazwa użytkownika", "import-usernames": "Importuj użytkowników", "view-it": "Zobacz", @@ -979,5 +980,8 @@ "due-date": "terminu wykonania", "title-alphabetically": "nazwy (alfabetycznie)", "created-at-newest-first": "daty utworzenia (najpierw najnowsze)", - "created-at-oldest-first": "daty utworzenia (najpierw najstarsze)" + "created-at-oldest-first": "daty utworzenia (najpierw najstarsze)", + "links-heading": "Linki", + "hide-system-messages-of-all-users": "Ukryj powiadomienia systemowe wszystkich użytkowników", + "now-system-messages-of-all-users-are-hidden": "Odtąd powiadomienia systemowe wszystkich użytkowników będą ukryte" } diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index e4935828d..ae4cecb45 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL da Imagem do logo customizado de login", "custom-login-logo-link-url": "URL do link do logo customizado de login", "text-below-custom-login-logo": "Texto abaixo do logo customizado de login", + "automatic-linked-url-schemes": "Esquemas de URL personalizados que devem ser clicáveis automaticamente. Um esquema de URL por linha", "username": "Nome de usuário", "import-usernames": "Importar nome de usuários", "view-it": "Visualizar", @@ -979,5 +980,8 @@ "due-date": "Prazo Final", "title-alphabetically": "Título (alfabeticamente) ", "created-at-newest-first": "Criado em (o mais recente primeiro) ", - "created-at-oldest-first": "Criado em (o mais antigo primeiro) " + "created-at-oldest-first": "Criado em (o mais antigo primeiro) ", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 061aefe81..042382969 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Nome de utilizador", "import-usernames": "Import Usernames", "view-it": "Visualizá-lo", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index aba97a112..f0a716193 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 928ebba66..44d74cb8d 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "URL пользовательского изображения при входе", "custom-login-logo-link-url": "URL ссылки с пользовательского изображения при входе", "text-below-custom-login-logo": "Текст под пользовательским изображением при входе", + "automatic-linked-url-schemes": "Пользовательская URL схема, которая должна быть кликабельной. Одна схема в каждой строке.", "username": "Имя пользователя", "import-usernames": "Импорт имен пользователей", "view-it": "Просмотреть", @@ -905,10 +906,10 @@ "operator-modified": "изменено", "operator-sort": "сортировка", "operator-comment": "комментарий", - "operator-has": "has", - "operator-limit": "limit", + "operator-has": "имеет", + "operator-limit": "лимит", "predicate-archived": "архивировано", - "predicate-open": "open", + "predicate-open": "открыт", "predicate-ended": "завершено", "predicate-all": "все", "predicate-overdue": "просрочено", @@ -930,42 +931,42 @@ "predicate-private": "приватно", "operator-unknown-error": "%1 не оператор", "operator-number-expected": "оператор __operator__ используется с числом, задано '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", + "operator-sort-invalid": "сортировка '%s' неверна", "operator-status-invalid": "'%s' не допустимый статус", - "operator-has-invalid": "%s is not a valid existence check", - "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-has-invalid": "%s неверная проверка присутствия", + "operator-limit-invalid": "%s неверное ограничение. Ограничение должно быть положительным целым.", "next-page": "Следующая страница", "previous-page": "Предыдущая страница", "heading-notes": "Заметки", "globalSearch-instructions-heading": "Инструкция по поиску", "globalSearch-instructions-description": "Поисковая строка может содержать операторы для уточнения запроса. Оператор задается именем оператора и значением разделенными двоеточием. Например, оператор 'list:Blocked' ограничит результат запроса карточками состоящими в списке 'Blocked'. Если значение содержит пробелы или специальные символы, то оно должно быть заключено в кавычки(__operator_list__:\"To Review\").", "globalSearch-instructions-operators": "Доступные операторы:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", - "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - карточки соответствуют: *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - карточки в списке соответствуют: *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - карточки на дорожках, соответствующих *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - карточки с комментарием содержащим *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - карточки, которые имеют метку соответствующую *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - сокращение для `__operator_label__:<color>` или `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - карточки в которых *<username>* *участник* или *исполнитель*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - сокращение для `пользователь:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - карточки, в которых *<username>* *участник*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - карточки, в которых *<username>* *исполнитель*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - карточки с датой завершения до *<n>* дней от текущей даты. `__operator_due__:__predicate_overdue__ список всех просроченных карточек.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - карточки, которые были созданы до *<n>* дней назад", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - карточки, который изменены до *<n>* дней назад", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - где *<status>* что-то из следующего:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - архивированные карточки", + "globalSearch-instructions-status-all": "`__predicate_all__` - все архивированные и не архивированные карточки", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - карточки с датой завершения", + "globalSearch-instructions-status-public": "`__predicate_public__` - карточки только на публичных досках", + "globalSearch-instructions-status-private": "`__predicate_private__` - карточки только на личных досках", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - где *<field>* что-либо из `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` или `__predicate_member__`. Указание `-` перед *<field>* производит поиск по отсутствию значения в указанном поле. (напр. `has:-due` поиск карточек без даты завершения).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - где*<sort-name>* что-либо из `__predicate_due__`, `__predicate_created__` или `__predicate_modified__`. Для сортировки по убыванию, укажите `-` перед названием сортировки.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - где *<n>* положительное целое определяющее количество карточек на одной странице.", "globalSearch-instructions-notes-1": "Может быть задано несколько операторов.", "globalSearch-instructions-notes-2": "Одинаковые операторы объединяются логическим \"ИЛИ\", например:\n`__operator_list__:Available __operator_list__:Blocked` вернет карточки, которые содержатся в списке *Blocked* или *Available*.", "globalSearch-instructions-notes-3": "Разные операторы объединяются логическим \"И\". Возвращаются только объекты удовлетворяющие всем заданным условиям.`__operator_list__:Available __operator_label__:red` вернет карточки, которые содержатся в списке *Available* и имеют метку *red*.", - "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-3-2": "Количество дней может быть задано положительным или отрицательным целым или используя `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` или `__predicate_year__` для текущего периода.", "globalSearch-instructions-notes-4": "Текстовый поиск нечувствителен к регистру символов.", "globalSearch-instructions-notes-5": "По умолчанию, поиск в архивированных карточках не производится.", "link-to-search": "Ссылка на этот поиск", @@ -979,5 +980,8 @@ "due-date": "Назначенная дата", "title-alphabetically": "Название (по алфавиту)", "created-at-newest-first": "Дата создания (сначала новые)", - "created-at-oldest-first": "Дата создания (сначала старые)" + "created-at-oldest-first": "Дата создания (сначала старые)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/sk.i18n.json b/i18n/sk.i18n.json index a96e50837..2e86d90a3 100644 --- a/i18n/sk.i18n.json +++ b/i18n/sk.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/sl.i18n.json b/i18n/sl.i18n.json index 3304791bc..e200272f3 100644 --- a/i18n/sl.i18n.json +++ b/i18n/sl.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Up. ime", "import-usernames": "Import Usernames", "view-it": "Poglej", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 81d80f95b..b6927040a 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Korisničko ime", "import-usernames": "Import Usernames", "view-it": "Pregledaj je", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 049b2fa32..9ba61d4c1 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -322,8 +322,8 @@ "error-user-notAllowSelf": "Du kan inte bjuda in dig själv", "error-user-notCreated": "Den här användaren har inte skapats", "error-username-taken": "Detta användarnamn är redan taget", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", + "error-orgname-taken": "Organisations namnet är upptaget.", + "error-teamname-taken": "Detta team namn är redan taget.", "error-email-taken": "E-post har redan tagits", "export-board": "Exportera tavla", "export-board-json": "Exportera tavla till JSON", @@ -386,7 +386,7 @@ "import-csv-placeholder": "Klistra in CSV/TSV data här", "import-map-members": "Kartlägg medlemmar", "import-members-map": "Din importerade tavla har några medlemmar. Vänligen matcha medlemmarna du vill importera mot dina användare", - "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-members-map-note": "Notera: Ommappade medlemmar kommer tilldelas den nuvarande användaren. ", "import-show-user-mapping": "Granska medlemskartläggning", "import-user-select": "Välj din befintliga användare du vill använda som den här medlemmen", "importMapMembersAddPopup-title": "Välj medlem", @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Länk till bild för anpassad logotyp på inloggningssidan", "custom-login-logo-link-url": "Länk för anpassad logotyp på inloggningssidan", "text-below-custom-login-logo": "Text under anpassad logga för inloggning", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Änvandarnamn", "import-usernames": "Importera användarnamn", "view-it": "Visa det", @@ -818,10 +819,10 @@ "addmore-detail": "Lägg till detaljerad beskrivning", "show-on-card": "Visa på kort", "new": "Ny", - "editOrgPopup-title": "Edit Organization", - "newOrgPopup-title": "New Organization", - "editTeamPopup-title": "Edit Team", - "newTeamPopup-title": "New Team", + "editOrgPopup-title": "Editera Oraganisation.", + "newOrgPopup-title": "Ny Organisation.", + "editTeamPopup-title": "Redigera Grupp", + "newTeamPopup-title": "Ny Grupp", "editUserPopup-title": "Redigera användare", "newUserPopup-title": "Ny användare", "notifications": "Notiser", @@ -852,132 +853,135 @@ "task": "Uppgift", "create-task": "Skapa uppgift", "ok": "OK", - "organizations": "Organizations", - "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", - "website": "Website", + "organizations": "Organisationer", + "teams": "Grupper", + "displayName": "Visningsnamn", + "shortName": "kort namn", + "website": "Webbsida", "person": "Person", - "my-cards": "My Cards", + "my-cards": "Mina Kort", "card": "Kort", - "board": "Board", + "board": "Tavla", "context-separator": "/", - "myCardsSortChange-title": "My Cards Sort", - "myCardsSortChangePopup-title": "My Cards Sort", - "myCardsSortChange-choice-board": "By Board", - "myCardsSortChange-choice-dueat": "By Due Date", - "dueCards-title": "Due Cards", - "dueCardsViewChange-title": "Due Cards View", - "dueCardsViewChangePopup-title": "Due Cards View", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", - "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", - "broken-cards": "Broken Cards", - "board-title-not-found": "Board '%s' not found.", - "swimlane-title-not-found": "Swimlane '%s' not found.", - "list-title-not-found": "List '%s' not found.", - "label-not-found": "Label '%s' not found.", - "label-color-not-found": "Label color %s not found.", - "user-username-not-found": "Username '%s' not found.", - "comment-not-found": "Card with comment containing text '%s' not found.", - "globalSearch-title": "Search All Boards", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", - "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", + "myCardsSortChange-title": "Mina Tavlor sortering", + "myCardsSortChangePopup-title": "Mina Tavlor sortering", + "myCardsSortChange-choice-board": "På tavla", + "myCardsSortChange-choice-dueat": "På förfallodatum", + "dueCards-title": "Förfallna tavlor", + "dueCardsViewChange-title": "Förfallna tavlor vy", + "dueCardsViewChangePopup-title": "Förfallna tavlor vy", + "dueCardsViewChange-choice-me": "Jag", + "dueCardsViewChange-choice-all": "Alla användare", + "dueCardsViewChange-choice-all-description": "Visar alla oklara kort med *förfallo* datum från tavlor som användaren har tillgång till.", + "broken-cards": "Trasiga kort", + "board-title-not-found": "Tavla '%s' hittades inte.", + "swimlane-title-not-found": "Simbana '%s' hittades inte.", + "list-title-not-found": "Lista '%s' hittades inte.", + "label-not-found": "Märkning '%s' hittades inte.", + "label-color-not-found": "Märnkingsfärg '%s' hittades inte.", + "user-username-not-found": "Användarnamn '%s' hittades inte.", + "comment-not-found": "Kort med kommentarer innehållande text '%s' hittades inte.", + "globalSearch-title": "Sök Alla Tavlor", + "no-cards-found": "Inga Kort Hittades", + "one-card-found": "Ett Kort hittades", + "n-cards-found": "%s Kort hittade", + "n-n-of-n-cards-found": "__start__-__slut__ av __totala__ Kort Hittade", + "operator-board": "tavla", "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", + "operator-swimlane": "Simbana", "operator-swimlane-abbrev": "s", "operator-list": "lista", "operator-list-abbrev": "l", "operator-label": "etikett", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "användare", "operator-user-abbrev": "@", "operator-member": "medlem", "operator-member-abbrev": "m", - "operator-assignee": "assignee", + "operator-assignee": "Tilldelad", "operator-assignee-abbrev": "a", "operator-status": "status", "operator-due": "förfallotid", - "operator-created": "created", - "operator-modified": "modified", - "operator-sort": "sort", - "operator-comment": "comment", - "operator-has": "has", - "operator-limit": "limit", - "predicate-archived": "archived", - "predicate-open": "open", - "predicate-ended": "ended", - "predicate-all": "all", - "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", + "operator-created": "skapad", + "operator-modified": "ändrad", + "operator-sort": "sortera", + "operator-comment": "kommentar", + "operator-has": "har", + "operator-limit": "gräns", + "predicate-archived": "arkiverad", + "predicate-open": "öppen", + "predicate-ended": "avslutad", + "predicate-all": "alla", + "predicate-overdue": "förfallen", + "predicate-week": "vecka", + "predicate-month": "månad", + "predicate-quarter": "kvartal", + "predicate-year": "år", "predicate-due": "förfallotid", - "predicate-modified": "modified", - "predicate-created": "created", - "predicate-attachment": "attachment", - "predicate-description": "description", + "predicate-modified": "ändrad", + "predicate-created": "skapad", + "predicate-attachment": "bilaga", + "predicate-description": "beskrivning", "predicate-checklist": "checklista", "predicate-start": "start", "predicate-end": "slut", - "predicate-assignee": "assignee", + "predicate-assignee": "Tilldelad", "predicate-member": "medlem", - "predicate-public": "public", - "predicate-private": "private", - "operator-unknown-error": "%s is not an operator", - "operator-number-expected": "operator __operator__ expected a number, got '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", - "operator-status-invalid": "'%s' is not a valid status", - "operator-has-invalid": "%s is not a valid existence check", - "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", - "globalSearch-instructions-heading": "Search Instructions", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", - "globalSearch-instructions-operators": "Available operators:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", - "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", - "globalSearch-instructions-notes-1": "Multiple operators may be specified.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "predicate-public": "publik", + "predicate-private": "privat", + "operator-unknown-error": "%s är inte en operator", + "operator-number-expected": "operator __operator__ förväntade ett nummer, fick '__värde__'", + "operator-sort-invalid": "Typ av '%s' är ogiltig", + "operator-status-invalid": "'%s' är inte en giltig status", + "operator-has-invalid": "%s är inte en giltig existenskontroll.", + "operator-limit-invalid": "%s är inte en giltig gräns. Gräns ska vara en positiv integer.", + "next-page": "Nästa Sida", + "previous-page": "Föregående Sida", + "heading-notes": "Noteringar", + "globalSearch-instructions-heading": "Sökinstruktioner", + "globalSearch-instructions-description": "Sökningar kan inkludera operatorer för att förfina sökningen. Operatorer är specifierade genon att skriva operator namn och värd separerat med ett kolon. Till exempel, en operator specifikation av 'list:Blocked' skulle limitera sökningen till kort som är innuti en lista döpt till *Blocked*. Om värdet innehåller blanksteg eller specialtecken måste den vara innesluten med citations tecken. (t e x. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Tillgängliga operatorer:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - kort i tavlor matchande den specifierade *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - kort i listor matchande den specifierade *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - kort i simbanor matchande den specifierade *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - kort med kommentar innehållandes *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` -kort med märkning som matchar *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color> - förkortning för `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - kort där*<username>* är en *medlem* eller *tilldelad*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - förkortning för `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - kort där *<username>* är en *medlem*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - kort där *<username>* är en *tilldelad*", + "globalSearch-instructions-operator-due": "`__operator_due__:1` - cards which are due up to *2* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - kort som skapade för *<n>* dagar sedan eller mindre.", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - kort som är modifierade för *<n>* dagar sedan eller mindre", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - där*<status>* är en av följande:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - arkiverade kort", + "globalSearch-instructions-status-all": "`__predicate_all__` - alla arkiverade och oarkiverade kort.", + "globalSearch-instructions-status-ended": "`__predicate_ended__` -kort med ett slutdatum", + "globalSearch-instructions-status-public": "`__predicate_public__` - kort endast i publika tavlor", + "globalSearch-instructions-status-private": "`__predicate_private__` - kort endast i privata tavlor", + "globalSearch-instructions-operator-has": "`__operator_has__:<field> - där*<field>* är en av `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` eller`__predicate_member__`. placer en `-` framför *<field>* söker för frånvaron av ett värde i det fältet (t ex. `has:-due` söker efter kort utan förfallodatum).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - där*<sort-name>* är en av `__predicate_due__`, `__predicate_created__` eller `__predicate_modified__`. för enm fallande sortering, placera en `-` framför sorteringsnamnet.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - där *<n>* är en positivc integer utryckandes antalet kort som ska visas per sida.", + "globalSearch-instructions-notes-1": "Multipla operatörer kan specifieras.", + "globalSearch-instructions-notes-2": "Liknande operatörer *OR*ade tillsammans. Kort som matchar någon av villkoren kommer returneras.\n`__operator_list__:Tillgängliga __operator_list__:Blockerad` skuille returna kort i vilken list som helst som heter *Blockerad* eller *Tillgängliga*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", - "globalSearch-instructions-notes-4": "Text searches are case insensitive.", - "globalSearch-instructions-notes-5": "By default archived cards are not searched.", - "link-to-search": "Link to this search", + "globalSearch-instructions-notes-4": "Textsökningar är skiftlägeskänsliga.", + "globalSearch-instructions-notes-5": "Som standard söks inte arkiverade kort.", + "link-to-search": "Länka till denna sökningen", "excel-font": "Arial", "number": "Nummer", - "label-colors": "Label Colors", - "label-names": "Label Names", - "archived-at": "archived at", - "sort-cards": "Sort Cards", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "label-colors": "Märkningsfärger", + "label-names": "Märkningsnamn", + "archived-at": "arkiverad den", + "sort-cards": "Sortera Kort", + "cardsSortPopup-title": "Sortera Kort", + "due-date": "Förfallodatum", + "title-alphabetically": "Titel (Alfabetisk)", + "created-at-newest-first": "Skapad den (Nyast först)", + "created-at-oldest-first": "Skapad den (äldst först)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index 3f795d6d3..b5002bc8c 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index e55186b92..182625d62 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index ba5350351..42536b6bd 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "ชื่อผู้ใช้งาน", "import-usernames": "Import Usernames", "view-it": "ดู", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index be3ce153c..e3bdb3a6a 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Özel Oturum Açma Logosu Resmi URL'si", "custom-login-logo-link-url": "Özel Oturum Açma Logosu Bağlantı URL'si", "text-below-custom-login-logo": "Özel Oturum Açma Logosunun altındaki metin", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Kullanıcı adı", "import-usernames": "Import Usernames", "view-it": "Görüntüle", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 8e2c0be45..e9ed67e2e 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "Переглянути це", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 362c4664f..9749dfc59 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -1,52 +1,52 @@ { "accept": "Chấp nhận", "act-activity-notify": "Thông báo hoạt động", - "act-addAttachment": "thêm tập tin đính kèm __attachment__ vào thẻ __list__ tại danh sách __list__ tại đường bơi __swimlane__ tại bảng __board__", - "act-deleteAttachment": "xóa tập tin đính kèm __attachment__ tại thẻ __card__ tại danh sách __list__ tại đường bơi __swimlane__ tại bảng __board__ ", - "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createBoard": "created board __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", - "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-createCustomField": "created custom field __customField__ at board __board__", - "act-deleteCustomField": "deleted custom field __customField__ at board __board__", - "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createList": "added list __list__ to board __board__", - "act-addBoardMember": "added member __member__ to board __board__", - "act-archivedBoard": "Board __board__ moved to Archive", - "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", - "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", - "act-importBoard": "imported board __board__", - "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", - "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", - "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-removeBoardMember": "removed member __member__ from board __board__", - "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", - "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addAttachment": "thêm tập tin đính kèm __attachment__ vào thẻ __list__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-deleteAttachment": "xóa tập tin đính kèm __attachment__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__ ", + "act-addSubtask": "đã thêm nhiệm vụ con __subtask__ vào thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ at board __board__", + "act-addLabel": "Đã thêm nhãn __label__ vào thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-addedLabel": "Đã thêm nhãn __label__ vào thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-removeLabel": "Đã xóa nhãn __label__ từ thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-removedLabel": "Đã xóa nhãn __label__ từ thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-addChecklist": "đã thêm checklist __checklist__ vào thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-addChecklistItem": "đã thêm mục checklist __checklistItem__ vào checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-removeChecklist": "đã xóa checklist __checklist__ từ thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-removeChecklistItem": "đã xóa mục checklist __checklistItem__ từ checklist __checkList__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-checkedItem": "đã đánh dấu hoàn thành mục __checklistItem__ của checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-uncheckedItem": "đã bỏ đánh dấu hoàn thành mục __checklistItem__ của checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-completeChecklist": "đã hoàn thành checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-uncompleteChecklist": "đã bỏ đánh dấu hoàn thành checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-addComment": "đã bình luận trên thẻ __card__: __comment__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-editComment": "đã sửa bình luận trên thẻ __card__: __comment__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-deleteComment": "đã xóa bình luận trên thẻ __card__: __comment__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-createBoard": "đã tạo bảng __board__", + "act-createSwimlane": "đã tạo làn ngang __swimlane__ tới bảng __board__", + "act-createCard": "đã tạo thẻ __card__ vào danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-createCustomField": "đã tạo trường __customField__ tại bảng __board__", + "act-deleteCustomField": "đã xóa trường tùy chỉnh __customField__ tại bảng __board__", + "act-setCustomField": "trường tùy chỉnh đã chỉnh sửa __customField__: __customFieldValue__ Tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-createList": "đã thêm danh sách __list__ vàng bảng __board__", + "act-addBoardMember": "đã thêm thành viên __member__ vào bảng __board__", + "act-archivedBoard": "Bảng __board__ đã được chuyển đến Lưu trữ", + "act-archivedCard": "Thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__ được chuyển vào Lưu trữ", + "act-archivedList": "Danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__ đã chuyển đến Lưu trữ", + "act-archivedSwimlane": "Làn ngang __swimlane__ tại bảng __board__ được chuyển đến Lưu trữ", + "act-importBoard": "đã nhập bảng __board__", + "act-importCard": "đã nhập thẻ __card__ vào danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-importList": "đã nhập danh sách __list__ vào làn ngang __swimlane__ tại bảng __board__", + "act-joinMember": "đã thêm thành viên __member__ vào thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ at board __board__", + "act-moveCard": "đã di chuyển thẻ __card__ tại bảng __board__ từ danh sách __oldList__ tại làn ngang __oldSwimlane__ tới danh sách __list__ tại làn ngang __swimlane__", + "act-moveCardToOtherBoard": "đã di chuyển thẻ __card__ từ danh sách __oldList__ tại làn ngang __oldSwimlane__ tại bảng __oldBoard__ tới danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-removeBoardMember": "đã xóa thành viên __member__ khỏi bảng __board__", + "act-restoredCard": "đã khôi phục thẻ __card__ vào danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", + "act-unjoinMember": "đã xóa thành viên __member__ từ thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Hành Động", "activities": "Hoạt Động", "activity": "Hoạt Động", "activity-added": "đã thêm %s vào %s", - "activity-archived": "%s đã chuyển đến Lưu trữ", + "activity-archived": "đã chuyển %s đến Lưu trữ", "activity-attached": "đã đính kèm %s vào %s", "activity-created": "đã tạo %s", "activity-customfield-created": "đã tạo trường tuỳ chỉnh %s", @@ -60,29 +60,29 @@ "activity-sent": "gửi %s đến %s", "activity-unjoined": "đã rời khỏi %s", "activity-subtask-added": "đã thêm subtask vào %s", - "activity-checked-item": "checked %s in checklist %s of %s", - "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checked-item": "đã đánh dấu hoàn thành %s trong checklist %s của %s", + "activity-unchecked-item": "đã bỏ đánh dấu hoàn thành %s trong checklist %s của %s", "activity-checklist-added": "đã thêm checklist vào %s", - "activity-checklist-removed": "removed a checklist from %s", - "activity-checklist-completed": "completed checklist %s of %s", - "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", - "activity-checklist-item-added": "added checklist item to '%s' in %s", - "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "activity-checklist-removed": "đã xóa một checklist từ %s", + "activity-checklist-completed": "đã đánh dấu hoàn thành toàn bộ checklist %s của %s", + "activity-checklist-uncompleted": "đánh dấu chưa hoàn thành toàn bộ checklist %s của %s", + "activity-checklist-item-added": "đã thêm mục checklist vào '%s' trong %s", + "activity-checklist-item-removed": "đã xóa một mục checklist từ '%s' trong %s", "add": "Thêm", - "activity-checked-item-card": "checked %s in checklist %s", - "activity-unchecked-item-card": "unchecked %s in checklist %s", - "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checked-item-card": "đã hoàn thành %s trong checklist %s", + "activity-unchecked-item-card": "đã bỏ đánh dấu hoàn thành %s trong checklist %s", + "activity-checklist-completed-card": "đã hoàn thành checklist __checklist__ tại thẻ __card__ tại danh sách __list__ tại làn ngang __swimlane__ tại bảng __board__", "activity-checklist-uncompleted-card": "chưa hoàn thành checklist", "activity-editComment": "lời bình đã sửa", "activity-deleteComment": "đã xoá lời bình %s", - "activity-receivedDate": "ngày nhận đã sửa từ %s thành %s", - "activity-startDate": "ngày bắt đầu đã sửa từ %s thành %s", - "activity-dueDate": "ngày đến hạn đã sửa từ %s thành %s", - "activity-endDate": "ngày kết thúc đã sửa từ %s thành %s", + "activity-receivedDate": "đã sửa ngày nhận đến %s của %s", + "activity-startDate": "đã sửa ngày bắt đầu thành %s của %s", + "activity-dueDate": "đã sửa ngày hết hạn thành %s của %s", + "activity-endDate": "đã sửa ngày kết thúc thành %s của %s", "add-attachment": "Thêm Bản Đính Kèm", "add-board": "Thêm Bảng", "add-card": "Thêm Thẻ", - "add-swimlane": "Add Swimlane", + "add-swimlane": "Thêm làn ngang", "add-subtask": "Thêm Nhiệm vụ phụ", "add-checklist": "Thêm Danh Sách Kiểm Tra", "add-checklist-item": "Thêm Một Mục Vào Danh Sách Kiểm Tra", @@ -94,26 +94,26 @@ "addMemberPopup-title": "Thành Viên", "admin": "Quản Trị Viên", "admin-desc": "Có thể xem và chỉnh sửa những thẻ, xóa thành viên và thay đổi cài đặt cho bảng.", - "admin-announcement": "Announcement", - "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", + "admin-announcement": "Thông báo", + "admin-announcement-active": "Thông báo trên toàn hệ thống đang hoạt động", + "admin-announcement-title": "Thông báo từ Quản trị viên", "all-boards": "Tất cả các bảng", "and-n-other-card": "Và __count__ thẻ khác", "and-n-other-card_plural": "Và __count__ thẻ khác", - "apply": "Ứng Dụng", - "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-board": "Move Board to Archive", - "archive-card": "Move Card to Archive", - "archive-list": "Move List to Archive", - "archive-swimlane": "Move Swimlane to Archive", - "archive-selection": "Move selection to Archive", - "archiveBoardPopup-title": "Move Board to Archive?", + "apply": "Áp Dụng", + "app-is-offline": "Đang tải, vui lòng đợi. Làm mới trang sẽ làm mất dữ liệu. Nếu quá trình tải không hoạt động, vui lòng kiểm tra lại máy chủ.", + "archive": "Di chuyển đến Lưu trữ", + "archive-all": "Di chuyển tất cả vào Lưu trữ", + "archive-board": "Di chuyển Bảng sang Lưu trữ", + "archive-card": "Di chuyển Thẻ vào Lưu trữ", + "archive-list": "Di chuyển Danh sách vào Lưu trữ", + "archive-swimlane": "Di chuyển Làn ngang vào Lưu trữ", + "archive-selection": "Di chuyển lựa chọn vào Lưu trữ", + "archiveBoardPopup-title": "Chuyển Bảng sang Lưu trữ?", "archived-items": "Lưu Trữ", - "archived-boards": "Boards in Archive", + "archived-boards": "Các bảng trong lưu trữ", "restore-board": "Khôi Phục Bảng", - "no-archived-boards": "No Boards in Archive.", + "no-archived-boards": "Không có bảng nào trong Lưu trữ.", "archives": "Lưu Trữ", "template": "Mẫu", "templates": "Các mẫu", @@ -124,13 +124,13 @@ "attachmentDeletePopup-title": "Xóa tệp đính kèm không?", "attachments": "Tệp Đính Kèm", "auto-watch": "Tự động xem bảng lúc được tạo ra", - "avatar-too-big": "The avatar is too large (520KB max)", + "avatar-too-big": "Hình đại diện quá lớn (tối đa 520KB)", "back": "Trở Lại", "board-change-color": "Đổi màu", "board-nb-stars": "%s sao", "board-not-found": "Không tìm được bảng", - "board-private-info": "Bảng này sẽ chuyển sang <strong> chế độ private</strong>.", - "board-public-info": "Bảng này sẽ chuyển sang <strong> chế độ public</strong>.", + "board-private-info": "Bảng này sẽ chuyển sang chế độ <strong>riêng tư</strong>.", + "board-public-info": "Bảng này sẽ chuyển sang chế độ <strong>công khai</strong>.", "boardChangeColorPopup-title": "Thay hình nền của bảng", "boardChangeTitlePopup-title": "Đổi tên bảng", "boardChangeVisibilityPopup-title": "Đổi cách hiển thị", @@ -140,18 +140,18 @@ "boards": "Bảng", "board-view": "Kiểu xem Bảng", "board-view-cal": "Lịch", - "board-view-swimlanes": "Thu gọn", - "board-view-collapse": "Collapse", - "board-view-gantt": "Gantt", + "board-view-swimlanes": "Làn ngang", + "board-view-collapse": "Thu gọn", + "board-view-gantt": "Biểu đồ Gantt", "board-view-lists": "Danh sách", - "bucket-example": "Like “Bucket List” for example", + "bucket-example": "Ví dụ như \"Danh sách nhóm\"", "cancel": "Hủy", - "card-archived": "This card is moved to Archive.", - "board-archived": "This board is moved to Archive.", + "card-archived": "Thẻ này đã được chuyển đến Lưu trữ.", + "board-archived": "Bảng này đã được chuyển đến Lưu trữ.", "card-comments-title": "Thẻ này có %s bình luận.", "card-delete-notice": "Hành động xóa là không thể khôi phục. Bạn sẽ mất hết các hoạt động liên quan đến thẻ này.", - "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-delete-pop": "Tất cả các hành động sẽ bị xóa khỏi nguồn cấp dữ liệu hoạt động và bạn sẽ không thể mở lại thẻ. Không có hoàn tác.", + "card-delete-suggest-archive": "Bạn có thể di chuyển một thẻ vào Lưu trữ để xóa thẻ đó khỏi bảng và duy trì hoạt động này.", "card-due": "Đến hạn", "card-due-on": "Đến hạn vào", "card-spent": "Thời lượng", @@ -160,53 +160,53 @@ "card-edit-labels": "Sửa nhãn", "card-edit-members": "Sửa thành viên", "card-labels-title": "Thay đổi nhãn cho Thẻ", - "card-members-title": "Add or remove members of the board from the card.", + "card-members-title": "Thêm hoặc xóa các thành viên của bảng khỏi thẻ.", "card-start": "Bắt đầu", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", - "cardCustomField-datePopup-title": "Change date", + "card-start-on": "Bắt đầu vào", + "cardAttachmentsPopup-title": "Đính kèm từ", + "cardCustomField-datePopup-title": "Thay đổi ngày", "cardCustomFieldsPopup-title": "Sửa trường tuỳ chỉnh", - "cardStartVotingPopup-title": "Start a vote", - "positiveVoteMembersPopup-title": "Proponents", - "negativeVoteMembersPopup-title": "Opponents", + "cardStartVotingPopup-title": "Bắt đầu một cuộc bỏ phiếu", + "positiveVoteMembersPopup-title": "Những người ủng hộ", + "negativeVoteMembersPopup-title": "Những người phản đối", "card-edit-voting": "Sửa bình chọn", - "editVoteEndDatePopup-title": "Change vote end date", - "allowNonBoardMembers": "Allow all logged in users", - "vote-question": "Voting question", - "vote-public": "Show who voted what", - "vote-for-it": "for it", - "vote-against": "against", + "editVoteEndDatePopup-title": "Thay đổi ngày kết thúc phiếu bầu", + "allowNonBoardMembers": "Cho phép tất cả người dùng đã đăng nhập", + "vote-question": "Câu hỏi bình chọn", + "vote-public": "Hiển thị ai đã bình chọn cái gì", + "vote-for-it": "tán thành", + "vote-against": "phản đối", "deleteVotePopup-title": "Xoá bình chọn?", - "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "vote-delete-pop": "Việc xóa là vĩnh viễn. Bạn sẽ mất tất cả các hành động liên quan đến phiếu bầu này.", "cardDeletePopup-title": "Xoá Thẻ", - "cardDetailsActionsPopup-title": "Card Actions", + "cardDetailsActionsPopup-title": "Hành động thẻ", "cardLabelsPopup-title": "Nhãn", "cardMembersPopup-title": "Thành Viên", - "cardMorePopup-title": "More", + "cardMorePopup-title": "Thêm nữa", "cardTemplatePopup-title": "Tạo mẫu", - "cards": "Cards", - "cards-count": "Cards", - "casSignIn": "Sign In with CAS", - "cardType-card": "Card", - "cardType-linkedCard": "Linked Card", - "cardType-linkedBoard": "Linked Board", - "change": "Change", - "change-avatar": "Change Avatar", - "change-password": "Change Password", - "change-permissions": "Change permissions", - "change-settings": "Change Settings", - "changeAvatarPopup-title": "Change Avatar", - "changeLanguagePopup-title": "Change Language", - "changePasswordPopup-title": "Change Password", - "changePermissionsPopup-title": "Change Permissions", - "changeSettingsPopup-title": "Change Settings", + "cards": "Thẻ", + "cards-count": "Thẻ", + "casSignIn": "Đăng nhập bằng CAS", + "cardType-card": "Thẻ", + "cardType-linkedCard": "Thẻ đã liên kết", + "cardType-linkedBoard": "Bảng đã liên kết", + "change": "Thay đổi", + "change-avatar": "Thay đổi hình đại diện", + "change-password": "Đổi mật khẩu", + "change-permissions": "Thay đổi quyền", + "change-settings": "Thay đổi Cài đặt", + "changeAvatarPopup-title": "Thay đổi hình đại diện", + "changeLanguagePopup-title": "Thay đổi ngôn ngữ", + "changePasswordPopup-title": "Đổi mật khẩu", + "changePermissionsPopup-title": "Thay đổi quyền", + "changeSettingsPopup-title": "Thay đổi Cài đặt", "subtasks": "Nhiệm vụ phụ", - "checklists": "Checklists", - "click-to-star": "Click to star this board.", - "click-to-unstar": "Click to unstar this board.", - "clipboard": "Clipboard or drag & drop", - "close": "Close", - "close-board": "Close Board", + "checklists": "Danh sách việc cần hoàn thành", + "click-to-star": "Bấm để gắn dấu sao bảng này.", + "click-to-unstar": "Bấm để bỏ gắn bảng này.", + "clipboard": "Clipboard hoặc kéo và thả", + "close": "Đóng", + "close-board": "Đóng bảng", "close-board-pop": "Bạn sẽ có thể khôi phục bảng bằng cách nhấp vào nút \"Lưu trữ\" từ tiêu đề trang chủ.", "color-black": "black", "color-blue": "blue", @@ -233,233 +233,233 @@ "color-slateblue": "slateblue", "color-white": "white", "color-yellow": "yellow", - "unset-color": "Unset", - "comment": "Comment", - "comment-placeholder": "Write Comment", - "comment-only": "Comment only", - "comment-only-desc": "Can comment on cards only.", - "no-comments": "No comments", - "no-comments-desc": "Can not see comments and activities.", + "unset-color": "Không đặt", + "comment": "Bình luận", + "comment-placeholder": "Viết Bình Luận", + "comment-only": "Chỉ bình luận", + "comment-only-desc": "Chỉ có thể nhận xét về thẻ.", + "no-comments": "Không có bình luận", + "no-comments-desc": "Không thể xem bình luận và hoạt động.", "worker": "Worker", "worker-desc": "Chỉ có thể di chuyển thẻ, tự gán thẻ và nhận xét.", - "computer": "Computer", + "computer": "Máy tính", "confirm-subtask-delete-dialog": "Bạn có chắc chắn muốn xóa nhiệm vụ phụ không?", - "confirm-checklist-delete-dialog": "Bạn có chắc chắn muốn xóa danh sách kiểm tra không?", - "copy-card-link-to-clipboard": "Copy card link to clipboard", - "linkCardPopup-title": "Link Card", + "confirm-checklist-delete-dialog": "Bạn có chắc chắn muốn xóa checklist không?", + "copy-card-link-to-clipboard": "Sao chép liên kết thẻ vào khay nhớ tạm", + "linkCardPopup-title": "Thẻ liên kết", "searchElementPopup-title": "Tìm kiếm", - "copyCardPopup-title": "Copy Card", - "copyChecklistToManyCardsPopup-title": "Sao chép Mẫu danh sách kiểm tra cho Nhiều thẻ", - "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", - "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", - "create": "Create", - "createBoardPopup-title": "Create Board", - "chooseBoardSourcePopup-title": "Import board", - "createLabelPopup-title": "Create Label", - "createCustomField": "Create Field", - "createCustomFieldPopup-title": "Create Field", - "current": "current", - "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", - "custom-field-checkbox": "Checkbox", - "custom-field-currency": "Currency", - "custom-field-currency-option": "Currency Code", - "custom-field-date": "Date", - "custom-field-dropdown": "Dropdown List", + "copyCardPopup-title": "Sao chép Thẻ", + "copyChecklistToManyCardsPopup-title": "Sao chép Mẫu Checklist cho Nhiều thẻ", + "copyChecklistToManyCardsPopup-instructions": "Tiêu đề và mô tả thẻ đích ở định dạng JSON này", + "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Tiêu đề thẻ đầu tiên\", \"description\":\"Mô tả thẻ đầu tiên\"}, {\"title\":\"Tiêu đề thẻ thứ hai\",\"description\":\"Mô tả thẻ thứ hai\"},{\"title\":\"Tiêu đề thẻ cuối cùng\",\"description\":\"Mô tả thẻ cuối cùng\"} ]", + "create": "Tạo", + "createBoardPopup-title": "Tạo Bảng", + "chooseBoardSourcePopup-title": "Nhập bảng", + "createLabelPopup-title": "Tạo nhãn", + "createCustomField": "Tạo Trường", + "createCustomFieldPopup-title": "Tạo Trường", + "current": "hiện tại", + "custom-field-delete-pop": "Không thể hoàn tác. Thao tác này sẽ xóa trường tùy chỉnh này khỏi tất cả các thẻ và hủy lịch sử của nó.", + "custom-field-checkbox": "Hộp kiểm", + "custom-field-currency": "Tiền tệ", + "custom-field-currency-option": "Mã tiền tệ", + "custom-field-date": "Ngày", + "custom-field-dropdown": "Danh sách thả xuống", "custom-field-dropdown-none": "(none)", - "custom-field-dropdown-options": "List Options", - "custom-field-dropdown-options-placeholder": "Press enter to add more options", - "custom-field-dropdown-unknown": "(unknown)", - "custom-field-number": "Number", - "custom-field-text": "Text", - "custom-fields": "Custom Fields", - "date": "Date", - "decline": "Decline", - "default-avatar": "Default avatar", + "custom-field-dropdown-options": "Tùy chọn danh sách", + "custom-field-dropdown-options-placeholder": "Nhấn enter để thêm các tùy chọn khác", + "custom-field-dropdown-unknown": "(không xác định)", + "custom-field-number": "Số", + "custom-field-text": "Văn bản", + "custom-fields": "Trường tùy chỉnh", + "date": "Ngày", + "decline": "Từ chối", + "default-avatar": "Hình đại diện mặc định", "delete": "Xoá", "deleteCustomFieldPopup-title": "Xoá Trường tuỳ chỉnh?", "deleteLabelPopup-title": "Xoá Nhãn?", - "description": "Description", - "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", - "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", - "discard": "Discard", - "done": "Done", - "download": "Download", + "description": "Mô tả", + "disambiguateMultiLabelPopup-title": "Đánh dấu nhãn hành động", + "disambiguateMultiMemberPopup-title": "Làm rõ hành động của thành viên", + "discard": "Bỏ đi", + "done": "Xong", + "download": "Tải về", "edit": "Sửa", - "edit-avatar": "Change Avatar", + "edit-avatar": "Thay đổi hình đại diện", "edit-profile": "Sửa Hồ sơ", - "edit-wip-limit": "Edit WIP Limit", - "soft-wip-limit": "Soft WIP Limit", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", + "edit-wip-limit": "Chỉnh sửa giới hạn WIP", + "soft-wip-limit": "Giới hạn Soft WIP", + "editCardStartDatePopup-title": "Thay đổi ngày bắt đầu", + "editCardDueDatePopup-title": "Thay đổi ngày đến hạn", "editCustomFieldPopup-title": "Sửa Trường", - "editCardSpentTimePopup-title": "Change spent time", - "editLabelPopup-title": "Change Label", + "editCardSpentTimePopup-title": "Thay đổi thời gian đã sử dụng", + "editLabelPopup-title": "Thay đổi nhãn", "editNotificationPopup-title": "Sửa Thông báo", "editProfilePopup-title": "Sửa Hồ sơ", "email": "Email", - "email-enrollAccount-subject": "An account created for you on __siteName__", - "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", - "email-fail": "Sending email failed", - "email-fail-text": "Error trying to send email", - "email-invalid": "Invalid email", - "email-invite": "Invite via Email", - "email-invite-subject": "__inviter__ sent you an invitation", - "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", - "email-resetPassword-subject": "Reset your password on __siteName__", - "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", - "email-sent": "Email sent", - "email-verifyEmail-subject": "Verify your email address on __siteName__", - "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", - "enable-wip-limit": "Enable WIP Limit", - "error-board-doesNotExist": "This board does not exist", - "error-board-notAdmin": "You need to be admin of this board to do that", - "error-board-notAMember": "You need to be a member of this board to do that", - "error-json-malformed": "Your text is not valid JSON", - "error-json-schema": "Your JSON data does not include the proper information in the correct format", - "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format", - "error-list-doesNotExist": "This list does not exist", - "error-user-doesNotExist": "This user does not exist", - "error-user-notAllowSelf": "You can not invite yourself", - "error-user-notCreated": "This user is not created", - "error-username-taken": "This username is already taken", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", - "error-email-taken": "Email has already been taken", - "export-board": "Export board", - "export-board-json": "Export board to JSON", - "export-board-csv": "Export board to CSV", - "export-board-tsv": "Export board to TSV", - "export-board-excel": "Export board to Excel", - "user-can-not-export-excel": "User can not export Excel", - "export-board-html": "Export board to HTML", - "exportBoardPopup-title": "Export board", - "sort": "Sort", - "sort-desc": "Click to Sort List", + "email-enrollAccount-subject": "Một tài khoản được tạo cho bạn trên __siteName__", + "email-enrollAccount-text": "Chào __user__,\n\nĐể bắt đầu sử dụng dịch vụ, chỉ cần nhấp vào liên kết bên dưới.\n\n__url__\n\nCảm ơn.", + "email-fail": "Gửi email không thành công", + "email-fail-text": "Lỗi khi gửi email", + "email-invalid": "Email không hợp lệ", + "email-invite": "Mời qua Email", + "email-invite-subject": "__inviter__ đã gửi cho bạn lời mời", + "email-invite-text": "Gửi __user__,\n\n__inviter__ mời bạn tham gia bảng \"__board__\" để cộng tác.\n\nVui lòng theo liên kết bên dưới:\n\n__url__\n\nCảm ơn.", + "email-resetPassword-subject": "Đặt lại mật khẩu của bạn trên __siteName__", + "email-resetPassword-text": "Chào __user__,\n\nĐể đặt lại mật khẩu của bạn, chỉ cần nhấp vào liên kết bên dưới.\n\n__url__\n\nCảm ơn.", + "email-sent": "Đã gửi email", + "email-verifyEmail-subject": "Xác minh địa chỉ email của bạn trên __siteName__", + "email-verifyEmail-text": "Chào __user__,\n\nĐể xác minh email tài khoản của bạn, chỉ cần nhấp vào liên kết bên dưới.\n\n__url__\n\nCảm ơn.", + "enable-wip-limit": "Bật giới hạn WIP", + "error-board-doesNotExist": "Bảng này không tồn tại", + "error-board-notAdmin": "Bạn cần phải là quản trị viên của bảng này để làm điều đó", + "error-board-notAMember": "Bạn cần phải là thành viên của bảng này để làm điều đó", + "error-json-malformed": "Văn bản của bạn không phải là JSON hợp lệ", + "error-json-schema": "Dữ liệu JSON của bạn không bao gồm thông tin thích hợp ở định dạng chính xác", + "error-csv-schema": "CSV (Giá trị được phân tách bằng dấu phẩy)/TSV (Giá trị được phân cách bằng tab) của bạn không bao gồm thông tin thích hợp ở định dạng chính xác", + "error-list-doesNotExist": "Danh sách này không tồn tại", + "error-user-doesNotExist": "Người dùng này không tồn tại", + "error-user-notAllowSelf": "Bạn không thể mời chính mình", + "error-user-notCreated": "Người dùng này không được tạo", + "error-username-taken": "Tên người dùng này đã được sử dụng", + "error-orgname-taken": "Tên tổ chức này đã được sử dụng", + "error-teamname-taken": "Tên team này đã được sử dụng", + "error-email-taken": "Email đã được sử dụng", + "export-board": "Xuất bảng", + "export-board-json": "Xuất bảng sang JSON", + "export-board-csv": "Xuất bảng sang CSV", + "export-board-tsv": "Xuất bảng sang TSV", + "export-board-excel": "Xuất bảng sang Excel", + "user-can-not-export-excel": "Người dùng không thể xuất Excel", + "export-board-html": "Xuất bảng sang HTML", + "exportBoardPopup-title": "Xuất bảng", + "sort": "Sắp xếp", + "sort-desc": "Nhấp để sắp xếp danh sách", "list-sort-by": "Sắp xếp Danh sách bởi:", - "list-label-modifiedAt": "Last Access Time", - "list-label-title": "Name of the List", + "list-label-modifiedAt": "Lần truy cập cuối cùng", + "list-label-title": "Tên của danh sách", "list-label-sort": "Your Manual Order", "list-label-short-modifiedAt": "(L)", "list-label-short-title": "(N)", "list-label-short-sort": "(M)", - "filter": "Filter", - "filter-cards": "Filter Cards or Lists", + "filter": "Bộ lọc", + "filter-cards": "Lọc thẻ hoặc danh sách", "list-filter-label": "Lọc danh sách theo tiêu đề", - "filter-clear": "Clear filter", + "filter-clear": "Xóa bộ lọc", "filter-labels-label": "Lọc theo nhãn", - "filter-no-label": "No label", + "filter-no-label": "Không có nhãn", "filter-member-label": "Lọc theo thành viên", - "filter-no-member": "No member", + "filter-no-member": "Không có thành viên", "filter-assignee-label": "Lọc theo người được giao", "filter-no-assignee": "Không có người được giao", "filter-custom-fields-label": "Lọc theo Trường tuỳ chỉnh", - "filter-no-custom-fields": "No Custom Fields", - "filter-show-archive": "Show archived lists", + "filter-no-custom-fields": "Không có trường tùy chỉnh", + "filter-show-archive": "Hiển thị danh sách đã lưu trữ", "filter-hide-empty": "Ẩn danh sách trống", - "filter-on": "Filter is on", + "filter-on": "Bộ lọc đang bật", "filter-on-desc": "Bạn đang lọc thẻ trên bảng này. Nhấn vào đây để chỉnh sửa bộ lọc.", - "filter-to-selection": "Filter to selection", - "other-filters-label": "Other Filters", - "advanced-filter-label": "Advanced Filter", - "advanced-filter-description": "Bộ lọc nâng cao cho phép viết một chuỗi chứa các toán tử sau: ==! = <=> = && || () Một khoảng trắng được sử dụng làm dấu phân cách giữa các Toán tử. Bạn có thể lọc tất cả các Trường tùy chỉnh bằng cách nhập tên và giá trị của chúng. Ví dụ: Field1 == Value1. Lưu ý: Nếu các trường hoặc giá trị chứa khoảng trắng, bạn cần phải đóng gói chúng thành các dấu nháy đơn. Ví dụ: 'Trường 1' == 'Giá trị 1'. Để bỏ qua các ký tự điều khiển đơn ('\\ /), bạn có thể sử dụng \\. Ví dụ: Field1 == I \\ 'm. Ngoài ra bạn có thể kết hợp nhiều điều kiện. Ví dụ: F1 == V1 || F1 == V2. Thông thường tất cả các toán tử được giải thích từ trái sang phải. Bạn có thể thay đổi thứ tự bằng cách đặt dấu ngoặc. Ví dụ: F1 == V1 && (F2 == V2 || F2 == V3). Ngoài ra, bạn có thể tìm kiếm các trường văn bản bằng cách sử dụng regex: F1 == /Tes.*/i", - "fullname": "Full Name", - "header-logo-title": "Go back to your boards page.", + "filter-to-selection": "Lọc lựa chọn", + "other-filters-label": "Bộ lọc khác", + "advanced-filter-label": "Bộ lọc nâng cao", + "advanced-filter-description": "Bộ lọc Nâng cao cho phép viết một chuỗi chứa các toán tử sau: == != <= >= && || ( ) Một khoảng trắng được sử dụng làm dấu phân cách giữa các Toán tử. Bạn có thể lọc tất cả các Trường tùy chỉnh bằng cách nhập tên và giá trị của chúng. Ví dụ: Field1 == Value1. Chú ý: Nếu các trường hoặc giá trị chứa khoảng trắng, bạn cần phải đóng gói chúng thành các dấu ngoặc kép. Ví dụ: 'Field 1' == 'Value 1'. Để bỏ qua các ký tự điều khiển đơn (' \\/) bạn có thể sử dụng \\. Ví dụ: Field1 == I\\'m. Ngoài ra bạn có thể kết hợp nhiều điều kiện. Ví dụ: F1 == V1 || F1 == V2. Thông thường tất cả các toán tử được giải thích từ trái sang phải. Bạn có thể thay đổi thứ tự bằng cách đặt dấu ngoặc. Ví dụ: F1 == V1 && ( F2 == V2 || F2 == V3 ). Ngoài ra, bạn có thể tìm kiếm các trường văn bản bằng cách sử dụng regex: F1 == /Tes.*/i", + "fullname": "Họ và tên", + "header-logo-title": "Quay lại trang bảng của bạn.", "hide-system-messages": "Ẩn tin nhắn hệ thống", - "headerBarCreateBoardPopup-title": "Create Board", - "home": "Home", - "import": "Import", - "impersonate-user": "Impersonate user", + "headerBarCreateBoardPopup-title": "Tạo Bảng", + "home": "Trang Chủ", + "import": "Nhập khẩu", + "impersonate-user": "Mạo danh người dùng", "link": "Liên kết", - "import-board": "import board", - "import-board-c": "Import board", - "import-board-title-trello": "Import board from Trello", - "import-board-title-wekan": "Import board from previous export", - "import-board-title-csv": "Import board from CSV/TSV", - "from-trello": "From Trello", - "from-wekan": "From previous export", - "from-csv": "From CSV/TSV", - "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-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", - "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", - "import-csv-placeholder": "Paste your valid CSV/TSV data here", - "import-map-members": "Map members", - "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-board": "nhập bảng", + "import-board-c": "Nhập bảng", + "import-board-title-trello": "Nhập bảng từ Trello", + "import-board-title-wekan": "Nhập bảng từ lần xuất trước", + "import-board-title-csv": "Nhập bảng từ CSV/TSV", + "from-trello": "Từ Trello", + "from-wekan": "Từ lần xuất trước", + "from-csv": "Từ CSV/TSV", + "import-board-instruction-trello": "Trong bảng Trello của bạn, đi tới 'Trình đơn', sau đó đến 'Khác', 'In và Xuất', 'Xuất JSON' và sao chép văn bản kết quả.", + "import-board-instruction-csv": "Dán Giá trị được phân tách bằng dấu phẩy(CSV)/ Giá trị được phân cách bằng tab (TSV) của bạn.", + "import-board-instruction-wekan": "Trong bảng của bạn, hãy chuyển đến \"Menu\", sau đó \"Xuất bảng\" và sao chép văn bản trong tệp đã tải xuống.", + "import-board-instruction-about-errors": "Nếu bạn gặp lỗi khi nhập bảng, đôi khi quá trình nhập vẫn hoạt động và bảng ở trang Tất cả bảng.", + "import-json-placeholder": "Dán dữ liệu JSON hợp lệ của bạn vào đây", + "import-csv-placeholder": "Dán dữ liệu CSV/TSV hợp lệ của bạn vào đây", + "import-map-members": "Bản đồ thành viên", + "import-members-map": "Bảng nhập khẩu của bạn có một số thành viên. Vui lòng ánh xạ các thành viên bạn muốn nhập với người dùng của mình", "import-members-map-note": "Lưu ý: Các thành viên chưa được ánh xạ sẽ được chỉ định cho người dùng hiện tại.", "import-show-user-mapping": "Đánh giá bản đồ thành viên", - "import-user-select": "Pick your existing user you want to use as this member", - "importMapMembersAddPopup-title": "Select member", - "info": "Version", - "initials": "Initials", - "invalid-date": "Invalid date", - "invalid-time": "Invalid time", - "invalid-user": "Invalid user", - "joined": "joined", - "just-invited": "You are just invited to this board", - "keyboard-shortcuts": "Keyboard shortcuts", - "label-create": "Create Label", - "label-default": "%s label (default)", - "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "import-user-select": "Chọn người dùng hiện tại của bạn mà bạn muốn sử dụng làm thành viên này", + "importMapMembersAddPopup-title": "Chọn thành viên", + "info": "Phiên bản", + "initials": "Tên viết tắt", + "invalid-date": "Ngày không hợp lệ", + "invalid-time": "Thời gian không hợp lệ", + "invalid-user": "Người dùng không hợp lệ", + "joined": "đã tham gia", + "just-invited": "Bạn vừa được mời vào bảng này", + "keyboard-shortcuts": "Các phím tắt", + "label-create": "Tạo nhãn", + "label-default": "nhãn %s (mặc định)", + "label-delete-pop": "Không có hoàn tác. Thao tác này sẽ xóa nhãn này khỏi tất cả các thẻ và hủy lịch sử của thẻ.", "labels": "Nhãn", - "language": "Language", - "last-admin-desc": "You can’t change roles because there must be at least one admin.", - "leave-board": "Leave Board", - "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", - "leaveBoardPopup-title": "Leave Board ?", - "link-card": "Link to this card", - "list-archive-cards": "Move all cards in this list to Archive", + "language": "Ngôn ngữ", + "last-admin-desc": "Bạn không thể thay đổi vai trò vì phải có ít nhất một quản trị viên.", + "leave-board": "Rời khỏi Bảng", + "leave-board-pop": "Bạn có chắc chắn muốn rời khỏi __boardTitle__ không? Bạn sẽ bị xóa khỏi tất cả các Thẻ trên bảng này.", + "leaveBoardPopup-title": "Rời khỏi Bảng?", + "link-card": "Liên kết đến thẻ này", + "list-archive-cards": "Di chuyển tất cả các thẻ trong danh sách này vào Lưu trữ", "list-archive-cards-pop": "Thao tác này sẽ xóa tất cả các thẻ trong danh sách này khỏi bảng. Để xem thẻ trong Lưu trữ và đưa chúng trở lại bảng, hãy nhấp vào “Trình đơn”> “Lưu trữ”.", - "list-move-cards": "Move all cards in this list", - "list-select-cards": "Select all cards in this list", - "set-color-list": "Set Color", - "listActionPopup-title": "List Actions", - "settingsUserPopup-title": "User Settings", - "swimlaneActionPopup-title": "Swimlane Actions", - "swimlaneAddPopup-title": "Add a Swimlane below", - "listImportCardPopup-title": "Import a Trello card", - "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", - "listMorePopup-title": "More", - "link-list": "Link to this list", - "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", - "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "list-move-cards": "Di chuyển tất cả các thẻ trong danh sách này", + "list-select-cards": "Chọn tất cả các thẻ trong danh sách này", + "set-color-list": "Đặt Màu", + "listActionPopup-title": "Liệt kê các hành động", + "settingsUserPopup-title": "Cài đặt người dùng", + "swimlaneActionPopup-title": "Hành động trên Làn ngang", + "swimlaneAddPopup-title": "Thêm một Làn ngang bên dưới", + "listImportCardPopup-title": "Nhập thẻ Trello", + "listImportCardsTsvPopup-title": "Nhập Excel CSV/TSV", + "listMorePopup-title": "Thêm nữa", + "link-list": "Liên kết đến danh sách này", + "list-delete-pop": "Tất cả các hành động sẽ bị xóa khỏi nguồn cấp dữ liệu hoạt động và bạn sẽ không thể khôi phục danh sách. Không có hoàn tác.", + "list-delete-suggest-archive": "Bạn có thể di chuyển danh sách vào Lưu trữ để xóa danh sách đó khỏi Bảng và duy trì hoạt động.", "lists": "Danh sách", - "swimlanes": "Thu gọn", - "log-out": "Log Out", - "log-in": "Log In", - "loginPopup-title": "Log In", - "memberMenuPopup-title": "Member Settings", + "swimlanes": "Làn ngang", + "log-out": "Đăng Xuất", + "log-in": "Đăng nhập", + "loginPopup-title": "Đăng nhập", + "memberMenuPopup-title": "Cài đặt thành viên", "members": "Thành Viên", "menu": "Menu", - "move-selection": "Move selection", - "moveCardPopup-title": "Move Card", - "moveCardToBottom-title": "Move to Bottom", - "moveCardToTop-title": "Move to Top", - "moveSelectionPopup-title": "Move selection", + "move-selection": "Di chuyển lựa chọn", + "moveCardPopup-title": "Di chuyển Thẻ", + "moveCardToBottom-title": "Di chuyển xuống dưới cùng", + "moveCardToTop-title": "Di chuyển lên đầu", + "moveSelectionPopup-title": "Di chuyển lựa chọn", "multi-selection": "Chọn nhiều", - "multi-selection-label": "Set label for selection", - "multi-selection-member": "Set member for selection", + "multi-selection-label": "Đặt nhãn để lựa chọn", + "multi-selection-member": "Đặt thành viên để lựa chọn", "multi-selection-on": "Chọn nhiều Đang bật", - "muted": "Muted", + "muted": "Đã tắt tiếng", "muted-info": "Bạn sẽ không bao giờ được thông báo về bất kỳ thay đổi nào trong bảng này", "my-boards": "Bảng của tôi", - "name": "Name", - "no-archived-cards": "No cards in Archive.", - "no-archived-lists": "No lists in Archive.", - "no-archived-swimlanes": "No swimlanes in Archive.", - "no-results": "No results", - "normal": "Normal", + "name": "Tên", + "no-archived-cards": "Không có thẻ nào trong Lưu trữ.", + "no-archived-lists": "Không có danh sách nào trong Lưu trữ.", + "no-archived-swimlanes": "Không có Làn ngang nào trong Lưu trữ.", + "no-results": "Không có kết quả", + "normal": "Bình thường", "normal-desc": "Có thể xem và chỉnh sửa thẻ. Không thể thay đổi cài đặt.", - "not-accepted-yet": "Invitation not accepted yet", - "notify-participate": "Receive updates to any cards you participate as creater or member", - "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", - "optional": "optional", - "or": "or", + "not-accepted-yet": "Lời mời chưa được chấp nhận", + "notify-participate": "Nhận thông tin cập nhật cho bất kỳ thẻ nào bạn tham gia với tư cách là người sáng tạo hoặc thành viên", + "notify-watch": "Nhận thông tin cập nhật cho bất kỳ bảng, danh sách hoặc thẻ nào bạn đang xem", + "optional": "không bắt buộc", + "or": "hoặc", "page-maybe-private": "Trang này có thể là riêng tư. Bạn có thể xem nó bằng cách <a href='%s'>đăng nhập.</a>", - "page-not-found": "Page not found.", + "page-not-found": "Không tìm thấy trang.", "password": "Mật khẩu", - "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", - "participating": "Participating", + "paste-or-dragdrop": "để dán, hoặc kéo & thả tệp hình ảnh vào đó (chỉ hình ảnh)", + "participating": "Tham gia", "preview": "Xem trước", "previewAttachedImagePopup-title": "Xem trước", "previewClipboardImagePopup-title": "Xem trước", @@ -467,517 +467,521 @@ "private-desc": "Bảng này là riêng tư. Chỉ những người được thêm vào bảng mới có thể xem và chỉnh sửa nó.", "profile": "Hồ sơ", "public": "Công khai", - "public-desc": "Ban này là công khai. Nó hiển thị với bất kỳ ai có liên kết và sẽ hiển thị trong các công cụ tìm kiếm như Google. Chỉ những người được thêm vào diễn đàn mới có thể chỉnh sửa.", - "quick-access-description": "Star a board to add a shortcut in this bar.", + "public-desc": "Bảng này là công khai. Nó hiển thị với bất kỳ ai có liên kết và sẽ hiển thị trong các công cụ tìm kiếm như Google. Chỉ những người được thêm vào Bảng mới có thể chỉnh sửa.", + "quick-access-description": "Gắn dấu sao bảng để thêm lối tắt trong thanh này.", "remove-cover": "Remove Cover", - "remove-from-board": "Remove from Board", - "remove-label": "Remove Label", + "remove-from-board": "Xóa khỏi Bảng", + "remove-label": "Xóa nhãn", "listDeletePopup-title": "Xoá Danh sách?", "remove-member": "Loại bỏ Thành viên", - "remove-member-from-card": "Remove from Card", - "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", - "removeMemberPopup-title": "Remove Member?", + "remove-member-from-card": "Xóa khỏi Thẻ", + "remove-member-pop": "Xóa __name__ (__username__) khỏi __boardTitle__? Thành viên sẽ bị xóa khỏi tất cả các thẻ trên bảng này. Họ sẽ nhận được một thông báo.", + "removeMemberPopup-title": "Xóa Thành Viên?", "rename": "Đổi tên", "rename-board": "Đổi tên bảng", - "restore": "Restore", + "restore": "Khôi phục", "save": "Lưu", "search": "Tìm kiếm", - "rules": "Rules", + "rules": "Quy tắc", "search-cards": "Tìm kiếm từ Tiêu đề Thẻ/Danh sách, Mô tả và các trường tùy chỉnh trên bảng này", "search-example": "Nhập từ khoá tìm kiếm và ấn Enter", - "select-color": "Select Color", - "select-board": "Select Board", - "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", - "setWipLimitPopup-title": "Set WIP Limit", + "select-color": "Chọn màu", + "select-board": "Chọn Bảng", + "set-wip-limit-value": "Đặt giới hạn cho số lượng nhiệm vụ tối đa trong danh sách này", + "setWipLimitPopup-title": "Đặt giới hạn WIP", "shortcut-assign-self": "Chỉ định bạn vào thẻ hiện tại", - "shortcut-autocomplete-emoji": "Autocomplete emoji", - "shortcut-autocomplete-members": "Autocomplete members", - "shortcut-clear-filters": "Clear all filters", - "shortcut-close-dialog": "Close Dialog", - "shortcut-filter-my-cards": "Filter my cards", - "shortcut-show-shortcuts": "Bring up this shortcuts list", - "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-autocomplete-emoji": "Tự động điền biểu tượng cảm xúc", + "shortcut-autocomplete-members": "Tự động điền Thành viên", + "shortcut-clear-filters": "Xóa tất cả các bộ lọc", + "shortcut-close-dialog": "Đóng hộp thoại", + "shortcut-filter-my-cards": "Lọc thẻ của tôi", + "shortcut-show-shortcuts": "Hiển thị danh sách phím tắt", + "shortcut-toggle-filterbar": "Chuyển đổi Thanh bên Bộ lọc", "shortcut-toggle-searchbar": "Chuyển đổi Thanh bên Tìm kiếm", - "shortcut-toggle-sidebar": "Toggle Board Sidebar", - "show-cards-minimum-count": "Show cards count if list contains more than", - "sidebar-open": "Open Sidebar", - "sidebar-close": "Close Sidebar", - "signupPopup-title": "Create an Account", - "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "shortcut-toggle-sidebar": "Chuyển đổi thanh bên bảng", + "show-cards-minimum-count": "Hiển thị số lượng thẻ nếu danh sách chứa nhiều hơn", + "sidebar-open": "Mở Thanh Bên", + "sidebar-close": "Đóng Thanh bên", + "signupPopup-title": "Tạo Tài Khoản", + "star-board-title": "Bấm để gắn dấu sao bảng này. Nó sẽ hiển thị ở đầu danh sách bảng của bạn.", "starred-boards": "Bảng có gắn dấu sao", "starred-boards-description": "Bảng đánh dấu sao sẽ được Ghin lên đầu", - "subscribe": "Subscribe", + "subscribe": "Đăng ký", "team": "Team", - "this-board": "this board", - "this-card": "this card", - "spent-time-hours": "Spent time (hours)", - "overtime-hours": "Overtime (hours)", - "overtime": "Overtime", - "has-overtime-cards": "Has overtime cards", - "has-spenttime-cards": "Has spent time cards", - "time": "Time", - "title": "Title", - "tracking": "Tracking", + "this-board": "bảng này", + "this-card": "thẻ này", + "spent-time-hours": "Đã dành thời gian (giờ)", + "overtime-hours": "Tăng ca (giờ)", + "overtime": "Tăng ca", + "has-overtime-cards": "Có thẻ làm thêm giờ", + "has-spenttime-cards": "Đã sử dụng thẻ thời gian", + "time": "Thời gian", + "title": "Tiêu đề", + "tracking": "Đang theo dõi", "tracking-info": "Bạn sẽ được thông báo về bất kỳ thay đổi nào đối với những thẻ mà bạn tham gia với tư cách là người sáng tạo hoặc thành viên.", - "type": "Type", + "type": "Kiểu", "unassign-member": "Bỏ chỉ định thành viên", - "unsaved-description": "You have an unsaved description.", - "unwatch": "Unwatch", - "upload": "Upload", - "upload-avatar": "Upload an avatar", - "uploaded-avatar": "Uploaded an avatar", - "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", - "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", - "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", - "custom-login-logo-image-url": "Custom Login Logo Image URL", - "custom-login-logo-link-url": "Custom Login Logo Link URL", - "text-below-custom-login-logo": "Text below Custom Login Logo", - "username": "Username", - "import-usernames": "Import Usernames", + "unsaved-description": "Bạn có một mô tả chưa được lưu.", + "unwatch": "Bỏ theo dõi", + "upload": "Tải lên", + "upload-avatar": "Tải lên hình đại diện", + "uploaded-avatar": "Đã tải lên hình đại diện", + "custom-top-left-corner-logo-image-url": "Góc trên bên trái tùy chỉnh - URL hình ảnh Logo", + "custom-top-left-corner-logo-link-url": "Góc trên bên trái tùy chỉnh - URL liên kết Logo", + "custom-top-left-corner-logo-height": "Góc trên bên trái tùy chỉnh - Chiều cao Logo. Mặc định: 27", + "custom-login-logo-image-url": "Đăng nhập tùy chỉnh - URL hình ảnh Logo ", + "custom-login-logo-link-url": "Đăng nhập tùy chỉnh - Url liên kết Logo", + "text-below-custom-login-logo": "Đăng nhập tùy chỉnh - Văn bản bên dưới Logo", + "automatic-linked-url-schemes": "Lược đồ URL tùy chỉnh sẽ tự động có thể nhấp được. Một Lược đồ URL trên mỗi dòng", + "username": "Tài khoản", + "import-usernames": "Nhập khẩu Usernames", "view-it": "Xem", - "warn-list-archived": "warning: this card is in an list at Archive", - "watch": "Watch", - "watching": "Watching", + "warn-list-archived": "cảnh báo: thẻ này nằm trong một danh sách tại Lưu trữ", + "watch": "Theo dõi", + "watching": "Đang xem", "watching-info": "Bạn sẽ được thông báo về bất kỳ thay đổi nào trong bảng này", "welcome-board": "Welcome Board", "welcome-swimlane": "Milestone 1", - "welcome-list1": "Basics", - "welcome-list2": "Advanced", + "welcome-list1": "Cơ bản", + "welcome-list2": "Nâng cao", "card-templates-swimlane": "Mẫu Thẻ", "list-templates-swimlane": "Mẫu Danh sách", "board-templates-swimlane": "Mẫu Bảng", - "what-to-do": "What do you want to do?", - "wipLimitErrorPopup-title": "Invalid WIP Limit", - "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", - "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", - "admin-panel": "Admin Panel", - "settings": "Settings", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-tls-description": "Enable TLS support for SMTP server", + "what-to-do": "Bạn muốn làm gì?", + "wipLimitErrorPopup-title": "Giới hạn WIP không hợp lệ", + "wipLimitErrorPopup-dialog-pt1": "Số lượng nhiệm vụ trong danh sách này cao hơn giới hạn WIP mà bạn đã xác định.", + "wipLimitErrorPopup-dialog-pt2": "Vui lòng chuyển một số nhiệm vụ ra khỏi danh sách này hoặc đặt giới hạn WIP cao hơn.", + "admin-panel": "Bảng quản trị", + "settings": "Cài đặt", + "people": "Mọi người", + "registration": "Đăng ký", + "disable-self-registration": "Vô hiệu hoá tự đăng ký", + "invite": "Mời", + "invite-people": "Mời mọi người", + "to-boards": "Đến bảng(s)", + "email-addresses": "Địa chỉ Email", + "smtp-host-description": "Địa chỉ của máy chủ SMTP xử lý email của bạn.", + "smtp-port-description": "Cổng mà máy chủ SMTP của bạn sử dụng cho các email gửi đi.", + "smtp-tls-description": "Bật hỗ trợ TLS cho máy chủ SMTP", "smtp-host": "SMTP Host", "smtp-port": "SMTP Port", - "smtp-username": "Username", + "smtp-username": "Tài khoản", "smtp-password": "Mật khẩu", - "smtp-tls": "TLS support", - "send-from": "From", - "send-smtp-test": "Send a test email to yourself", - "invitation-code": "Invitation Code", - "email-invite-register-subject": "__inviter__ sent you an invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "email-smtp-test-subject": "SMTP Test Email", - "email-smtp-test-text": "You have successfully sent an email", - "error-invitation-code-not-exist": "Invitation code doesn't exist", + "smtp-tls": "Hỗ trợ TLS", + "send-from": "Từ", + "send-smtp-test": "Gửi một email thử nghiệm cho chính bạn", + "invitation-code": "Mã lời mời", + "email-invite-register-subject": "__inviter__ đã gửi cho bạn lời mời", + "email-invite-register-text": "Gửi __user__,\n\n__inviter__ mời bạn tham gia bảng kanban để cộng tác.\n\nVui lòng truy cập liên kết bên dưới:\n__url__\n\nVà mã mời của bạn là: __icode__\n\nCảm ơn.", + "email-smtp-test-subject": "Email kiểm tra SMTP", + "email-smtp-test-text": "Bạn đã gửi thành công một email", + "error-invitation-code-not-exist": "Mã lời mời không tồn tại", "error-notAuthorized": "Bạn không được phép xem trang này.", - "webhook-title": "Webhook Name", - "webhook-token": "Token (Optional for Authentication)", - "outgoing-webhooks": "Outgoing Webhooks", - "bidirectional-webhooks": "Two-Way Webhooks", - "outgoingWebhooksPopup-title": "Outgoing Webhooks", - "boardCardTitlePopup-title": "Card Title Filter", - "disable-webhook": "Disable This Webhook", - "global-webhook": "Global Webhooks", - "new-outgoing-webhook": "New Outgoing Webhook", - "no-name": "(Unknown)", - "Node_version": "Node version", - "Meteor_version": "Meteor version", - "MongoDB_version": "MongoDB version", + "webhook-title": "Tên Webhook", + "webhook-token": "Mã thông báo (Tùy chọn để xác thực)", + "outgoing-webhooks": "Webhooks gửi đi", + "bidirectional-webhooks": "Webhooks hai chiều", + "outgoingWebhooksPopup-title": "Webhook gửi đi", + "boardCardTitlePopup-title": "Lọc tiêu đề thẻ", + "disable-webhook": "Vô hiệu hóa Webhook này", + "global-webhook": "Webhook toàn cầu", + "new-outgoing-webhook": "Webhook gửi đi mới", + "no-name": "(Không xác định)", + "Node_version": "Phiên bản Node", + "Meteor_version": "Phiên bản Meteor", + "MongoDB_version": "Phiên bản MongoDB", "MongoDB_storage_engine": "MongoDB storage engine", "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", "OS_Arch": "OS Arch", - "OS_Cpus": "OS CPU Count", - "OS_Freemem": "OS Free Memory", - "OS_Loadavg": "OS Load Average", - "OS_Platform": "OS Platform", - "OS_Release": "OS Release", - "OS_Totalmem": "OS Total Memory", - "OS_Type": "OS Type", - "OS_Uptime": "OS Uptime", - "days": "days", - "hours": "hours", - "minutes": "minutes", - "seconds": "seconds", - "show-field-on-card": "Show this field on card", - "automatically-field-on-card": "Add field to new cards", - "always-field-on-card": "Add field to all cards", - "showLabel-field-on-card": "Show field label on minicard", - "yes": "Yes", - "no": "No", - "accounts": "Accounts", - "accounts-allowEmailChange": "Allow Email Change", - "accounts-allowUserNameChange": "Allow Username Change", - "createdAt": "Created at", - "modifiedAt": "Modified at", - "verified": "Verified", - "active": "Active", - "card-received": "Received", - "card-received-on": "Received on", - "card-end": "End", - "card-end-on": "Ends on", - "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date", - "setCardColorPopup-title": "Set color", - "setCardActionsColorPopup-title": "Choose a color", - "setSwimlaneColorPopup-title": "Choose a color", - "setListColorPopup-title": "Choose a color", + "OS_Cpus": "Số CPU", + "OS_Freemem": "Bộ nhớ trống", + "OS_Loadavg": "Tải trung bình", + "OS_Platform": "Nền tảng", + "OS_Release": "Phiên bản", + "OS_Totalmem": "Tổng bộ nhớ hệ điều hành", + "OS_Type": "Kiểu hệ điều hành", + "OS_Uptime": "Thời gian chạy", + "days": "ngày", + "hours": "giờ", + "minutes": "phút", + "seconds": "giây", + "show-field-on-card": "Hiển thị trường này trên thẻ", + "automatically-field-on-card": "Thêm trường vào thẻ mới", + "always-field-on-card": "Thêm trường vào tất cả các thẻ", + "showLabel-field-on-card": "Hiển thị nhãn trường trên minicard", + "yes": "Có", + "no": "Không", + "accounts": "Tài khoản", + "accounts-allowEmailChange": "Cho phép thay đổi email", + "accounts-allowUserNameChange": "Cho phép thay đổi tên người dùng", + "createdAt": "Được tạo lúc", + "modifiedAt": "Được sửa đổi lúc", + "verified": "Đã xác minh", + "active": "Hoạt động", + "card-received": "Đã nhận", + "card-received-on": "Nhận được trên", + "card-end": "Kết thúc", + "card-end-on": "Kết thúc vào", + "editCardReceivedDatePopup-title": "Thay đổi ngày nhận", + "editCardEndDatePopup-title": "Thay đổi ngày kết thúc", + "setCardColorPopup-title": "Đặt màu", + "setCardActionsColorPopup-title": "Chọn một màu", + "setSwimlaneColorPopup-title": "Chọn một màu", + "setListColorPopup-title": "Chọn một màu", "assigned-by": "Được chỉ định bởi", "requested-by": "Yêu cầu bởi", - "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "board-delete-notice": "Việc xóa là vĩnh viễn. Bạn sẽ mất tất cả danh sách, thẻ và hành động liên quan đến bảng này.", "delete-board-confirm-popup": "Tất cả danh sách, thẻ, nhãn và hoạt động sẽ bị xóa và bạn sẽ không thể khôi phục nội dung bảng. Không thể hoàn tác.", "boardDeletePopup-title": "Xoá Bảng?", "delete-board": "Xoá Bảng", "default-subtasks-board": "Nhiệm vụ phụ cho __board__ bảng", - "default": "Default", - "queue": "Queue", + "default": "Mặc định", + "queue": "Hàng đợi", "subtask-settings": "Cài đặt Nhiệm vụ phụ", - "card-settings": "Card Settings", + "card-settings": "Cài đặt Card", "boardSubtaskSettingsPopup-title": "Cài đặt Bảng Nhiệm vụ phụ", - "boardCardSettingsPopup-title": "Card Settings", + "boardCardSettingsPopup-title": "Cài đặt thẻ", "deposit-subtasks-board": "Gửi các nhiệm vụ phụ vào bảng này:", "deposit-subtasks-list": "Danh sách đích cho các nhiệm vụ phụ được gửi tại đây:", - "show-parent-in-minicard": "Show parent in minicard:", - "prefix-with-full-path": "Prefix with full path", - "prefix-with-parent": "Prefix with parent", - "subtext-with-full-path": "Subtext with full path", - "subtext-with-parent": "Subtext with parent", - "change-card-parent": "Change card's parent", - "parent-card": "Parent card", - "source-board": "Source board", - "no-parent": "Don't show parent", - "activity-added-label": "added label '%s' to %s", - "activity-removed-label": "removed label '%s' from %s", + "show-parent-in-minicard": "Hiện cha mẹ trong minicard:", + "prefix-with-full-path": "Tiền tố với đường dẫn đầy đủ", + "prefix-with-parent": "Tiền tố với cha mẹ", + "subtext-with-full-path": "Văn bản phụ với đường dẫn đầy đủ", + "subtext-with-parent": "Văn bản phụ với cha mẹ", + "change-card-parent": "Thay đổi phụ huynh của thẻ", + "parent-card": "Thẻ cha", + "source-board": "Bảng nguồn", + "no-parent": "Không hiển thị cho cha mẹ", + "activity-added-label": "đã thêm nhãn '%s' vào %s", + "activity-removed-label": "đã xóa nhãn '%s' khỏi %s", "activity-delete-attach": "đã xóa một tệp đính kèm khỏi %s", - "activity-added-label-card": "added label '%s'", - "activity-removed-label-card": "removed label '%s'", + "activity-added-label-card": "đã thêm nhãn '%s'", + "activity-removed-label-card": "đã xóa nhãn '%s'", "activity-delete-attach-card": "đã xóa một tệp đính kèm", - "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-board-rules": "Board rules", - "r-add-rule": "Add rule", + "activity-set-customfield": "đặt trường tùy chỉnh '%s' thành '%s' trong %s", + "activity-unset-customfield": "bỏ đặt trường tùy chỉnh '%s' trong %s", + "r-rule": "Quy tắc", + "r-add-trigger": "Thêm trình kích hoạt", + "r-add-action": "Thêm hành động", + "r-board-rules": "Quy tắc bảng", + "r-add-rule": "Thêm quy tắc", "r-view-rule": "Xem quy tắc", "r-delete-rule": "Xoá quy tắc", - "r-new-rule-name": "New rule title", - "r-no-rules": "No rules", - "r-trigger": "Trigger", - "r-action": "Action", - "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", - "list": "List", - "set-filter": "Set Filter", - "r-moved-to": "Moved to", - "r-moved-from": "Moved from", - "r-archived": "Moved to Archive", - "r-unarchived": "Restored from Archive", - "r-a-card": "a card", - "r-when-a-label-is": "When a label is", - "r-when-the-label": "When the label", - "r-list-name": "list name", - "r-when-a-member": "When a member is", - "r-when-the-member": "When the member", - "r-name": "name", - "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-made-incomplete": "Made incomplete", - "r-when-a-item": "When a checklist item is", - "r-when-the-item": "When the checklist item", - "r-checked": "Checked", - "r-unchecked": "Unchecked", - "r-move-card-to": "Move card to", - "r-top-of": "Top of", - "r-bottom-of": "Bottom of", - "r-its-list": "its list", - "r-archive": "Move to Archive", - "r-unarchive": "Restore from Archive", - "r-card": "card", + "r-new-rule-name": "Tiêu đề quy tắc mới", + "r-no-rules": "Không có quy tắc", + "r-trigger": "Kích hoạt", + "r-action": "Hoạt động", + "r-when-a-card": "Khi một thẻ", + "r-is": "là", + "r-is-moved": "được chuyển đi", + "r-added-to": "Đã thêm vào", + "r-removed-from": "Bị loại khỏi", + "r-the-board": "bảng", + "r-list": "danh sách", + "list": "Danh sách", + "set-filter": "Đặt bộ lọc", + "r-moved-to": "Chuyển đến", + "r-moved-from": "Đã di chuyển từ", + "r-archived": "Đã chuyển đến Lưu trữ", + "r-unarchived": "Đã khôi phục từ lưu trữ", + "r-a-card": "thẻ", + "r-when-a-label-is": "Khi một nhãn là", + "r-when-the-label": "Khi nhãn", + "r-list-name": "tên danh sách", + "r-when-a-member": "Khi một thành viên là", + "r-when-the-member": "Khi thành viên", + "r-name": "tên", + "r-when-a-attach": "Khi một tệp đính kèm", + "r-when-a-checklist": "Khi một checklist là", + "r-when-the-checklist": "Khi checklist", + "r-completed": "Đã hoàn thành", + "r-made-incomplete": "Làm chưa hoàn thành", + "r-when-a-item": "Khi một mục checklist là", + "r-when-the-item": "Khi mục checklist", + "r-checked": "Đã chọn", + "r-unchecked": "Đã bỏ chọn", + "r-move-card-to": "Di chuyển thẻ đến", + "r-top-of": "Trên cùng của", + "r-bottom-of": "Dưới cùng của", + "r-its-list": "danh sách của nó", + "r-archive": "Di chuyển đến Lưu trữ", + "r-unarchive": "Khôi phục từ Lưu trữ", + "r-card": "thẻ", "r-add": "Thêm", - "r-remove": "Remove", - "r-label": "label", - "r-member": "member", - "r-remove-all": "Remove all members from the card", - "r-set-color": "Set color to", + "r-remove": "Xóa", + "r-label": "nhãn", + "r-member": "thành viên", + "r-remove-all": "Xóa tất cả thành viên khỏi thẻ", + "r-set-color": "Đặt màu cho", "r-checklist": "checklist", - "r-check-all": "Check all", - "r-uncheck-all": "Uncheck all", - "r-items-check": "items of checklist", - "r-check": "Check", - "r-uncheck": "Uncheck", - "r-item": "item", - "r-of-checklist": "of checklist", - "r-send-email": "Send an email", - "r-to": "to", - "r-of": "of", - "r-subject": "subject", - "r-rule-details": "Rule details", - "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-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-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-check-all": "Check all items of a list", - "r-d-uncheck-all": "Uncheck all items of a list", - "r-d-check-one": "Check item", - "r-d-uncheck-one": "Uncheck item", - "r-d-check-of-list": "of checklist", - "r-d-add-checklist": "Add checklist", - "r-d-remove-checklist": "Remove checklist", + "r-check-all": "Đánh dấu tất cả", + "r-uncheck-all": "Bỏ đánh dấu tất cả", + "r-items-check": "mục của checklist", + "r-check": "Chọn", + "r-uncheck": "Bỏ chọn", + "r-item": "mục", + "r-of-checklist": "của checklist", + "r-send-email": "Gửi email", + "r-to": "đến", + "r-of": "của", + "r-subject": "Chủ đề", + "r-rule-details": "Chi tiết quy tắc", + "r-d-move-to-top-gen": "Di chuyển thẻ lên đầu danh sách của nó", + "r-d-move-to-top-spec": "Di chuyển thẻ lên đầu của danh sách", + "r-d-move-to-bottom-gen": "Di chuyển thẻ xuống cuối danh sách của nó", + "r-d-move-to-bottom-spec": "Di chuyển thẻ xuống cuối của danh sách", + "r-d-send-email": "Gửi email", + "r-d-send-email-to": "đến", + "r-d-send-email-subject": "Chủ đề", + "r-d-send-email-message": "tin nhắn", + "r-d-archive": "Di chuyển thẻ vào Lưu trữ", + "r-d-unarchive": "Khôi phục thẻ từ Lưu trữ", + "r-d-add-label": "Thêm nhãn", + "r-d-remove-label": "Xóa nhãn", + "r-create-card": "Tạo thẻ mới", + "r-in-list": "trong danh sách", + "r-in-swimlane": "trong làn ngang", + "r-d-add-member": "Thêm thành viên", + "r-d-remove-member": "Xóa thành viên", + "r-d-remove-all-member": "Xóa tất cả thành viên", + "r-d-check-all": "Check tất cả các mục của một danh sách", + "r-d-uncheck-all": "Bỏ check tất cả các mục của danh sách", + "r-d-check-one": "Chọn mục", + "r-d-uncheck-one": "Bỏ chọn mục", + "r-d-check-of-list": "của checklist", + "r-d-add-checklist": "Thêm checklist", + "r-d-remove-checklist": "Xóa checklist", "r-by": "bởi", - "r-add-checklist": "Add checklist", - "r-with-items": "with items", + "r-add-checklist": "Thêm checklist", + "r-with-items": "với các mục", "r-items-list": "item1,item2,item3", - "r-add-swimlane": "Add swimlane", - "r-swimlane-name": "swimlane name", - "r-board-note": "Note: leave a field empty to match every possible value.", - "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", - "r-when-a-card-is-moved": "When a card is moved to another list", - "r-set": "Set", - "r-update": "Update", - "r-datefield": "date field", + "r-add-swimlane": "Thêm làn ngang", + "r-swimlane-name": "tên làn ngang", + "r-board-note": "Lưu ý: để trống một trường để khớp với mọi giá trị có thể.", + "r-checklist-note": "Lưu ý: các mục của danh sách kiểm tra phải được viết dưới dạng các giá trị được phân tách bằng dấu phẩy.", + "r-when-a-card-is-moved": "Khi một thẻ được chuyển sang một danh sách khác", + "r-set": "Đặt", + "r-update": "Cập nhật", + "r-datefield": "trường ngày tháng", "r-df-start-at": "bắt đầu", - "r-df-due-at": "due", - "r-df-end-at": "end", - "r-df-received-at": "received", - "r-to-current-datetime": "to current date/time", - "r-remove-value-from": "Remove value from", + "r-df-due-at": "đến hạn", + "r-df-end-at": "kết thúc", + "r-df-received-at": "đã nhận", + "r-to-current-datetime": "đến ngày/giờ hiện tại", + "r-remove-value-from": "Xóa giá trị khỏi", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", - "authentication-method": "Authentication method", - "authentication-type": "Authentication type", - "custom-product-name": "Custom Product Name", - "layout": "Layout", + "authentication-method": "Phương thức xác thực", + "authentication-type": "Loại xác thực", + "custom-product-name": "Tên sản phẩm tùy chỉnh", + "layout": "Bố cục", "hide-logo": "Ẩn 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", - "error-ldap-login": "An error occurred while trying to login", - "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method", - "duplicate-board": "Duplicate Board", - "org-number": "The number of organizations is:", - "team-number": "The number of teams is:", - "people-number": "The number of people is:", + "add-custom-html-after-body-start": "Thêm HTML tùy chỉnh sau thẻ <body>", + "add-custom-html-before-body-end": "Thêm HTML tùy chỉnh trước thẻ </body>", + "error-undefined": "Đã xảy ra sự cố", + "error-ldap-login": "Đã xảy ra lỗi khi cố gắng đăng nhập", + "display-authentication-method": "Hiển thị phương pháp xác thực", + "default-authentication-method": "Phương thức xác thực mặc định", + "duplicate-board": "Bảng trùng lặp", + "org-number": "Số lượng các tổ chức là:", + "team-number": "Số lượng các đội là:", + "people-number": "Số người là:", "swimlaneDeletePopup-title": "Xóa 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", + "swimlane-delete-pop": "Tất cả các hành động sẽ bị xóa khỏi nguồn cấp dữ liệu hoạt động và bạn sẽ không thể khôi phục swimlane. Không có hoàn tác.", + "restore-all": "Khôi phục lại tất cả", "delete-all": "Xoá tất cả", - "loading": "Loading, please wait.", - "previous_as": "last time was", - "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", - "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", - "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", - "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", - "a-dueAt": "modified due time to be", - "a-endAt": "modified ending time to be", - "a-startAt": "modified starting time to be", - "a-receivedAt": "modified received time to be", - "almostdue": "current due time %s is approaching", - "pastdue": "current due time %s is past", - "duenow": "current due time %s is today", - "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", - "act-withDue": "__list__/__card__ due reminders [__board__]", - "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", - "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", - "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", - "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "loading": "Đang tải, vui lòng đợi.", + "previous_as": "lần trước là", + "act-a-dueAt": "sửa đổi thời gian đến hạn \nKhi nào: __timeValue__\nỞ đâu: __card__\n đến hạn trước đó là __timeOldValue__", + "act-a-endAt": "đã sửa đổi thời gian kết thúc thành __timeValue__ từ (__timeOldValue__)", + "act-a-startAt": "sửa đổi thời gian bắt đầu thành __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "đã sửa đổi thời gian nhận thành __timeValue__ từ (__timeOldValue__)", + "a-dueAt": "sửa đổi thời gian đến hạn thành", + "a-endAt": "đã sửa đổi thời gian kết thúc thành", + "a-startAt": "thời gian bắt đầu được sửa đổi thành", + "a-receivedAt": "đã sửa đổi thời gian nhận được", + "almostdue": "thời gian đến hạn hiện tại %s đang đến gần", + "pastdue": "thời gian đến hạn hiện tại %s đã qua", + "duenow": "giờ đến hạn hiện tại %s là hôm nay", + "act-newDue": "__list__/__card__ có lời nhắc đến hạn lần 1 [__board__]", + "act-withDue": "__list__/__card__ lời nhắc đến hạn [__board__]", + "act-almostdue": "đang nhắc nhở thời hạn hiện tại là (__timeValue__) của __card__ đang đến gần", + "act-pastdue": "đang nhắc nhở thời hạn hiện tại (__timeValue__) của __card__ đã qua", + "act-duenow": "đã được nhắc nhở hiện tại đến hạn (__timeValue__) của __card__ bây giờ là", + "act-atUserComment": "Bạn đã được đề cập trong [__board__] __list__/__card__", "delete-user-confirm-popup": "Bạn có chắc chắn muốn xóa tài khoản này không? Không thể hoàn tác.", "accounts-allowUserDelete": "Cho phép người dùng tự xóa tài khoản của họ", "hide-minicard-label-text": "Ẩn nhãn minicard", - "show-desktop-drag-handles": "Show desktop drag handles", + "show-desktop-drag-handles": "Hiển thị nút kéo thả trên Desktop", "assignee": "Người được giao", "cardAssigneesPopup-title": "Người được giao", - "addmore-detail": "Add a more detailed description", - "show-on-card": "Show on Card", - "new": "New", + "addmore-detail": "Thêm mô tả chi tiết hơn", + "show-on-card": "Hiển thị trên thẻ", + "new": "Mới", "editOrgPopup-title": "Sửa Cơ quan", - "newOrgPopup-title": "New Organization", + "newOrgPopup-title": "Tổ chức mới", "editTeamPopup-title": "Sửa Nhóm", - "newTeamPopup-title": "New Team", + "newTeamPopup-title": "Team Mới", "editUserPopup-title": "Sửa Người dùng", - "newUserPopup-title": "New User", + "newUserPopup-title": "Người dùng mới", "notifications": "Thông báo", "view-all": "Xem Tất cả", "filter-by-unread": "Lọc theo Chưa đọc", - "mark-all-as-read": "Mark all as read", - "remove-all-read": "Remove all read", - "allow-rename": "Allow Rename", - "allowRenamePopup-title": "Allow Rename", - "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday", - "status": "Status", - "swimlane": "Swimlane", - "owner": "Owner", - "last-modified-at": "Last modified at", - "last-activity": "Last activity", - "voting": "Voting", - "archived": "Archived", + "mark-all-as-read": "Đánh dấu tất cả là đã đọc", + "remove-all-read": "Xóa tất cả đã đọc", + "allow-rename": "Cho phép đổi tên", + "allowRenamePopup-title": "Cho phép đổi tên", + "start-day-of-week": "Đặt ngày bắt đầu trong tuần", + "monday": "Thứ hai", + "tuesday": "Thứ ba", + "wednesday": "Thứ tư", + "thursday": "Thứ năm", + "friday": "Thứ sáu", + "saturday": "Thứ bảy", + "sunday": "Chủ nhật", + "status": "Trạng thái", + "swimlane": "Làn ngang", + "owner": "Chủ sở hữu", + "last-modified-at": "Sửa đổi lần cuối lúc", + "last-activity": "Hoạt động cuối", + "voting": "Bình chọn", + "archived": "Đã lưu trữ", "delete-linked-card-before-this-card": "Bạn không thể xóa thẻ này trước khi xóa lần đầu tiên thẻ được liên kết có", "delete-linked-cards-before-this-list": "Bạn không thể xóa danh sách này trước khi xóa lần đầu tiên các thẻ được liên kết trỏ đến các thẻ trong danh sách này", "hide-checked-items": "Ẩn đã hoàn thành", - "task": "Task", - "create-task": "Create Task", + "task": "Nhiệm vụ", + "create-task": "Tạo Nhiệm Vụ", "ok": "OK", - "organizations": "Organizations", + "organizations": "Các tổ chức", "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", + "displayName": "Tên Hiển Thị", + "shortName": "Tên ngắn", "website": "Website", - "person": "Person", - "my-cards": "My Cards", - "card": "Card", - "board": "Board", + "person": "Cá nhân", + "my-cards": "Thẻ của tôi", + "card": "Thẻ", + "board": "Bảng", "context-separator": "/", - "myCardsSortChange-title": "My Cards Sort", - "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-title": "Sắp xếp thẻ của tôi", + "myCardsSortChangePopup-title": "Sắp xếp thẻ của tôi", "myCardsSortChange-choice-board": "Theo bảng", "myCardsSortChange-choice-dueat": "Theo Ngày đến hạn", - "dueCards-title": "Due Cards", + "dueCards-title": "Thẻ đến hạn", "dueCardsViewChange-title": "Xem Thẻ đến hạn", "dueCardsViewChangePopup-title": "Xem Thẻ đến hạn", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", - "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", - "broken-cards": "Broken Cards", - "board-title-not-found": "Board '%s' not found.", - "swimlane-title-not-found": "Swimlane '%s' not found.", - "list-title-not-found": "List '%s' not found.", - "label-not-found": "Label '%s' not found.", - "label-color-not-found": "Label color %s not found.", - "user-username-not-found": "Username '%s' not found.", - "comment-not-found": "Card with comment containing text '%s' not found.", + "dueCardsViewChange-choice-me": "Tôi", + "dueCardsViewChange-choice-all": "Tất cả người dùng", + "dueCardsViewChange-choice-all-description": "Hiển thị tất cả các thẻ chưa hoàn thành có ngày *Đến hạn* từ bảng mà người dùng có quyền.", + "broken-cards": "Thẻ bị hỏng", + "board-title-not-found": "Không tìm thấy bảng '%s'", + "swimlane-title-not-found": "Không tìm thấy làn ngang '%s'", + "list-title-not-found": "Không tìm thấy danh sách '%s'", + "label-not-found": "Không tìm thấy nhãn '%s'", + "label-color-not-found": "Không tìm thấy màu nhãn %s", + "user-username-not-found": "Không tìm thấy tên người dùng '%s'", + "comment-not-found": "Không tìm thấy thẻ có bình luận chứa văn bản '%s'", "globalSearch-title": "Tìm tất cả các Bảng", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", - "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", + "no-cards-found": "Không tìm thấy thẻ", + "one-card-found": "Đã tìm thấy một thẻ", + "n-cards-found": "Đã tìm thấy %s thẻ", + "n-n-of-n-cards-found": "__start__-__end__ của __total__ Thẻ được Tìm thấy", + "operator-board": "bảng", "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", + "operator-swimlane": "làn ngang", "operator-swimlane-abbrev": "s", - "operator-list": "list", + "operator-list": "danh sách", "operator-list-abbrev": "l", - "operator-label": "label", + "operator-label": "nhãn", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "người dùng", "operator-user-abbrev": "@", - "operator-member": "member", + "operator-member": "thành viên", "operator-member-abbrev": "m", "operator-assignee": "người được giao", "operator-assignee-abbrev": "a", - "operator-status": "status", - "operator-due": "due", - "operator-created": "created", - "operator-modified": "modified", - "operator-sort": "sort", - "operator-comment": "comment", - "operator-has": "has", - "operator-limit": "limit", - "predicate-archived": "archived", - "predicate-open": "open", - "predicate-ended": "ended", - "predicate-all": "all", - "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", - "predicate-due": "due", - "predicate-modified": "modified", - "predicate-created": "created", - "predicate-attachment": "attachment", - "predicate-description": "description", + "operator-status": "trạng thái", + "operator-due": "đến hạn", + "operator-created": "đã tạo", + "operator-modified": "sửa đổi", + "operator-sort": "sắp xếp", + "operator-comment": "bình luận", + "operator-has": "có", + "operator-limit": "giới hạn", + "predicate-archived": "được lưu trữ", + "predicate-open": "mở", + "predicate-ended": "đã kết thúc", + "predicate-all": "tất cả", + "predicate-overdue": "quá hạn", + "predicate-week": "tuần", + "predicate-month": "tháng", + "predicate-quarter": "quý", + "predicate-year": "năm", + "predicate-due": "đến hạn", + "predicate-modified": "sửa đổi", + "predicate-created": "đã tạo", + "predicate-attachment": "tập đính kèm", + "predicate-description": "mô tả", "predicate-checklist": "checklist", "predicate-start": "bắt đầu", - "predicate-end": "end", + "predicate-end": "kết thúc", "predicate-assignee": "người được giao", - "predicate-member": "member", - "predicate-public": "public", - "predicate-private": "private", - "operator-unknown-error": "%s is not an operator", - "operator-number-expected": "operator __operator__ expected a number, got '__value__'", - "operator-sort-invalid": "sort of '%s' is invalid", - "operator-status-invalid": "'%s' is not a valid status", - "operator-has-invalid": "%s is not a valid existence check", - "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "predicate-member": "thành viên", + "predicate-public": "công khai", + "predicate-private": "riêng tư", + "operator-unknown-error": "%s không phải là một toán tử", + "operator-number-expected": "toán tử __operator__ chấp nhận một số, có giá trị '__value__'", + "operator-sort-invalid": "sắp xếp của '%s' không hợp lệ", + "operator-status-invalid": "'%s' không phải là trạng thái hợp lệ", + "operator-has-invalid": "%s không phải là một kiểm tra sự tồn tại hợp lệ", + "operator-limit-invalid": "%s không phải là giới hạn hợp lệ. Giới hạn phải là một số nguyên dương.", "next-page": "Trang tiếp theo", "previous-page": "Trang trước", "heading-notes": "Ghi chú", "globalSearch-instructions-heading": "Hướng dẫn Tìm kiếm", - "globalSearch-instructions-description": "Tìm kiếm có thể bao gồm các toán tử để tinh chỉnh tìm kiếm. Các toán tử được chỉ định bằng cách viết tên toán tử và giá trị được phân tách bằng dấu hai chấm. Ví dụ, một đặc tả toán tử của `danh sách: Bị chặn` sẽ giới hạn tìm kiếm đối với các thẻ có trong danh sách có tên là * Bị chặn *. Nếu giá trị chứa khoảng trắng hoặc ký tự đặc biệt, nó phải được đặt trong dấu ngoặc kép (ví dụ: `__operator_list __:\" To Review \"`).", - "globalSearch-instructions-operators": "Available operators:", - "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", - "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", - "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", - "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", - "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", - "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", - "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", - "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", - "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", - "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", - "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-description": "Tìm kiếm có thể bao gồm các toán tử để tinh chỉnh tìm kiếm. Toán tử được chỉ định bằng cách viết tên toán tử và giá trị được phân tách bằng dấu hai chấm. Ví dụ, một đặc tả toán tử của `list:Blocked` sẽ giới hạn tìm kiếm đối với các thẻ có trong danh sách có tên là *Blocked*. Nếu giá trị chứa khoảng trắng hoặc ký tự đặc biệt, nó phải được đặt trong dấu ngoặc kép (ví dụ. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Các toán tử có sẵn:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - thẻ trong bảng phù hợp với *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - thẻ trong danh sách phù hợp với *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - thẻ trong làn ngang phù hợp với *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - thẻ có nhận xét chứa *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - thẻ có nhãn phù hợp *<color>* hoặc *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - viết tắt cho `__operator_label__:<color>` hoặc `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - thẻ trong đó *<username>* là *thành viên* hoặc *người được giao*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - viết tắt cho `người dùng:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - thẻ trong đó *<username>* là *thành viên*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - thẻ trong đó *<username>* là *người được giao*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - thẻ có thời hạn lên đến *<n>* ngày kể từ bây giờ. `__operator_due__:__predicate_overdue__ liệt kê tất cả các thẻ đã quá hạn sử dụng.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - thẻ đã được tạo *<n>* ngày trước hoặc ít hơn", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - thẻ đã được sửa đổi *<n>* ngày trước hoặc ít hơn", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - trong đó *<status>* là một trong các giá trị sau:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - thẻ đã lưu trữ", + "globalSearch-instructions-status-all": "`__predicate_all__` - tất cả các thẻ lưu trữ và hủy lưu trữ", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - thẻ với ngày kết thúc", + "globalSearch-instructions-status-public": "`__predicate_public__` - chỉ thẻ trong bảng công khai", + "globalSearch-instructions-status-private": "`__predicate_private__` - chỉ thẻ trong bảng riêng tư", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - trong đó *<field>* là một trong `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` hoặc `__predicate_member__`. Đặt dấu `-` trước *<field>* sẽ tìm kiếm sự không có giá trị trong trường đó (ví dụ. `has:-due` tìm kiếm các thẻ không có ngày đến hạn).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - trong đó *<sort-name>* là một trong `__predicate_due__`, `__predicate_created__` hoặc `__predicate_modified__`. Đối với sắp xếp giảm dần, hãy đặt dấu `-` trước tên sắp xếp.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - trong đó *<n>* là một số nguyên dương thể hiện số lượng thẻ được hiển thị trên mỗi trang.", "globalSearch-instructions-notes-1": "Nhiều toán tử có thể được chỉ định.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", - "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-2": "Các toán tử tương tự là *OR* cùng nhau. Các thẻ phù hợp với bất kỳ điều kiện nào sẽ được trả lại.\n`__operator_list__:Available __operator_list__:Blocked` sẽ trả lại các thẻ có trong bất kỳ danh sách nào có tên *Blocked* hoặc *Available*.", + "globalSearch-instructions-notes-3": "Các toán tử khác nhau là *AND* kết hợp với nhau. Chỉ những thẻ phù hợp với tất cả các toán tử khác nhau mới được trả lại. `__operator_list__:Available __operator_label__:red` chỉ trả về các thẻ trong danh sách *Có sẵn* với nhãn *red*.", + "globalSearch-instructions-notes-3-2": "Ngày có thể được chỉ định dưới dạng số nguyên dương hoặc âm hoặc sử dụng `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` hoặc `__predicate_year__` cho giai đoạn hiện tại.", "globalSearch-instructions-notes-4": "Tìm kiếm văn bản không phân biệt chữ hoa chữ thường.", - "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "globalSearch-instructions-notes-5": "Theo mặc định, thẻ đã lưu trữ không được tìm kiếm.", "link-to-search": "Liên kết đến tìm kiếm này", "excel-font": "Arial", - "number": "Number", - "label-colors": "Label Colors", - "label-names": "Label Names", - "archived-at": "archived at", - "sort-cards": "Sort Cards", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "number": "Số", + "label-colors": "Màu Nhãn", + "label-names": "Tên Nhãn", + "archived-at": "được lưu trữ tại", + "sort-cards": "Sắp xếp thẻ", + "cardsSortPopup-title": "Sắp xếp thẻ", + "due-date": "Ngày đến hạn", + "title-alphabetically": "Tiêu đề (theo thứ tự bảng chữ cái)", + "created-at-newest-first": "Được tạo lúc (Mới nhất đầu tiên)", + "created-at-oldest-first": "Được tạo lúc (Cũ nhất trước)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index 29da8548f..4a559c8d5 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -322,8 +322,8 @@ "error-user-notAllowSelf": "无法邀请自己", "error-user-notCreated": "该用户未能成功创建", "error-username-taken": "此用户名已存在", - "error-orgname-taken": "This organization name is already taken", - "error-teamname-taken": "This team name is already taken", + "error-orgname-taken": "此组织名称已被使用", + "error-teamname-taken": "此团队名称已被使用", "error-email-taken": "此EMail已存在", "export-board": "导出看板", "export-board-json": "看板导出为JSON", @@ -399,7 +399,7 @@ "just-invited": "您刚刚被邀请加入此看板", "keyboard-shortcuts": "键盘快捷键", "label-create": "创建标签", - "label-default": "%s 标签 (默认)", + "label-default": "%s 标签(默认)", "label-delete-pop": "此操作不可逆,这将会删除该标签并清除它的历史记录。", "labels": "标签", "language": "语言", @@ -528,10 +528,11 @@ "uploaded-avatar": "头像已经上传", "custom-top-left-corner-logo-image-url": "通过图片链接设置左上角图标", "custom-top-left-corner-logo-link-url": "设置左上角图标链接地址", - "custom-top-left-corner-logo-height": "设置左上角图标高度. 默认值: 27", - "custom-login-logo-image-url": "设置登陆图标链接地址", - "custom-login-logo-link-url": "通过连接上传logo", - "text-below-custom-login-logo": "自定义登陆图标下方文字", + "custom-top-left-corner-logo-height": "设置左上角图标高度。默认值:27", + "custom-login-logo-image-url": "设置登录图标链接地址", + "custom-login-logo-link-url": "设置登录图标链接", + "text-below-custom-login-logo": "设置登录图标下方文字", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "用户名", "import-usernames": "导入用户名", "view-it": "查看", @@ -634,7 +635,7 @@ "boardDeletePopup-title": "删除看板?", "delete-board": "删除看板", "default-subtasks-board": "__board__ 看板的子任务", - "default": "缺省", + "default": "默认", "queue": "队列", "subtask-settings": "子任务设置", "card-settings": "卡片设置", @@ -775,13 +776,13 @@ "authentication-type": "认证类型", "custom-product-name": "自定义产品名称", "layout": "布局", - "hide-logo": "隐藏LOGO", + "hide-logo": "隐藏图标", "add-custom-html-after-body-start": "添加定制的HTML在开始<body>之前", "add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后", "error-undefined": "出了点问题", - "error-ldap-login": "尝试登陆时出错", + "error-ldap-login": "尝试登录时出错", "display-authentication-method": "显示认证方式", - "default-authentication-method": "缺省认证方式", + "default-authentication-method": "默认认证方式", "duplicate-board": "复制看板", "org-number": "组织数量为:", "team-number": "团队数量为:", @@ -884,7 +885,7 @@ "no-cards-found": "无法查询到卡片", "one-card-found": "查询到一个卡片", "n-cards-found": "查询到%s个卡片", - "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ 共 __total__ 卡片被找到", "operator-board": "看板", "operator-board-abbrev": "b", "operator-swimlane": "泳道", @@ -967,17 +968,20 @@ "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", "globalSearch-instructions-notes-4": "文本搜索大小写不敏感。", - "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "globalSearch-instructions-notes-5": "默认情况下,不搜索存档卡片。", "link-to-search": "关联至本次查询", "excel-font": "Arial", "number": "数字", "label-colors": "标签颜色", "label-names": "标签名", - "archived-at": "archived at", - "sort-cards": "Sort Cards", - "cardsSortPopup-title": "Sort Cards", - "due-date": "Due Date", - "title-alphabetically": "Title (Alphabetically)", - "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "archived-at": "归档于", + "sort-cards": "排序卡片", + "cardsSortPopup-title": "排序卡片", + "due-date": "截至日期", + "title-alphabetically": "标题(按字母顺序)", + "created-at-newest-first": "创建时间(最新)", + "created-at-oldest-first": "创建时间(最旧)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/zh-HK.i18n.json b/i18n/zh-HK.i18n.json index 7d7b743ab..e65179634 100644 --- a/i18n/zh-HK.i18n.json +++ b/i18n/zh-HK.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "Username", "import-usernames": "Import Usernames", "view-it": "View it", @@ -979,5 +980,8 @@ "due-date": "Due Date", "title-alphabetically": "Title (Alphabetically)", "created-at-newest-first": "Created At (Newest First)", - "created-at-oldest-first": "Created At (Oldest First)" + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index bd13f44ac..912fea15a 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -532,6 +532,7 @@ "custom-login-logo-image-url": "自訂登入商標圖示網址", "custom-login-logo-link-url": "自訂登入商標連結網址", "text-below-custom-login-logo": "登入商標下方文字", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", "username": "使用者名稱", "import-usernames": "匯入使用者名稱", "view-it": "檢視", @@ -979,5 +980,8 @@ "due-date": "到期日", "title-alphabetically": "標題 (按字母順序)", "created-at-newest-first": "創建於(最新優先)", - "created-at-oldest-first": "創建於(最早優先)" + "created-at-oldest-first": "創建於(最早優先)", + "links-heading": "Links", + "hide-system-messages-of-all-users": "Hide system messages of all users", + "now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden" } diff --git a/models/customFields.js b/models/customFields.js index 3996a3843..5f3150174 100644 --- a/models/customFields.js +++ b/models/customFields.js @@ -307,7 +307,8 @@ if (Meteor.isServer) { * * @param {string} boardID the ID of the board * @param {string} customFieldId the ID of the custom field - * @return_type CustomFields + * @return_type [{_id: string, + * boardIds: string}] */ JsonRoutes.add( 'GET', @@ -377,9 +378,9 @@ if (Meteor.isServer) { * @param {string} name the name of the custom field * @param {string} type the type of the custom field * @param {string} settings the settings object of the custom field - * @param {boolean} showOnCard should we show the custom field on cards? - * @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards? - * @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards? + * @param {boolean} showOnCard should we show the custom field on cards + * @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards + * @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards * @return_type {_id: string} */ JsonRoutes.add( @@ -444,7 +445,7 @@ if (Meteor.isServer) { * @operation add_custom_field_dropdown_items * @summary Update a Custom Field's dropdown items * - * @param {string[]} items names of the custom field + * @param {string} [items] names of the custom field * @return_type {_id: string} */ JsonRoutes.add( @@ -453,27 +454,32 @@ if (Meteor.isServer) { (req, res) => { Authentication.checkUserId(req.userId); - if (req.body.hasOwnProperty('items') && Array.isArray(req.body.items)) { - CustomFields.direct.update( - { _id: req.params.customFieldId }, - { - $push: { - 'settings.dropdownItems': { - $each: req.body.items - .filter(name => typeof name === 'string') - .map(name => ({ - _id: Random.id(6), - name, - })), + const paramCustomFieldId = req.params.customFieldId; + const paramItems = req.body.items; + + if (req.body.hasOwnProperty('items')) { + if (Array.isArray(paramItems)) { + CustomFields.direct.update( + { _id: paramCustomFieldId }, + { + $push: { + 'settings.dropdownItems': { + $each: paramItems + .filter(name => typeof name === 'string') + .map(name => ({ + _id: Random.id(6), + name, + })), + }, }, }, - }, - ); + ); + } } JsonRoutes.sendResult(res, { code: 200, - data: { _id: req.params.customFieldId }, + data: { _id: paramCustomFieldId }, }); }, ); @@ -491,17 +497,21 @@ if (Meteor.isServer) { (req, res) => { Authentication.checkUserId(req.userId); + const paramDropdownItemId = req.params.dropdownItemId; + const paramCustomFieldId = req.params.customFieldId; + const paramName = req.body.name; + if (req.body.hasOwnProperty('name')) { CustomFields.direct.update( { - _id: req.params.customFieldId, - 'settings.dropdownItems._id': req.params.dropdownItemId, + _id: paramCustomFieldId, + 'settings.dropdownItems._id': paramDropdownItemId, }, { $set: { 'settings.dropdownItems.$': { - _id: req.params.dropdownItemId, - name: req.body.name, + _id: paramDropdownItemId, + name: paramName, }, }, }, @@ -510,7 +520,7 @@ if (Meteor.isServer) { JsonRoutes.sendResult(res, { code: 200, - data: { _id: req.params.customFieldId }, + data: { _id: customFieldId }, }); }, ); @@ -528,18 +538,21 @@ if (Meteor.isServer) { (req, res) => { Authentication.checkUserId(req.userId); + paramCustomFieldId = req.params.customFieldId; + paramDropdownItemId = req.params.dropdownItemId; + CustomFields.direct.update( - { _id: req.params.customFieldId }, + { _id: paramCustomFieldId }, { $pull: { - 'settings.dropdownItems': { _id: req.params.dropdownItemId }, + 'settings.dropdownItems': { _id: paramDropdownItemId }, }, }, ); JsonRoutes.sendResult(res, { code: 200, - data: { _id: req.params.customFieldId }, + data: { _id: paramCustomFieldId }, }); }, ); diff --git a/models/presences.js b/models/presences.js new file mode 100644 index 000000000..94c8fdabb --- /dev/null +++ b/models/presences.js @@ -0,0 +1,12 @@ +if (Meteor.isServer) { + Meteor.startup(() => { + // Date of 7 days ago + let lastWeek = new Date(); + lastWeek.setDate(lastWeek.getDate() - 7); + + presences.remove({ ttl: { $lte: lastWeek } }); + + // Create index for serverId that is queried often + presences._collection._ensureIndex({ serverId: -1 }); + }); +} diff --git a/models/trelloCreator.js b/models/trelloCreator.js index 60eddde66..d9ae006f5 100644 --- a/models/trelloCreator.js +++ b/models/trelloCreator.js @@ -416,39 +416,62 @@ export class TrelloCreator { const attachments = this.attachments[card.id]; const trelloCoverId = card.idAttachmentCover; if (attachments) { + const links = []; attachments.forEach(att => { - const file = new FS.File(); - // Simulating file.attachData on the client generates multiple errors - // - HEAD returns null, which causes exception down the line - // - the template then tries to display the url to the attachment which causes other errors - // so we make it server only, and let UI catch up once it is done, forget about latency comp. - const self = this; - if (Meteor.isServer) { - file.attachData(att.url, function(error) { - file.boardId = boardId; - file.cardId = cardId; - file.userId = self._user(att.idMemberCreator); - // The field source will only be used to prevent adding - // attachments' related activities automatically - file.source = 'import'; - if (error) { - throw error; - } else { - const wekanAtt = Attachments.insert(file, () => { - // we do nothing - }); - self.attachmentIds[att.id] = wekanAtt._id; - // - if (trelloCoverId === att.id) { - Cards.direct.update(cardId, { - $set: { coverId: wekanAtt._id }, + // if the attachment `name` and `url` are the same, then the + // attachment is an attached link + if (att.name === att.url) { + links.push(att.url); + } else { + const file = new FS.File(); + // Simulating file.attachData on the client generates multiple errors + // - HEAD returns null, which causes exception down the line + // - the template then tries to display the url to the attachment which causes other errors + // so we make it server only, and let UI catch up once it is done, forget about latency comp. + const self = this; + if (Meteor.isServer) { + file.attachData(att.url, function(error) { + file.boardId = boardId; + file.cardId = cardId; + file.userId = self._user(att.idMemberCreator); + // The field source will only be used to prevent adding + // attachments' related activities automatically + file.source = 'import'; + if (error) { + throw error; + } else { + const wekanAtt = Attachments.insert(file, () => { + // we do nothing }); + self.attachmentIds[att.id] = wekanAtt._id; + // + if (trelloCoverId === att.id) { + Cards.direct.update(cardId, { + $set: { coverId: wekanAtt._id }, + }); + } } - } - }); + }); + } } // todo XXX set cover - if need be }); + + if (links.length) { + let desc = cardToCreate.description.trim(); + if (desc) { + desc += '\n\n'; + } + desc += `## ${TAPi18n.__('links-heading')}\n`; + links.forEach(link => { + desc += `* ${link}\n`; + }); + Cards.direct.update(cardId, { + $set: { + description: desc, + }, + }); + } } result.push(cardId); }); diff --git a/models/users.js b/models/users.js index c88572af0..13e623318 100644 --- a/models/users.js +++ b/models/users.js @@ -797,6 +797,25 @@ Meteor.methods({ if (Meteor.isServer) { Meteor.methods({ + setAllUsersHideSystemMessages() { + if (Meteor.user() && Meteor.user().isAdmin) { + // If setting is missing, add it + Users.update( + { 'profile.hiddenSystemMessages': { $exists: false } }, + { $set: { 'profile.hiddenSystemMessages': true } }, + { multi: true }, + ); + // If setting is false, set it to true + Users.update( + { 'profile.hiddenSystemMessages': false }, + { $set: { 'profile.hiddenSystemMessages': true } }, + { multi: true }, + ); + return true; + } else { + return false; + } + }, setCreateUser( fullname, username, diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py index fabf38194..d23fba8b3 100644 --- a/openapi/generate_openapi.py +++ b/openapi/generate_openapi.py @@ -1,7 +1,6 @@ #!/bin/env python3 import argparse -import esprima import json import logging import os diff --git a/package-lock.json b/package-lock.json index 9c818a412..271671c76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v5.03.0", + "version": "v5.08.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -12,55 +12,65 @@ "@babel/highlight": "^7.12.13" } }, + "@babel/compat-data": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", + "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==" + }, "@babel/core": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.16.tgz", - "integrity": "sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", + "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.15", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.16", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.10", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", - "semver": "^5.4.1", + "semver": "^6.3.0", "source-map": "^0.5.0" } }, "@babel/eslint-parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.12.16.tgz", - "integrity": "sha512-NZHtJr2pLRYcQjvo/GVU3kFxIGEHveswoWfY5Wm2tJ7pb3AoqoQ+PP17rRTDh+POFWM15VvH+23x2/9Od0CYxQ==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.10.tgz", + "integrity": "sha512-/I1HQ3jGPhIpeBFeI3wO9WwWOnBYpuR0pX0KlkdGcRQAVX9prB/FCS2HBpL7BiFbzhny1YCiBH8MTZD2jJa7Hg==", "requires": { "eslint-scope": "5.1.0", "eslint-visitor-keys": "^1.3.0", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + } + }, "@babel/helper-function-name": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", @@ -80,35 +90,34 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz", - "integrity": "sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", + "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" } }, "@babel/helper-optimise-call-expression": { @@ -120,22 +129,22 @@ } }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "@babel/helper-split-export-declaration": { @@ -151,20 +160,25 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", @@ -172,14 +186,14 @@ } }, "@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==" + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", + "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==" }, "@babel/runtime": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", - "integrity": "sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -195,25 +209,25 @@ } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", + "@babel/generator": "^7.13.0", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", @@ -221,9 +235,9 @@ } }, "@eslint/eslintrc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", - "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -233,7 +247,6 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -294,6 +307,32 @@ "lodash.uniq": "^4.5.0" } }, + "@mapbox/node-pre-gyp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.1.tgz", + "integrity": "sha512-CUBdThIZMoLEQQxACwhLsPg/puxBca0abTH3ixuvBQkhjJ80Hdp99jmVjxFCOa52/tZqN9d70IbGUf+OuKDHGA==", + "requires": { + "detect-libc": "^1.0.3", + "http-proxy-agent": "^4.0.1", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.1", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "rimraf": "^3.0.2", + "semver": "^7.3.4", + "tar": "^6.1.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", @@ -326,6 +365,11 @@ "any-observable": "^0.3.0" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -345,9 +389,9 @@ "dev": true }, "@types/node": { - "version": "14.14.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.27.tgz", - "integrity": "sha512-Ecfmo4YDQPwuqTCl1yBxLV5ihKfRlkBmzUEDcfIRvDxOTGQEeikr317Ln7Gcv0tjA8dVgKI3rniqW2G1OyKDng==" + "version": "14.14.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.36.tgz", + "integrity": "sha512-kjivUwDJfIjngzbhooRnOLhGYz6oRFi+L+EpMjxroDYXwDw9lHrJJ43E+dJ6KAd3V3WxWAJ/qZE9XKYHhjPOFQ==" }, "@typescript-eslint/experimental-utils": { "version": "1.13.0", @@ -389,37 +433,37 @@ } }, "@typescript-eslint/parser": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.0.tgz", - "integrity": "sha512-L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.19.0.tgz", + "integrity": "sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==", "requires": { - "@typescript-eslint/scope-manager": "4.15.0", - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/typescript-estree": "4.15.0", + "@typescript-eslint/scope-manager": "4.19.0", + "@typescript-eslint/types": "4.19.0", + "@typescript-eslint/typescript-estree": "4.19.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz", - "integrity": "sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.19.0.tgz", + "integrity": "sha512-GGy4Ba/hLXwJXygkXqMzduqOMc+Na6LrJTZXJWVhRrSuZeXmu8TAnniQVKgj8uTRKe4igO2ysYzH+Np879G75g==", "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0" + "@typescript-eslint/types": "4.19.0", + "@typescript-eslint/visitor-keys": "4.19.0" } }, "@typescript-eslint/types": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz", - "integrity": "sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==" + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.19.0.tgz", + "integrity": "sha512-A4iAlexVvd4IBsSTNxdvdepW0D4uR/fwxDrKUa+iEY9UWvGREu2ZyB8ylTENM1SH8F7bVC9ac9+si3LWNxcBuA==" }, "@typescript-eslint/typescript-estree": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz", - "integrity": "sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.19.0.tgz", + "integrity": "sha512-3xqArJ/A62smaQYRv2ZFyTA+XxGGWmlDYrsfZG68zJeNbeqRScnhf81rUVa6QG4UgzHnXw5VnMT5cg75dQGDkA==", "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0", + "@typescript-eslint/types": "4.19.0", + "@typescript-eslint/visitor-keys": "4.19.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -428,9 +472,9 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } @@ -438,11 +482,11 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz", - "integrity": "sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.19.0.tgz", + "integrity": "sha512-aGPS6kz//j7XLSlgpzU2SeTqHPsmRYxFztj2vPuMMFJXZudpRSehE3WCV+BaxwZFvfAqMoSd86TEuM0PQ59E/A==", "requires": { - "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/types": "4.19.0", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { @@ -475,10 +519,18 @@ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, "ajv": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", - "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", + "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -524,17 +576,17 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archiver": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.2.0.tgz", - "integrity": "sha512-QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", + "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", "requires": { "archiver-utils": "^2.1.0", "async": "^3.2.0", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.0.0", - "tar-stream": "^2.1.4", - "zip-stream": "^4.0.4" + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" } }, "archiver-utils": { @@ -649,15 +701,15 @@ "dev": true }, "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" } }, @@ -784,12 +836,12 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bcrypt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.0.tgz", - "integrity": "sha512-jB0yCBl4W/kVHM2whjfyqnxTmOHkCX4kHEa5nYKSoGeYe8YrjTYTc87/6bwt1g8cmV0QrbhKriETg9jWtcREhg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", "requires": { - "node-addon-api": "^3.0.0", - "node-pre-gyp": "0.15.0" + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" } }, "big-integer": { @@ -866,10 +918,22 @@ "fill-range": "^7.0.1" } }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, "bson": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.2.2.tgz", - "integrity": "sha512-9fX257PVHAUpiRGmY3356RVWKQxLA73BgjA/x5MGuJkTEMeG7yzjuBrsiFB67EXRJnFVKrbJY9t/M+oElKYktQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.2.3.tgz", + "integrity": "sha512-3ztgjpKp0itFxGqzrLMHWqyZH5oMOIRWsjeY61yNVzrDGB/KxtgD6djFlz9n3vx7lLr2r6bkHagBCgyk1ZjETA==", "requires": { "buffer": "^5.6.0" } @@ -935,7 +999,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -973,6 +1036,11 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "caniuse-lite": { + "version": "1.0.30001204", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", + "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==" + }, "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -998,9 +1066,9 @@ "dev": true }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "class-utils": { "version": "0.3.6", @@ -1135,6 +1203,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -1153,9 +1226,9 @@ "dev": true }, "compress-commons": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.0.2.tgz", - "integrity": "sha512-qhd32a9xgzmpfoga1VQEiLEwdKZ6Plnpx5UCgIsf89FSolyJ7WnifY4Gtjgv5WR6hWAyRaHxC5MiEhU/38U70A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz", + "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.1", @@ -1238,9 +1311,9 @@ "dev": true }, "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz", + "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==" }, "core-util-is": { "version": "1.0.2", @@ -1341,11 +1414,6 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -1455,6 +1523,11 @@ } } }, + "electron-to-chromium": { + "version": "1.3.700", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.700.tgz", + "integrity": "sha512-wQtaxVZzpOeCjW1CGuC5W3bYjE2jglvk076LcTautBOB9UtHztty7wNzjVsndiMcSsdUsdMy5w76w5J1U7OPTQ==" + }, "elegant-spinner": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", @@ -1499,25 +1572,27 @@ } }, "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" } }, "es-to-primitive": { @@ -1536,19 +1611,24 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", - "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", + "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.3.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1559,12 +1639,12 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -1572,7 +1652,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -1586,6 +1666,15 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1649,12 +1738,12 @@ "dev": true }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", + "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "has-flag": { @@ -1670,9 +1759,9 @@ "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -1686,6 +1775,12 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, @@ -1823,9 +1918,9 @@ } }, "eslint-plugin-meteor": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-meteor/-/eslint-plugin-meteor-7.2.2.tgz", - "integrity": "sha512-Lmmg+4WoRJfoDpfMuBO6jLU7+IksZGqIoyWrhfQGEuMRTYNWysIDVTGp+w6ygeq4hvdiZMHwuaAUR5dlxmfoLA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-meteor/-/eslint-plugin-meteor-7.3.0.tgz", + "integrity": "sha512-z+O+tZQDo9tMw4drgcDSFLpMglJCtMYA1BGX5DA2uUldQw+FPewHerZFLIQVJvSgWpQ2RC+SKaI033RhmU0d1g==", "dev": true, "requires": { "invariant": "2.2.4" @@ -1924,9 +2019,9 @@ "dev": true }, "exceljs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.2.0.tgz", - "integrity": "sha512-r0/ClXRs3cQmMGJOQY6/ymnZSBSzeJL/LjAlKjY75ev1iQgf0LcmeFfTqFTFK0fADLAWieOMXe7abPoGYWI6hA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.2.1.tgz", + "integrity": "sha512-EogoTdXH1X1PxqD9sV8caYd1RIfXN3PVlCV+mA/87CgdO2h4X5xAEbr7CaiP8tffz7L4aBFwsdMbjfMXi29NjA==", "requires": { "archiver": "^5.0.0", "dayjs": "^1.8.34", @@ -2250,9 +2345,9 @@ "dev": true }, "fastq": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", - "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", "requires": { "reusify": "^1.0.4" } @@ -2276,9 +2371,9 @@ } }, "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" @@ -2348,11 +2443,11 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" } }, "fs.realpath": { @@ -2384,8 +2479,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -2432,7 +2526,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -2477,9 +2570,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -2490,9 +2583,9 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2525,7 +2618,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -2547,16 +2639,21 @@ } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "has-unicode": { "version": "2.0.1", @@ -2621,10 +2718,21 @@ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -2640,14 +2748,6 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -2689,11 +2789,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", @@ -2794,6 +2889,21 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -2888,6 +2998,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -3133,9 +3249,9 @@ } }, "ldapjs": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.2.3.tgz", - "integrity": "sha512-143MayI+cSo1PEngge0HMVj3Fb0TneX4Qp9yl9bKs45qND3G64B75GMSxtZCfNuVsvg833aOp1UWG8peFu1LrQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.2.4.tgz", + "integrity": "sha512-OoeAXPNPPt4D6qva2/p6rkCIHknyYFd42Vp8JhSazBs9BbkEBmoajzj2F0ElD3vR+yAuzIVCjqh1W4uR8dfn0A==", "requires": { "abstract-logging": "^2.0.0", "asn1": "^0.2.4", @@ -3495,9 +3611,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.defaults": { "version": "4.2.0", @@ -3669,13 +3785,14 @@ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" } }, "map-cache": { @@ -3734,9 +3851,9 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "meteor-node-stubs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.1.tgz", - "integrity": "sha512-I4PE/z7eAl45XEsebHA4pcQbgjqEdK3EBGgiUoIZBi3bMQcMq6blLWZo+WdtK4Or9X4NJOiYWw4GmHiubr3egA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.3.tgz", + "integrity": "sha512-JQwIWPfM/Oa2x1Ycwn1Q0wVVQ8b0bOLv+qs4RR/D12b5dPktLlPCRhMzWzRPncZVJtfsnKKBgPLdFmJYUqAwHg==", "requires": { "assert": "^1.4.1", "browserify-zlib": "^0.2.0", @@ -3745,6 +3862,7 @@ "constants-browserify": "^1.0.0", "crypto-browserify": "^3.12.0", "domain-browser": "^1.2.0", + "elliptic": "^6.5.4", "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", @@ -3764,18 +3882,26 @@ }, "dependencies": { "asn1.js": { - "version": "4.10.1", + "version": "5.4.1", "bundled": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "assert": { - "version": "1.4.1", + "version": "1.5.0", "bundled": true, "requires": { + "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { @@ -3789,11 +3915,11 @@ } }, "base64-js": { - "version": "1.3.0", + "version": "1.5.1", "bundled": true }, "bn.js": { - "version": "4.11.8", + "version": "5.2.0", "bundled": true }, "brorand": { @@ -3832,24 +3958,32 @@ } }, "browserify-rsa": { - "version": "4.0.1", + "version": "4.1.0", "bundled": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", + "version": "4.2.1", "bundled": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "bundled": true + } } }, "browserify-zlib": { @@ -3860,11 +3994,11 @@ } }, "buffer": { - "version": "5.2.1", + "version": "5.7.1", "bundled": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-xor": { @@ -3884,11 +4018,8 @@ } }, "console-browserify": { - "version": "1.1.0", - "bundled": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "bundled": true }, "constants-browserify": { "version": "1.0.0", @@ -3899,11 +4030,17 @@ "bundled": true }, "create-ecdh": { - "version": "4.0.3", + "version": "4.0.4", "bundled": true, "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "create-hash": { @@ -3946,12 +4083,8 @@ "randomfill": "^1.0.3" } }, - "date-now": { - "version": "0.1.4", - "bundled": true - }, "des.js": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true, "requires": { "inherits": "^2.0.1", @@ -3965,6 +4098,12 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "domain-browser": { @@ -3972,20 +4111,30 @@ "bundled": true }, "elliptic": { - "version": "6.5.3", + "version": "6.5.4", "bundled": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true + } } }, "events": { - "version": "3.0.0", + "version": "3.3.0", "bundled": true }, "evp_bytestokey": { @@ -3997,11 +4146,18 @@ } }, "hash-base": { - "version": "3.0.4", + "version": "3.1.0", "bundled": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "bundled": true + } } }, "hash.js": { @@ -4013,7 +4169,7 @@ }, "dependencies": { "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true } } @@ -4032,7 +4188,7 @@ "bundled": true }, "ieee754": { - "version": "1.1.13", + "version": "1.2.1", "bundled": true }, "inherits": { @@ -4058,6 +4214,12 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "minimalistic-assert": { @@ -4068,32 +4230,35 @@ "version": "1.0.1", "bundled": true }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, "os-browserify": { "version": "0.3.0", "bundled": true }, "pako": { - "version": "1.0.10", + "version": "1.0.11", "bundled": true }, "parse-asn1": { - "version": "5.1.4", + "version": "5.1.6", "bundled": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, "path-browserify": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true }, "pbkdf2": { - "version": "3.0.17", + "version": "3.1.1", "bundled": true, "requires": { "create-hash": "^1.1.2", @@ -4108,7 +4273,7 @@ "bundled": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true }, "public-encrypt": { @@ -4121,6 +4286,12 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "punycode": { @@ -4151,7 +4322,7 @@ } }, "readable-stream": { - "version": "3.3.0", + "version": "3.6.0", "bundled": true, "requires": { "inherits": "^2.0.3", @@ -4160,7 +4331,7 @@ }, "dependencies": { "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true } } @@ -4174,7 +4345,11 @@ } }, "safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", "bundled": true }, "setimmediate": { @@ -4198,7 +4373,7 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.6", + "version": "2.3.7", "bundled": true, "requires": { "core-util-is": "~1.0.0", @@ -4211,11 +4386,15 @@ }, "dependencies": { "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true } } }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, "string_decoder": { "version": "1.1.1", "bundled": true, @@ -4226,24 +4405,30 @@ } }, "stream-http": { - "version": "3.0.0", + "version": "3.1.1", "bundled": true, "requires": { "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6", - "xtend": "^4.0.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "bundled": true + } } }, "string_decoder": { - "version": "1.2.0", + "version": "1.3.0", "bundled": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "timers-browserify": { - "version": "2.0.10", + "version": "2.0.12", "bundled": true, "requires": { "setimmediate": "^1.0.4" @@ -4285,11 +4470,11 @@ "bundled": true }, "vm-browserify": { - "version": "1.1.0", + "version": "1.1.2", "bundled": true }, "xtend": { - "version": "4.0.1", + "version": "4.0.2", "bundled": true } } @@ -4323,20 +4508,20 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" } }, "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, "mixin-deep": { @@ -4364,9 +4549,9 @@ "optional": true }, "mongodb": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.4.tgz", - "integrity": "sha512-Y+Ki9iXE9jI+n9bVtbTOOdK0B95d6wVGSucwtBkvQ+HIvVdTCfpVRp01FDC24uhC/Q2WXQ8Lpq3/zwtB5Op9Qw==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.5.tgz", + "integrity": "sha512-mQlYKw1iGbvJJejcPuyTaytq0xxlYbIoVDm2FODR+OHxyEiMR021vc32bTvamgBjCswsD54XIRwhg3yBaWqJjg==", "requires": { "bl": "^2.2.1", "bson": "^1.1.4", @@ -4377,9 +4562,9 @@ }, "dependencies": { "bson": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", - "integrity": "sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" } } }, @@ -4466,26 +4651,6 @@ "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", "optional": true }, - "needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -4497,40 +4662,22 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" }, - "node-pre-gyp": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", - "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.3", - "needle": "^2.5.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" }, "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1" } }, "normalize-package-data": { @@ -4543,6 +4690,14 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-path": { @@ -4550,29 +4705,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "npm-path": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", @@ -4724,8 +4856,7 @@ "object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" }, "object-keys": { "version": "1.1.1", @@ -4764,14 +4895,14 @@ } }, "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, @@ -4811,11 +4942,6 @@ "resolved": "https://registry.npmjs.org/os/-/os-0.1.1.tgz", "integrity": "sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=" }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, "os-shim": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", @@ -4825,16 +4951,8 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-finally": { "version": "1.0.0", @@ -5114,14 +5232,6 @@ "requires": { "lodash.unescape": "4.0.1", "semver": "5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - } } }, "acorn": { @@ -5197,6 +5307,14 @@ "strip-json-comments": "^2.0.1", "table": "^5.2.3", "text-table": "^0.2.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "eslint-scope": { @@ -5324,6 +5442,12 @@ "glob": "^7.1.3" } }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -5478,32 +5602,17 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } }, "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } - } + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "read-pkg": { "version": "2.0.0", @@ -5618,6 +5727,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -5687,9 +5801,9 @@ } }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", + "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -5729,11 +5843,6 @@ "sparse-bitfield": "^3.0.3" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -5743,9 +5852,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "semver-compare": { "version": "1.0.0", @@ -5812,6 +5921,16 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -6215,22 +6334,22 @@ } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -6375,9 +6494,9 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -6388,17 +6507,23 @@ } }, "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } } }, "tar-stream": { @@ -6524,9 +6649,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "requires": { "tslib": "^1.8.1" } @@ -6553,15 +6678,27 @@ "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", + "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==" }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -6705,9 +6842,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-license": { @@ -6815,6 +6952,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -6895,17 +7045,17 @@ } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "zip-stream": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.0.4.tgz", - "integrity": "sha512-a65wQ3h5gcQ/nQGWV1mSZCEzCML6EK/vyVPcrPNynySP1j3VBbQKh3nhC8CbORb+jfl2vXvh56Ul5odP1bAHqw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "requires": { "archiver-utils": "^2.1.0", - "compress-commons": "^4.0.2", + "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" } } diff --git a/package.json b/package.json index d0b4830ea..0b384126d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v5.03.0", + "version": "v5.08.0", "description": "Open-Source kanban", "private": true, "scripts": { @@ -72,7 +72,7 @@ "ldapjs": "^2.2.3", "markdown-it": "^12.0.4", "markdown-it-emoji": "^2.0.0", - "meteor-node-stubs": "^1.0.1", + "meteor-node-stubs": "^1.0.2", "mongodb": "^3.6.4", "os": "^0.1.1", "page": "^1.11.5", diff --git a/packages/markdown/src/template-integration.js b/packages/markdown/src/template-integration.js index 30074d777..352b998b2 100755 --- a/packages/markdown/src/template-integration.js +++ b/packages/markdown/src/template-integration.js @@ -37,7 +37,7 @@ function mySafeAttrValue(tag, name, value, cssFilter) { // then use your custom function if (tag === 'a' && name === 'href') { // only filter the value if starts with an registered url scheme - urlscheme = value.split(/:\/\//); + urlscheme = value.split(/:/); //console.log("validating "+urlscheme[0]); if(urlschemes.includes(urlscheme[0])) return value; else { diff --git a/public/api/wekan.html b/public/api/wekan.html index 999f3d731..075f1cf7b 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ <meta charset="utf-8"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> - <title>Wekan REST API + Wekan REST API v5.08 @@ -1465,10 +1465,11 @@ Darkula color scheme from the JetBrains family of IDEs var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduce(function(e,t){return e+t.boost},0);return n.some(function(e){return this.tokenStore.has(e)},this)?(n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*o,u=this,c=this.tokenStore.expand(t).reduce(function(n,i){var o=u.corpusTokens.indexOf(i),s=u.idf(i),c=1,l=new e.SortedSet;if(i!==t){var f=Math.max(3,i.length-t.length);c=1/Math.log(f)}return o>-1&&r.insert(o,a*s*c),Object.keys(u.tokenStore.get(i)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);i.push(c)},this),i.reduce(function(e,t){return e.intersect(t)}).map(function(e){return{ref:e,score:r.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})):[]},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),r=n.length,i=new e.Vector,o=0;ot;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&-1!==(r=t(o[i],n))&&o[i].splice(r,1);return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):s.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if("object"===n)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o=this.getListenersAsObject(e);for(i in o)if(o.hasOwnProperty(i))for(r=o[i].length;r--;)n=o[i][r],!0===n.once&&this.removeListener(e,n.listener),n.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,r=function(){};n.addEventListener?r=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(r=function(e,n,r){e[n+r]=r.handleEvent?function(){var n=t(e);r.handleEvent.call(r,n)}:function(){var n=t(e);r.call(e,n)},e.attachEvent("on"+n,e[n+r])});var i=function(){};n.removeEventListener?i=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(i=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(r){e[t+n]=void 0}});var o={bind:r,unbind:i};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,r){return t(e,n,r)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(i(e))t=e;else if("number"==typeof e.length)for(var n=0,r=e.length;r>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=r({},this.options),"function"==typeof t?n=t:r(this.options,t),n&&this.on("always",n),this.getImages(),c&&(this.jqDeferred=new c.Deferred);var i=this;setTimeout(function(){i.check()})}function a(e){this.img=e}function u(e){this.src=e,p[e]=this}var c=e.jQuery,l=e.console,f=void 0!==l,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var r=n.nodeType;if(r&&(1===r||9===r||11===r))for(var i=n.querySelectorAll("img"),o=0,s=i.length;s>o;o++){var a=i[o];this.addImage(a)}}},s.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},s.prototype.check=function(){function e(e,i){return t.options.debug&&f&&l.log("confirm",e,i),t.progress(e),n++,n===r&&t.complete(),!0}var t=this,n=0,r=this.images.length;if(this.hasAnyBroken=!1,!r)return void this.complete();for(var i=0;r>i;i++){var o=this.images[i];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},c&&(c.fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(c(this))}),a.prototype=new t,a.prototype.check=function(){var e=p[this.img.src]||new u(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var p={};return u.prototype=new t,u.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},u.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},u.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},u.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},u.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}),function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),function(){"use strict";function e(e){if(e&&""!==e){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+e+"']").addClass("active");for(var t=0;t=1){var e=t(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),a))return location.search.substr(1)}return!1}function i(e){var r=t(location.search);return r.language?(r.language=e,n(r)):e}function o(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+i(e)+"#"+t),localStorage.setItem("language",e)}}function s(t){var n=localStorage.getItem("language");a=t;var i=r();i?(e(i),localStorage.setItem("language",i)):e(null!==n&&-1!=jQuery.inArray(n,a)?n:a[0])}var a=[];window.setupLanguages=s,window.activateLanguage=e,window.getLanguageFromQueryString=r,$(function(){$(".lang-selector a").on("click",function(){var t=$(this).data("language-name");return o(t),e(t),!1})})}(),function(){"use strict";function e(){$("h1, h2").each(function(){var e=$(this),t=e.nextUntil("h1, h2");f.add({id:e.prop("id"),title:e.text(),body:t.text()})}),t()}function t(){f.tokenStore.length>5e3&&(c=300)}function n(){s=$(".content"),a=$(".search-results"),$("#input-search").on("keyup",function(e){!function(){return function(e,t){clearTimeout(l),l=setTimeout(e,t)}}()(function(){r(e)},c)})}function r(e){var t=$("#input-search")[0];if(o(),a.addClass("visible"),27===e.keyCode&&(t.value=""),t.value){var n=f.search(t.value).filter(function(e){return e.score>1e-4});n.length?(a.empty(),$.each(n,function(e,t){var n=document.getElementById(t.ref);a.append("
  • "+$(n).text()+"
  • ")}),i.call(t)):(a.html("
  • "),$(".search-results li").text('No Results Found for "'+t.value+'"'))}else o(),a.removeClass("visible")}function i(){this.value&&s.highlight(this.value,u)}function o(){s.unhighlight(u)}var s,a,u={element:"span",className:"search-highlight"},c=0,l=0,f=new lunr.Index;f.ref("id"),f.field("title",{boost:10}),f.field("body"),f.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(n)}(),function(){"use strict";function e(e,i,o,s){var a={},u=0,c=0,l=document.title,f=function(){a={},u=$(document).height(),c=$(window).height(),e.find(i).each(function(){var e=$(this).attr("href");"#"===e[0]&&(a[e]=$(e).offset().top)})},d=function(){var n=$(document).scrollTop()+s;n+c>=u&&(n=u+1e3);var r=null;for(var f in a)(a[f]a[r]||null===r)&&(r=f);n!=s||t||(r=window.location.hash,t=!0);var d=e.find("[href='"+r+"']").first();if(!d.hasClass("active")){e.find(".active").removeClass("active"),e.find(".active-parent").removeClass("active-parent"),d.addClass("active"),d.parents(o).addClass("active").siblings(i).addClass("active-parent"),d.siblings(o).addClass("active"),e.find(o).filter(":not(.active)").slideUp(150),e.find(o).filter(".active").slideDown(150),window.history.replaceState&&window.history.replaceState(null,"",r);var p=d.data("title");void 0!==p&&p.length>0?document.title=p+" – "+l:document.title=l}};!function(){f(),d(),$("#nav-button").click(function(){return $(".toc-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(r),$(".toc-link").click(r),e.find(i).click(function(){setTimeout(function(){d()},0)}),$(window).scroll(n(d,200)),$(window).resize(n(f,200))}(),window.recacheHeights=f,window.refreshToc=d}var t=!1,n=function(e,t){var n=!1;return function(){!1===n&&(setTimeout(function(){e(),n=!1},t),n=!0)}},r=function(){$(".toc-wrapper").removeClass("open"),$("#nav-button").removeClass("open")};window.loadToc=e}(),$(function(){loadToc($("#toc"),".toc-link",".toc-list-h2, .toc-list-h3, .toc-list-h4, .toc-list-h5, .toc-list-h6",10),setupLanguages($("body").data("languages")),$(".content").imagesLoaded(function(){window.recacheHeights(),window.refreshToc()})}),window.onpopstate=function(){activateLanguage(getLanguageFromQueryString())}; - + + - + NAV @@ -1512,6 +1513,10 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc Go + + PHP + + @@ -1524,7 +1529,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    • - Wekan REST API v5.03 + Wekan REST API v5.08
    • @@ -1544,491 +1549,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc - - - -
    • - Boards - - - -
    • - -
    • - Checklists - - - -
    • - -
    • - ChecklistItems - - - -
    • - -
    • - CardComments - - - -
    • - -
    • - Cards - - - -
    • - -
    • - CustomFields - - - -
    • - -
    • - Integrations - - - -
    • - -
    • - Lists - - - -
    • - -
    • - Users - - - -
    • - -
    • - Swimlanes - - - -
    • - -
    • - Schemas - -
        - -
      • - Boards - -
      • - -
      • - BoardsLabels - -
      • - -
      • - BoardsMembers - -
      • - -
      • - CardComments - -
      • - -
      • - Cards - -
      • - -
      • - CardsVote - -
      • - -
      • - CardsCustomfields - -
      • - -
      • - ChecklistItems - -
      • - -
      • - Checklists - -
      • - -
      • - CustomFields - -
      • - -
      • - CustomFieldsSettings - -
      • - -
      • - CustomFieldsSettingsDropdownitems - -
      • - -
      • - Integrations - -
      • - -
      • - Lists - -
      • - -
      • - ListsWiplimit - -
      • - -
      • - Swimlanes - -
      • - -
      • - Users - -
      • - -
      • - UsersEmails - -
      • - -
      • - UsersProfile - -
      • - -
      • - UsersSessiondata + register
      • @@ -2047,7 +1573,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        -

        Wekan REST API v5.03

        +

        Wekan REST API v5.08

        Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

        @@ -2079,47 +1605,28 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        # You can also use wget
         curl -X POST /users/login \
        -  -H 'Content-Type: application/x-www-form-urlencoded' \
        -  -H 'Accept: */*'
        +  -H 'Content-Type: application/x-www-form-urlencoded' \
        +  -H 'Accept: */*'
         
         
        -
        POST /users/login HTTP/1.1
        +
        POST /users/login HTTP/1.1
         
        -Content-Type: application/x-www-form-urlencoded
        -Accept: */*
        +Content-Type: application/x-www-form-urlencoded
        +Accept: */*
         
        -
        -
        var headers = {
        -  'Content-Type':'application/x-www-form-urlencoded',
        -  'Accept':'*/*'
        -
        -};
        -
        -$.ajax({
        -  url: '/users/login',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "username": "string",
        -  "password": "pa$$word"
        -}';
        +
        +
        const inputBody = '{
        +  "username": "string",
        +  "password": "pa$$word"
        +}';
         const headers = {
        -  'Content-Type':'application/x-www-form-urlencoded',
        -  'Accept':'*/*'
        -
        +  'Content-Type':'application/x-www-form-urlencoded',
        +  'Accept':'*/*'
         };
         
        -fetch('/users/login',
        +fetch('/users/login',
         {
        -  method: 'POST',
        +  method: 'POST',
           body: inputBody,
           headers: headers
         })
        @@ -2130,15 +1637,38 @@ fetch('/users/login',
         });
         
         
        -
        require 'rest-client'
        -require 'json'
        +
        const fetch = require('node-fetch');
        +const inputBody = {
        +  "username": "string",
        +  "password": "pa$$word"
        +};
        +const headers = {
        +  'Content-Type':'application/x-www-form-urlencoded',
        +  'Accept':'*/*'
        +};
        +
        +fetch('/users/login',
        +{
        +  method: 'POST',
        +  body: JSON.stringify(inputBody),
        +  headers: headers
        +})
        +.then(function(res) {
        +    return res.json();
        +}).then(function(body) {
        +    console.log(body);
        +});
        +
        +
        +
        require 'rest-client'
        +require 'json'
         
         headers = {
        -  'Content-Type' => 'application/x-www-form-urlencoded',
        -  'Accept' => '*/*'
        +  'Content-Type' => 'application/x-www-form-urlencoded',
        +  'Accept' => '*/*'
         }
         
        -result = RestClient.post '/users/login',
        +result = RestClient.post '/users/login',
           params: {
           }, headers: headers
         
        @@ -2147,20 +1677,18 @@ p JSON.parse(result)
         
        import requests
         headers = {
        -  'Content-Type': 'application/x-www-form-urlencoded',
        -  'Accept': '*/*'
        +  'Content-Type': 'application/x-www-form-urlencoded',
        +  'Accept': '*/*'
         }
         
        -r = requests.post('/users/login', params={
        +r = requests.post('/users/login', headers = headers)
         
        -}, headers = headers)
        -
        -print r.json()
        +print(r.json())
         
         
        -
        URL obj = new URL("/users/login");
        +
        URL obj = new URL("/users/login");
         HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        +con.setRequestMethod("POST");
         int responseCode = con.getResponseCode();
         BufferedReader in = new BufferedReader(
             new InputStreamReader(con.getInputStream()));
        @@ -2176,20 +1704,19 @@ System.out.println(response.toString());
         
        package main
         
         import (
        -       "bytes"
        -       "net/http"
        +       "bytes"
        +       "net/http"
         )
         
         func main() {
         
             headers := map[string][]string{
        -        "Content-Type": []string{"application/x-www-form-urlencoded"},
        -        "Accept": []string{"*/*"},
        -        
        +        "Content-Type": []string{"application/x-www-form-urlencoded"},
        +        "Accept": []string{"*/*"},
             }
         
             data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/users/login", data)
        +    req, err := http.NewRequest("POST", "/users/login", data)
             req.Header = headers
         
             client := &http.Client{}
        @@ -2197,6 +1724,31 @@ System.out.println(response.toString());
             // ...
         }
         
        +
        +
         'application/x-www-form-urlencoded',
        +    'Accept' => '*/*',
        +);
        +
        +$client = new \GuzzleHttp\Client();
        +
        +// Define array of request body.
        +$request_body = array();
        +
        +try {
        +    $response = $client->request('POST','/users/login', array(
        +        'headers' => $headers,
        +        'json' => $request_body,
        +       )
        +    );
        +    print_r($response->getBody()->getContents());
        + }
        + catch (\GuzzleHttp\Exception\BadResponseException $e) {
        +    // handle exception or api errors.
        +    print_r($e->getMessage());
        + }
        +
        + // ...
        +
         

        POST /users/login

        Login with REST API

        @@ -2223,7 +1775,7 @@ System.out.println(response.toString()); body body object -false +true none @@ -2353,48 +1905,29 @@ This operation does not require authentication
        # You can also use wget
         curl -X POST /users/register \
        -  -H 'Content-Type: application/x-www-form-urlencoded' \
        -  -H 'Accept: */*'
        +  -H 'Content-Type: application/x-www-form-urlencoded' \
        +  -H 'Accept: */*'
         
         
        -
        POST /users/register HTTP/1.1
        +
        POST /users/register HTTP/1.1
         
        -Content-Type: application/x-www-form-urlencoded
        -Accept: */*
        +Content-Type: application/x-www-form-urlencoded
        +Accept: */*
         
        -
        -
        var headers = {
        -  'Content-Type':'application/x-www-form-urlencoded',
        -  'Accept':'*/*'
        -
        -};
        -
        -$.ajax({
        -  url: '/users/register',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "username": "string",
        -  "password": "pa$$word",
        -  "email": "string"
        -}';
        +
        +
        const inputBody = '{
        +  "username": "string",
        +  "password": "pa$$word",
        +  "email": "string"
        +}';
         const headers = {
        -  'Content-Type':'application/x-www-form-urlencoded',
        -  'Accept':'*/*'
        -
        +  'Content-Type':'application/x-www-form-urlencoded',
        +  'Accept':'*/*'
         };
         
        -fetch('/users/register',
        +fetch('/users/register',
         {
        -  method: 'POST',
        +  method: 'POST',
           body: inputBody,
           headers: headers
         })
        @@ -2405,15 +1938,39 @@ fetch('/users/register',
         });
         
         
        -
        require 'rest-client'
        -require 'json'
        +
        const fetch = require('node-fetch');
        +const inputBody = {
        +  "username": "string",
        +  "password": "pa$$word",
        +  "email": "string"
        +};
        +const headers = {
        +  'Content-Type':'application/x-www-form-urlencoded',
        +  'Accept':'*/*'
        +};
        +
        +fetch('/users/register',
        +{
        +  method: 'POST',
        +  body: JSON.stringify(inputBody),
        +  headers: headers
        +})
        +.then(function(res) {
        +    return res.json();
        +}).then(function(body) {
        +    console.log(body);
        +});
        +
        +
        +
        require 'rest-client'
        +require 'json'
         
         headers = {
        -  'Content-Type' => 'application/x-www-form-urlencoded',
        -  'Accept' => '*/*'
        +  'Content-Type' => 'application/x-www-form-urlencoded',
        +  'Accept' => '*/*'
         }
         
        -result = RestClient.post '/users/register',
        +result = RestClient.post '/users/register',
           params: {
           }, headers: headers
         
        @@ -2422,20 +1979,18 @@ p JSON.parse(result)
         
        import requests
         headers = {
        -  'Content-Type': 'application/x-www-form-urlencoded',
        -  'Accept': '*/*'
        +  'Content-Type': 'application/x-www-form-urlencoded',
        +  'Accept': '*/*'
         }
         
        -r = requests.post('/users/register', params={
        +r = requests.post('/users/register', headers = headers)
         
        -}, headers = headers)
        -
        -print r.json()
        +print(r.json())
         
         
        -
        URL obj = new URL("/users/register");
        +
        URL obj = new URL("/users/register");
         HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        +con.setRequestMethod("POST");
         int responseCode = con.getResponseCode();
         BufferedReader in = new BufferedReader(
             new InputStreamReader(con.getInputStream()));
        @@ -2451,20 +2006,19 @@ System.out.println(response.toString());
         
        package main
         
         import (
        -       "bytes"
        -       "net/http"
        +       "bytes"
        +       "net/http"
         )
         
         func main() {
         
             headers := map[string][]string{
        -        "Content-Type": []string{"application/x-www-form-urlencoded"},
        -        "Accept": []string{"*/*"},
        -        
        +        "Content-Type": []string{"application/x-www-form-urlencoded"},
        +        "Accept": []string{"*/*"},
             }
         
             data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/users/register", data)
        +    req, err := http.NewRequest("POST", "/users/register", data)
             req.Header = headers
         
             client := &http.Client{}
        @@ -2472,6 +2026,31 @@ System.out.println(response.toString());
             // ...
         }
         
        +
        +
         'application/x-www-form-urlencoded',
        +    'Accept' => '*/*',
        +);
        +
        +$client = new \GuzzleHttp\Client();
        +
        +// Define array of request body.
        +$request_body = array();
        +
        +try {
        +    $response = $client->request('POST','/users/register', array(
        +        'headers' => $headers,
        +        'json' => $request_body,
        +       )
        +    );
        +    print_r($response->getBody()->getContents());
        + }
        + catch (\GuzzleHttp\Exception\BadResponseException $e) {
        +    // handle exception or api errors.
        +    print_r($e->getMessage());
        + }
        +
        + // ...
        +
         

        POST /users/register

        Register with REST API

        @@ -2503,7 +2082,7 @@ System.out.println(response.toString()); body body object -false +true none @@ -2633,15572 +2212,8 @@ System.out.println(response.toString()); -

        Boards

        -

        get_public_boards

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards

        -

        Get all public boards

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        new_board

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "title": "string",
        -  "owner": "string",
        -  "isAdmin": true,
        -  "isActive": true,
        -  "isNoComments": true,
        -  "isCommentOnly": true,
        -  "isWorker": true,
        -  "permission": "string",
        -  "color": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards

        -

        Create a board

        -

        This allows to create a board.

        -

        The color has to be chosen between belize, nephritis, pomegranate, -pumpkin, wisteria, moderatepink, strongcyan, -limegreen, midnight, dark, relax, corteza:

        - Wekan logo -
        -

        Body parameter

        -
        -
        title: string
        -owner: string
        -isAdmin: true
        -isActive: true
        -isNoComments: true
        -isCommentOnly: true
        -isWorker: true
        -permission: string
        -color: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        bodybodyobjectfalsenone
        » titlebodystringtruethe new title of the board
        » ownerbodystringtrue"ABCDE12345" <= User ID in Wekan.
        » isAdminbodybooleanfalseis the owner an admin of the board (default true)
        » isActivebodybooleanfalseis the board active (default true)
        » isNoCommentsbodybooleanfalsedisable comments (default false)
        » isCommentOnlybodybooleanfalseonly enable comments (default false)
        » isWorkerbodybooleanfalseonly move cards, assign himself to card and comment (default false)
        » permissionbodystringfalse"private" board <== Set to "public" if you
        » colorbodystringfalsethe color of the board
        -

        Detailed descriptions

        -

        » owner: "ABCDE12345" <= User ID in Wekan. -(Not username or email)

        -

        » permission: "private" board <== Set to "public" if you -want public Wekan board

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string",
        -  "defaultSwimlaneId": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » defaultSwimlaneIdstringfalsenonenone
        - -

        get_board

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}

        -

        Get the board with that particular ID

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board to retrieve the data
        -

        Detailed descriptions

        -

        board: the ID of the board to retrieve the data

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "title": "string",
        -  "slug": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "stars": 0,
        -  "labels": [
        -    {
        -      "_id": "string",
        -      "name": "string",
        -      "color": "green"
        -    }
        -  ],
        -  "members": [
        -    {
        -      "userId": "string",
        -      "isAdmin": true,
        -      "isActive": true,
        -      "isNoComments": true,
        -      "isCommentOnly": true,
        -      "isWorker": true
        -    }
        -  ],
        -  "permission": "public",
        -  "color": "belize",
        -  "description": "string",
        -  "subtasksDefaultBoardId": "string",
        -  "subtasksDefaultListId": "string",
        -  "dateSettingsDefaultBoardId": "string",
        -  "dateSettingsDefaultListId": "string",
        -  "allowsSubtasks": true,
        -  "allowsAttachments": true,
        -  "allowsChecklists": true,
        -  "allowsComments": true,
        -  "allowsDescriptionTitle": true,
        -  "allowsDescriptionText": true,
        -  "allowsActivities": true,
        -  "allowsLabels": true,
        -  "allowsAssignee": true,
        -  "allowsMembers": true,
        -  "allowsRequestedBy": true,
        -  "allowsAssignedBy": true,
        -  "allowsReceivedDate": true,
        -  "allowsStartDate": true,
        -  "allowsEndDate": true,
        -  "allowsDueDate": true,
        -  "presentParentTask": "prefix-with-full-path",
        -  "startAt": "string",
        -  "dueAt": "string",
        -  "endAt": "string",
        -  "spentTime": 0,
        -  "isOvertime": true,
        -  "type": "string",
        -  "sort": 0
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseBoards
        - -

        delete_board

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board} \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board} HTTP/1.1
        -
        -
        -
        var headers = {
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}

        -

        Delete a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board
        -

        Detailed descriptions

        -

        board: the ID of the board

        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseNone
        - -

        get_board_attachments

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/attachments \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/attachments HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/attachments',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/attachments',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/attachments',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/attachments', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/attachments");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/attachments", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/attachments

        -

        Get the list of attachments of a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        -

        Detailed descriptions

        -

        board: the board ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "attachmentId": "string",
        -    "attachmentName": "string",
        -    "attachmentType": "string",
        -    "cardId": "string",
        -    "listId": "string",
        -    "swimlaneId": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » attachmentIdstringfalsenonenone
        » attachmentNamestringfalsenonenone
        » attachmentTypestringfalsenonenone
        » cardIdstringfalsenonenone
        » listIdstringfalsenonenone
        » swimlaneIdstringfalsenonenone
        - -

        exportJson

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/export \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/export HTTP/1.1
        -
        -
        -
        var headers = {
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/export',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/export',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/export',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/export', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/export");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/export

        -

        This route is used to export the board to a json file format.

        -

        If user is already logged-in, pass loginToken as param -"authToken": '/api/boards/:boardId/export?authToken=:token'

        -

        See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ -for detailed explanations

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board we are exporting
        -

        Detailed descriptions

        -

        board: the ID of the board we are exporting

        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseNone
        - -

        add_board_label

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X PUT /api/boards/{board}/labels \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        PUT /api/boards/{board}/labels HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/labels',
        -  method: 'put',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "label": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/labels',
        -{
        -  method: 'PUT',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.put '/api/boards/{board}/labels',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.put('/api/boards/{board}/labels', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/labels");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("PUT");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("PUT", "/api/boards/{board}/labels", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        PUT /api/boards/{board}/labels

        -

        Add a label to a board

        -

        If the board doesn't have the name/color label, this function -adds the label to the board.

        -
        -

        Body parameter

        -
        -
        label: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board
        bodybodyobjectfalsenone
        » labelbodystringtruethe label value
        -

        Detailed descriptions

        -

        board: the board

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        "string"
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responsestring
        - -

        set_board_member_permission

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/members/{member} \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/members/{member} HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/members/{member}',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "isAdmin": true,
        -  "isNoComments": true,
        -  "isCommentOnly": true,
        -  "isWorker": true
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/members/{member}',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/members/{member}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/members/{member}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/members/{member}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{member}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/members/{member}

        -

        Change the permission of a member of a board

        -
        -

        Body parameter

        -
        -
        isAdmin: true
        -isNoComments: true
        -isCommentOnly: true
        -isWorker: true
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board that we are changing
        memberpathstringtruethe ID of the user to change permissions
        bodybodyobjectfalsenone
        » isAdminbodybooleantrueadmin capability
        » isNoCommentsbodybooleantrueNoComments capability
        » isCommentOnlybodybooleantrueCommentsOnly capability
        » isWorkerbodybooleantrueWorker capability
        -

        Detailed descriptions

        -

        board: the ID of the board that we are changing

        -

        member: the ID of the user to change permissions

        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseNone
        - -

        get_boards_count

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards_count \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards_count HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards_count',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards_count',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards_count',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards_count', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards_count");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards_count", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards_count

        -

        Get public and private boards count

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "private": 0,
        -  "public": 0
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » privateintegerfalsenonenone
        » publicintegerfalsenonenone
        - -

        get_boards_from_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/users/{user}/boards \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/users/{user}/boards HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users/{user}/boards',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users/{user}/boards',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/users/{user}/boards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/users/{user}/boards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users/{user}/boards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/users/{user}/boards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/users/{user}/boards

        -

        Get all boards attached to a user

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        userpathstringtruethe ID of the user to retrieve the data
        -

        Detailed descriptions

        -

        user: the ID of the user to retrieve the data

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        Checklists

        -

        get_all_checklists

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cards/{card}/checklists \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cards/{card}/checklists', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cards/{card}/checklists

        -

        Get the list of checklists attached to a card

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        new_checklist

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/cards/{card}/checklists \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "title": "string",
        -  "items": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/cards/{card}/checklists', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/cards/{card}/checklists

        -

        create a new checklist

        -
        -

        Body parameter

        -
        -
        title: string
        -items: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        bodybodyobjectfalsenone
        » titlebodystringtruethe title of the new checklist
        » itemsbodystringfalsethe list of items on the new checklist
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_checklist

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cards/{card}/checklists/{checklist}

        -

        Get a checklist

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        checklistpathstringtruethe ID of the checklist
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -

        checklist: the ID of the checklist

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "cardId": "string",
        -  "title": "string",
        -  "finishedAt": "string",
        -  "createdAt": "string",
        -  "sort": 0,
        -  "items": [
        -    {
        -      "_id": "string",
        -      "title": "string",
        -      "isFinished": true
        -    }
        -  ]
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » cardIdstringfalsenonenone
        » titlestringfalsenonenone
        » finishedAtstringfalsenonenone
        » createdAtstringfalsenonenone
        » sortnumberfalsenonenone
        » items[object]falsenonenone
        »» _idstringfalsenonenone
        »» titlestringfalsenonenone
        »» isFinishedbooleanfalsenonenone
        - -

        delete_checklist

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}

        -

        Delete a checklist

        -

        The checklist will be removed, not put in the recycle bin.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        checklistpathstringtruethe ID of the checklist to remove
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -

        checklist: the ID of the checklist to remove

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        ChecklistItems

        -

        get_checklist_item

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

        -

        Get a checklist item

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        checklistpathstringtruethe checklist ID
        itempathstringtruethe ID of the item
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -

        checklist: the checklist ID

        -

        item: the ID of the item

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "title": "string",
        -  "sort": 0,
        -  "isFinished": true,
        -  "checklistId": "string",
        -  "cardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseChecklistItems
        - -

        edit_checklist_item

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  method: 'put',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "isFinished": "string",
        -  "title": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -{
        -  method: 'PUT',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("PUT");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

        -

        Edit a checklist item

        -
        -

        Body parameter

        -
        -
        isFinished: string
        -title: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        checklistpathstringtruethe checklist ID
        itempathstringtruethe ID of the item
        bodybodyobjectfalsenone
        » isFinishedbodystringfalseis the item checked?
        » titlebodystringfalsethe new text of the item
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -

        checklist: the checklist ID

        -

        item: the ID of the item

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        delete_checklist_item

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

        -

        Delete a checklist item

        -

        Note: this operation can't be reverted.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        cardpathstringtruethe card ID
        checklistpathstringtruethe checklist ID
        itempathstringtruethe ID of the item to be removed
        -

        Detailed descriptions

        -

        board: the board ID

        -

        card: the card ID

        -

        checklist: the checklist ID

        -

        item: the ID of the item to be removed

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        CardComments

        -

        get_all_comments

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cards/{card}/comments \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/comments',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/comments',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cards/{card}/comments', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cards/{card}/comments

        -

        Get all comments attached to a card

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        cardpathstringtruethe ID of the card
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        card: the ID of the card

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "comment": "string",
        -    "authorId": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » commentstringfalsenonenone
        » authorIdstringfalsenonenone
        - -

        new_comment

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/cards/{card}/comments \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/comments',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "authorId": "string",
        -  "comment": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/comments',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/cards/{card}/comments', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/cards/{card}/comments

        -

        Add a comment on a card

        -
        -

        Body parameter

        -
        -
        authorId: string
        -comment: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        cardpathstringtruethe ID of the card
        bodybodyobjectfalsenone
        » authorIdbodystringtruethe user who 'posted' the comment
        » commentbodystringtruethe comment value
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        card: the ID of the card

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_comment

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cards/{card}/comments/{comment}

        -

        Get a comment on a card

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        cardpathstringtruethe ID of the card
        commentpathstringtruethe ID of the comment to retrieve
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        card: the ID of the card

        -

        comment: the ID of the comment to retrieve

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "boardId": "string",
        -  "cardId": "string",
        -  "text": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseCardComments
        - -

        delete_comment

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/cards/{card}/comments/{comment}

        -

        Delete a comment on a card

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        cardpathstringtruethe ID of the card
        commentpathstringtruethe ID of the comment to delete
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        card: the ID of the card

        -

        comment: the ID of the comment to delete

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        Cards

        -

        get_cards_by_custom_field

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}

        -

        Get all Cards that matchs a value of a specific custom field

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        customFieldpathstringtruethe list ID
        customFieldValuepathstringtruethe value to look for
        -

        Detailed descriptions

        -

        board: the board ID

        -

        customField: the list ID

        -

        customFieldValue: the value to look for

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string",
        -    "description": "string",
        -    "listId": "string",
        -    "swinlaneId": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        » descriptionstringfalsenonenone
        » listIdstringfalsenonenone
        » swinlaneIdstringfalsenonenone
        - -

        get_all_cards

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/lists/{list}/cards \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}/cards',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}/cards',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/lists/{list}/cards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/lists/{list}/cards

        -

        Get all Cards attached to a List

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        listpathstringtruethe list ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        list: the list ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string",
        -    "description": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        » descriptionstringfalsenonenone
        - -

        new_card

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/lists/{list}/cards \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}/cards',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "authorId": "string",
        -  "members": "string",
        -  "assignees": "string",
        -  "title": "string",
        -  "description": "string",
        -  "swimlaneId": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}/cards',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/lists/{list}/cards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/lists/{list}/cards

        -

        Create a new Card

        -
        -

        Body parameter

        -
        -
        authorId: string
        -members: string
        -assignees: string
        -title: string
        -description: string
        -swimlaneId: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the new card
        listpathstringtruethe list ID of the new card
        bodybodyobjectfalsenone
        » authorIdbodystringtruethe authorId value
        » membersbodystringfalsethe member IDs list of the new card
        » assigneesbodystringfalsethe array of maximum one ID of assignee of the new card
        » titlebodystringtruethe title of the new card
        » descriptionbodystringtruethe description of the new card
        » swimlaneIdbodystringtruethe swimlane ID of the new card
        -

        Detailed descriptions

        -

        board: the board ID of the new card

        -

        list: the list ID of the new card

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_card

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}/cards/{card}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/lists/{list}/cards/{card}

        -

        Get a Card

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        listpathstringtruethe list ID of the card
        cardpathstringtruethe card ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        list: the list ID of the card

        -

        card: the card ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "title": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "parentId": "string",
        -  "listId": "string",
        -  "swimlaneId": "string",
        -  "boardId": "string",
        -  "coverId": "string",
        -  "color": "white",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "customFields": [
        -    {}
        -  ],
        -  "dateLastActivity": "string",
        -  "description": "string",
        -  "requestedBy": "string",
        -  "assignedBy": "string",
        -  "labelIds": [
        -    "string"
        -  ],
        -  "members": [
        -    "string"
        -  ],
        -  "assignees": [
        -    "string"
        -  ],
        -  "receivedAt": "string",
        -  "startAt": "string",
        -  "dueAt": "string",
        -  "endAt": "string",
        -  "spentTime": 0,
        -  "isOvertime": true,
        -  "userId": "string",
        -  "sort": 0,
        -  "subtaskSort": 0,
        -  "type": "string",
        -  "linkedId": "string",
        -  "vote": {
        -    "question": "string",
        -    "positive": [
        -      "string"
        -    ],
        -    "negative": [
        -      "string"
        -    ],
        -    "end": "string",
        -    "public": true,
        -    "allowNonBoardMembers": true
        -  }
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseCards
        - -

        edit_card

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}/cards/{card}',
        -  method: 'put',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "title": "string",
        -  "sort": "string",
        -  "parentId": "string",
        -  "description": "string",
        -  "color": "string",
        -  "vote": {},
        -  "labelIds": "string",
        -  "requestedBy": "string",
        -  "assignedBy": "string",
        -  "receivedAt": "string",
        -  "startAt": "string",
        -  "dueAt": "string",
        -  "endAt": "string",
        -  "spentTime": "string",
        -  "isOverTime": true,
        -  "customFields": "string",
        -  "members": "string",
        -  "assignees": "string",
        -  "swimlaneId": "string",
        -  "listId": "string",
        -  "authorId": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
        -{
        -  method: 'PUT',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("PUT");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        PUT /api/boards/{board}/lists/{list}/cards/{card}

        -

        Edit Fields in a Card

        -

        Edit a card

        -

        The color has to be chosen between 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:

        - Wekan card colors -

        Note: setting the color to white has the same effect than removing it.

        -
        -

        Body parameter

        -
        -
        title: string
        -sort: string
        -parentId: string
        -description: string
        -color: string
        -vote: {}
        -labelIds: string
        -requestedBy: string
        -assignedBy: string
        -receivedAt: string
        -startAt: string
        -dueAt: string
        -endAt: string
        -spentTime: string
        -isOverTime: true
        -customFields: string
        -members: string
        -assignees: string
        -swimlaneId: string
        -listId: string
        -authorId: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        listpathstringtruethe list ID of the card
        cardpathstringtruethe ID of the card
        bodybodyobjectfalsenone
        » titlebodystringfalsethe new title of the card
        » sortbodystringfalsethe new sort value of the card
        » parentIdbodystringfalsechange the parent of the card
        » descriptionbodystringfalsethe new description of the card
        » colorbodystringfalsethe new color of the card
        » votebodyobjectfalsethe vote object
        » labelIdsbodystringfalsethe new list of label IDs attached to the card
        » requestedBybodystringfalsethe new requestedBy field of the card
        » assignedBybodystringfalsethe new assignedBy field of the card
        » receivedAtbodystringfalsethe new receivedAt field of the card
        » startAtbodystringfalsethe new startAt field of the card
        » dueAtbodystringfalsethe new dueAt field of the card
        » endAtbodystringfalsethe new endAt field of the card
        » spentTimebodystringfalsethe new spentTime field of the card
        » isOverTimebodybooleanfalsethe new isOverTime field of the card
        » customFieldsbodystringfalsethe new customFields value of the card
        » membersbodystringfalsethe new list of member IDs attached to the card
        » assigneesbodystringfalsethe array of maximum one ID of assignee attached to the card
        » swimlaneIdbodystringfalsethe new swimlane ID of the card
        » listIdbodystringfalsethe new list ID of the card (move operation)
        » authorIdbodystringfalsechange the owner of the card
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        list: the list ID of the card

        -

        card: the ID of the card

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        delete_card

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}/cards/{card}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/lists/{list}/cards/{card}

        -

        Delete a card from a board

        -

        This operation deletes a card, and therefore the card -is not put in the recycle bin.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID of the card
        listpathstringtruethe list ID of the card
        cardpathstringtruethe ID of the card
        -

        Detailed descriptions

        -

        board: the board ID of the card

        -

        list: the list ID of the card

        -

        card: the ID of the card

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_swimlane_cards

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/swimlanes/{swimlane}/cards',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/swimlanes/{swimlane}/cards

        -

        get all cards attached to a swimlane

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        swimlanepathstringtruethe swimlane ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        swimlane: the swimlane ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string",
        -    "description": "string",
        -    "listId": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        » descriptionstringfalsenonenone
        » listIdstringfalsenonenone
        - -

        CustomFields

        -

        get_all_custom_fields

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/custom-fields \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/custom-fields HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/custom-fields',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/custom-fields',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/custom-fields',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/custom-fields', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/custom-fields");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/custom-fields

        -

        Get the list of Custom Fields attached to a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board value
        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "name": "string",
        -    "type": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » namestringfalsenonenone
        » typestringfalsenonenone
        - -

        new_custom_field

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/custom-fields \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/custom-fields HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/custom-fields',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "name": "string",
        -  "type": "string",
        -  "settings": "string",
        -  "showOnCard": true,
        -  "automaticallyOnCard": true,
        -  "showLabelOnMiniCard": true,
        -  "authorId": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/custom-fields',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/custom-fields',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/custom-fields', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/custom-fields");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/custom-fields

        -

        Create a Custom Field

        -
        -

        Body parameter

        -
        -
        name: string
        -type: string
        -settings: string
        -showOnCard: true
        -automaticallyOnCard: true
        -showLabelOnMiniCard: true
        -authorId: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board value
        bodybodyobjectfalsenone
        » namebodystringtruethe name of the custom field
        » typebodystringtruethe type of the custom field
        » settingsbodystringtruethe settings object of the custom field
        » showOnCardbodybooleantrueshould we show the custom field on cards?
        » automaticallyOnCardbodybooleantrueshould the custom fields automatically be added on cards?
        » showLabelOnMiniCardbodybooleantrueshould the label of the custom field be shown on minicards?
        » authorIdbodystringtruethe authorId value
        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_custom_field

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/custom-fields/{customField} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/custom-fields/{customField}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/custom-fields/{customField}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/custom-fields/{customField}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/custom-fields/{customField}

        -

        Get a Custom Fields attached to a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board value
        customFieldpathstringtruethe ID of the custom field
        -

        Detailed descriptions

        -

        customField: the ID of the custom field

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "boardIds": [
        -    "string"
        -  ],
        -  "name": "string",
        -  "type": "text",
        -  "settings": {
        -    "currencyCode": "string",
        -    "dropdownItems": [
        -      {}
        -    ]
        -  },
        -  "showOnCard": true,
        -  "automaticallyOnCard": true,
        -  "alwaysOnCard": true,
        -  "showLabelOnMiniCard": true,
        -  "createdAt": "string",
        -  "modifiedAt": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseCustomFields
        - -

        delete_custom_field

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/custom-fields/{customField}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/custom-fields/{customField}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/custom-fields/{customField}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/custom-fields/{customField}

        -

        Delete a Custom Fields attached to a board

        -

        The Custom Field can't be retrieved after this operation

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board value
        customFieldpathstringtruethe ID of the custom field
        -

        Detailed descriptions

        -

        customField: the ID of the custom field

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        Integrations

        -

        get_all_integrations

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/integrations \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/integrations HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/integrations',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/integrations', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/integrations

        -

        Get all integrations in board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        -

        Detailed descriptions

        -

        board: the board ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "enabled": true,
        -    "title": "string",
        -    "type": "string",
        -    "activities": [
        -      "string"
        -    ],
        -    "url": "string",
        -    "token": "string",
        -    "boardId": "string",
        -    "createdAt": "string",
        -    "modifiedAt": "string",
        -    "userId": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        anonymous[Integrations]falsenone[Integration with third-party applications]
        » enabledbooleantruenoneis the integration enabled?
        » titlestring|nullfalsenonename of the integration
        » typestringtruenonetype of the integratation (Default to 'outgoing-webhooks')
        » activities[string]truenoneactivities the integration gets triggered (list)
        » urlstringtruenonenone
        » tokenstring|nullfalsenonetoken of the integration
        » boardIdstringtruenoneBoard ID of the integration
        » createdAtstringtruenoneCreation date of the integration
        » modifiedAtstringtruenonenone
        » userIdstringtruenoneuser ID who created the interation
        - -

        new_integration

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/integrations \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/integrations HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "url": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/integrations',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/integrations', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/integrations

        -

        Create a new integration

        -
        -

        Body parameter

        -
        -
        url: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        bodybodyobjectfalsenone
        » urlbodystringtruethe URL of the integration
        -

        Detailed descriptions

        -

        board: the board ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_integration

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/integrations/{int} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/integrations/{int} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations/{int}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations/{int}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/integrations/{int}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/integrations/{int}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations/{int}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/integrations/{int}

        -

        Get a single integration in board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        intpathstringtruethe integration ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        int: the integration ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "enabled": true,
        -  "title": "string",
        -  "type": "string",
        -  "activities": [
        -    "string"
        -  ],
        -  "url": "string",
        -  "token": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseIntegrations
        - -

        edit_integration

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X PUT /api/boards/{board}/integrations/{int} \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        PUT /api/boards/{board}/integrations/{int} HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations/{int}',
        -  method: 'put',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "enabled": "string",
        -  "title": "string",
        -  "url": "string",
        -  "token": "string",
        -  "activities": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations/{int}',
        -{
        -  method: 'PUT',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.put '/api/boards/{board}/integrations/{int}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.put('/api/boards/{board}/integrations/{int}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations/{int}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("PUT");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        PUT /api/boards/{board}/integrations/{int}

        -

        Edit integration data

        -
        -

        Body parameter

        -
        -
        enabled: string
        -title: string
        -url: string
        -token: string
        -activities: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        intpathstringtruethe integration ID
        bodybodyobjectfalsenone
        » enabledbodystringfalseis the integration enabled?
        » titlebodystringfalsenew name of the integration
        » urlbodystringfalsenew URL of the integration
        » tokenbodystringfalsenew token of the integration
        » activitiesbodystringfalsenew list of activities of the integration
        -

        Detailed descriptions

        -

        board: the board ID

        -

        int: the integration ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        delete_integration

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/integrations/{int} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations/{int}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations/{int}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/integrations/{int}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/integrations/{int}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations/{int}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/integrations/{int}

        -

        Delete integration

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        intpathstringtruethe integration ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        int: the integration ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        delete_integration_activities

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations/{int}/activities',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations/{int}/activities',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/integrations/{int}/activities', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/integrations/{int}/activities

        -

        Delete subscribed activities

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        intpathstringtruethe integration ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        int: the integration ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "enabled": true,
        -  "title": "string",
        -  "type": "string",
        -  "activities": [
        -    "string"
        -  ],
        -  "url": "string",
        -  "token": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseIntegrations
        - -

        new_integration_activities

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/integrations/{int}/activities \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/integrations/{int}/activities',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "activities": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/integrations/{int}/activities',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/integrations/{int}/activities', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/integrations/{int}/activities

        -

        Add subscribed activities

        -
        -

        Body parameter

        -
        -
        activities: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        intpathstringtruethe integration ID
        bodybodyobjectfalsenone
        » activitiesbodystringtruethe activities value
        -

        Detailed descriptions

        -

        board: the board ID

        -

        int: the integration ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "enabled": true,
        -  "title": "string",
        -  "type": "string",
        -  "activities": [
        -    "string"
        -  ],
        -  "url": "string",
        -  "token": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseIntegrations
        - -

        Lists

        -

        get_all_lists

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/lists \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/lists HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/lists',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/lists', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/lists

        -

        Get the list of Lists attached to a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        -

        Detailed descriptions

        -

        board: the board ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        new_list

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/lists \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/lists HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "title": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/lists',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/lists', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/lists

        -

        Add a List to a board

        -
        -

        Body parameter

        -
        -
        title: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        bodybodyobjectfalsenone
        » titlebodystringtruethe title of the List
        -

        Detailed descriptions

        -

        board: the board ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_list

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/lists/{list} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/lists/{list} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/lists/{list}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/lists/{list}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/lists/{list}

        -

        Get a List attached to a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        listpathstringtruethe List ID
        -

        Detailed descriptions

        -

        board: the board ID

        -

        list: the List ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "title": "string",
        -  "starred": true,
        -  "archived": true,
        -  "archivedAt": "string",
        -  "boardId": "string",
        -  "swimlaneId": "string",
        -  "createdAt": "string",
        -  "sort": 0,
        -  "updatedAt": "string",
        -  "modifiedAt": "string",
        -  "wipLimit": {
        -    "value": 0,
        -    "enabled": true,
        -    "soft": true
        -  },
        -  "color": "white",
        -  "type": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseLists
        - -

        delete_list

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/lists/{list} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/lists/{list} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/lists/{list}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/lists/{list}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/lists/{list}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/lists/{list}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/lists/{list}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/lists/{list}

        -

        Delete a List

        -

        This deletes a list from a board. -The list is not put in the recycle bin.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        listpathstringtruethe ID of the list to remove
        -

        Detailed descriptions

        -

        board: the board ID

        -

        list: the ID of the list to remove

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        Users

        -

        add_board_member

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/members/{user}/add \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/members/{user}/add HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/members/{user}/add',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "action": "string",
        -  "isAdmin": true,
        -  "isNoComments": true,
        -  "isCommentOnly": true
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/members/{user}/add',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/members/{user}/add',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/members/{user}/add', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/members/{user}/add");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{user}/add", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/members/{user}/add

        -

        Add New Board Member with Role

        -

        Only the admin user (the first user) can call the REST API.

        -

        Note: see Boards.set_board_member_permission -to later change the permissions.

        -
        -

        Body parameter

        -
        -
        action: string
        -isAdmin: true
        -isNoComments: true
        -isCommentOnly: true
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        userpathstringtruethe user ID
        bodybodyobjectfalsenone
        » actionbodystringtruethe action value
        » isAdminbodybooleantrueis the user an admin of the board
        » isNoCommentsbodybooleantruedisable comments
        » isCommentOnlybodybooleantrueonly enable comments
        -

        Detailed descriptions

        -

        board: the board ID

        -

        user: the user ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string",
        -  "title": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        remove_board_member

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/members/{user}/remove \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/members/{user}/remove HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/members/{user}/remove',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "action": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/members/{user}/remove',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/members/{user}/remove',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/members/{user}/remove', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/members/{user}/remove");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{user}/remove", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/members/{user}/remove

        -

        Remove Member from Board

        -

        Only the admin user (the first user) can call the REST API.

        -
        -

        Body parameter

        -
        -
        action: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe board ID
        userpathstringtruethe user ID
        bodybodyobjectfalsenone
        » actionbodystringtruethe action (needs to be remove)
        -

        Detailed descriptions

        -

        board: the board ID

        -

        user: the user ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string",
        -  "title": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        create_user_token

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/createtoken/{user} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/createtoken/{user} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/createtoken/{user}',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/createtoken/{user}',
        -{
        -  method: 'POST',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/createtoken/{user}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/createtoken/{user}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/createtoken/{user}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/createtoken/{user}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/createtoken/{user}

        -

        Create a user token

        -

        Only the admin user (the first user) can call the REST API.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        userpathstringtruethe ID of the user to create token for.
        -

        Detailed descriptions

        -

        user: the ID of the user to create token for.

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_current_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/user \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/user HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/user',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/user',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/user',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/user', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/user");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/user", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/user

        -

        returns the current user

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "username": "string",
        -  "emails": [
        -    {
        -      "address": "string",
        -      "verified": true
        -    }
        -  ],
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "profile": {
        -    "avatarUrl": "string",
        -    "emailBuffer": [
        -      "string"
        -    ],
        -    "fullname": "string",
        -    "showDesktopDragHandles": true,
        -    "hideCheckedItems": true,
        -    "hiddenSystemMessages": true,
        -    "hiddenMinicardLabelText": true,
        -    "initials": "string",
        -    "invitedBoards": [
        -      "string"
        -    ],
        -    "language": "string",
        -    "notifications": [],
        -    "activity": "string",
        -    "read": "string",
        -    "showCardsCountAt": 0,
        -    "startDayOfWeek": 0,
        -    "starredBoards": [
        -      "string"
        -    ],
        -    "icode": "string",
        -    "boardView": "board-view-swimlanes",
        -    "listSortBy": "-modifiedat",
        -    "templatesBoardId": "string",
        -    "cardTemplatesSwimlaneId": "string",
        -    "listTemplatesSwimlaneId": "string",
        -    "boardTemplatesSwimlaneId": "string"
        -  },
        -  "services": {},
        -  "heartbeat": "string",
        -  "isAdmin": true,
        -  "createdThroughApi": true,
        -  "loginDisabled": true,
        -  "authenticationMethod": "string",
        -  "sessionData": {
        -    "totalHits": 0,
        -    "lastHit": 0
        -  },
        -  "importUsernames": [
        -    "string"
        -  ]
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseUsers
        - -

        get_all_users

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/users \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/users HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/users',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/users', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/users", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/users

        -

        return all the users

        -

        Only the admin user (the first user) can call the REST API.

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "username": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » usernamestringfalsenonenone
        - -

        new_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/users \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/users HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "username": "string",
        -  "email": "string",
        -  "password": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/users',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/users', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/users", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/users

        -

        Create a new user

        -

        Only the admin user (the first user) can call the REST API.

        -
        -

        Body parameter

        -
        -
        username: string
        -email: string
        -password: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        bodybodyobjectfalsenone
        » usernamebodystringtruethe new username
        » emailbodystringtruethe email of the new user
        » passwordbodystringtruethe password of the new user
        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/users/{user} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/users/{user} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users/{user}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users/{user}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/users/{user}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/users/{user}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users/{user}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/users/{user}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/users/{user}

        -

        get a given user

        -

        Only the admin user (the first user) can call the REST API.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        userpathstringtruethe user ID or username
        -

        Detailed descriptions

        -

        user: the user ID or username

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "username": "string",
        -  "emails": [
        -    {
        -      "address": "string",
        -      "verified": true
        -    }
        -  ],
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "profile": {
        -    "avatarUrl": "string",
        -    "emailBuffer": [
        -      "string"
        -    ],
        -    "fullname": "string",
        -    "showDesktopDragHandles": true,
        -    "hideCheckedItems": true,
        -    "hiddenSystemMessages": true,
        -    "hiddenMinicardLabelText": true,
        -    "initials": "string",
        -    "invitedBoards": [
        -      "string"
        -    ],
        -    "language": "string",
        -    "notifications": [],
        -    "activity": "string",
        -    "read": "string",
        -    "showCardsCountAt": 0,
        -    "startDayOfWeek": 0,
        -    "starredBoards": [
        -      "string"
        -    ],
        -    "icode": "string",
        -    "boardView": "board-view-swimlanes",
        -    "listSortBy": "-modifiedat",
        -    "templatesBoardId": "string",
        -    "cardTemplatesSwimlaneId": "string",
        -    "listTemplatesSwimlaneId": "string",
        -    "boardTemplatesSwimlaneId": "string"
        -  },
        -  "services": {},
        -  "heartbeat": "string",
        -  "isAdmin": true,
        -  "createdThroughApi": true,
        -  "loginDisabled": true,
        -  "authenticationMethod": "string",
        -  "sessionData": {
        -    "totalHits": 0,
        -    "lastHit": 0
        -  },
        -  "importUsernames": [
        -    "string"
        -  ]
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseUsers
        - -

        edit_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X PUT /api/users/{user} \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        PUT /api/users/{user} HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users/{user}',
        -  method: 'put',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "action": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users/{user}',
        -{
        -  method: 'PUT',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.put '/api/users/{user}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.put('/api/users/{user}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users/{user}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("PUT");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("PUT", "/api/users/{user}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        PUT /api/users/{user}

        -

        edit a given user

        -

        Only the admin user (the first user) can call the REST API.

        -

        Possible values for action:

        -
          -
        • takeOwnership: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on.
        • -
        • disableLogin: Disable a user (the user is not allowed to login and his login tokens are purged)
        • -
        • enableLogin: Enable a user
        • -
        -
        -

        Body parameter

        -
        -
        action: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        userpathstringtruethe user ID
        bodybodyobjectfalsenone
        » actionbodystringtruethe action
        -

        Detailed descriptions

        -

        user: the user ID

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string",
        -  "title": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        delete_user

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/users/{user} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/users/{user} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/users/{user}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/users/{user}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/users/{user}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/users/{user}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/users/{user}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/users/{user}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/users/{user}

        -

        Delete a user

        -

        Only the admin user (the first user) can call the REST API.

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        userpathstringtruethe ID of the user to delete
        -

        Detailed descriptions

        -

        user: the ID of the user to delete

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        Swimlanes

        -

        get_all_swimlanes

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/swimlanes \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/swimlanes HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/swimlanes',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/swimlanes',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/swimlanes',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/swimlanes', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/swimlanes");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/swimlanes

        -

        Get the list of swimlanes attached to a board

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board
        -

        Detailed descriptions

        -

        board: the ID of the board

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        [
        -  {
        -    "_id": "string",
        -    "title": "string"
        -  }
        -]
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        » titlestringfalsenonenone
        - -

        new_swimlane

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X POST /api/boards/{board}/swimlanes \
        -  -H 'Content-Type: multipart/form-data' \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        POST /api/boards/{board}/swimlanes HTTP/1.1
        -
        -Content-Type: multipart/form-data
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/swimlanes',
        -  method: 'post',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -const inputBody = '{
        -  "title": "string"
        -}';
        -const headers = {
        -  'Content-Type':'multipart/form-data',
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/swimlanes',
        -{
        -  method: 'POST',
        -  body: inputBody,
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Content-Type' => 'multipart/form-data',
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.post '/api/boards/{board}/swimlanes',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Content-Type': 'multipart/form-data',
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.post('/api/boards/{board}/swimlanes', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/swimlanes");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("POST");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Content-Type": []string{"multipart/form-data"},
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        POST /api/boards/{board}/swimlanes

        -

        Add a swimlane to a board

        -
        -

        Body parameter

        -
        -
        title: string
        -
        -
        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board
        bodybodyobjectfalsenone
        » titlebodystringtruethe new title of the swimlane
        -

        Detailed descriptions

        -

        board: the ID of the board

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        get_swimlane

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X GET /api/boards/{board}/swimlanes/{swimlane} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/swimlanes/{swimlane}',
        -  method: 'get',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/swimlanes/{swimlane}',
        -{
        -  method: 'GET',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("GET");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        GET /api/boards/{board}/swimlanes/{swimlane}

        -

        Get a swimlane

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board
        swimlanepathstringtruethe ID of the swimlane
        -

        Detailed descriptions

        -

        board: the ID of the board

        -

        swimlane: the ID of the swimlane

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "title": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "sort": 0,
        -  "color": "white",
        -  "updatedAt": "string",
        -  "modifiedAt": "string",
        -  "type": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseSwimlanes
        - -

        delete_swimlane

        -

        -
        -

        Code samples

        -
        -
        # You can also use wget
        -curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
        -  -H 'Accept: application/json' \
        -  -H 'Authorization: API_KEY'
        -
        -
        -
        DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
        -
        -Accept: application/json
        -
        -
        -
        var headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -$.ajax({
        -  url: '/api/boards/{board}/swimlanes/{swimlane}',
        -  method: 'delete',
        -
        -  headers: headers,
        -  success: function(data) {
        -    console.log(JSON.stringify(data));
        -  }
        -})
        -
        -
        -
        const fetch = require('node-fetch');
        -
        -const headers = {
        -  'Accept':'application/json',
        -  'Authorization':'API_KEY'
        -
        -};
        -
        -fetch('/api/boards/{board}/swimlanes/{swimlane}',
        -{
        -  method: 'DELETE',
        -
        -  headers: headers
        -})
        -.then(function(res) {
        -    return res.json();
        -}).then(function(body) {
        -    console.log(body);
        -});
        -
        -
        -
        require 'rest-client'
        -require 'json'
        -
        -headers = {
        -  'Accept' => 'application/json',
        -  'Authorization' => 'API_KEY'
        -}
        -
        -result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
        -  params: {
        -  }, headers: headers
        -
        -p JSON.parse(result)
        -
        -
        -
        import requests
        -headers = {
        -  'Accept': 'application/json',
        -  'Authorization': 'API_KEY'
        -}
        -
        -r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', params={
        -
        -}, headers = headers)
        -
        -print r.json()
        -
        -
        -
        URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
        -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        -con.setRequestMethod("DELETE");
        -int responseCode = con.getResponseCode();
        -BufferedReader in = new BufferedReader(
        -    new InputStreamReader(con.getInputStream()));
        -String inputLine;
        -StringBuffer response = new StringBuffer();
        -while ((inputLine = in.readLine()) != null) {
        -    response.append(inputLine);
        -}
        -in.close();
        -System.out.println(response.toString());
        -
        -
        -
        package main
        -
        -import (
        -       "bytes"
        -       "net/http"
        -)
        -
        -func main() {
        -
        -    headers := map[string][]string{
        -        "Accept": []string{"application/json"},
        -        "Authorization": []string{"API_KEY"},
        -        
        -    }
        -
        -    data := bytes.NewBuffer([]byte{jsonReq})
        -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
        -    req.Header = headers
        -
        -    client := &http.Client{}
        -    resp, err := client.Do(req)
        -    // ...
        -}
        -
        -
        -

        DELETE /api/boards/{board}/swimlanes/{swimlane}

        -

        Delete a swimlane

        -

        The swimlane will be deleted, not moved to the recycle bin

        -

        Parameters

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameInTypeRequiredDescription
        boardpathstringtruethe ID of the board
        swimlanepathstringtruethe ID of the swimlane
        -

        Detailed descriptions

        -

        board: the ID of the board

        -

        swimlane: the ID of the swimlane

        -
        -

        Example responses

        -
        -
        -

        200 Response

        -
        -
        {
        -  "_id": "string"
        -}
        -
        -

        Responses

        - - - - - - - - - - - - - - - - - -
        StatusMeaningDescriptionSchema
        200OK200 responseInline
        -

        Response Schema

        -

        Status Code 200

        - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        » _idstringfalsenonenone
        - -

        Schemas

        -

        Boards

        -

        -
        {
        -  "title": "string",
        -  "slug": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "stars": 0,
        -  "labels": [
        -    {
        -      "_id": "string",
        -      "name": "string",
        -      "color": "green"
        -    }
        -  ],
        -  "members": [
        -    {
        -      "userId": "string",
        -      "isAdmin": true,
        -      "isActive": true,
        -      "isNoComments": true,
        -      "isCommentOnly": true,
        -      "isWorker": true
        -    }
        -  ],
        -  "permission": "public",
        -  "color": "belize",
        -  "description": "string",
        -  "subtasksDefaultBoardId": "string",
        -  "subtasksDefaultListId": "string",
        -  "dateSettingsDefaultBoardId": "string",
        -  "dateSettingsDefaultListId": "string",
        -  "allowsSubtasks": true,
        -  "allowsAttachments": true,
        -  "allowsChecklists": true,
        -  "allowsComments": true,
        -  "allowsDescriptionTitle": true,
        -  "allowsDescriptionText": true,
        -  "allowsActivities": true,
        -  "allowsLabels": true,
        -  "allowsAssignee": true,
        -  "allowsMembers": true,
        -  "allowsRequestedBy": true,
        -  "allowsAssignedBy": true,
        -  "allowsReceivedDate": true,
        -  "allowsStartDate": true,
        -  "allowsEndDate": true,
        -  "allowsDueDate": true,
        -  "presentParentTask": "prefix-with-full-path",
        -  "startAt": "string",
        -  "dueAt": "string",
        -  "endAt": "string",
        -  "spentTime": 0,
        -  "isOvertime": true,
        -  "type": "string",
        -  "sort": 0
        -}
        -
        -
        -

        This is a Board.

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        titlestringtruenoneThe title of the board
        slugstringtruenoneThe title slugified.
        archivedbooleantruenoneIs the board archived?
        archivedAtstring|nullfalsenoneLatest archiving time of the board
        createdAtstringtruenoneCreation time of the board
        modifiedAtstring|nullfalsenoneLast modification time of the board
        starsnumbertruenoneHow many stars the board has
        labels[BoardsLabels]truenoneList of labels attached to a board
        members[BoardsMembers]truenoneList of members of a board
        permissionstringtruenonevisibility of the board
        colorstringtruenoneThe color of the board.
        descriptionstring|nullfalsenoneThe description of the board
        subtasksDefaultBoardIdstring|nullfalsenoneThe default board ID assigned to subtasks.
        subtasksDefaultListIdstring|nullfalsenoneThe default List ID assigned to subtasks.
        dateSettingsDefaultBoardIdstring|nullfalsenonenone
        dateSettingsDefaultListIdstring|nullfalsenonenone
        allowsSubtasksbooleantruenoneDoes the board allows subtasks?
        allowsAttachmentsbooleantruenoneDoes the board allows attachments?
        allowsChecklistsbooleantruenoneDoes the board allows checklists?
        allowsCommentsbooleantruenoneDoes the board allows comments?
        allowsDescriptionTitlebooleantruenoneDoes the board allows description title?
        allowsDescriptionTextbooleantruenoneDoes the board allows description text?
        allowsActivitiesbooleantruenoneDoes the board allows comments?
        allowsLabelsbooleantruenoneDoes the board allows labels?
        allowsAssigneebooleantruenoneDoes the board allows assignee?
        allowsMembersbooleantruenoneDoes the board allows members?
        allowsRequestedBybooleantruenoneDoes the board allows requested by?
        allowsAssignedBybooleantruenoneDoes the board allows requested by?
        allowsReceivedDatebooleantruenoneDoes the board allows received date?
        allowsStartDatebooleantruenoneDoes the board allows start date?
        allowsEndDatebooleantruenoneDoes the board allows end date?
        allowsDueDatebooleantruenoneDoes the board allows due date?
        presentParentTaskstring|nullfalsenoneControls how to present the parent task: - prefix-with-full-path: add a prefix with the full path - prefix-with-parent: add a prefisx with the parent name - subtext-with-full-path: add a subtext with the full path - subtext-with-parent: add a subtext with the parent name - no-parent: does not show the parent at all
        startAtstring|nullfalsenoneStarting date of the board.
        dueAtstring|nullfalsenoneDue date of the board.
        endAtstring|nullfalsenoneEnd date of the board.
        spentTimenumber|nullfalsenoneTime spent in the board.
        isOvertimeboolean|nullfalsenoneIs the board overtimed?
        typestringtruenoneThe type of board
        sortnumbertruenoneSort value
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        permissionpublic
        permissionprivate
        colorbelize
        colornephritis
        colorpomegranate
        colorpumpkin
        colorwisteria
        colormoderatepink
        colorstrongcyan
        colorlimegreen
        colormidnight
        colordark
        colorrelax
        colorcorteza
        colorclearblue
        colornatural
        colormodern
        colormoderndark
        presentParentTaskprefix-with-full-path
        presentParentTaskprefix-with-parent
        presentParentTasksubtext-with-full-path
        presentParentTasksubtext-with-parent
        presentParentTaskno-parent
        -

        BoardsLabels

        -

        -
        {
        -  "_id": "string",
        -  "name": "string",
        -  "color": "green"
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        _idstringtruenoneUnique id of a label
        namestringfalsenoneName of a label
        colorstringtruenonecolor of a label. Can be amongst green, yellow, orange, red, purple, blue, sky, lime, pink, black, silver, peachpuff, crimson, plum, darkgreen, slateblue, magenta, gold, navy, gray, saddlebrown, paleturquoise, mistyrose, indigo
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        colorgreen
        coloryellow
        colororange
        colorred
        colorpurple
        colorblue
        colorsky
        colorlime
        colorpink
        colorblack
        colorsilver
        colorpeachpuff
        colorcrimson
        colorplum
        colordarkgreen
        colorslateblue
        colormagenta
        colorgold
        colornavy
        colorgray
        colorsaddlebrown
        colorpaleturquoise
        colormistyrose
        colorindigo
        -

        BoardsMembers

        -

        -
        {
        -  "userId": "string",
        -  "isAdmin": true,
        -  "isActive": true,
        -  "isNoComments": true,
        -  "isCommentOnly": true,
        -  "isWorker": true
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        userIdstringtruenoneThe uniq ID of the member
        isAdminbooleantruenoneIs the member an admin of the board?
        isActivebooleantruenoneIs the member active?
        isNoCommentsbooleanfalsenoneIs the member not allowed to make comments
        isCommentOnlybooleanfalsenoneIs the member only allowed to comment on the board
        isWorkerbooleanfalsenoneIs the member only allowed to move card, assign himself to card and comment
        -

        CardComments

        -

        -
        {
        -  "boardId": "string",
        -  "cardId": "string",
        -  "text": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -
        -

        A comment on a card

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        boardIdstringtruenonethe board ID
        cardIdstringtruenonethe card ID
        textstringtruenonethe text of the comment
        createdAtstringtruenonewhen was the comment created
        modifiedAtstringtruenonenone
        userIdstringtruenonethe author ID of the comment
        -

        Cards

        -

        -
        {
        -  "title": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "parentId": "string",
        -  "listId": "string",
        -  "swimlaneId": "string",
        -  "boardId": "string",
        -  "coverId": "string",
        -  "color": "white",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "customFields": [
        -    {}
        -  ],
        -  "dateLastActivity": "string",
        -  "description": "string",
        -  "requestedBy": "string",
        -  "assignedBy": "string",
        -  "labelIds": [
        -    "string"
        -  ],
        -  "members": [
        -    "string"
        -  ],
        -  "assignees": [
        -    "string"
        -  ],
        -  "receivedAt": "string",
        -  "startAt": "string",
        -  "dueAt": "string",
        -  "endAt": "string",
        -  "spentTime": 0,
        -  "isOvertime": true,
        -  "userId": "string",
        -  "sort": 0,
        -  "subtaskSort": 0,
        -  "type": "string",
        -  "linkedId": "string",
        -  "vote": {
        -    "question": "string",
        -    "positive": [
        -      "string"
        -    ],
        -    "negative": [
        -      "string"
        -    ],
        -    "end": "string",
        -    "public": true,
        -    "allowNonBoardMembers": true
        -  }
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        titlestring|nullfalsenonethe title of the card
        archivedbooleantruenoneis the card archived
        archivedAtstring|nullfalsenonelatest archiving date
        parentIdstring|nullfalsenoneID of the parent card
        listIdstring|nullfalsenoneList ID where the card is
        swimlaneIdstringtruenoneSwimlane ID where the card is
        boardIdstring|nullfalsenoneBoard ID of the card
        coverIdstring|nullfalsenoneCover ID of the card
        colorstring|nullfalsenonenone
        createdAtstringtruenonecreation date
        modifiedAtstringtruenonenone
        customFields[CardsCustomfields]|nullfalsenonelist of custom fields
        dateLastActivitystringtruenoneDate of last activity
        descriptionstring|nullfalsenonedescription of the card
        requestedBystring|nullfalsenonewho requested the card (ID of the user)
        assignedBystring|nullfalsenonewho assigned the card (ID of the user)
        labelIds[string]|nullfalsenonelist of labels ID the card has
        members[string]|nullfalsenonelist of members (user IDs)
        assignees[string]|nullfalsenonewho is assignee of the card (user ID), maximum one ID of assignee in array.
        receivedAtstring|nullfalsenoneDate the card was received
        startAtstring|nullfalsenoneDate the card was started to be worked on
        dueAtstring|nullfalsenoneDate the card is due
        endAtstring|nullfalsenoneDate the card ended
        spentTimenumber|nullfalsenoneHow much time has been spent on this
        isOvertimeboolean|nullfalsenoneis the card over time?
        userIdstringtruenoneuser ID of the author of the card
        sortnumbertruenoneSort value
        subtaskSortnumber|nullfalsenonesubtask sort value
        typestringtruenonetype of the card
        linkedIdstring|nullfalsenoneID of the linked card
        voteCardsVotefalsenonevote object, see below
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        colorwhite
        colorgreen
        coloryellow
        colororange
        colorred
        colorpurple
        colorblue
        colorsky
        colorlime
        colorpink
        colorblack
        colorsilver
        colorpeachpuff
        colorcrimson
        colorplum
        colordarkgreen
        colorslateblue
        colormagenta
        colorgold
        colornavy
        colorgray
        colorsaddlebrown
        colorpaleturquoise
        colormistyrose
        colorindigo
        -

        CardsVote

        -

        -
        {
        -  "question": "string",
        -  "positive": [
        -    "string"
        -  ],
        -  "negative": [
        -    "string"
        -  ],
        -  "end": "string",
        -  "public": true,
        -  "allowNonBoardMembers": true
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        questionstringtruenonenone
        positive[string]falsenonelist of members (user IDs)
        negative[string]falsenonelist of members (user IDs)
        endstringfalsenonenone
        publicbooleantruenonenone
        allowNonBoardMembersbooleantruenonenone
        -

        CardsCustomfields

        -

        -
        {}
        -
        -
        -

        Properties

        -

        None

        -

        ChecklistItems

        -

        -
        {
        -  "title": "string",
        -  "sort": 0,
        -  "isFinished": true,
        -  "checklistId": "string",
        -  "cardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string"
        -}
        -
        -
        -

        An item in a checklist

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        titlestringtruenonethe text of the item
        sortnumbertruenonethe sorting field of the item
        isFinishedbooleantruenoneIs the item checked?
        checklistIdstringtruenonethe checklist ID the item is attached to
        cardIdstringtruenonethe card ID the item is attached to
        createdAtstring|nullfalsenonenone
        modifiedAtstringtruenonenone
        -

        Checklists

        -

        -
        {
        -  "cardId": "string",
        -  "title": "string",
        -  "finishedAt": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "sort": 0
        -}
        -
        -
        -

        A Checklist

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        cardIdstringtruenoneThe ID of the card the checklist is in
        titlestringtruenonethe title of the checklist
        finishedAtstring|nullfalsenoneWhen was the checklist finished
        createdAtstringtruenoneCreation date of the checklist
        modifiedAtstringtruenonenone
        sortnumbertruenonesorting value of the checklist
        -

        CustomFields

        -

        -
        {
        -  "boardIds": [
        -    "string"
        -  ],
        -  "name": "string",
        -  "type": "text",
        -  "settings": {
        -    "currencyCode": "string",
        -    "dropdownItems": [
        -      {}
        -    ]
        -  },
        -  "showOnCard": true,
        -  "automaticallyOnCard": true,
        -  "alwaysOnCard": true,
        -  "showLabelOnMiniCard": true,
        -  "createdAt": "string",
        -  "modifiedAt": "string"
        -}
        -
        -
        -

        A custom field on a card in the board

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        boardIds[string]truenonethe ID of the board
        namestringtruenonename of the custom field
        typestringtruenonetype of the custom field
        settingsCustomFieldsSettingstruenonesettings of the custom field
        showOnCardbooleantruenoneshould we show on the cards this custom field
        automaticallyOnCardbooleantruenoneshould the custom fields automatically be added on cards?
        alwaysOnCardbooleantruenoneshould the custom field be automatically added to all cards?
        showLabelOnMiniCardbooleantruenoneshould the label of the custom field be shown on minicards?
        createdAtstring|nullfalsenonenone
        modifiedAtstringtruenonenone
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        typetext
        typenumber
        typedate
        typedropdown
        typecheckbox
        typecurrency
        -

        CustomFieldsSettings

        -

        -
        {
        -  "currencyCode": "string",
        -  "dropdownItems": [
        -    {}
        -  ]
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        currencyCodestringfalsenonenone
        dropdownItems[CustomFieldsSettingsDropdownitems]falsenonelist of drop down items objects
        -

        CustomFieldsSettingsDropdownitems

        -

        -
        {}
        -
        -
        -

        Properties

        -

        None

        -

        Integrations

        -

        -
        {
        -  "enabled": true,
        -  "title": "string",
        -  "type": "string",
        -  "activities": [
        -    "string"
        -  ],
        -  "url": "string",
        -  "token": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "userId": "string"
        -}
        -
        -
        -

        Integration with third-party applications

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        enabledbooleantruenoneis the integration enabled?
        titlestring|nullfalsenonename of the integration
        typestringtruenonetype of the integratation (Default to 'outgoing-webhooks')
        activities[string]truenoneactivities the integration gets triggered (list)
        urlstringtruenonenone
        tokenstring|nullfalsenonetoken of the integration
        boardIdstringtruenoneBoard ID of the integration
        createdAtstringtruenoneCreation date of the integration
        modifiedAtstringtruenonenone
        userIdstringtruenoneuser ID who created the interation
        -

        Lists

        -

        -
        {
        -  "title": "string",
        -  "starred": true,
        -  "archived": true,
        -  "archivedAt": "string",
        -  "boardId": "string",
        -  "swimlaneId": "string",
        -  "createdAt": "string",
        -  "sort": 0,
        -  "updatedAt": "string",
        -  "modifiedAt": "string",
        -  "wipLimit": {
        -    "value": 0,
        -    "enabled": true,
        -    "soft": true
        -  },
        -  "color": "white",
        -  "type": "string"
        -}
        -
        -
        -

        A list (column) in the Wekan board.

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        titlestringtruenonethe title of the list
        starredboolean|nullfalsenoneif a list is stared then we put it on the top
        archivedbooleantruenoneis the list archived
        archivedAtstring|nullfalsenonelatest archiving date
        boardIdstringtruenonethe board associated to this list
        swimlaneIdstringtruenonethe swimlane associated to this list. Used for templates
        createdAtstringtruenonecreation date
        sortnumber|nullfalsenoneis the list sorted
        updatedAtstring|nullfalsenonelast update of the list
        modifiedAtstringtruenonenone
        wipLimitListsWiplimitfalsenoneWIP object, see below
        colorstring|nullfalsenonethe color of the list
        typestringtruenoneThe type of list
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        colorwhite
        colorgreen
        coloryellow
        colororange
        colorred
        colorpurple
        colorblue
        colorsky
        colorlime
        colorpink
        colorblack
        colorpeachpuff
        colorcrimson
        colorplum
        colordarkgreen
        colorslateblue
        colormagenta
        colorgold
        colornavy
        colorgray
        colorsaddlebrown
        colorpaleturquoise
        colormistyrose
        colorindigo
        -

        ListsWiplimit

        -

        -
        {
        -  "value": 0,
        -  "enabled": true,
        -  "soft": true
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        valuenumbertruenonevalue of the WIP
        enabledbooleantruenoneis the WIP enabled
        softbooleantruenoneis the WIP a soft or hard requirement
        -

        Swimlanes

        -

        -
        {
        -  "title": "string",
        -  "archived": true,
        -  "archivedAt": "string",
        -  "boardId": "string",
        -  "createdAt": "string",
        -  "sort": 0,
        -  "color": "white",
        -  "updatedAt": "string",
        -  "modifiedAt": "string",
        -  "type": "string"
        -}
        -
        -
        -

        A swimlane is an line in the kaban board.

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        titlestringtruenonethe title of the swimlane
        archivedbooleantruenoneis the swimlane archived?
        archivedAtstring|nullfalsenonelatest archiving date of the swimlane
        boardIdstringtruenonethe ID of the board the swimlane is attached to
        createdAtstringtruenonecreation date of the swimlane
        sortnumber|nullfalsenonethe sort value of the swimlane
        colorstring|nullfalsenonethe color of the swimlane
        updatedAtstring|nullfalsenonewhen was the swimlane last edited
        modifiedAtstringtruenonenone
        typestringtruenoneThe type of swimlane
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        colorwhite
        colorgreen
        coloryellow
        colororange
        colorred
        colorpurple
        colorblue
        colorsky
        colorlime
        colorpink
        colorblack
        colorpeachpuff
        colorcrimson
        colorplum
        colordarkgreen
        colorslateblue
        colormagenta
        colorgold
        colornavy
        colorgray
        colorsaddlebrown
        colorpaleturquoise
        colormistyrose
        colorindigo
        -

        Users

        -

        -
        {
        -  "username": "string",
        -  "emails": [
        -    {
        -      "address": "string",
        -      "verified": true
        -    }
        -  ],
        -  "createdAt": "string",
        -  "modifiedAt": "string",
        -  "profile": {
        -    "avatarUrl": "string",
        -    "emailBuffer": [
        -      "string"
        -    ],
        -    "fullname": "string",
        -    "showDesktopDragHandles": true,
        -    "hideCheckedItems": true,
        -    "hiddenSystemMessages": true,
        -    "hiddenMinicardLabelText": true,
        -    "initials": "string",
        -    "invitedBoards": [
        -      "string"
        -    ],
        -    "language": "string",
        -    "notifications": [],
        -    "activity": "string",
        -    "read": "string",
        -    "showCardsCountAt": 0,
        -    "startDayOfWeek": 0,
        -    "starredBoards": [
        -      "string"
        -    ],
        -    "icode": "string",
        -    "boardView": "board-view-swimlanes",
        -    "listSortBy": "-modifiedat",
        -    "templatesBoardId": "string",
        -    "cardTemplatesSwimlaneId": "string",
        -    "listTemplatesSwimlaneId": "string",
        -    "boardTemplatesSwimlaneId": "string"
        -  },
        -  "services": {},
        -  "heartbeat": "string",
        -  "isAdmin": true,
        -  "createdThroughApi": true,
        -  "loginDisabled": true,
        -  "authenticationMethod": "string",
        -  "sessionData": {
        -    "totalHits": 0,
        -    "lastHit": 0
        -  },
        -  "importUsernames": [
        -    "string"
        -  ]
        -}
        -
        -
        -

        A User in wekan

        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        usernamestring|nullfalsenonethe username of the user
        emails[UsersEmails]|nullfalsenonethe list of emails attached to a user
        createdAtstringtruenonecreation date of the user
        modifiedAtstringtruenonenone
        profileUsersProfilefalsenoneprofile settings
        servicesobject|nullfalsenoneservices field of the user
        heartbeatstring|nullfalsenonelast time the user has been seen
        isAdminboolean|nullfalsenoneis the user an admin of the board?
        createdThroughApiboolean|nullfalsenonewas the user created through the API?
        loginDisabledboolean|nullfalsenoneloginDisabled field of the user
        authenticationMethodstringtruenoneauthentication method of the user
        sessionDataUsersSessiondatafalsenoneprofile settings
        importUsernames[string]|nullfalsenoneusername for imported
        -

        UsersEmails

        -

        -
        {
        -  "address": "string",
        -  "verified": true
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        addressstringtruenoneThe email address
        verifiedbooleantruenoneHas the email been verified
        -

        UsersProfile

        -

        -
        {
        -  "avatarUrl": "string",
        -  "emailBuffer": [
        -    "string"
        -  ],
        -  "fullname": "string",
        -  "showDesktopDragHandles": true,
        -  "hideCheckedItems": true,
        -  "hiddenSystemMessages": true,
        -  "hiddenMinicardLabelText": true,
        -  "initials": "string",
        -  "invitedBoards": [
        -    "string"
        -  ],
        -  "language": "string",
        -  "notifications": [],
        -  "activity": "string",
        -  "read": "string",
        -  "showCardsCountAt": 0,
        -  "startDayOfWeek": 0,
        -  "starredBoards": [
        -    "string"
        -  ],
        -  "icode": "string",
        -  "boardView": "board-view-swimlanes",
        -  "listSortBy": "-modifiedat",
        -  "templatesBoardId": "string",
        -  "cardTemplatesSwimlaneId": "string",
        -  "listTemplatesSwimlaneId": "string",
        -  "boardTemplatesSwimlaneId": "string"
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        avatarUrlstringfalsenoneURL of the avatar of the user
        emailBuffer[string]falsenonelist of email buffers of the user
        fullnamestringfalsenonefull name of the user
        showDesktopDragHandlesbooleanfalsenonedoes the user want to hide system messages?
        hideCheckedItemsbooleanfalsenonedoes the user want to hide checked checklist items?
        hiddenSystemMessagesbooleanfalsenonedoes the user want to hide system messages?
        hiddenMinicardLabelTextbooleanfalsenonedoes the user want to hide minicard label texts?
        initialsstringfalsenoneinitials of the user
        invitedBoards[string]falsenoneboard IDs the user has been invited to
        languagestringfalsenonelanguage of the user
        notifications[UsersProfileNotifications]falsenoneenabled notifications for the user
        activitystringtruenoneThe id of the activity this notification references
        readstringfalsenonethe date on which this notification was read
        showCardsCountAtnumberfalsenoneshowCardCountAt field of the user
        startDayOfWeeknumberfalsenonestartDayOfWeek field of the user
        starredBoards[string]falsenonelist of starred board IDs
        icodestringfalsenoneicode
        boardViewstringfalsenoneboardView field of the user
        listSortBystringfalsenonedefault sort list for user
        templatesBoardIdstringtruenoneReference to the templates board
        cardTemplatesSwimlaneIdstringtruenoneReference to the card templates swimlane Id
        listTemplatesSwimlaneIdstringtruenoneReference to the list templates swimlane Id
        boardTemplatesSwimlaneIdstringtruenoneReference to the board templates swimlane Id
        -

        Enumerated Values

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        boardViewboard-view-swimlanes
        boardViewboard-view-lists
        boardViewboard-view-cal
        listSortBy-modifiedat
        listSortBymodifiedat
        listSortBy-title
        listSortBytitle
        listSortBy-sort
        listSortBysort
        -

        UsersSessiondata

        -

        -
        {
        -  "totalHits": 0,
        -  "lastHit": 0
        -}
        -
        -
        -

        Properties

        - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameTypeRequiredRestrictionsDescription
        totalHitsnumberfalsenoneTotal hits from last search
        lastHitnumberfalsenonelast hit that was returned
        - + +
        @@ -18236,6 +2251,10 @@ UserSecurity Go + + PHP + +
        diff --git a/public/api/wekan.yml b/public/api/wekan.yml index ee91c8416..d58febc65 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v5.03 + version: v5.08 description: | The REST API allows you to control and extend Wekan with ease. @@ -134,3453 +134,4 @@ paths: description: | Error in registration - /api/boards: - get: - operationId: get_public_boards - summary: Get all public boards - tags: - - Boards - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - title: - type: string - post: - operationId: new_board - summary: Create a board - description: | - This allows to create a board. - - The color has to be chosen between `belize`, `nephritis`, `pomegranate`, - `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`, - `limegreen`, `midnight`, `dark`, `relax`, `corteza`: - - Wekan logo - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the new title of the board - type: string - required: true - - name: owner - in: formData - description: | - "ABCDE12345" <= User ID in Wekan. - (Not username or email) - type: string - required: true - - name: isAdmin - in: formData - description: | - is the owner an admin of the board (default true) - type: boolean - required: false - - name: isActive - in: formData - description: | - is the board active (default true) - type: boolean - required: false - - name: isNoComments - in: formData - description: | - disable comments (default false) - type: boolean - required: false - - name: isCommentOnly - in: formData - description: | - only enable comments (default false) - type: boolean - required: false - - name: isWorker - in: formData - description: | - only move cards, assign himself to card and comment (default false) - type: boolean - required: false - - name: permission - in: formData - description: | - "private" board <== Set to "public" if you - want public Wekan board - type: string - required: false - - name: color - in: formData - description: | - the color of the board - type: string - required: false - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - defaultSwimlaneId: - type: string - /api/boards/{board}: - get: - operationId: get_board - summary: Get the board with that particular ID - tags: - - Boards - parameters: - - name: board - in: path - description: | - the ID of the board to retrieve the data - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Boards" - delete: - operationId: delete_board - summary: Delete a board - tags: - - Boards - parameters: - - name: board - in: path - description: | - the ID of the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - /api/boards/{board}/attachments: - get: - operationId: get_board_attachments - summary: Get the list of attachments of a board - tags: - - Boards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - attachmentId: - type: string - attachmentName: - type: string - attachmentType: - type: string - cardId: - type: string - listId: - type: string - swimlaneId: - type: string - /api/boards/{board}/cards/{card}/checklists: - get: - operationId: get_all_checklists - summary: Get the list of checklists attached to a card - tags: - - Checklists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card 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 - post: - operationId: new_checklist - summary: create a new checklist - tags: - - Checklists - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the title of the new checklist - type: string - required: true - - name: items - in: formData - description: | - the list of items on the new checklist - type: string - required: false - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/cards/{card}/checklists/{checklist}: - get: - operationId: get_checklist - summary: Get a checklist - tags: - - Checklists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - - name: checklist - in: path - description: | - the ID of the checklist - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - cardId: - type: string - title: - type: string - finishedAt: - type: string - createdAt: - type: string - sort: - type: number - items: - type: array - items: - type: object - properties: - _id: - type: string - title: - type: string - isFinished: - type: boolean - delete: - operationId: delete_checklist - summary: Delete a checklist - description: | - The checklist will be removed, not put in the recycle bin. - tags: - - Checklists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - - name: checklist - in: path - description: | - the ID of the checklist to remove - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}: - get: - operationId: get_checklist_item - summary: Get a checklist item - tags: - - ChecklistItems - - Checklists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - - name: checklist - in: path - description: | - the checklist ID - type: string - required: true - - name: item - in: path - description: | - the ID of the item - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/ChecklistItems" - put: - operationId: edit_checklist_item - summary: Edit a checklist item - tags: - - ChecklistItems - - Checklists - consumes: - - multipart/form-data - - application/json - parameters: - - name: isFinished - in: formData - description: | - is the item checked? - type: string - required: false - - name: title - in: formData - description: | - the new text of the item - type: string - required: false - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - - name: checklist - in: path - description: | - the checklist ID - type: string - required: true - - name: item - in: path - description: | - the ID of the item - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - delete: - operationId: delete_checklist_item - summary: Delete a checklist item - description: | - Note: this operation can't be reverted. - tags: - - ChecklistItems - - Checklists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - - name: checklist - in: path - description: | - the checklist ID - type: string - required: true - - name: item - in: path - description: | - the ID of the item to be removed - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/cards/{card}/comments: - get: - operationId: get_all_comments - summary: Get all comments attached to a card - tags: - - CardComments - parameters: - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the card - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - comment: - type: string - authorId: - type: string - post: - operationId: new_comment - summary: Add a comment on a card - tags: - - CardComments - consumes: - - multipart/form-data - - application/json - parameters: - - name: authorId - in: formData - description: | - the user who 'posted' the comment - type: string - required: true - - name: comment - in: formData - description: the comment value - type: string - required: true - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the 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}/cards/{card}/comments/{comment}: - get: - operationId: get_comment - summary: Get a comment on a card - tags: - - CardComments - parameters: - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the card - type: string - required: true - - name: comment - in: path - description: | - the ID of the comment to retrieve - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/CardComments" - delete: - operationId: delete_comment - summary: Delete a comment on a card - tags: - - CardComments - parameters: - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the card - type: string - required: true - - name: comment - in: path - description: | - the ID of the comment to delete - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}: - get: - operationId: get_cards_by_custom_field - summary: Get all Cards that matchs a value of a specific custom field - tags: - - Cards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: customField - in: path - description: | - the list ID - type: string - required: true - - name: customFieldValue - in: path - description: | - the value to look for - 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 - listId: - type: string - swinlaneId: - type: string - /api/boards/{board}/custom-fields: - get: - operationId: get_all_custom_fields - summary: Get the list of Custom Fields attached to a board - tags: - - CustomFields - parameters: - - name: board - in: path - description: the board value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - name: - type: string - type: - type: string - post: - operationId: new_custom_field - summary: Create a Custom Field - tags: - - CustomFields - consumes: - - multipart/form-data - - application/json - parameters: - - name: name - in: formData - description: | - the name of the custom field - type: string - required: true - - name: type - in: formData - description: | - the type of the custom field - type: string - required: true - - name: settings - in: formData - description: | - the settings object of the custom field - type: string - required: true - - name: showOnCard - in: formData - description: | - should we show the custom field on cards? - type: boolean - required: true - - name: automaticallyOnCard - in: formData - description: | - should the custom fields automatically be added on cards? - type: boolean - required: true - - name: showLabelOnMiniCard - in: formData - description: | - should the label of the custom field be shown on minicards? - type: boolean - required: true - - name: authorId - in: formData - description: the authorId value - type: string - required: true - - name: board - in: path - description: the board value - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/custom-fields/{customField}: - get: - operationId: get_custom_field - summary: Get a Custom Fields attached to a board - tags: - - CustomFields - parameters: - - name: board - in: path - description: the board value - type: string - required: true - - name: customField - in: path - description: | - the ID of the custom field - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/CustomFields" - delete: - operationId: delete_custom_field - summary: Delete a Custom Fields attached to a board - description: | - The Custom Field can't be retrieved after this operation - tags: - - CustomFields - parameters: - - name: board - in: path - description: the board value - type: string - required: true - - name: customField - in: path - description: | - the ID of the custom field - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/export: - get: - operationId: exportJson - summary: This route is used to export the board to a json file format. - description: | - If user is already logged-in, pass loginToken as param - "authToken": '/api/boards/:boardId/export?authToken=:token' - - See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ - for detailed explanations - tags: - - Boards - parameters: - - name: board - in: path - description: | - the ID of the board we are exporting - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - /api/boards/{board}/integrations: - get: - operationId: get_all_integrations - summary: Get all integrations in board - tags: - - Integrations - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - $ref: "#/definitions/Integrations" - post: - operationId: new_integration - summary: Create a new integration - tags: - - Integrations - consumes: - - multipart/form-data - - application/json - parameters: - - name: url - in: formData - description: | - the URL of the integration - type: string - required: true - - name: board - in: path - description: | - the board ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/integrations/{int}: - get: - operationId: get_integration - summary: Get a single integration in board - tags: - - Integrations - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: int - in: path - description: | - the integration ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Integrations" - put: - operationId: edit_integration - summary: Edit integration data - tags: - - Integrations - consumes: - - multipart/form-data - - application/json - parameters: - - name: enabled - in: formData - description: | - is the integration enabled? - type: string - required: false - - name: title - in: formData - description: | - new name of the integration - type: string - required: false - - name: url - in: formData - description: | - new URL of the integration - type: string - required: false - - name: token - in: formData - description: | - new token of the integration - type: string - required: false - - name: activities - in: formData - description: | - new list of activities of the integration - type: string - required: false - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: int - in: path - description: | - the integration ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - delete: - operationId: delete_integration - summary: Delete integration - tags: - - Integrations - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: int - in: path - description: | - the integration ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/integrations/{int}/activities: - delete: - operationId: delete_integration_activities - summary: Delete subscribed activities - tags: - - Integrations - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: int - in: path - description: | - the integration ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Integrations" - post: - operationId: new_integration_activities - summary: Add subscribed activities - tags: - - Integrations - consumes: - - multipart/form-data - - application/json - parameters: - - name: activities - in: formData - description: the activities value - type: string - required: true - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: int - in: path - description: | - the integration ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Integrations" - /api/boards/{board}/labels: - put: - operationId: add_board_label - summary: Add a label to a board - description: | - If the board doesn't have the name/color label, this function - adds the label to the board. - tags: - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: label - in: formData - description: the label value - type: string - required: true - - name: board - in: path - description: | - the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: string - /api/boards/{board}/lists: - get: - operationId: get_all_lists - summary: Get the list of Lists attached to a board - tags: - - Lists - parameters: - - name: board - in: path - description: | - the board 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 - post: - operationId: new_list - summary: Add a List to a board - tags: - - Lists - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the title of the List - type: string - required: true - - name: board - in: path - description: | - the board ID - 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}: - get: - operationId: get_list - summary: Get a List attached to a board - tags: - - Lists - 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: - $ref: "#/definitions/Lists" - delete: - operationId: delete_list - summary: Delete a List - description: | - This **deletes** a list from a board. - The list is not put in the recycle bin. - tags: - - Lists - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: list - in: path - description: | - the ID of the list to remove - 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: - 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_card - summary: Get a Card - tags: - - Cards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: list - in: path - description: | - the list ID of the card - type: string - required: true - - name: card - in: path - description: | - the card ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Cards" - put: - operationId: edit_card - summary: Edit Fields in a Card - description: | - Edit a card - - The color has to be chosen between `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`: - - Wekan card colors - - Note: setting the color to white has the same effect than removing it. - tags: - - Cards - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the new title of the card - type: string - required: false - - name: sort - in: formData - description: | - the new sort value of the card - type: string - required: false - - name: parentId - in: formData - description: | - change the parent of the card - type: string - required: false - - name: description - in: formData - description: | - the new description of the card - type: string - required: false - - name: color - in: formData - description: | - the new color of the card - type: string - required: false - - name: vote - in: formData - description: | - the vote object - type: object - required: false - - name: labelIds - in: formData - description: | - the new list of label IDs attached to the card - type: string - required: false - - name: requestedBy - in: formData - description: | - the new requestedBy field of the card - type: string - required: false - - name: assignedBy - in: formData - description: | - the new assignedBy field of the card - type: string - required: false - - name: receivedAt - in: formData - description: | - the new receivedAt field of the card - type: string - required: false - - name: startAt - in: formData - description: | - the new startAt field of the card - type: string - required: false - - name: dueAt - in: formData - description: | - the new dueAt field of the card - type: string - required: false - - name: endAt - in: formData - description: | - the new endAt field of the card - type: string - required: false - - name: spentTime - in: formData - description: | - the new spentTime field of the card - type: string - required: false - - name: isOverTime - in: formData - description: | - the new isOverTime field of the card - type: boolean - required: false - - name: customFields - in: formData - description: | - the new customFields value of the card - type: string - required: false - - name: members - in: formData - description: | - the new list of member IDs attached to the card - type: string - required: false - - name: assignees - in: formData - description: | - the array of maximum one ID of assignee attached to the card - type: string - required: false - - name: swimlaneId - in: formData - description: | - the new swimlane ID of the card - type: string - required: false - - name: listId - in: formData - description: | - the new list ID of the card (move operation) - type: string - required: false - - name: authorId - in: formData - description: | - change the owner of the card - type: string - required: false - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: list - in: path - description: | - the list ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the card - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - delete: - operationId: delete_card - summary: Delete a card from a board - description: | - This operation **deletes** a card, and therefore the card - is not put in the recycle bin. - tags: - - Cards - parameters: - - name: board - in: path - description: | - the board ID of the card - type: string - required: true - - name: list - in: path - description: | - the list ID of the card - type: string - required: true - - name: card - in: path - description: | - the ID of the 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}/members/{member}: - post: - operationId: set_board_member_permission - summary: Change the permission of a member of a board - tags: - - Boards - - Users - consumes: - - multipart/form-data - - application/json - parameters: - - name: isAdmin - in: formData - description: | - admin capability - type: boolean - required: true - - name: isNoComments - in: formData - description: | - NoComments capability - type: boolean - required: true - - name: isCommentOnly - in: formData - description: | - CommentsOnly capability - type: boolean - required: true - - name: isWorker - in: formData - description: | - Worker capability - type: boolean - required: true - - name: board - in: path - description: | - the ID of the board that we are changing - type: string - required: true - - name: member - in: path - description: | - the ID of the user to change permissions - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - /api/boards/{board}/members/{user}/add: - post: - operationId: add_board_member - summary: Add New Board Member with Role - description: | - Only the admin user (the first user) can call the REST API. - - **Note**: see [Boards.set_board_member_permission](#set_board_member_permission) - to later change the permissions. - tags: - - Users - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: action - in: formData - description: the action value - type: string - required: true - - name: isAdmin - in: formData - description: | - is the user an admin of the board - type: boolean - required: true - - name: isNoComments - in: formData - description: | - disable comments - type: boolean - required: true - - name: isCommentOnly - in: formData - description: | - only enable comments - type: boolean - required: true - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: user - in: path - description: | - the user ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - title: - type: string - /api/boards/{board}/members/{user}/remove: - post: - operationId: remove_board_member - summary: Remove Member from Board - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - - Boards - consumes: - - multipart/form-data - - application/json - parameters: - - name: action - in: formData - description: | - the action (needs to be `remove`) - type: string - required: true - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: user - in: path - description: | - the user ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - title: - type: string - /api/boards/{board}/swimlanes: - get: - operationId: get_all_swimlanes - summary: Get the list of swimlanes attached to a board - tags: - - Swimlanes - parameters: - - name: board - in: path - description: | - the ID of the board - 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 - post: - operationId: new_swimlane - summary: Add a swimlane to a board - tags: - - Swimlanes - consumes: - - multipart/form-data - - application/json - parameters: - - name: title - in: formData - description: | - the new title of the swimlane - type: string - required: true - - name: board - in: path - description: | - the ID of the board - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/swimlanes/{swimlane}: - get: - operationId: get_swimlane - summary: Get a swimlane - tags: - - Swimlanes - parameters: - - name: board - in: path - description: | - the ID of the board - type: string - required: true - - name: swimlane - in: path - description: | - the ID of the swimlane - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Swimlanes" - delete: - operationId: delete_swimlane - summary: Delete a swimlane - description: | - The swimlane will be deleted, not moved to the recycle bin - tags: - - Swimlanes - parameters: - - name: board - in: path - description: | - the ID of the board - type: string - required: true - - name: swimlane - in: path - description: | - the ID of the swimlane - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/boards/{board}/swimlanes/{swimlane}/cards: - get: - operationId: get_swimlane_cards - summary: get all cards attached to a swimlane - tags: - - Cards - parameters: - - name: board - in: path - description: | - the board ID - type: string - required: true - - name: swimlane - in: path - description: | - the swimlane 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 - listId: - type: string - /api/boards_count: - get: - operationId: get_boards_count - summary: Get public and private boards count - tags: - - Boards - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - private: - type: integer - public: - type: integer - /api/createtoken/{user}: - post: - operationId: create_user_token - summary: Create a user token - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - consumes: - - multipart/form-data - - application/json - parameters: - - name: user - in: path - description: | - the ID of the user to create token for. - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/user: - get: - operationId: get_current_user - summary: returns the current user - tags: - - Users - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Users" - /api/users: - get: - operationId: get_all_users - summary: return all the users - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: array - items: - type: object - properties: - _id: - type: string - username: - type: string - post: - operationId: new_user - summary: Create a new user - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - consumes: - - multipart/form-data - - application/json - parameters: - - name: username - in: formData - description: | - the new username - type: string - required: true - - name: email - in: formData - description: | - the email of the new user - type: string - required: true - - name: password - in: formData - description: | - the password of the new user - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/users/{user}: - get: - operationId: get_user - summary: get a given user - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - parameters: - - name: user - in: path - description: | - the user ID or username - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - $ref: "#/definitions/Users" - put: - operationId: edit_user - summary: edit a given user - description: | - Only the admin user (the first user) can call the REST API. - - Possible values for *action*: - - `takeOwnership`: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on. - - `disableLogin`: Disable a user (the user is not allowed to login and his login tokens are purged) - - `enableLogin`: Enable a user - tags: - - Users - consumes: - - multipart/form-data - - application/json - parameters: - - name: action - in: formData - description: | - the action - type: string - required: true - - name: user - in: path - description: | - the user ID - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - title: - type: string - delete: - operationId: delete_user - summary: Delete a user - description: | - Only the admin user (the first user) can call the REST API. - tags: - - Users - parameters: - - name: user - in: path - description: | - the ID of the user to delete - type: string - required: true - produces: - - application/json - security: - - UserSecurity: [] - responses: - '200': - description: |- - 200 response - schema: - type: object - properties: - _id: - type: string - /api/users/{user}/boards: - get: - operationId: get_boards_from_user - summary: Get all boards attached to a user - tags: - - Boards - parameters: - - name: user - in: path - description: | - the ID of the user to retrieve the data - 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 definitions: - Boards: - type: object - description: This is a Board. - properties: - title: - description: | - The title of the board - type: string - slug: - description: | - The title slugified. - type: string - archived: - description: | - Is the board archived? - type: boolean - archivedAt: - description: | - Latest archiving time of the board - type: string - x-nullable: true - createdAt: - description: | - Creation time of the board - type: string - modifiedAt: - description: | - Last modification time of the board - type: string - x-nullable: true - stars: - description: | - How many stars the board has - type: number - labels: - description: | - List of labels attached to a board - type: array - items: - $ref: "#/definitions/BoardsLabels" - members: - description: | - List of members of a board - type: array - items: - $ref: "#/definitions/BoardsMembers" - permission: - description: | - visibility of the board - type: string - enum: - - public - - private - color: - description: | - The color of the board. - type: string - enum: - - belize - - nephritis - - pomegranate - - pumpkin - - wisteria - - moderatepink - - strongcyan - - limegreen - - midnight - - dark - - relax - - corteza - - clearblue - - natural - - modern - - moderndark - description: - description: | - The description of the board - type: string - x-nullable: true - subtasksDefaultBoardId: - description: | - The default board ID assigned to subtasks. - type: string - x-nullable: true - subtasksDefaultListId: - description: | - The default List ID assigned to subtasks. - type: string - x-nullable: true - dateSettingsDefaultBoardId: - type: string - x-nullable: true - dateSettingsDefaultListId: - type: string - x-nullable: true - allowsSubtasks: - description: | - Does the board allows subtasks? - type: boolean - allowsAttachments: - description: | - Does the board allows attachments? - type: boolean - allowsChecklists: - description: | - Does the board allows checklists? - type: boolean - allowsComments: - description: | - Does the board allows comments? - type: boolean - allowsDescriptionTitle: - description: | - Does the board allows description title? - type: boolean - allowsDescriptionText: - description: | - Does the board allows description text? - type: boolean - allowsActivities: - description: | - Does the board allows comments? - type: boolean - allowsLabels: - description: | - Does the board allows labels? - type: boolean - allowsAssignee: - description: | - Does the board allows assignee? - type: boolean - allowsMembers: - description: | - Does the board allows members? - type: boolean - allowsRequestedBy: - description: | - Does the board allows requested by? - type: boolean - allowsAssignedBy: - description: | - Does the board allows requested by? - type: boolean - allowsReceivedDate: - description: | - Does the board allows received date? - type: boolean - allowsStartDate: - description: | - Does the board allows start date? - type: boolean - allowsEndDate: - description: | - Does the board allows end date? - type: boolean - allowsDueDate: - description: | - Does the board allows due date? - type: boolean - presentParentTask: - description: | - Controls how to present the parent task: - - - `prefix-with-full-path`: add a prefix with the full path - - `prefix-with-parent`: add a prefisx with the parent name - - `subtext-with-full-path`: add a subtext with the full path - - `subtext-with-parent`: add a subtext with the parent name - - `no-parent`: does not show the parent at all - type: string - enum: - - prefix-with-full-path - - prefix-with-parent - - subtext-with-full-path - - subtext-with-parent - - no-parent - x-nullable: true - startAt: - description: | - Starting date of the board. - type: string - x-nullable: true - dueAt: - description: | - Due date of the board. - type: string - x-nullable: true - endAt: - description: | - End date of the board. - type: string - x-nullable: true - spentTime: - description: | - Time spent in the board. - type: number - x-nullable: true - isOvertime: - description: | - Is the board overtimed? - type: boolean - x-nullable: true - type: - description: | - The type of board - type: string - sort: - description: | - Sort value - type: number - required: - - title - - slug - - archived - - createdAt - - stars - - labels - - members - - permission - - color - - allowsSubtasks - - allowsAttachments - - allowsChecklists - - allowsComments - - allowsDescriptionTitle - - allowsDescriptionText - - allowsActivities - - allowsLabels - - allowsAssignee - - allowsMembers - - allowsRequestedBy - - allowsAssignedBy - - allowsReceivedDate - - allowsStartDate - - allowsEndDate - - allowsDueDate - - type - - sort - BoardsLabels: - type: object - properties: - _id: - description: | - Unique id of a label - type: string - name: - description: | - Name of a label - type: string - color: - description: | - color of a label. - - Can be amongst `green`, `yellow`, `orange`, `red`, `purple`, - `blue`, `sky`, `lime`, `pink`, `black`, - `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, - `slateblue`, `magenta`, `gold`, `navy`, `gray`, - `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo` - type: string - enum: - - green - - yellow - - orange - - red - - purple - - blue - - sky - - lime - - pink - - black - - silver - - peachpuff - - crimson - - plum - - darkgreen - - slateblue - - magenta - - gold - - navy - - gray - - saddlebrown - - paleturquoise - - mistyrose - - indigo - required: - - _id - - color - BoardsMembers: - type: object - properties: - userId: - description: | - The uniq ID of the member - type: string - isAdmin: - description: | - Is the member an admin of the board? - type: boolean - isActive: - description: | - Is the member active? - type: boolean - isNoComments: - description: | - Is the member not allowed to make comments - type: boolean - isCommentOnly: - description: | - Is the member only allowed to comment on the board - type: boolean - isWorker: - description: | - Is the member only allowed to move card, assign himself to card and comment - type: boolean - required: - - userId - - isAdmin - - isActive - CardComments: - type: object - description: A comment on a card - properties: - boardId: - description: | - the board ID - type: string - cardId: - description: | - the card ID - type: string - text: - description: | - the text of the comment - type: string - createdAt: - description: | - when was the comment created - type: string - modifiedAt: - type: string - userId: - description: | - the author ID of the comment - type: string - required: - - boardId - - cardId - - text - - 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 - archivedAt: - description: | - latest archiving date - type: string - x-nullable: true - 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 - public: - type: boolean - allowNonBoardMembers: - type: boolean - required: - - question - - public - - allowNonBoardMembers - CardsCustomfields: - type: object - ChecklistItems: - type: object - description: An item in a checklist - properties: - title: - description: | - the text of the item - type: string - sort: - description: | - the sorting field of the item - type: number - isFinished: - description: | - Is the item checked? - type: boolean - checklistId: - description: | - the checklist ID the item is attached to - type: string - cardId: - description: | - the card ID the item is attached to - type: string - createdAt: - type: string - x-nullable: true - modifiedAt: - type: string - required: - - title - - sort - - isFinished - - checklistId - - cardId - - modifiedAt - Checklists: - type: object - description: A Checklist - properties: - cardId: - description: | - The ID of the card the checklist is in - type: string - title: - description: | - the title of the checklist - type: string - finishedAt: - description: | - When was the checklist finished - type: string - x-nullable: true - createdAt: - description: | - Creation date of the checklist - type: string - modifiedAt: - type: string - sort: - description: | - sorting value of the checklist - type: number - required: - - cardId - - title - - createdAt - - modifiedAt - - sort - CustomFields: - type: object - description: A custom field on a card in the board - properties: - boardIds: - description: | - the ID of the board - type: array - items: - type: string - name: - description: | - name of the custom field - type: string - type: - description: | - type of the custom field - type: string - enum: - - text - - number - - date - - dropdown - - checkbox - - currency - settings: - description: | - settings of the custom field - $ref: "#/definitions/CustomFieldsSettings" - showOnCard: - description: | - should we show on the cards this custom field - type: boolean - automaticallyOnCard: - description: | - should the custom fields automatically be added on cards? - type: boolean - alwaysOnCard: - description: | - should the custom field be automatically added to all cards? - type: boolean - showLabelOnMiniCard: - description: | - should the label of the custom field be shown on minicards? - type: boolean - createdAt: - type: string - x-nullable: true - modifiedAt: - type: string - required: - - boardIds - - name - - type - - settings - - showOnCard - - automaticallyOnCard - - alwaysOnCard - - showLabelOnMiniCard - - modifiedAt - CustomFieldsSettings: - type: object - properties: - currencyCode: - type: string - dropdownItems: - description: | - list of drop down items objects - type: array - items: - $ref: "#/definitions/CustomFieldsSettingsDropdownitems" - CustomFieldsSettingsDropdownitems: - type: object - Integrations: - type: object - description: Integration with third-party applications - properties: - enabled: - description: | - is the integration enabled? - type: boolean - title: - description: | - name of the integration - type: string - x-nullable: true - type: - description: | - type of the integratation (Default to 'outgoing-webhooks') - type: string - activities: - description: | - activities the integration gets triggered (list) - type: array - items: - type: string - url: - type: string - token: - description: | - token of the integration - type: string - x-nullable: true - boardId: - description: | - Board ID of the integration - type: string - createdAt: - description: | - Creation date of the integration - type: string - modifiedAt: - type: string - userId: - description: | - user ID who created the interation - type: string - required: - - enabled - - type - - activities - - url - - boardId - - createdAt - - modifiedAt - - userId - Lists: - type: object - description: A list (column) in the Wekan board. - properties: - title: - description: | - the title of the list - type: string - starred: - description: | - if a list is stared - then we put it on the top - type: boolean - x-nullable: true - archived: - description: | - is the list archived - type: boolean - archivedAt: - description: | - latest archiving date - type: string - x-nullable: true - boardId: - description: | - the board associated to this list - type: string - swimlaneId: - description: | - the swimlane associated to this list. Used for templates - type: string - createdAt: - description: | - creation date - type: string - sort: - description: | - is the list sorted - type: number - x-nullable: true - updatedAt: - description: | - last update of the list - type: string - x-nullable: true - modifiedAt: - type: string - wipLimit: - description: | - WIP object, see below - $ref: "#/definitions/ListsWiplimit" - x-nullable: true - color: - description: | - the color of the list - type: string - enum: - - white - - green - - yellow - - orange - - red - - purple - - blue - - sky - - lime - - pink - - black - - peachpuff - - crimson - - plum - - darkgreen - - slateblue - - magenta - - gold - - navy - - gray - - saddlebrown - - paleturquoise - - mistyrose - - indigo - x-nullable: true - type: - description: | - The type of list - type: string - required: - - title - - archived - - boardId - - swimlaneId - - createdAt - - modifiedAt - - type - ListsWiplimit: - type: object - properties: - value: - description: | - value of the WIP - type: number - enabled: - description: | - is the WIP enabled - type: boolean - soft: - description: | - is the WIP a soft or hard requirement - type: boolean - required: - - value - - enabled - - soft - Swimlanes: - type: object - description: A swimlane is an line in the kaban board. - properties: - title: - description: | - the title of the swimlane - type: string - archived: - description: | - is the swimlane archived? - type: boolean - archivedAt: - description: | - latest archiving date of the swimlane - type: string - x-nullable: true - boardId: - description: | - the ID of the board the swimlane is attached to - type: string - createdAt: - description: | - creation date of the swimlane - type: string - sort: - description: | - the sort value of the swimlane - type: number - x-nullable: true - color: - description: | - the color of the swimlane - type: string - enum: - - white - - green - - yellow - - orange - - red - - purple - - blue - - sky - - lime - - pink - - black - - peachpuff - - crimson - - plum - - darkgreen - - slateblue - - magenta - - gold - - navy - - gray - - saddlebrown - - paleturquoise - - mistyrose - - indigo - x-nullable: true - updatedAt: - description: | - when was the swimlane last edited - type: string - x-nullable: true - modifiedAt: - type: string - type: - description: | - The type of swimlane - type: string - required: - - title - - archived - - boardId - - createdAt - - modifiedAt - - type - Users: - type: object - description: A User in wekan - properties: - username: - description: | - the username of the user - type: string - x-nullable: true - emails: - description: | - the list of emails attached to a user - type: array - items: - $ref: "#/definitions/UsersEmails" - x-nullable: true - createdAt: - description: | - creation date of the user - type: string - modifiedAt: - type: string - profile: - description: | - profile settings - $ref: "#/definitions/UsersProfile" - x-nullable: true - services: - description: | - services field of the user - type: object - x-nullable: true - heartbeat: - description: | - last time the user has been seen - type: string - x-nullable: true - isAdmin: - description: | - is the user an admin of the board? - type: boolean - x-nullable: true - createdThroughApi: - description: | - was the user created through the API? - type: boolean - x-nullable: true - loginDisabled: - description: | - loginDisabled field of the user - type: boolean - x-nullable: true - authenticationMethod: - description: | - authentication method of the user - type: string - sessionData: - description: | - profile settings - $ref: "#/definitions/UsersSessiondata" - x-nullable: true - importUsernames: - description: | - username for imported - type: array - items: - type: string - x-nullable: true - x-nullable: true - required: - - createdAt - - modifiedAt - - authenticationMethod - UsersEmails: - type: object - properties: - address: - description: | - The email address - type: string - verified: - description: | - Has the email been verified - type: boolean - required: - - address - - verified - UsersProfile: - type: object - properties: - avatarUrl: - description: | - URL of the avatar of the user - type: string - emailBuffer: - description: | - list of email buffers of the user - type: array - items: - type: string - x-nullable: true - fullname: - description: | - full name of the user - type: string - showDesktopDragHandles: - description: | - does the user want to hide system messages? - type: boolean - hideCheckedItems: - description: | - does the user want to hide checked checklist items? - type: boolean - hiddenSystemMessages: - description: | - does the user want to hide system messages? - type: boolean - hiddenMinicardLabelText: - description: | - does the user want to hide minicard label texts? - type: boolean - initials: - description: | - initials of the user - type: string - invitedBoards: - description: | - board IDs the user has been invited to - type: array - items: - type: string - x-nullable: true - language: - description: | - language of the user - type: string - notifications: - description: | - enabled notifications for the user - type: array - items: - $ref: "#/definitions/UsersProfileNotifications" - activity: - description: | - The id of the activity this notification references - type: string - read: - description: | - the date on which this notification was read - type: string - showCardsCountAt: - description: | - showCardCountAt field of the user - type: number - startDayOfWeek: - description: | - startDayOfWeek field of the user - type: number - starredBoards: - description: | - list of starred board IDs - type: array - items: - type: string - x-nullable: true - icode: - description: | - icode - type: string - boardView: - description: | - boardView field of the user - type: string - enum: - - board-view-swimlanes - - board-view-lists - - board-view-cal - listSortBy: - description: | - default sort list for user - type: string - enum: - - -modifiedat - - modifiedat - - -title - - title - - -sort - - sort - templatesBoardId: - description: | - Reference to the templates board - type: string - cardTemplatesSwimlaneId: - description: | - Reference to the card templates swimlane Id - type: string - listTemplatesSwimlaneId: - description: | - Reference to the list templates swimlane Id - type: string - boardTemplatesSwimlaneId: - description: | - Reference to the board templates swimlane Id - type: string - required: - - activity - - templatesBoardId - - cardTemplatesSwimlaneId - - listTemplatesSwimlaneId - - boardTemplatesSwimlaneId - UsersSessiondata: - type: object - properties: - totalHits: - description: | - Total hits from last search - type: number - lastHit: - description: | - last hit that was returned - type: number diff --git a/releases/rebuild-docs-install-deps.sh b/releases/rebuild-docs-install-deps.sh index 4f9a2a67c..51c2ef94f 100755 --- a/releases/rebuild-docs-install-deps.sh +++ b/releases/rebuild-docs-install-deps.sh @@ -1,21 +1,15 @@ -# Generate docs. +# Extract the OpenAPI specification. -# extract the OpenAPI specification +# Install dependencies. sudo apt-get install python3-pip sudo pip3 install -U setuptools wheel -sudo npm install -g api2html@0.3.3 -sudo npm install -g --unsafe-perm api2html@0.3.0 -sudo npm install -g --unsafe-perm mkdirp -mkdir -p ~/python -cd ~/python -git clone --depth 1 -b master https://github.com/Kronuz/esprima-python -cd ~/python/esprima-python -sudo python3 setup.py install --record files.txt +sudo npm install -g api2html cd ~/repos/wekan mkdir -p public/api + +# Generate docs. python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml # Copy docs to bundle #cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser/app/ -#cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser.legacy/app/ diff --git a/releases/release-bundle.sh b/releases/release-bundle.sh index 9f5bef3fe..b6de8d820 100755 --- a/releases/release-bundle.sh +++ b/releases/release-bundle.sh @@ -5,18 +5,13 @@ sudo apt-get -y install parallel cd ~/repos/wekan/.build zip -r wekan-$1.zip bundle -# Can not build ppc64le version because -# OpenPower Minicloud is having -# emergency maintenance. -# scp wekan-$1.zip o:/home/ubuntu/ -# echo "Bundle uploaded to x2/a/s/o." - { scp wekan-$1.zip x2:/var/snap/wekan/common/releases.wekan.team/ scp wekan-$1.zip a:/home/wekan/repos/ scp wekan-$1.zip s:/home/linux1/ + scp wekan-$1.zip o:/home/ubuntu/ } | parallel -k cd .. -echo "Bundle uploaded to x2/a/s." +echo "Bundle uploaded to x2/a/s/o." diff --git a/releases/translations/pull-translations.sh b/releases/translations/pull-translations.sh index 3dcb89015..9b642b43f 100755 --- a/releases/translations/pull-translations.sh +++ b/releases/translations/pull-translations.sh @@ -151,6 +151,9 @@ tx pull -f -l es_AR echo "Spanish (Chile):" tx pull -f -l es_CL +echo "Spanish (Latin America)": +tx pull -f -l es_419 + echo "Spanish (Mexico)": tx pull -f -l es_MX diff --git a/releases/up.sh b/releases/up.sh index 73ba43870..d437a9d1a 100755 --- a/releases/up.sh +++ b/releases/up.sh @@ -2,12 +2,8 @@ sudo apt-get -y install parallel -# Can not build ppc64le version because -# OpenPower Minicloud is having -# emergency maintenance. -# ~/repos/wekan/releases/up-o.sh $1 - { ~/repos/wekan/releases/up-a.sh $1 ~/repos/wekan/releases/up-s.sh $1 + ~/repos/wekan/releases/up-o.sh $1 } | parallel -k diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 4dbe36a9e..12afd155d 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 = 503, + appVersion = 508, # Increment this for every release. - appMarketingVersion = (defaultText = "5.03.0~2021-03-03"), + appMarketingVersion = (defaultText = "5.08.0~2021-03-26"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/server/notifications/outgoing.js b/server/notifications/outgoing.js index 5855e005e..1de7824e6 100644 --- a/server/notifications/outgoing.js +++ b/server/notifications/outgoing.js @@ -63,7 +63,7 @@ if (Meteor.isServer) { 'swimlaneId', 'customField', 'customFieldValue', - 'attachmentId' + 'attachmentId', ]; const responseFunc = data => { const paramCommentId = data.commentId; @@ -125,7 +125,7 @@ if (Meteor.isServer) { 'oldSwimlane', 'label', 'attachment', - 'attachmentId' + 'attachmentId', ].forEach(key => { if (quoteParams[key]) quoteParams[key] = `"${params[key]}"`; });