summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <unknown@example.com>2020-07-21 16:11:51 +0200
committerUnknown <unknown@example.com>2020-07-21 16:11:51 +0200
commitca8f2a70a4469c961e39354b14d41841a19ad6d7 (patch)
treea24489d015d1860fa5b6c757706d0b3aecff26f7
parent232bc746f4b2d09945fdfe68e3aa14ff6f4e79f6 (diff)
parentf6e9f5a5e8423fed9eaadaf196b46273eca241d0 (diff)
downloadwekan-ca8f2a70a4469c961e39354b14d41841a19ad6d7.tar.gz
wekan-ca8f2a70a4469c961e39354b14d41841a19ad6d7.tar.bz2
wekan-ca8f2a70a4469c961e39354b14d41841a19ad6d7.zip
Merge remote-tracking branch 'origin/master'
-rw-r--r--.devcontainer/Dockerfile2
-rw-r--r--.future-snap/broken-snapcraft.yaml2
-rw-r--r--.future-snap/snapcraft.yaml2
-rw-r--r--.meteor/packages1
-rw-r--r--.meteor/versions19
-rw-r--r--.travis.yml2
-rw-r--r--CHANGELOG.md197
-rw-r--r--Dockerfile2
-rw-r--r--Dockerfile.arm64v84
-rw-r--r--Stackerfile.yml2
-rw-r--r--client/components/activities/activities.jade56
-rw-r--r--client/components/activities/activities.js39
-rw-r--r--client/components/boards/boardHeader.jade20
-rw-r--r--client/components/boards/boardsList.js6
-rw-r--r--client/components/cards/cardDetails.jade10
-rw-r--r--client/components/cards/cardDetails.js22
-rw-r--r--client/components/cards/checklists.jade18
-rw-r--r--client/components/cards/checklists.js16
-rw-r--r--client/components/cards/checklists.styl16
-rw-r--r--client/components/cards/minicard.jade4
-rw-r--r--client/components/cards/minicard.styl9
-rw-r--r--client/components/rules/actions/cardActions.jade2
-rw-r--r--client/components/swimlanes/swimlaneHeader.jade3
-rw-r--r--client/components/swimlanes/swimlanes.js2
-rw-r--r--client/lib/utils.js18
-rw-r--r--docker-compose.yml6
-rwxr-xr-xfind-replace.sh5
-rw-r--r--i18n/ar.i18n.json3
-rw-r--r--i18n/bg.i18n.json3
-rw-r--r--i18n/br.i18n.json3
-rw-r--r--i18n/ca.i18n.json3
-rw-r--r--i18n/cs.i18n.json3
-rw-r--r--i18n/da.i18n.json3
-rw-r--r--i18n/de.i18n.json5
-rw-r--r--i18n/el.i18n.json3
-rw-r--r--i18n/en-GB.i18n.json3
-rw-r--r--i18n/en.i18n.json3
-rw-r--r--i18n/eo.i18n.json3
-rw-r--r--i18n/es-AR.i18n.json3
-rw-r--r--i18n/es-CL.i18n.json3
-rw-r--r--i18n/es.i18n.json3
-rw-r--r--i18n/eu.i18n.json3
-rw-r--r--i18n/fa.i18n.json19
-rw-r--r--i18n/fi.i18n.json3
-rw-r--r--i18n/fr.i18n.json3
-rw-r--r--i18n/gl.i18n.json3
-rw-r--r--i18n/he.i18n.json3
-rw-r--r--i18n/hi.i18n.json3
-rw-r--r--i18n/hu.i18n.json3
-rw-r--r--i18n/hy.i18n.json3
-rw-r--r--i18n/id.i18n.json353
-rw-r--r--i18n/ig.i18n.json3
-rw-r--r--i18n/it.i18n.json7
-rw-r--r--i18n/ja.i18n.json3
-rw-r--r--i18n/ka.i18n.json3
-rw-r--r--i18n/km.i18n.json3
-rw-r--r--i18n/ko.i18n.json3
-rw-r--r--i18n/lv.i18n.json3
-rw-r--r--i18n/mk.i18n.json3
-rw-r--r--i18n/mn.i18n.json3
-rw-r--r--i18n/nb.i18n.json3
-rw-r--r--i18n/nl.i18n.json7
-rw-r--r--i18n/oc.i18n.json3
-rw-r--r--i18n/pl.i18n.json3
-rw-r--r--i18n/pt-BR.i18n.json3
-rw-r--r--i18n/pt.i18n.json3
-rw-r--r--i18n/ro.i18n.json3
-rw-r--r--i18n/ru.i18n.json7
-rw-r--r--i18n/sl.i18n.json3
-rw-r--r--i18n/sr.i18n.json3
-rw-r--r--i18n/sv.i18n.json3
-rw-r--r--i18n/sw.i18n.json3
-rw-r--r--i18n/ta.i18n.json3
-rw-r--r--i18n/th.i18n.json3
-rw-r--r--i18n/tr.i18n.json51
-rw-r--r--i18n/uk.i18n.json3
-rw-r--r--i18n/vi.i18n.json3
-rw-r--r--i18n/zh-CN.i18n.json7
-rw-r--r--i18n/zh-HK.i18n.json3
-rw-r--r--i18n/zh-TW.i18n.json3
-rw-r--r--models/boards.js20
-rw-r--r--models/cards.js154
-rw-r--r--models/checklistItems.js10
-rw-r--r--models/customFields.js12
-rw-r--r--models/export.js4
-rw-r--r--models/exporter.js54
-rw-r--r--models/users.js64
-rw-r--r--openapi/generate_openapi.py17
-rw-r--r--openshift/wekan.yml18
-rw-r--r--package-lock.json1164
-rw-r--r--package.json37
-rwxr-xr-xpackages/markdown/markdown.js9
-rw-r--r--packages/markdown/marked/package-lock.json7
-rw-r--r--packages/markdown/marked/package.json3
-rwxr-xr-xpackages/markdown/package.js18
-rw-r--r--packages/markdown/src/checkNpmVersions.js5
-rwxr-xr-xpackages/markdown/src/markdown.js9
-rwxr-xr-xpackages/markdown/src/template-integration.js18
-rwxr-xr-xpackages/markdown/template-integration.js16
-rw-r--r--packages/wekan-accounts-cas/cas_server.js4
-rw-r--r--public/Square150x150Logo.scale-100.pngbin0 -> 13069 bytes
-rw-r--r--public/Square44x44Logo.scale-100.pngbin0 -> 9241 bytes
-rw-r--r--public/StoreLogo.scale-100.pngbin0 -> 9770 bytes
-rw-r--r--public/api/wekan.html1580
-rw-r--r--public/api/wekan.yml519
-rw-r--r--public/site.webmanifest15
-rwxr-xr-xrebuild-wekan.sh18
-rwxr-xr-xreleases/release-sandstorm.sh2
-rw-r--r--sandstorm-pkgdef.capnp4
-rw-r--r--server/migrations.js26
-rw-r--r--snapcraft.yaml2
-rwxr-xr-xstacksmith/user-scripts/build.sh2
-rw-r--r--[-rwxr-xr-x]start-wekan.bat19
-rw-r--r--torodb-postgresql/docker-compose.yml2
114 files changed, 3532 insertions, 1376 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 2270e43d..7d7908b6 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
- NODE_VERSION=12.18.0 \
+ NODE_VERSION=12.18.2 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
diff --git a/.future-snap/broken-snapcraft.yaml b/.future-snap/broken-snapcraft.yaml
index eab2bbaf..b2290ba6 100644
--- a/.future-snap/broken-snapcraft.yaml
+++ b/.future-snap/broken-snapcraft.yaml
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.18.0
+ node-engine: 12.18.2
node-packages:
- node-gyp
- node-pre-gyp
diff --git a/.future-snap/snapcraft.yaml b/.future-snap/snapcraft.yaml
index 43430791..e2582058 100644
--- a/.future-snap/snapcraft.yaml
+++ b/.future-snap/snapcraft.yaml
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.18.0
+ node-engine: 12.18.2
node-packages:
- node-gyp
- node-pre-gyp
diff --git a/.meteor/packages b/.meteor/packages
index ba278f34..cb115111 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -98,3 +98,4 @@ percolate:synced-cron
easylogic:summernote
cfs:filesystem
ostrio:cookies
+tmeasday:check-npm-versions
diff --git a/.meteor/versions b/.meteor/versions
index 127079d4..1d8b71bc 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -1,7 +1,7 @@
3stack:presence@1.1.2
accounts-base@1.6.0
accounts-oauth@1.2.0
-accounts-password@1.6.0
+accounts-password@1.6.1
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -52,7 +52,7 @@ ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
-ddp-server@2.3.1
+ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.2
@@ -91,7 +91,7 @@ logging@1.1.20
lucasantoniassi:accounts-lockout@1.0.0
matb33:collection-hooks@0.9.1
matteodem:easy-search@1.6.4
-mdg:meteor-apm-agent@3.2.5
+mdg:meteor-apm-agent@3.2.6
mdg:validation-error@0.5.1
meteor@1.9.3
meteor-base@1.4.0
@@ -101,7 +101,7 @@ meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
-minifier-css@1.5.0
+minifier-css@1.5.2
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
minimongo@1.6.0
@@ -109,7 +109,7 @@ mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.15.0
modules-runtime@0.12.0
-momentjs:moment@2.26.0
+momentjs:moment@2.27.0
mongo@1.10.0
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
@@ -162,14 +162,14 @@ simple:json-routes@2.1.0
simple:rest-accounts-password@1.1.2
simple:rest-bearer-token-parser@1.0.1
simple:rest-json-error-handler@1.0.1
-socket-stream-client@0.3.0
+socket-stream-client@0.3.1
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-css@1.6.0
standard-minifier-js@2.6.0
-staringatlights:fast-render@3.2.0
+staringatlights:fast-render@3.3.0
staringatlights:inject-data@2.3.0
tap:i18n@1.8.2
templates:tabs@2.3.0
@@ -177,11 +177,12 @@ templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
+tmeasday:check-npm-versions@0.3.2
tracker@1.2.0
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
-url@1.3.0
+url@1.3.1
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
@@ -191,7 +192,7 @@ webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
-wekan-markdown@1.0.8
+wekan-markdown@1.0.9
wekan-oidc@1.0.12
wekan-scrollbar@3.1.3
yasaricli:slugify@0.0.7
diff --git a/.travis.yml b/.travis.yml
index f55c7bab..17e0634b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
- TRAVIS_NODE_VERSION: 12.18.0
+ TRAVIS_NODE_VERSION: 12.18.2
TRAVIS_NPM_VERSION: latest
before_install:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f2e1d6b..472ec032 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,200 @@
+# v4.20 2020-07-20 Wekan release
+
+This release adds the following updates:
+
+- Update dependencies [Part1](https://github.com/wekan/wekan/commit/419615bed43b6e9de4030193c47137a066b85bde) and
+ [Part2](https://github.com/wekan/wekan/commit/116372e11e09ce9b8376a8694553add595e02815).
+ Thanks to developers of dependencies and xet7.
+
+and fixes the following bugs:
+
+- [Change slug on card rename](https://github.com/wekan/wekan/pull/3214).
+ Thanks to NicoP-S.
+- [Add missing Wekan logo sizes for PWAs and Apps](https://github.com/wekan/wekan/commit/de28bf8569a7373a5d6fd60a4f413e76673adc26).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.19 2020-07-18 Wekan release
+
+This release adds the following features:
+
+- [Add support for EdgeHTML browser (Microsoft Legacy Edge, not based on Chromium) by removing incompatible csv-stringify package.
+ CSV export will be fixed later](https://github.com/wekan/wekan/commit/b9a4b0b51d3692fcbb715b1afc875f21cd204ae5).
+ Thanks to xet7.
+
+and adds the following updates:
+
+- Update dependencies [Part1](https://github.com/wekan/wekan/commit/23ee93ca3d4ea161a93627a8e28e1ce93eea1bab),
+ [Part2](https://github.com/wekan/wekan/commit/6646d48ccbaf04c4935de35fe037eff3bd7fd469),
+ [Part3](https://github.com/wekan/wekan/commit/87cb4598f745a362aaac06b8b457198c40aaf61e),
+ [Part4](https://github.com/wekan/wekan/commit/f57ed2990f5c6e1af10d270b24c7092805711afe).
+ Thanks to developers of dependencies and xet7.
+
+and fixes the following bugs:
+
+- [Checklist Item PUT API: boolean cast on isFinished](https://github.com/wekan/wekan/pull/3211).
+ Thanks to Robert-Lebedeu.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.18 2020-07-10 Wekan release
+
+This release adds the following updates:
+
+- [Upgrade to Node 12.18.2](https://github.com/wekan/wekan/commit/6e4407ed9cb3c95a99e0dbbb4383324dd57d6be1).
+ Thanks to Node developers and xet7.
+- [Update dependencies](https://github.com/wekan/wekan/commit/05cd1247ab935f586d747743bb9cd79d23e0b1e6).
+ Thanks to dependency developers and xet7.
+
+and fixes the following bugs:
+
+- [All logged in users are now allowed to reorder boards by dragging at All Boards page and Public Boards page](https://github.com/wekan/wekan/commit/ba24c4e40c728d030504ed21ccf79247d0449e1b).
+ Thanks to xet7.
+- [Fix running meteor for dev in rebuild-wekan.sh](https://github.com/wekan/wekan/commit/a77cf56fbdaf0b74d8b97aa41b0a88fee85e3ee1).
+ Thanks to xet7.
+- [Fix start-wekan.bat](https://github.com/wekan/wekan/commit/0be1c00fccef8797a1b3612593a6623a9b465e0d) and
+ [Windows bundle install](https://github.com/wekan/wekan/wiki/Windows#a-bundle-with-windows-nodemongodb).
+ Thanks to xet7.
+- [Fix typo](https://github.com/wekan/wekan/pull/3197).
+ Thanks to Lua00808.
+- [Fix creating user misbehaving in some special case](https://github.com/wekan/wekan/pull/3206).
+ Thanks to salleman33.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.17 2020-06-18 Wekan release
+
+This release fixes the following bugs:
+
+- [Revert finding correct user changes that were made at Wekan v4.16](https://github.com/wekan/wekan/commit/5eb378452761ad1d6d67a491316007fdf6dfd689).
+ Thanks to xet7.
+- [Fix activities view on mobile devices](https://github.com/wekan/wekan/pull/3183).
+ Thanks to marc1006.
+- [Add back checks about can user export CSV/TSV](https://github.com/wekan/wekan/commit/afe00d02cddf016a3ccc1ed9a98a7f10d3339f26).
+ Thanks to marc1006 and xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.16 2020-06-17 Wekan release
+
+This release adds the following features:
+
+- [Add find-replace.sh script for development](https://github.com/wekan/wekan/commit/bda49ed60947e0438206b2f55119f5c5c132c734).
+ Thanks to xet7.
+
+and adds the following updates:
+
+- [Upgrade to Node 12.18.1](https://github.com/wekan/wekan/commit/b11ae567c9b2d16a115ea4f3f7f88e67d076f326).
+ Thanks to Node developers and xet7.
+
+and fixes the following bugs:
+
+- [OpenAPI: Fix jsdoc/operation matching](https://github.com/wekan/wekan/pull/3171).
+ Thanks to bentiss.
+- Fix finding corrent user [Part1](https://github.com/wekan/wekan/pull/3180) and
+ [Part2](https://github.com/wekan/wekan/commit/f245b6b7faa29b4f276527daca48c305fe9689c1).
+ Thanks to salleman33 and xet7.
+- [Try to prevent errors on CSV/TSV export](https://github.com/wekan/wekan/commit/b00db983c8506e0cdc9968e452c3c8025fc10776).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.15 2020-06-16 Wekan release
+
+This release fixes the following bugs:
+
+- Fix lint errors [Part1](https://github.com/wekan/wekan/commit/f1587753cb0bba38e4b1df2e0300d3dc2826da72) and
+ [Part2](https://github.com/wekan/wekan/commit/e6629779f77676eadfe4465c407f0bee0ec64061).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.14 2020-06-16 Wekan release
+
+This release adds the following new features:
+
+- [Add user option to hide finished checklist items. Strikethrough checked items](https://github.com/wekan/wekan/pull/3167).
+ Thanks to marc1006.
+- [Added the possibility to start a vote via API edit_card. And added some better visibility to see what was voted](https://github.com/wekan/wekan/pull/3170).
+ Thanks to NicoP-S.
+
+and adds the following updates:
+
+- [Update dependencies](https://github.com/wekan/wekan/commit/8f34cdc279602e97085e0a504f7716495349f83c).
+ Thanks to xet7.
+
+and fixes the following bugs:
+
+- [Fix infinite scrolling for activities](https://github.com/wekan/wekan/pull/3168).
+ Thanks to marc1006.
+- [Remove top and bottom margin for hidden checklist items](https://github.com/wekan/wekan/pull/3172).
+ Thanks to marc1006.
+- [Alignment and spacing of minicard labels](https://github.com/wekan/wekan/pull/3174).
+ Thanks to hgustafsson.
+- [Fix: Unable to delete a custom field in a board](https://github.com/wekan/wekan/commit/3b2b1087447bc8613baa8254bfec55e3d485bdc4).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.13 2020-06-09 Wekan release
+
+This release adds the following updates:
+
+- [OpenShift template updates](https://github.com/wekan/wekan/pull/3158), Thanks to jimmyjones2:
+ 1) Remove status fields (this is created by Kubernetes at run time)
+ 2) The latest MongoDB by default available with OpenShift is 3.6
+ 3) Change MongoDB service name to contain wekan to avoid potentially conflicting with other mongodb instances in the same project.
+
+and fixes the following bugs:
+
+- [Copy the labels only if the target board is different](https://github.com/wekan/wekan/pull/3154).
+ Thanks to marc1006.
+- [Fix condition whether a card is in list](https://github.com/wekan/wekan/pull/3165).
+ Thanks to marc1006.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v4.12 2020-06-08 Wekan release
+
+This release fixes the following CRITICAL SECURITY VULNERABILITIES:
+
+- Fix XSS bug reported 2020-05-24 by [swsjona](https://twitter.com/swsjona):
+ [Part 1](https://github.com/wekan/wekan/commit/1f85b25549b50602380f1745f19e5fe44fe36d6f),
+ [Part 2](https://github.com/wekan/wekan/commit/fb44df981581354bf23a6928427ad2bf73c4550f),
+ [Part 3](https://github.com/wekan/wekan/commit/99f68f36b028d6c75acf2e5b83585b1acee65f97),
+ [Part 4](https://github.com/wekan/wekan/commit/8a622ec7c3043bf8f34399ef34563e6a9a19dcd8).
+ Logged in users could run javascript in input fields. This was partially fixed at v3.85,
+ but at some fields XSS was still possible. This affects at least Wekan versions v3.12-v4.12.
+ After this fix, Javascript in input fields is not executed.
+ Thanks to swsjona, marc1006 and xet7.
+
+and adds the following new features:
+
+- Change default view to Swimlanes:
+ [Part 1](https://github.com/wekan/wekan/commit/8c3322f9a93c321e8a2cc5cfcd4b1d6316a5fb7c),
+ [Part 2](https://github.com/wekan/wekan/commit/61e682470cdaef42cce2d74b41fb752cfc61848b),
+ [Part 3 Change dropdown order to Swimlanes/Lists/Calendar](https://github.com/wekan/wekan/commit/7f6d500cbec15496ae357b05b9df3f10e51ed1f1),
+ [Part 4.1. Public board default view to Swimlane. Part 4.2. When changing Public board
+ view (sets view cookie), also reload page so view is changed
+ immediately](https://github.com/wekan/wekan/commit/39519d1cc944c567837be0f88ab4a037e2144c61).
+ Thanks to xet7.
+- [Use markdown in Swimlane titles](https://github.com/wekan/wekan/commit/6b22f96313354b45b851b93c25aa392bbe346bdb).
+ Thanks to xet7.
+
+and adds the following updates:
+
+- [Update minifier-css](https://github.com/wekan/wekan/commit/cb1e91fee83eaad1e926c288c0abfc1e4f2a8bd4).
+ Thanks to xet7.
+
+and fixes the following bugs:
+
+- Fix indent [Part1](https://github.com/wekan/wekan/commit/415e94d187ffcb9a4afaecc5c6960a50a87ca7eb),
+ [Part 2](https://github.com/wekan/wekan/commit/96494bacf550cde65598e6d59199517f311aa33d).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
# v4.11 2020-06-04 Wekan release
This release adds the following new platforms:
diff --git a/Dockerfile b/Dockerfile
index e0053701..03b85dd0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
- NODE_VERSION=v12.18.0 \
+ NODE_VERSION=v12.18.2 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8
index ae6dd5f6..b25f2bb4 100644
--- a/Dockerfile.arm64v8
+++ b/Dockerfile.arm64v8
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
- NODE_VERSION=v12.18.0 \
+ NODE_VERSION=v12.18.2 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
- NODE_VERSION=v12.18.0 \
+ NODE_VERSION=v12.18.2 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
diff --git a/Stackerfile.yml b/Stackerfile.yml
index 61c3db38..2e19adc1 100644
--- a/Stackerfile.yml
+++ b/Stackerfile.yml
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v4.11.0"
+appVersion: "v4.20.0"
files:
userUploads:
- README.md
diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade
index c86936a0..77acd6a3 100644
--- a/client/components/activities/activities.jade
+++ b/client/components/activities/activities.jade
@@ -34,38 +34,38 @@ template(name="activity")
//- board activity ------------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createBoard')
- | {{_ 'activity-created' boardLabel}}.
+ | {{{_ 'activity-created' boardLabelLink}}}.
if($eq activity.activityType 'importBoard')
- | {{{_ 'activity-imported-board' boardLabel sourceLink}}}.
+ | {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}.
if($eq activity.activityType 'addBoardMember')
- | {{{_ 'activity-added' memberLink boardLabel}}}.
+ | {{{_ 'activity-added' memberLink boardLabelLink}}}.
if($eq activity.activityType 'removeBoardMember')
- | {{{_ 'activity-excluded' memberLink boardLabel}}}.
+ | {{{_ 'activity-excluded' memberLink boardLabelLink}}}.
//- card activity -------------------------------------------------------
if($eq activity.activityType 'createCard')
if($eq mode 'card')
- | {{{_ 'activity-added' cardLabel activity.listName}}}.
+ | {{{_ 'activity-added' cardLabelLink (sanitize activity.listName)}}}.
else
- | {{{_ 'activity-added' cardLabel boardLabel}}}.
+ | {{{_ 'activity-added' cardLabelLink boardLabelLink}}}.
if($eq activity.activityType 'importCard')
- | {{{_ 'activity-imported' cardLink boardLabel sourceLink}}}.
+ | {{{_ 'activity-imported' cardLink boardLabelLink sourceLink}}}.
if($eq activity.activityType 'moveCard')
- | {{{_ 'activity-moved' cardLabel activity.oldList.title activity.list.title}}}.
+ | {{{_ 'activity-moved' cardLabelLink (sanitize activity.oldList.title) (sanitize activity.list.title)}}}.
if($eq activity.activityType 'moveCardBoard')
- | {{{_ 'activity-moved' cardLink activity.oldBoardName activity.boardName}}}.
+ | {{{_ 'activity-moved' cardLink (sanitize activity.oldBoardName) (sanitize activity.boardName)}}}.
if($eq activity.activityType 'archivedCard')
| {{{_ 'activity-archived' cardLink}}}.
if($eq activity.activityType 'restoredCard')
- | {{{_ 'activity-sent' cardLink boardLabel}}}.
+ | {{{_ 'activity-sent' cardLink boardLabelLink}}}.
//- checklist activity --------------------------------------------------
if($eq activity.activityType 'addChecklist')
@@ -83,25 +83,25 @@ template(name="activity")
| {{{_ 'activity-checklist-removed' cardLink}}}.
if($eq activity.activityType 'completeChecklist')
- | {{{_ 'activity-checklist-completed' activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-checklist-completed' (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'uncompleteChecklist')
- | {{{_ 'activity-checklist-uncompleted' activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-checklist-uncompleted' (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'checkedItem')
- | {{{_ 'activity-checked-item' checkItem activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-checked-item' (sanitize checkItem) (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'uncheckedItem')
- | {{{_ 'activity-unchecked-item' checkItem activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-unchecked-item' (sanitize checkItem) (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'addChecklistItem')
- | {{{_ 'activity-checklist-item-added' activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-checklist-item-added' (sanitize activity.checklist.title) cardLink}}}.
.activity-checklist(href="{{ activity.card.absoluteUrl }}")
+viewer
= activity.checklistItem.title
if($eq activity.activityType 'removedChecklistItem')
- | {{{_ 'activity-checklist-item-removed' activity.checklist.title cardLink}}}.
+ | {{{_ 'activity-checklist-item-removed' (sanitize activity.checklist.title) cardLink}}}.
//- comment activity ----------------------------------------------------
if($eq mode 'card')
@@ -143,31 +143,31 @@ template(name="activity")
| {{_ 'activity-customfield-created' customField}}.
if($eq activity.activityType 'setCustomField')
- | {{{_ 'activity-set-customfield' lastCustomField lastCustomFieldValue cardLink}}}.
+ | {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}.
if($eq activity.activityType 'unsetCustomField')
- | {{{_ 'activity-unset-customfield' lastCustomField cardLink}}}.
+ | {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}.
//- label activity ------------------------------------------------------
if($eq activity.activityType 'addedLabel')
- | {{{_ 'activity-added-label' lastLabel cardLink}}}.
+ | {{{_ 'activity-added-label' (sanitize lastLabel) cardLink}}}.
if($eq activity.activityType 'removedLabel')
- | {{{_ 'activity-removed-label' lastLabel cardLink}}}.
+ | {{{_ 'activity-removed-label' (sanitize lastLabel) cardLink}}}.
//- list activity -------------------------------------------------------
if($neq mode 'card')
if($eq activity.activityType 'createList')
- | {{{_ 'activity-added' listLabel boardLabel}}}.
+ | {{{_ 'activity-added' (sanitize listLabel) boardLabelLink}}}.
if($eq activity.activityType 'importList')
- | {{{_ 'activity-imported' listLabel boardLabel sourceLink}}}.
+ | {{{_ 'activity-imported' (sanitize listLabel) boardLabelLink sourceLink}}}.
if($eq activity.activityType 'removeList')
- | {{{_ 'activity-removed' activity.title boardLabel}}}.
+ | {{{_ 'activity-removed' (sanitize activity.title) boardLabelLink}}}.
if($eq activity.activityType 'archivedList')
- | {{_ 'activity-archived' listLabel}}.
+ | {{_ 'activity-archived' (sanitize listLabel)}}.
//- member activity ----------------------------------------------------
if($eq activity.activityType 'joinMember')
@@ -185,15 +185,15 @@ template(name="activity")
//- swimlane activity --------------------------------------------------
if($neq mode 'card')
if($eq activity.activityType 'createSwimlane')
- | {{{_ 'activity-added' activity.swimlane.title boardLabel}}}.
+ | {{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}.
if($eq activity.activityType 'archivedSwimlane')
- | {{_ 'activity-archived' activity.swimlane.title}}.
+ | {{_ 'activity-archived' (sanitize activity.swimlane.title)}}.
//- I don't understand this part ----------------------------------------
if(currentData.timeKey)
- | {{{_ activity.activityType }}}
+ | {{_ activity.activityType }}
= ' '
i(title=currentData.timeValue).activity-meta {{ moment currentData.timeValue 'LLL' }}
if (currentData.timeOldValue)
@@ -203,6 +203,6 @@ template(name="activity")
i(title=currentData.timeOldValue).activity-meta {{ moment currentData.timeOldValue 'LLL' }}
= ' @'
else if(currentData.timeValue)
- | {{{_ activity.activityType currentData.timeValue}}}
+ | {{_ activity.activityType currentData.timeValue}}
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js
index 5d356f6e..83843d1d 100644
--- a/client/components/activities/activities.js
+++ b/client/components/activities/activities.js
@@ -1,3 +1,5 @@
+import sanitizeXss from 'xss';
+
const activitiesPerPage = 20;
BlazeComponent.extendComponent({
@@ -5,8 +7,9 @@ BlazeComponent.extendComponent({
// XXX Should we use ReactiveNumber?
this.page = new ReactiveVar(1);
this.loadNextPageLocked = false;
- const sidebar = this.parentComponent(); // XXX for some reason not working
- sidebar.callFirstWith(null, 'resetNextPeak');
+ // TODO is sidebar always available? E.g. on small screens/mobile devices
+ const sidebar = Sidebar;
+ sidebar && sidebar.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
let mode = this.data().mode;
const capitalizedMode = Utils.capitalize(mode);
@@ -27,6 +30,8 @@ BlazeComponent.extendComponent({
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
this.loadNextPageLocked = false;
+ // TODO the guard can be removed as soon as the TODO above is resolved
+ if (!sidebar) return;
// If the sibear peak hasn't increased, that mean that there are no more
// activities, and we can stop calling new subscriptions.
// XXX This is hacky! We need to know excatly and reactively how many
@@ -41,23 +46,22 @@ BlazeComponent.extendComponent({
});
});
},
-}).register('activities');
-
-BlazeComponent.extendComponent({
loadNextPage() {
if (this.loadNextPageLocked === false) {
this.page.set(this.page.get() + 1);
this.loadNextPageLocked = true;
}
},
+}).register('activities');
+BlazeComponent.extendComponent({
checkItem() {
const checkItemId = this.currentData().activity.checklistItemId;
const checkItem = ChecklistItems.findOne({ _id: checkItemId });
return checkItem && checkItem.title;
},
- boardLabel() {
+ boardLabelLink() {
const data = this.currentData();
if (data.mode !== 'board') {
return createBoardLink(data.activity.board(), data.activity.listName);
@@ -65,10 +69,10 @@ BlazeComponent.extendComponent({
return TAPi18n.__('this-board');
},
- cardLabel() {
+ cardLabelLink() {
const data = this.currentData();
if (data.mode !== 'card') {
- return createCardLink(this.currentData().activity.card());
+ return createCardLink(data.activity.card());
}
return TAPi18n.__('this-card');
},
@@ -134,11 +138,11 @@ BlazeComponent.extendComponent({
{
href: source.url,
},
- source.system,
+ sanitizeXss(source.system),
),
);
} else {
- return source.system;
+ return sanitizeXss(source.system);
}
}
return null;
@@ -162,10 +166,10 @@ BlazeComponent.extendComponent({
href: attachment.url({ download: true }),
target: '_blank',
},
- attachment.name(),
+ sanitizeXss(attachment.name()),
),
)) ||
- this.currentData().activity.attachmentName
+ sanitizeXss(this.currentData().activity.attachmentName)
);
},
@@ -202,7 +206,14 @@ BlazeComponent.extendComponent({
},
}).register('activity');
+Template.activity.helpers({
+ sanitize(value) {
+ return sanitizeXss(value);
+ },
+});
+
function createCardLink(card) {
+ if (!card) return '';
return (
card &&
Blaze.toHTML(
@@ -211,7 +222,7 @@ function createCardLink(card) {
href: card.absoluteUrl(),
class: 'action-card',
},
- card.title,
+ sanitizeXss(card.title),
),
)
);
@@ -228,7 +239,7 @@ function createBoardLink(board, list) {
href: board.absoluteUrl(),
class: 'action-board',
},
- text,
+ sanitizeXss(text),
),
)
);
diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade
index 4c0edac4..1daf0618 100644
--- a/client/components/boards/boardHeader.jade
+++ b/client/components/boards/boardHeader.jade
@@ -99,13 +99,13 @@ template(name="boardHeaderBar")
a.board-header-btn.js-toggle-board-view(
title="{{_ 'board-view'}}")
i.fa.fa-caret-down
- if $eq boardView 'board-view-lists'
- i.fa.fa-trello
if $eq boardView 'board-view-swimlanes'
i.fa.fa-th-large
+ if $eq boardView 'board-view-lists'
+ i.fa.fa-trello
if $eq boardView 'board-view-cal'
i.fa.fa-calendar
- span {{#if boardView}}{{_ boardView}}{{else}}{{_ 'board-view-lists'}}{{/if}}
+ span {{#if boardView}}{{_ boardView}}{{else}}{{_ 'board-view-swimlanes'}}{{/if}}
if canModifyBoard
a.board-header-btn.js-multiselection-activate(
@@ -173,13 +173,6 @@ template(name="boardChangeWatchPopup")
template(name="boardChangeViewPopup")
ul.pop-over-list
li
- with "board-view-lists"
- a.js-open-lists-view
- i.fa.fa-trello.colorful
- | {{_ 'board-view-lists'}}
- if $eq Utils.boardView "board-view-lists"
- i.fa.fa-check
- li
with "board-view-swimlanes"
a.js-open-swimlanes-view
i.fa.fa-th-large.colorful
@@ -187,6 +180,13 @@ template(name="boardChangeViewPopup")
if $eq Utils.boardView "board-view-swimlanes"
i.fa.fa-check
li
+ with "board-view-lists"
+ a.js-open-lists-view
+ i.fa.fa-trello.colorful
+ | {{_ 'board-view-lists'}}
+ if $eq Utils.boardView "board-view-lists"
+ i.fa.fa-check
+ li
with "board-view-cal"
a.js-open-cal-view
i.fa.fa-calendar.colorful
diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js
index eee119ea..145f6789 100644
--- a/client/components/boards/boardsList.js
+++ b/client/components/boards/boardsList.js
@@ -25,10 +25,6 @@ BlazeComponent.extendComponent({
},
onRendered() {
- function userIsAllowedToMove() {
- return Meteor.user();
- }
-
const itemsSelector = '.js-board:not(.placeholder)';
const $boards = this.$('.js-boards');
@@ -77,8 +73,6 @@ BlazeComponent.extendComponent({
handle: '.board-handle',
});
}
-
- $boards.sortable('option', 'disabled', !userIsAllowedToMove());
});
},
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index 2aa77627..dabee971 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -220,8 +220,14 @@ template(name="cardDetails")
+viewer
= getVoteQuestion
if showVotingButtons
- button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}") {{_ 'vote-for-it'}}
- button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}") {{_ 'vote-against'}}
+ button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}")
+ if voteState
+ i.fa.fa-thumbs-up
+ | {{_ 'vote-for-it'}}
+ button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}")
+ if $eq voteState false
+ i.fa.fa-thumbs-down
+ | {{_ 'vote-against'}}
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index 11e010d4..a91d9b6e 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -38,22 +38,6 @@ BlazeComponent.extendComponent({
Meteor.subscribe('unsaved-edits');
},
- voteState() {
- const card = this.currentData();
- const userId = Meteor.userId();
- let state;
- if (card.vote) {
- if (card.vote.positive) {
- state = _.contains(card.vote.positive, userId);
- if (state === true) return true;
- }
- if (card.vote.negative) {
- state = _.contains(card.vote.negative, userId);
- if (state === true) return false;
- }
- }
- return null;
- },
isWatching() {
const card = this.currentData();
return card.findWatcher(Meteor.userId());
@@ -412,9 +396,9 @@ BlazeComponent.extendComponent({
const forIt = $(e.target).hasClass('js-vote-positive');
let newState = null;
if (
- this.voteState() === null ||
- (this.voteState() === false && forIt) ||
- (this.voteState() === true && !forIt)
+ this.data().voteState() === null ||
+ (this.data().voteState() === false && forIt) ||
+ (this.data().voteState() === true && !forIt)
) {
newState = forIt;
}
diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade
index 1b1e088a..25aa11b9 100644
--- a/client/components/cards/checklists.jade
+++ b/client/components/cards/checklists.jade
@@ -1,7 +1,17 @@
template(name="checklists")
- h3
- i.fa.fa-check
- | {{_ 'checklists'}}
+ .checklists-title
+ h3
+ i.fa.fa-check
+ | {{_ 'checklists'}}
+ if currentUser.isBoardMember
+ .material-toggle-switch
+ span.toggle-switch-title {{_ 'hide-checked-items'}}
+ if hideCheckedItems
+ input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked")
+ else
+ input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton")
+ label.toggle-label(for="toggleHideCheckedItemsButton")
+
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+checklistDeleteDialog(checklist = checklistToDelete)
@@ -86,7 +96,7 @@ template(name="checklistItems")
| {{_ 'add-checklist-item'}}...
template(name='checklistItemDetail')
- .js-checklist-item.checklist-item
+ .js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if hideCheckedItems}} invisible{{/if}}{{/if}}")
if canModifyCard
.check-box-container
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js
index 29573d2b..17faa773 100644
--- a/client/components/cards/checklists.js
+++ b/client/components/cards/checklists.js
@@ -193,6 +193,9 @@ BlazeComponent.extendComponent({
}
this.toggleDeleteDialog.set(!this.toggleDeleteDialog.get());
},
+ 'click #toggleHideCheckedItemsButton'() {
+ Meteor.call('toggleHideCheckedItems');
+ },
};
return [
@@ -211,6 +214,14 @@ BlazeComponent.extendComponent({
},
}).register('checklists');
+Template.checklists.helpers({
+ hideCheckedItems() {
+ const currentUser = Meteor.user();
+ if (currentUser) return currentUser.hasHideCheckedItems();
+ return false;
+ },
+});
+
Template.checklistDeleteDialog.onCreated(() => {
const $cardDetails = this.$('.card-details');
this.scrollState = {
@@ -246,6 +257,11 @@ Template.checklistItemDetail.helpers({
!Meteor.user().isWorker()
);
},
+ hideCheckedItems() {
+ const user = Meteor.user();
+ if (user) return user.hasHideCheckedItems();
+ return false;
+ },
});
BlazeComponent.extendComponent({
diff --git a/client/components/cards/checklists.styl b/client/components/cards/checklists.styl
index 0a6d688b..e9b0fcd8 100644
--- a/client/components/cards/checklists.styl
+++ b/client/components/cards/checklists.styl
@@ -16,6 +16,10 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
&:hover
color: inherit
+.checklists-title
+ display: flex
+ justify-content: space-between
+
.checklist-title
.checkbox
float: left
@@ -99,6 +103,17 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
margin-top: 3px
display: flex
background: darken(white, 3%)
+ opacity: 1
+ transition: height 0ms 400ms, opacity 400ms 0ms
+ height: auto
+ overflow: hidden
+
+ &.is-checked.invisible
+ opacity: 0
+ height: 0
+ transition: height 0ms 0ms, opacity 600ms 0ms
+ margin-top: 0
+ margin-bottom: 0
&.placeholder
background: darken(white, 20%)
@@ -128,6 +143,7 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
&.is-checked
color: #8c8c8c
font-style: italic
+ text-decoration: line-through
& .viewer
p
margin-bottom: 2px
diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade
index 8afe1976..03511e0a 100644
--- a/client/components/cards/minicard.jade
+++ b/client/components/cards/minicard.jade
@@ -106,9 +106,9 @@ template(name="minicard")
span.badge-icon.fa.fa-align-left
if getVoteQuestion
.badge.badge-state-image-only(title=getVoteQuestion)
- span.badge-icon.fa.fa-thumbs-up
+ span.badge-icon.fa.fa-thumbs-up(class="{{#if voteState}}text-green{{/if}}")
span.badge-text {{ voteCountPositive }}
- span.badge-icon.fa.fa-thumbs-down
+ span.badge-icon.fa.fa-thumbs-down(class="{{#if $eq voteState false}}text-red{{/if}}")
span.badge-text {{ voteCountNegative }}
if attachments.count
.badge
diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl
index 7d72a588..1f40e883 100644
--- a/client/components/cards/minicard.styl
+++ b/client/components/cards/minicard.styl
@@ -87,7 +87,9 @@
width: 11px
height: @width
border-radius: 2px
- margin-left: 3px
+ margin-right: 3px
+ margin-bottom: 3px
+
.minicard-custom-fields
display:block;
.minicard-custom-field
@@ -299,3 +301,8 @@ minicard-color(background, color...)
.minicard-indigo
minicard-color(#4b0082, #ffffff) //White text for better visibility
+
+.text-red
+ color:red
+.text-green
+ color:green
diff --git a/client/components/rules/actions/cardActions.jade b/client/components/rules/actions/cardActions.jade
index c10c4b2b..0840283b 100644
--- a/client/components/rules/actions/cardActions.jade
+++ b/client/components/rules/actions/cardActions.jade
@@ -75,7 +75,7 @@ template(name="cardActions")
button.trigger-button.trigger-button-color.js-show-color-palette(
id="color-action"
class="card-details-{{cardColorButton}}")
- | {{{_ cardColorButtonText }}}
+ | {{_ cardColorButtonText }}
div.trigger-button.js-set-color-action.js-goto-rules
i.fa.fa-plus
diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade
index 72a7f054..9228bf75 100644
--- a/client/components/swimlanes/swimlaneHeader.jade
+++ b/client/components/swimlanes/swimlaneHeader.jade
@@ -11,7 +11,8 @@ template(name="swimlaneHeader")
template(name="swimlaneFixedHeader")
.swimlane-header(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
- = title
+ +viewer
+ = title
.swimlane-header-menu
unless currentUser.isCommentOnly
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js
index 753fa88b..1fc97a89 100644
--- a/client/components/swimlanes/swimlanes.js
+++ b/client/components/swimlanes/swimlanes.js
@@ -23,8 +23,8 @@ function currentCardIsInThisList(listId, swimlaneId) {
currentCard.listId === listId &&
currentCard.swimlaneId === swimlaneId
);
- // Default view: board-view-lists
else return currentCard && currentCard.listId === listId;
+
// https://github.com/wekan/wekan/issues/1623
// https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de
// TODO: In public board, if you would like to switch between List/Swimlane view, you could
diff --git a/client/lib/utils.js b/client/lib/utils.js
index c921fddc..754214c0 100644
--- a/client/lib/utils.js
+++ b/client/lib/utils.js
@@ -6,12 +6,18 @@ Utils = {
currentUser = Meteor.user();
if (currentUser) {
Meteor.user().setBoardView(view);
- } else if (view === 'board-view-lists') {
- cookies.set('boardView', 'board-view-lists'); //true
} else if (view === 'board-view-swimlanes') {
cookies.set('boardView', 'board-view-swimlanes'); //true
+ location.reload();
+ } else if (view === 'board-view-lists') {
+ cookies.set('boardView', 'board-view-lists'); //true
+ location.reload();
} else if (view === 'board-view-cal') {
cookies.set('boardView', 'board-view-cal'); //true
+ location.reload();
+ } else {
+ cookies.set('boardView', 'board-view-swimlanes'); //true
+ location.reload();
}
},
@@ -24,14 +30,16 @@ Utils = {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView;
- } else if (cookies.get('boardView') === 'board-view-lists') {
- return 'board-view-lists';
} else if (cookies.get('boardView') === 'board-view-swimlanes') {
return 'board-view-swimlanes';
+ } else if (cookies.get('boardView') === 'board-view-lists') {
+ return 'board-view-lists';
} else if (cookies.get('boardView') === 'board-view-cal') {
return 'board-view-cal';
} else {
- return false;
+ cookies.set('boardView', 'board-view-swimlanes'); //true
+ location.reload();
+ return 'board-view-swimlanes';
}
},
diff --git a/docker-compose.yml b/docker-compose.yml
index 6a88ab93..338840dd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -115,11 +115,11 @@ services:
# NOTE: Quay is currently not updated, use Docker Hub image below c)
# a) For Wekan Meteor 1.8.x version at master branch,
# using https://quay.io/wekan/wekan automatic builds
- image: quay.io/wekan/wekan
+ #image: quay.io/wekan/wekan
# b) Using specific Meteor 1.6.x version tag:
# image: quay.io/wekan/wekan:v1.95
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
- #image: wekanteam/wekan
+ image: wekanteam/wekan
# image: wekanteam/wekan:v2.99
#-------------------------------------------------------------------------------------
container_name: wekan-app
@@ -180,7 +180,7 @@ services:
# that if you're using more than 1 instance of Wekan
# (or any MeteorJS based tool) you're supposed to set
# MONGO_OPLOG_URL as an environment variable.
- # Without setting it, Meteor will perform a pull-and-diff
+ # Without setting it, Meteor will perform a poll-and-diff
# update of it's dataset. With it, Meteor will update from
# the OPLOG. See here
# https://blog.meteor.com/tuning-meteor-mongo-livedata-for-scalability-13fe9deb8908
diff --git a/find-replace.sh b/find-replace.sh
new file mode 100755
index 00000000..522affab
--- /dev/null
+++ b/find-replace.sh
@@ -0,0 +1,5 @@
+
+# Recursive find/replace.
+# Syntax: ./find-replace.sh searchtext replacetext
+
+egrep -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g'
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 4441143f..07d42f3d 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index b9699b8f..88725347 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 67217ab9..bd18ada8 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 33e88763..56d99357 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 1ff7cfda..8fa3f9e8 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json
index a78e76ef..18611591 100644
--- a/i18n/da.i18n.json
+++ b/i18n/da.i18n.json
@@ -808,5 +808,6 @@
"voting": "Afstemning",
"archived": "Arkiveret",
"delete-linked-card-before-this-card": "Du kan ikke slette dette kort før der slettes sammenkædede kort som har",
- "delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste"
+ "delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste",
+ "hide-checked-items": "Hide checked items"
}
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index f0a353a6..2345252d 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -807,6 +807,7 @@
"last-activity": "Letzte Aktivität",
"voting": "Abstimunng",
"archived": "Archiviert",
- "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"
+ "delete-linked-card-before-this-card": "Sie können diese Karte erst löschen, wenn Sie alle verbundenen Karten gelöscht haben.",
+ "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
+ "hide-checked-items": "Erledigte ausblenden"
}
diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json
index e6024f40..ef61a0dc 100644
--- a/i18n/el.i18n.json
+++ b/i18n/el.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index 0795c509..326bc396 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 96862e47..f8820efe 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index c83e3f96..66f08510 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index 0c60079a..1819d0fd 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/es-CL.i18n.json b/i18n/es-CL.i18n.json
index 06e9781b..a29458a3 100644
--- a/i18n/es-CL.i18n.json
+++ b/i18n/es-CL.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 7063d4a2..d952d332 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -808,5 +808,6 @@
"voting": "Votar",
"archived": "Archivado",
"delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene",
- "delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista"
+ "delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista",
+ "hide-checked-items": "Hide checked items"
}
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index b96705ce..3ce70123 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index eb2b581b..fb5a672e 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -164,15 +164,15 @@
"cardStartVotingPopup-title": "شروع به رای",
"positiveVoteMembersPopup-title": "طرفداران",
"negativeVoteMembersPopup-title": "مخالفان",
- "card-edit-voting": "Edit voting",
- "editVoteEndDatePopup-title": "Change vote end date",
- "allowNonBoardMembers": "Allow all logged in users",
+ "card-edit-voting": "ویرایش رای",
+ "editVoteEndDatePopup-title": "تغییر تاریخ پایان رای گیری",
+ "allowNonBoardMembers": "اجازه دادن به همه کاربران وارد شده",
"vote-question": "سوال رای گیری",
"vote-public": "نمایش چه کسی به چه رای داده است",
- "vote-for-it": "for it",
+ "vote-for-it": "برای این",
"vote-against": "بر خلاف",
- "deleteVotePopup-title": "Delete vote?",
- "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
+ "deleteVotePopup-title": "رای حذف شود ؟",
+ "vote-delete-pop": "حذف کردن به صورت دائمی هست و قابل برگشت نیست.",
"cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟",
"cardDetailsActionsPopup-title": "اعمال کارت",
"cardLabelsPopup-title": "برچسب ها",
@@ -256,8 +256,8 @@
"current": "جاری",
"custom-field-delete-pop": "این اقدام فیلدشخصی را بهمراه تمامی تاریخچه آن از کارت ها پاک می کند و برگشت پذیر نمی باشد",
"custom-field-checkbox": "جعبه انتخابی",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "واحد پولی",
+ "custom-field-currency-option": "کد واحد پولی",
"custom-field-date": "تاریخ",
"custom-field-dropdown": "لیست افتادنی",
"custom-field-dropdown-none": "(هیچ)",
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index bb58a6a2..22efb655 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -808,5 +808,6 @@
"voting": "Äänestys",
"archived": "Arkistoitu",
"delete-linked-card-before-this-card": "Et voi poistaa tätä korttia ennenkuin ensin poistat linkitetyn kortin jolla on",
- "delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa"
+ "delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa",
+ "hide-checked-items": "Piilota ruksatut kohdat"
}
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 0ffbf867..620b85c6 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -808,5 +808,6 @@
"voting": "Vote",
"archived": "Archivé",
"delete-linked-card-before-this-card": "Vous ne pouvez pas supprimer cette carte avant d'avoir d'abord supprimé la carte liée qui a",
- "delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste"
+ "delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste",
+ "hide-checked-items": "Cacher les éléments cochés"
}
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index 266bcc26..20f199e5 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index 235be747..ed29e669 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -808,5 +808,6 @@
"voting": "הצבעה",
"archived": "בארכיון",
"delete-linked-card-before-this-card": "לא ניתן למחוק את הכרטיס הזה לפני שמוחקים את הכרטיס המקושר שיש לו",
- "delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו"
+ "delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו",
+ "hide-checked-items": "הסתרת הפריטים שסומנו"
}
diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json
index 50471148..94ca288b 100644
--- a/i18n/hi.i18n.json
+++ b/i18n/hi.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index e2450aa8..5064ff05 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json
index ead8eb6c..8c042e5e 100644
--- a/i18n/hy.i18n.json
+++ b/i18n/hy.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index de036359..f970ce92 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -1,7 +1,7 @@
{
"accept": "Terima",
- "act-activity-notify": "Activity Notification",
- "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "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__",
@@ -25,7 +25,7 @@
"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-createList": "ditambahkan daftar __list__ pada papan __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",
@@ -98,7 +98,7 @@
"and-n-other-card_plural": "Dan__menghitung__kartu lain",
"apply": "Terapkan",
"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": "Pindahlan ke Arsip",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
@@ -108,11 +108,11 @@
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "Arsip",
"archived-boards": "Boards in Archive",
- "restore-board": "Restore Board",
- "no-archived-boards": "No Boards in Archive.",
+ "restore-board": "Pulihkan Papan",
+ "no-archived-boards": "Tidak ada Papan pada Arsip",
"archives": "Arsip",
- "template": "Template",
- "templates": "Templates",
+ "template": "Klise",
+ "templates": "Klise",
"assign-member": "Tugaskan anggota",
"attached": "terlampir",
"attachment": "Lampiran",
@@ -131,22 +131,22 @@
"boardChangeTitlePopup-title": "Ganti Nama Panel",
"boardChangeVisibilityPopup-title": "Ubah Penampakan",
"boardChangeWatchPopup-title": "Ubah Pengamatan",
- "boardMenuPopup-title": "Board Settings",
- "boardChangeViewPopup-title": "Board View",
+ "boardMenuPopup-title": "Pengaturan Papan",
+ "boardChangeViewPopup-title": "Tampilan Papan",
"boards": "Panel",
- "board-view": "Board View",
- "board-view-cal": "Calendar",
+ "board-view": "Tampilan Papan",
+ "board-view-cal": "Kalender",
"board-view-swimlanes": "Swimlanes",
- "board-view-collapse": "Collapse",
+ "board-view-collapse": "Ciutkan",
"board-view-lists": "Daftar",
"bucket-example": "Contohnya seperti “Bucket List” ",
"cancel": "Batal",
- "card-archived": "This card is moved to Archive.",
- "board-archived": "This board is moved to Archive.",
+ "card-archived": "Kartu ini telah dipindahkan ke Arsip",
+ "board-archived": "Kartu ini telah dipindahkan ke Arsip",
"card-comments-title": "Kartu ini punya %s komentar",
"card-delete-notice": "Menghapus sama dengan permanen. Anda akan kehilangan semua aksi yang terhubung ke kartu ini",
"card-delete-pop": "Semua aksi akan dihapus dari aktivitas dan anda tidak bisa lagi buka kartu ini",
- "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
+ "card-delete-suggest-archive": "Kamu bisa memindahkan Kartu ke Arsip untuk menghapusnya dari Papan dan mempertahankan Aktifitas",
"card-due": "Jatuh Tempo",
"card-due-on": "Jatuh Tempo pada",
"card-spent": "Spent Time",
@@ -425,8 +425,8 @@
"muted-info": "Anda tidak akan pernah dinotifikasi semua perubahan di panel ini",
"my-boards": "Panel saya",
"name": "Nama",
- "no-archived-cards": "No cards in Archive.",
- "no-archived-lists": "No lists in Archive.",
+ "no-archived-cards": "Tidak ada kartu di arsip.",
+ "no-archived-lists": "Tidak ada daftar di arsip.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "Tidak ada hasil",
"normal": "Normal",
@@ -452,8 +452,8 @@
"quick-access-description": "Beri bintang panel untuk menambah shortcut di papan ini",
"remove-cover": "Hapus Sampul",
"remove-from-board": "Hapus dari panel",
- "remove-label": "Remove Label",
- "listDeletePopup-title": "Delete List ?",
+ "remove-label": "Hapus Label",
+ "listDeletePopup-title": "Hapus Daftar ?",
"remove-member": "Hapus Anggota",
"remove-member-from-card": "Hapus dari Kartu",
"remove-member-pop": "Hapus__nama__(__username__) dari __boardTitle__? Partisipan akan dihapus dari semua kartu di panel ini. Mereka akan diberi tahu",
@@ -463,21 +463,21 @@
"restore": "Pulihkan",
"save": "Simpan",
"search": "Cari",
- "rules": "Rules",
- "search-cards": "Search from card/list titles, descriptions and custom fields on this board",
- "search-example": "Text to search for?",
- "select-color": "Select Color",
- "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
- "setWipLimitPopup-title": "Set WIP Limit",
+ "rules": "Peraturan",
+ "search-cards": "Cari dari judul kartu/daftar, deskripsi dan bidang khusus di papan ini",
+ "search-example": "Teks untuk dicari ?",
+ "select-color": "Pilih Warna",
+ "set-wip-limit-value": "Tetapkan batas untuk jumlah tugas maksimum dalam daftar ini",
+ "setWipLimitPopup-title": "Tetapkan Batas WIP ",
"shortcut-assign-self": "Masukkan diri anda sendiri ke kartu ini",
- "shortcut-autocomplete-emoji": "Autocomplete emoji",
+ "shortcut-autocomplete-emoji": "Pelengkap Otomatis emoji",
"shortcut-autocomplete-members": "Autocomplete partisipan",
"shortcut-clear-filters": "Bersihkan semua saringan",
"shortcut-close-dialog": "Tutup Dialog",
"shortcut-filter-my-cards": "Filter kartu saya",
"shortcut-show-shortcuts": "Angkat naik shortcut daftar ini",
- "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
- "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+ "shortcut-toggle-filterbar": "Toggle Filter Bilah Samping",
+ "shortcut-toggle-sidebar": "Toggle Papan Bilah Samping",
"show-cards-minimum-count": "Tampilkan jumlah kartu jika daftar punya lebih dari ",
"sidebar-open": "Buka Sidebar",
"sidebar-close": "Tutup Sidebar",
@@ -489,16 +489,16 @@
"team": "Tim",
"this-board": "Panel ini",
"this-card": "Kartu ini",
- "spent-time-hours": "Spent time (hours)",
- "overtime-hours": "Overtime (hours)",
- "overtime": "Overtime",
- "has-overtime-cards": "Has overtime cards",
+ "spent-time-hours": "Waktu yang dihabiskan (jam)",
+ "overtime-hours": "Lembur (jam)",
+ "overtime": "Lembur",
+ "has-overtime-cards": "Punya kartu lembur",
"has-spenttime-cards": "Has spent time cards",
"time": "Waktu",
"title": "Judul",
"tracking": "Pelacakan",
"tracking-info": "Anda akan dinotifikasi semua perubahan di kartu tersebut diaman anda terlibat sebagai creator atau partisipan",
- "type": "Type",
+ "type": "tipe",
"unassign-member": "Tidak sertakan partisipan",
"unsaved-description": "Anda memiliki deskripsi yang belum disimpan.",
"unwatch": "Tidak mengamati",
@@ -515,11 +515,11 @@
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Tingkat dasar",
"welcome-list2": "Tingkat lanjut",
- "card-templates-swimlane": "Card Templates",
- "list-templates-swimlane": "List Templates",
- "board-templates-swimlane": "Board Templates",
+ "card-templates-swimlane": "Klise Kartu",
+ "list-templates-swimlane": "Klise Daftar",
+ "board-templates-swimlane": "Klise Papan",
"what-to-do": "Apa yang mau Anda lakukan?",
- "wipLimitErrorPopup-title": "Invalid WIP Limit",
+ "wipLimitErrorPopup-title": "Batas WIP tidak valid",
"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": "Panel Admin",
@@ -544,11 +544,11 @@
"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 Test Email",
+ "email-smtp-test-subject": "SMTP Tes Surel",
"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.",
- "webhook-title": "Webhook Name",
+ "webhook-title": "Nama Webhook",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
@@ -558,10 +558,10 @@
"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",
+ "Node_version": "Versi Node",
+ "Meteor_version": "Versi Meteor",
+ "MongoDB_version": "Versi MongoDB",
+ "MongoDB_storage_engine": "Mesin penyimpanan MongoDb",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
@@ -572,44 +572,44 @@
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
- "days": "days",
- "hours": "hours",
- "minutes": "minutes",
- "seconds": "seconds",
+ "days": "hari",
+ "hours": "m",
+ "minutes": "menit",
+ "seconds": "detik",
"show-field-on-card": "Show this field on card",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
- "yes": "Yes",
- "no": "No",
- "accounts": "Accounts",
+ "yes": "Ya",
+ "no": "Tidak",
+ "accounts": "Akun",
"accounts-allowEmailChange": "Allow Email Change",
"accounts-allowUserNameChange": "Allow Username Change",
- "createdAt": "Created at",
- "verified": "Verified",
- "active": "Active",
- "card-received": "Received",
- "card-received-on": "Received on",
- "card-end": "End",
- "card-end-on": "Ends on",
- "editCardReceivedDatePopup-title": "Change received date",
- "editCardEndDatePopup-title": "Change end date",
- "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",
+ "createdAt": "Dibuat pada",
+ "verified": "Terverifikasi",
+ "active": "Aktif",
+ "card-received": "Diterima",
+ "card-received-on": "Diterima pada",
+ "card-end": "Berakhir",
+ "card-end-on": "Berakhir pada",
+ "editCardReceivedDatePopup-title": "Ubah tanggal diterima",
+ "editCardEndDatePopup-title": "Ubah tanggal berakhir",
+ "setCardColorPopup-title": "Tetapkan warna",
+ "setCardActionsColorPopup-title": "Pilih warna",
+ "setSwimlaneColorPopup-title": "Pilih warna",
+ "setListColorPopup-title": "Pilih warna",
+ "assigned-by": "Ditandatangani Oleh",
+ "requested-by": "Diminta Oleh",
"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",
+ "boardDeletePopup-title": "Hapus Papan?",
+ "delete-board": "Hapus Papan",
"default-subtasks-board": "Subtasks for __board__ board",
- "default": "Default",
- "queue": "Queue",
+ "default": "Standar",
+ "queue": "Antrian",
"subtask-settings": "Subtasks Settings",
- "card-settings": "Card Settings",
+ "card-settings": "Pengaturan Kartu",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
- "boardCardSettingsPopup-title": "Card Settings",
+ "boardCardSettingsPopup-title": "Pengaturan Kartu",
"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:",
@@ -629,34 +629,34 @@
"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-rule": "Aturan",
+ "r-add-trigger": "Tambahkan pelatuk",
+ "r-add-action": "Tambahkan aksi",
+ "r-board-rules": "Aturan papan",
+ "r-add-rule": "Tambahkan aturan",
+ "r-view-rule": "Lihat aturan",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
- "r-when-a-card": "When a card",
- "r-is": "is",
- "r-is-moved": "is moved",
- "r-added-to": "Added to",
- "r-removed-from": "Removed from",
- "r-the-board": "the board",
- "r-list": "list",
- "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-card": "Ketika kartu",
+ "r-is": "adalah",
+ "r-is-moved": "dipindahkan",
+ "r-added-to": "Ditambahkan ke",
+ "r-removed-from": "Dihapus dari",
+ "r-the-board": "papan",
+ "r-list": "daftar",
+ "set-filter": "Atur Saringan",
+ "r-moved-to": "Dipindahkan ke",
+ "r-moved-from": "Dipindahkan dari",
+ "r-archived": "Dipindahkan ke Arsip",
+ "r-unarchived": "Dipulihkan dari Arsip",
+ "r-a-card": "Kartu",
+ "r-when-a-label-is": "Ketika label adalah",
+ "r-when-the-label": "Ketika label",
+ "r-list-name": "nama daftar",
+ "r-when-a-member": "Ketika anggota adalah",
+ "r-when-the-member": "Ketika anggota",
+ "r-name": "nama",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
@@ -669,70 +669,70 @@
"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-its-list": "daftar ini",
+ "r-archive": "Pindahlan ke Arsip",
+ "r-unarchive": "Pulihkan dari Arsip",
+ "r-card": "Kartu",
"r-add": "Tambah",
- "r-remove": "Remove",
+ "r-remove": "hapus",
"r-label": "label",
- "r-member": "member",
- "r-remove-all": "Remove all members from the card",
- "r-set-color": "Set color to",
+ "r-member": "anggota",
+ "r-remove-all": "Hapus semua anggota dari kartu",
+ "r-set-color": "Tetapkan warna ke",
"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-item": "Item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
- "r-to": "to",
- "r-of": "of",
- "r-subject": "subject",
+ "r-to": "kepada",
+ "r-of": "dari",
+ "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",
"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-send-email": "Kirim surel",
+ "r-d-send-email-to": "kepada",
+ "r-d-send-email-subject": "Subyek",
+ "r-d-send-email-message": "pesan",
+ "r-d-archive": "Pindahlan kartu ke Arsip",
+ "r-d-unarchive": "Pulihkan kartu dari Arsip",
"r-d-add-label": "Tambahkan label",
- "r-d-remove-label": "Remove label",
- "r-create-card": "Create new card",
- "r-in-list": "in list",
+ "r-d-remove-label": "Hapus label",
+ "r-create-card": "Buat kartu baru",
+ "r-in-list": "pada daftar",
"r-in-swimlane": "in swimlane",
- "r-d-add-member": "Add member",
- "r-d-remove-member": "Remove member",
- "r-d-remove-all-member": "Remove all member",
+ "r-d-add-member": "Tambahkan anggota",
+ "r-d-remove-member": "Hapus anggota",
+ "r-d-remove-all-member": "Hapus semua anggota",
"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-d-add-checklist": "Tambahkan daftar periksa",
+ "r-d-remove-checklist": "Hapus daftar periksa",
+ "r-by": "oleh",
+ "r-add-checklist": "Tambahkan daftar periksa",
+ "r-with-items": "dengan item",
+ "r-items-list": "item 1, item2, item 3",
"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-set": "Tetapkan",
+ "r-update": "Ubah",
+ "r-datefield": "bidang 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",
"ldap": "LDAP",
@@ -741,22 +741,22 @@
"authentication-method": "Metode Autentikasi",
"authentication-type": "Tipe Autentikasi",
"custom-product-name": "Custom Product Name",
- "layout": "Layout",
+ "layout": "Tata letak",
"hide-logo": "Sembunyikan 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",
+ "add-custom-html-after-body-start": "Tambahkan HTML khusus setelah <body> mulai",
+ "add-custom-html-before-body-end": "Tambahkan HTML khusus sebelum </body> berakhir",
+ "error-undefined": "Ada yang salah",
+ "error-ldap-login": "Terjadi kesalahan saat mencoba masuk",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
- "duplicate-board": "Duplicate Board",
- "people-number": "The number of people is:",
+ "duplicate-board": "Duplikat Papan",
+ "people-number": "Jumlah orang:",
"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",
+ "restore-all": "Pulihkan semua",
+ "delete-all": "Hapus semua",
+ "loading": "Sedang memuat, harap tunggu.",
+ "previous_as": "terakhir kali adalah",
"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__)",
@@ -776,37 +776,38 @@
"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",
- "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",
+ "hide-minicard-label-text": "Sembunyikan teks label kartu mini",
+ "show-desktop-drag-handles": "Tampilkan gagang seret desktop",
+ "assignee": "Penerima tugas",
+ "cardAssigneesPopup-title": "Penerima tugas",
+ "addmore-detail": "Tambahkan deskripsi yang lebih rinci",
+ "show-on-card": "Tampilkan pada Kartu",
+ "new": "Baru",
+ "editUserPopup-title": "Ubah Pengguna",
+ "newUserPopup-title": "Pengguna Baru",
+ "notifications": "Pemberitahuan",
+ "view-all": "Lihat Semua",
+ "filter-by-unread": "Saring yang Belum Dibaca",
+ "mark-all-as-read": "Tandai semua telah dibaca",
+ "remove-all-read": "Hapus semua yang telah dibaca",
+ "allow-rename": "Ijinkan Ganti Nama",
+ "allowRenamePopup-title": "Ijinkan Ganti Nama",
+ "start-day-of-week": "Tetapkan hari dimulai dalam minggu",
+ "monday": "Senin",
+ "tuesday": "Selasa",
+ "wednesday": "Rabu",
+ "thursday": "Kamis",
+ "friday": "Jum'at",
+ "saturday": "Sabtu",
+ "sunday": "Minggu",
"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"
+ "owner": "Pemilik",
+ "last-modified-at": "Terakhir diubah pada",
+ "last-activity": "Aktifitas terakhir",
+ "voting": "Pemungutan Suara",
+ "archived": "Diarsipkan",
+ "delete-linked-card-before-this-card": "Kamu tidak dapat menghapus kartu ini sebelum menghapus kartu tertaut yang telah",
+ "delete-linked-cards-before-this-list": "Kamu tidak dapat menghapus daftar ini sebelum menghapus kartu tertaut yang mengarah ke kartu dalam daftar ini",
+ "hide-checked-items": "Sembunyikan item yang dicentang"
}
diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json
index c81e041e..518c480c 100644
--- a/i18n/ig.i18n.json
+++ b/i18n/ig.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index b3ddf3d7..f4732dcd 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -256,8 +256,8 @@
"current": "corrente",
"custom-field-delete-pop": "Non potrai tornare indietro. Questa azione rimuoverà questo campo personalizzato da tutte le schede ed eliminerà ogni sua traccia.",
"custom-field-checkbox": "Casella di scelta",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "Valuta",
+ "custom-field-currency-option": "Codice Valuta",
"custom-field-date": "Data",
"custom-field-dropdown": "Lista a discesa",
"custom-field-dropdown-none": "(niente)",
@@ -808,5 +808,6 @@
"voting": "Votazione",
"archived": "Archiviato",
"delete-linked-card-before-this-card": "Non puoi eliminare questa scheda prima di avere eliminato una scheda collegata che ha",
- "delete-linked-cards-before-this-list": "Non puoi eliminare questa lista prima di avere eliminato le schede collegate che puntano su schede in questa lista"
+ "delete-linked-cards-before-this-list": "Non puoi eliminare questa lista prima di avere eliminato le schede collegate che puntano su schede in questa lista",
+ "hide-checked-items": "Nascondi articoli controllati"
}
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index 3ea079db..e575914c 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -808,5 +808,6 @@
"voting": "投票",
"archived": "アーカイブ",
"delete-linked-card-before-this-card": "カード内にある、リンクされているカードを削除しなければ、このカードは削除できません",
- "delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません"
+ "delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません",
+ "hide-checked-items": "チェックした項目を隠す"
}
diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json
index c3190afb..bdb532a9 100644
--- a/i18n/ka.i18n.json
+++ b/i18n/ka.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json
index b9ec2c2f..362c811b 100644
--- a/i18n/km.i18n.json
+++ b/i18n/km.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 5b838835..e969206d 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json
index 77e28271..40d760dd 100644
--- a/i18n/lv.i18n.json
+++ b/i18n/lv.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json
index 51236fd8..8e8ea54d 100644
--- a/i18n/mk.i18n.json
+++ b/i18n/mk.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json
index 57e9573c..55b6a98c 100644
--- a/i18n/mn.i18n.json
+++ b/i18n/mn.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index ddae9171..8132f212 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index 9720b885..9c73f54f 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -256,8 +256,8 @@
"current": "Huidige",
"custom-field-delete-pop": "Er is geen herstelmogelijkheid. Deze actie zal dit maatwerkveld van alle kaarten verwijderen en de bijbehorende historie wissen.",
"custom-field-checkbox": "Checkbox",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "Valuta",
+ "custom-field-currency-option": "Valuta Teken",
"custom-field-date": "Datum",
"custom-field-dropdown": "Dropdown Lijst",
"custom-field-dropdown-none": "(geen)",
@@ -808,5 +808,6 @@
"voting": "Stemmen",
"archived": "Gearchiveerd",
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd ",
- "delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst"
+ "delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
+ "hide-checked-items": "Verberg aangevinkte items"
}
diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json
index bcd1b039..93b9c8a1 100644
--- a/i18n/oc.i18n.json
+++ b/i18n/oc.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index b27706d4..20807431 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -808,5 +808,6 @@
"voting": "Głosowanie",
"archived": "Zarchiwizowany",
"delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są",
- "delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście"
+ "delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście",
+ "hide-checked-items": "Hide checked items"
}
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 7533c8c4..44497631 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -808,5 +808,6 @@
"voting": "Votação",
"archived": "Arquivado",
"delete-linked-card-before-this-card": "Você não pode excluir este cartão antes de excluir primeiro o cartão vinculado que possui",
- "delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista"
+ "delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista",
+ "hide-checked-items": "Esconder itens marcados"
}
diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json
index 05075ac8..3d9faaa8 100644
--- a/i18n/pt.i18n.json
+++ b/i18n/pt.i18n.json
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Arquivado",
"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"
+ "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"
}
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index 927fb451..92d530d2 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index c6264cf4..fbbb38aa 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -256,8 +256,8 @@
"current": "текущий",
"custom-field-delete-pop": "Отменить нельзя. Это удалит настраиваемое поле со всех карт и уничтожит его историю.",
"custom-field-checkbox": "Галочка",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "Валюта",
+ "custom-field-currency-option": "Код валюты",
"custom-field-date": "Дата",
"custom-field-dropdown": "Выпадающий список",
"custom-field-dropdown-none": "(нет)",
@@ -808,5 +808,6 @@
"voting": "Голосование",
"archived": "Архивировано",
"delete-linked-card-before-this-card": "Вы не можете удалить карточку, не удалив связанную c ней карточку, которая имеет ",
- "delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке"
+ "delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке",
+ "hide-checked-items": "Спрятать отмеченные"
}
diff --git a/i18n/sl.i18n.json b/i18n/sl.i18n.json
index f14d60b6..e7bafc55 100644
--- a/i18n/sl.i18n.json
+++ b/i18n/sl.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index 66068920..94824dc3 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index bf2d3ff4..336fbd3a 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -808,5 +808,6 @@
"voting": "Röstning",
"archived": "Arkiverad",
"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"
+ "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"
}
diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json
index d908b12f..01ef8636 100644
--- a/i18n/sw.i18n.json
+++ b/i18n/sw.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index 089b65c2..8ec2f518 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index bca08fe2..4d6ec609 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index ee3bd9c1..962ecce7 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -256,8 +256,8 @@
"current": "mevcut",
"custom-field-delete-pop": "Bunun geri dönüşü yoktur. Bu özel alan tüm kartlardan kaldırılıp tarihçesi yokedilecektir.",
"custom-field-checkbox": "İşaret kutusu",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "Para birimi",
+ "custom-field-currency-option": "Para birimi kodu",
"custom-field-date": "Tarih",
"custom-field-dropdown": "Açılır liste",
"custom-field-dropdown-none": "(hiçbiri)",
@@ -319,12 +319,12 @@
"error-username-taken": "Kullanıcı adı zaten alınmış",
"error-email-taken": "Bu e-posta adresi daha önceden alınmış",
"export-board": "Panoyu dışarı aktar",
- "export-board-json": "Export board to JSON",
- "export-board-csv": "Export board to CSV",
- "export-board-tsv": "Export board to TSV",
- "export-board-html": "Export board to HTML",
+ "export-board-json": "Panoyu JSON olarak dışarı aktar",
+ "export-board-csv": "Panoyu CSV olarak dışarı aktar",
+ "export-board-tsv": "Panoyu TSV olarak dışarı aktar",
+ "export-board-html": "Panoyu HTML olarak dışarı aktar",
"exportBoardPopup-title": "Panoyu dışarı aktar",
- "sort": "Sort",
+ "sort": "Sırala",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Son Erişim Zamanı...",
@@ -341,8 +341,8 @@
"filter-no-member": "Üye yok",
"filter-no-assignee": "No assignee",
"filter-no-custom-fields": "Hiç özel alan yok",
- "filter-show-archive": "Show archived lists",
- "filter-hide-empty": "Hide empty lists",
+ "filter-show-archive": "Arşivlenmiş listeleri göster",
+ "filter-hide-empty": "Boş listeleri gizle",
"filter-on": "Filtre aktif",
"filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.",
"filter-to-selection": "Seçime göre filtreleme yap",
@@ -359,10 +359,10 @@
"import-board-c": "Panoyu içe aktar",
"import-board-title-trello": "Trello'dan panoyu içeri aktar",
"import-board-title-wekan": "Import board from previous export",
- "import-board-title-csv": "Import board from CSV/TSV",
+ "import-board-title-csv": "CSV/TSV formatındaki panoyu içeri aktar",
"from-trello": "Trello'dan",
"from-wekan": "From previous export",
- "from-csv": "From CSV/TSV",
+ "from-csv": "CSV/TSV'den",
"import-board-instruction-trello": "Trello panonuzda 'Menü'ye gidip 'Daha fazlası'na tıklayın, ardından 'Yazdır ve Çıktı Al'ı seçip 'JSON biçiminde çıktı al' diyerek çıkan metni buraya kopyalayın.",
"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.",
@@ -399,10 +399,10 @@
"set-color-list": "Rengi Ayarla",
"listActionPopup-title": "Liste İşlemleri",
"swimlaneActionPopup-title": "Kulvar İşlemleri",
- "swimlaneAddPopup-title": "Add a Swimlane below",
+ "swimlaneAddPopup-title": "Aşağı kulvar ekle",
"listImportCardPopup-title": "Bir Trello kartını içeri aktar",
"listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
- "listMorePopup-title": "Daha",
+ "listMorePopup-title": "Daha fazla",
"link-list": "Listeye doğrudan bağlantı",
"list-delete-pop": "Etkinlik akışınızdaki tüm eylemler geri kurtarılamaz şekilde kaldırılacak. Bu işlem geri alınamaz.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
@@ -437,7 +437,7 @@
"optional": "isteğe bağlı",
"or": "veya",
"page-maybe-private": "Bu sayfa gizli olabilir. <a href='%s'>Oturum açarak</a> görmeyi deneyin.",
- "page-not-found": "Sayda bulunamadı.",
+ "page-not-found": "Sayfa bulunamadı.",
"password": "Parola",
"paste-or-dragdrop": "Dosya eklemek için yapıştırabilir, veya (eğer resimse) sürükle bırak yapabilirsiniz",
"participating": "Katılımcılar",
@@ -448,8 +448,8 @@
"private-desc": "Bu pano gizli. Sadece panoya ekli kişiler görüntüleyebilir ve düzenleyebilir.",
"profile": "Kullanıcı Sayfası",
"public": "Genel",
- "public-desc": "Bu pano genel. Bağlantı adresi ile herhangi bir kimseye görünür ve Google gibi arama motorlarında gösterilecektir. Panoyu, sadece eklenen kişiler düzenleyebilir.",
- "quick-access-description": "Bu bara kısayol olarak bir pano eklemek için panoyu yıldızlamalısınız",
+ "public-desc": "Bu pano genel bir panodur. Bağlantıya sahip olan herkes panoyu görüntüleyebilir, ayrıca panonuz Google gibi arama motorlarında görünür. Panoyu, sadece panoya eklenen kişiler düzenleyebilir.",
+ "quick-access-description": "Yıldızladığınız panolar burada gözükür",
"remove-cover": "Kapak Resmini Kaldır",
"remove-from-board": "Panodan Kaldır",
"remove-label": "Etiketi Kaldır",
@@ -515,9 +515,9 @@
"welcome-swimlane": "Kilometre taşı",
"welcome-list1": "Temel",
"welcome-list2": "Gelişmiş",
- "card-templates-swimlane": "Card Templates",
- "list-templates-swimlane": "List Templates",
- "board-templates-swimlane": "Board Templates",
+ "card-templates-swimlane": "Kart şablonları",
+ "list-templates-swimlane": "Liste şablonları",
+ "board-templates-swimlane": "Pano şablonları",
"what-to-do": "Ne yapmak istiyorsunuz?",
"wipLimitErrorPopup-title": "Geçersiz Devam Eden İş Sınırı",
"wipLimitErrorPopup-dialog-pt1": "Bu listedeki iş sayısı belirlediğiniz sınırdan daha fazla.",
@@ -559,8 +559,8 @@
"new-outgoing-webhook": "Yeni Dışarı Giden Web Bağlantısı",
"no-name": "(Bilinmeyen)",
"Node_version": "Node sürümü",
- "Meteor_version": "Meteor version",
- "MongoDB_version": "MongoDB version",
+ "Meteor_version": "Meteor sürümü",
+ "MongoDB_version": "MongoDB sürümü",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"OS_Arch": "İşletim Sistemi Mimarisi",
@@ -603,13 +603,13 @@
"delete-board-confirm-popup": "Tüm listeler, kartlar, etiketler ve etkinlikler silinecek ve pano içeriğini kurtaramayacaksınız. Geri dönüş yok.",
"boardDeletePopup-title": "Panoyu Sil?",
"delete-board": "Panoyu Sil",
- "default-subtasks-board": "Subtasks for __board__ board",
+ "default-subtasks-board": "__board__ panosu için alt görevler",
"default": "Varsayılan",
"queue": "Sıra",
"subtask-settings": "Alt Görev ayarları",
- "card-settings": "Card Settings",
+ "card-settings": "Kart ayarları",
"boardSubtaskSettingsPopup-title": "Pano alt görev ayarları",
- "boardCardSettingsPopup-title": "Card Settings",
+ "boardCardSettingsPopup-title": "Kart ayarları",
"deposit-subtasks-board": "Deposit subtasks to this board:",
"deposit-subtasks-list": "Alt görevlerin açılacağı liste:",
"show-parent-in-minicard": "Mini kart içinde üst kartı göster",
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index 2f675da4..d9023866 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index c0d0c815..9f877399 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index a6300a23..1698517c 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -256,8 +256,8 @@
"current": "当前",
"custom-field-delete-pop": "没有撤销,此动作将从所有卡片中移除自定义字段并销毁历史。",
"custom-field-checkbox": "选择框",
- "custom-field-currency": "Currency",
- "custom-field-currency-option": "Currency Code",
+ "custom-field-currency": "货币",
+ "custom-field-currency-option": "货币代码",
"custom-field-date": "日期",
"custom-field-dropdown": "下拉列表",
"custom-field-dropdown-none": "(无)",
@@ -808,5 +808,6 @@
"voting": "投票",
"archived": "存档",
"delete-linked-card-before-this-card": "在你首次删除卡片前你无法删除此选项卡片",
- "delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表"
+ "delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表",
+ "hide-checked-items": "隐藏选中项"
}
diff --git a/i18n/zh-HK.i18n.json b/i18n/zh-HK.i18n.json
index 0a01b931..b473bd61 100644
--- a/i18n/zh-HK.i18n.json
+++ b/i18n/zh-HK.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index 945d71f3..b34d3901 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -808,5 +808,6 @@
"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"
+ "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"
}
diff --git a/models/boards.js b/models/boards.js
index 11d8fd89..306bae13 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -18,18 +18,14 @@ Boards.attachSchema(
type: String,
// eslint-disable-next-line consistent-return
autoValue() {
- // XXX We need to improve slug management. Only the id should be necessary
- // to identify a board in the code.
- // XXX If the board title is updated, the slug should also be updated.
// In some cases (Chinese and Japanese for instance) the `getSlug` function
// return an empty string. This is causes bugs in our application so we set
// a default slug in this case.
- if (this.isInsert && !this.isSet) {
+ // Improvment would be to change client URL after slug is changed
+ const title = this.field('title');
+ if (title.isSet && !this.isSet) {
let slug = 'board';
- const title = this.field('title');
- if (title.isSet) {
- slug = getSlug(title.value) || slug;
- }
+ slug = getSlug(title.value) || slug;
return slug;
}
},
@@ -1219,6 +1215,14 @@ if (Meteor.isServer) {
fetch: ['members'],
});
+ // All logged in users are allowed to reorder boards by dragging at All Boards page and Public Boards page.
+ Boards.allow({
+ update(userId, board, fieldNames) {
+ return _.contains(fieldNames, 'sort');
+ },
+ fetch: [],
+ });
+
// The number of users that have starred this board is managed by trusted code
// and the user is not allowed to update it
Boards.deny({
diff --git a/models/cards.js b/models/cards.js
index e1d48653..2fd52827 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -368,30 +368,36 @@ Cards.allow({
Cards.helpers({
copy(boardId, swimlaneId, listId) {
- const oldBoard = Boards.findOne(this.boardId);
- const oldBoardLabels = oldBoard.labels;
- // Get old label names
- const oldCardLabels = _.pluck(
- _.filter(oldBoardLabels, label => {
- return _.contains(this.labelIds, label._id);
- }),
- 'name',
- );
-
- const newBoard = Boards.findOne(boardId);
- const newBoardLabels = newBoard.labels;
- const newCardLabels = _.pluck(
- _.filter(newBoardLabels, label => {
- return _.contains(oldCardLabels, label.name);
- }),
- '_id',
- );
-
const oldId = this._id;
const oldCard = Cards.findOne(oldId);
- // Copy Custom Fields
- if (oldBoard._id !== boardId) {
+ // we must only copy the labels and custom fields if the target board
+ // differs from the source board
+ if (this.boardId !== boardId) {
+ const oldBoard = Boards.findOne(this.boardId);
+ const oldBoardLabels = oldBoard.labels;
+
+ // Get old label names
+ const oldCardLabels = _.pluck(
+ _.filter(oldBoardLabels, label => {
+ return _.contains(this.labelIds, label._id);
+ }),
+ 'name',
+ );
+
+ const newBoard = Boards.findOne(boardId);
+ const newBoardLabels = newBoard.labels;
+ const newCardLabels = _.pluck(
+ _.filter(newBoardLabels, label => {
+ return _.contains(oldCardLabels, label.name);
+ }),
+ '_id',
+ );
+ // now set the new label ids
+ delete this.labelIds;
+ this.labelIds = newCardLabels;
+
+ // Copy Custom Fields
CustomFields.find({
_id: {
$in: oldCard.customFields.map(cf => {
@@ -404,8 +410,6 @@ Cards.helpers({
}
delete this._id;
- delete this.labelIds;
- this.labelIds = newCardLabels;
this.boardId = boardId;
this.swimlaneId = swimlaneId;
this.listId = listId;
@@ -1108,6 +1112,21 @@ Cards.helpers({
return Users.find({ _id: { $in: this.vote.negative } });
return [];
},
+ voteState() {
+ const userId = Meteor.userId();
+ let state;
+ if (this.vote) {
+ if (this.vote.positive) {
+ state = _.contains(this.vote.positive, userId);
+ if (state === true) return true;
+ }
+ if (this.vote.negative) {
+ state = _.contains(this.vote.negative, userId);
+ if (state === true) return false;
+ }
+ }
+ return null;
+ },
getId() {
if (this.isLinked()) {
@@ -1298,8 +1317,40 @@ Cards.mutations({
},
move(boardId, swimlaneId, listId, sort) {
- // Copy Custom Fields
+ const mutatedFields = {
+ boardId,
+ swimlaneId,
+ listId,
+ sort,
+ };
+
+ // we must only copy the labels and custom fields if the target board
+ // differs from the source board
if (this.boardId !== boardId) {
+ // Get label names
+ const oldBoard = Boards.findOne(this.boardId);
+ const oldBoardLabels = oldBoard.labels;
+ const oldCardLabels = _.pluck(
+ _.filter(oldBoardLabels, label => {
+ return _.contains(this.labelIds, label._id);
+ }),
+ 'name',
+ );
+
+ const newBoard = Boards.findOne(boardId);
+ const newBoardLabels = newBoard.labels;
+ const newCardLabelIds = _.pluck(
+ _.filter(newBoardLabels, label => {
+ return label.name && _.contains(oldCardLabels, label.name);
+ }),
+ '_id',
+ );
+
+ Object.assign(mutatedFields, {
+ labelIds: newCardLabelIds,
+ });
+
+ // Copy custom fields
CustomFields.find({
_id: {
$in: this.customFields.map(cf => {
@@ -1311,33 +1362,6 @@ Cards.mutations({
});
}
- // Get label names
- const oldBoard = Boards.findOne(this.boardId);
- const oldBoardLabels = oldBoard.labels;
- const oldCardLabels = _.pluck(
- _.filter(oldBoardLabels, label => {
- return _.contains(this.labelIds, label._id);
- }),
- 'name',
- );
-
- const newBoard = Boards.findOne(boardId);
- const newBoardLabels = newBoard.labels;
- const newCardLabelIds = _.pluck(
- _.filter(newBoardLabels, label => {
- return label.name && _.contains(oldCardLabels, label.name);
- }),
- '_id',
- );
-
- const mutatedFields = {
- boardId,
- swimlaneId,
- listId,
- sort,
- labelIds: newCardLabelIds,
- };
-
Cards.update(this._id, {
$set: mutatedFields,
});
@@ -2169,7 +2193,7 @@ if (Meteor.isServer) {
description: doc.description,
listId: doc.listId,
receivedAt: doc.receivedAt,
- startAt:doc.startAt,
+ startAt: doc.startAt,
dueAt: doc.dueAt,
endAt: doc.endAt,
assignees: doc.assignees,
@@ -2210,7 +2234,7 @@ if (Meteor.isServer) {
title: doc.title,
description: doc.description,
receivedAt: doc.receivedAt,
- startAt:doc.startAt,
+ startAt: doc.startAt,
dueAt: doc.dueAt,
endAt: doc.endAt,
assignees: doc.assignees,
@@ -2365,6 +2389,10 @@ if (Meteor.isServer) {
* @param {boolean} [isOverTime] the new isOverTime field of the card
* @param {string} [customFields] the new customFields value of the card
* @param {string} [color] the new color of the card
+ * @param {Object} [vote] the vote object
+ * @param {string} vote.question the vote question
+ * @param {boolean} vote.public show who voted what
+ * @param {boolean} vote.allowNonBoardMembers allow all logged in users to vote?
* @return_type {_id: string}
*/
JsonRoutes.add(
@@ -2464,6 +2492,24 @@ if (Meteor.isServer) {
{ $set: { color: newColor } },
);
}
+ if (req.body.hasOwnProperty('vote')) {
+ const newVote = req.body.vote;
+ newVote.positive = [];
+ newVote.negative = [];
+ if (!newVote.hasOwnProperty('public')) newVote.public = false;
+ if (!newVote.hasOwnProperty('allowNonBoardMembers'))
+ newVote.allowNonBoardMembers = false;
+
+ Cards.direct.update(
+ {
+ _id: paramCardId,
+ listId: paramListId,
+ boardId: paramBoardId,
+ archived: false,
+ },
+ { $set: { vote: newVote } },
+ );
+ }
if (req.body.hasOwnProperty('labelIds')) {
let newlabelIds = req.body.labelIds;
if (_.isString(newlabelIds)) {
@@ -2703,7 +2749,7 @@ if (Meteor.isServer) {
* @return_type [{_id: string,
* title: string,
* description: string,
- * listId: string
+ * listId: string,
* swinlaneId: string}]
*/
JsonRoutes.add(
diff --git a/models/checklistItems.js b/models/checklistItems.js
index 7f3ab095..afcd9081 100644
--- a/models/checklistItems.js
+++ b/models/checklistItems.js
@@ -302,10 +302,18 @@ if (Meteor.isServer) {
const paramItemId = req.params.itemId;
+ function isTrue(data) {
+ try {
+ return data.toLowerCase() === 'true';
+ } catch (error) {
+ return data;
+ }
+ }
+
if (req.body.hasOwnProperty('isFinished')) {
ChecklistItems.direct.update(
{ _id: paramItemId },
- { $set: { isFinished: req.body.isFinished } },
+ { $set: { isFinished: isTrue(req.body.isFinished) } },
);
}
if (req.body.hasOwnProperty('title')) {
diff --git a/models/customFields.js b/models/customFields.js
index 9df635ba..83b47fc0 100644
--- a/models/customFields.js
+++ b/models/customFields.js
@@ -172,16 +172,14 @@ function customFieldDeletion(userId, doc) {
function customFieldEdit(userId, doc) {
const card = Cards.findOne(doc.cardId);
const customFieldValue = Activities.findOne({ customFieldId: doc._id }).value;
- const boardId = card.boardId;
- //boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
Activities.insert({
userId,
activityType: 'setCustomField',
- boardId,
+ boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
customFieldId: doc._id,
customFieldValue,
- listId: card.listId,
- swimlaneId: card.swimlaneId,
+ listId: doc.listId,
+ swimlaneId: doc.swimlaneId,
});
}
@@ -206,8 +204,8 @@ if (Meteor.isServer) {
Activities.remove({
customFieldId: doc._id,
boardId: modifier.$pull.boardIds,
- listId: card.listId,
- swimlaneId: card.swimlaneId,
+ listId: doc.listId,
+ swimlaneId: doc.swimlaneId,
});
} else if (_.contains(fieldNames, 'boardIds') && modifier.$push) {
Activities.insert({
diff --git a/models/export.js b/models/export.js
index 9dd03a38..7a59fbec 100644
--- a/models/export.js
+++ b/models/export.js
@@ -85,7 +85,9 @@ if (Meteor.isServer) {
? exporter.buildCsv(params.query.delimiter)
: exporter.buildCsv();
res.writeHead(200, {
- 'Content-Length': body.length,
+ // Checking length does not work https://github.com/wekan/wekan/issues/3173
+ // so not using it here
+ //'Content-Length': body.length,
'Content-Type': params.query.delimiter ? 'text/csv' : 'text/tsv',
});
res.write(body);
diff --git a/models/exporter.js b/models/exporter.js
index b6188ece..3b3589f6 100644
--- a/models/exporter.js
+++ b/models/exporter.js
@@ -1,7 +1,8 @@
-const stringify = require('csv-stringify');
+// const stringify = require('csv-stringify');
// exporter maybe is broken since Gridfs introduced, add fs and path
export class Exporter {
+ /*
constructor(boardId) {
this._boardId = boardId;
}
@@ -240,29 +241,29 @@ export class Exporter {
}
i++;
});
- /* TODO: Try to get translations working.
- These currently only bring English translations.
- TAPi18n.__('title'),
- TAPi18n.__('description'),
- TAPi18n.__('status'),
- TAPi18n.__('swimlane'),
- TAPi18n.__('owner'),
- TAPi18n.__('requested-by'),
- TAPi18n.__('assigned-by'),
- TAPi18n.__('members'),
- TAPi18n.__('assignee'),
- TAPi18n.__('labels'),
- TAPi18n.__('card-start'),
- TAPi18n.__('card-due'),
- TAPi18n.__('card-end'),
- TAPi18n.__('overtime-hours'),
- TAPi18n.__('spent-time-hours'),
- TAPi18n.__('createdAt'),
- TAPi18n.__('last-modified-at'),
- TAPi18n.__('last-activity'),
- TAPi18n.__('voting'),
- TAPi18n.__('archived'),
- */
+
+ // TODO: Try to get translations working.
+ // These currently only bring English translations.
+ // TAPi18n.__('title'),
+ // TAPi18n.__('description'),
+ // TAPi18n.__('status'),
+ // TAPi18n.__('swimlane'),
+ // TAPi18n.__('owner'),
+ // TAPi18n.__('requested-by'),
+ // TAPi18n.__('assigned-by'),
+ // TAPi18n.__('members'),
+ // TAPi18n.__('assignee'),
+ // TAPi18n.__('labels'),
+ // TAPi18n.__('card-start'),
+ // TAPi18n.__('card-due'),
+ // TAPi18n.__('card-end'),
+ // TAPi18n.__('overtime-hours'),
+ // TAPi18n.__('spent-time-hours'),
+ // TAPi18n.__('createdAt'),
+ // TAPi18n.__('last-modified-at'),
+ // TAPi18n.__('last-activity'),
+ // TAPi18n.__('voting'),
+ // TAPi18n.__('archived'),
const stringifier = stringify({
header: true,
@@ -395,4 +396,9 @@ export class Exporter {
const board = Boards.findOne(this._boardId);
return board && board.isVisibleBy(user);
}
+*/
+
+ canExport(user) {
+ return false;
+ }
}
diff --git a/models/users.js b/models/users.js
index 976e5068..7c5d2855 100644
--- a/models/users.js
+++ b/models/users.js
@@ -95,7 +95,7 @@ Users.attachSchema(
autoValue() {
if (this.isInsert && !this.isSet) {
return {
- boardView: 'board-view-lists',
+ boardView: 'board-view-swimlanes',
};
}
},
@@ -128,6 +128,13 @@ Users.attachSchema(
type: Boolean,
optional: true,
},
+ 'profile.hideCheckedItems': {
+ /**
+ * does the user want to hide checked checklist items?
+ */
+ type: Boolean,
+ optional: true,
+ },
'profile.hiddenSystemMessages': {
/**
* does the user want to hide system messages?
@@ -218,8 +225,8 @@ Users.attachSchema(
type: String,
optional: true,
allowedValues: [
- 'board-view-lists',
'board-view-swimlanes',
+ 'board-view-lists',
'board-view-cal',
],
},
@@ -483,6 +490,11 @@ Users.helpers({
return profile.showDesktopDragHandles || false;
},
+ hasHideCheckedItems() {
+ const profile = this.profile || {};
+ return profile.hideCheckedItems || false;
+ },
+
hasHiddenSystemMessages() {
const profile = this.profile || {};
return profile.hiddenSystemMessages || false;
@@ -612,6 +624,15 @@ Users.mutations({
};
},
+ toggleHideCheckedItems() {
+ const value = this.hasHideCheckedItems();
+ return {
+ $set: {
+ 'profile.hideCheckedItems': !value,
+ },
+ };
+ },
+
toggleSystem(value = false) {
return {
$set: {
@@ -690,6 +711,10 @@ Meteor.methods({
const user = Meteor.user();
user.toggleDesktopHandles(user.hasShowDesktopDragHandles());
},
+ toggleHideCheckedItems() {
+ const user = Meteor.user();
+ user.toggleHideCheckedItems();
+ },
toggleSystemMessages() {
const user = Meteor.user();
user.toggleSystem(user.hasHiddenSystemMessages());
@@ -903,7 +928,7 @@ if (Meteor.isServer) {
user.profile = {
initials,
fullname: user.services.oidc.fullname,
- boardView: 'board-view-lists',
+ boardView: 'board-view-swimlanes',
};
user.authenticationMethod = 'oauth2';
@@ -921,7 +946,8 @@ if (Meteor.isServer) {
existingUser.profile = user.profile;
existingUser.authenticationMethod = user.authenticationMethod;
- Meteor.users.remove({ _id: existingUser._id }); // remove existing record
+ Meteor.users.remove({ _id: user._id });
+ Meteor.users.remove({ _id: existingUser._id }); // is going to be created again
return existingUser;
}
@@ -961,7 +987,7 @@ if (Meteor.isServer) {
);
} else {
user.profile = { icode: options.profile.invitationcode };
- user.profile.boardView = 'board-view-lists';
+ user.profile.boardView = 'board-view-swimlanes';
// Deletes the invitation code after the user was created successfully.
setTimeout(
@@ -1109,10 +1135,10 @@ if (Meteor.isServer) {
});
*/
- const Future = require('fibers/future');
- let future1 = new Future();
- let future2 = new Future();
- let future3 = new Future();
+ const Future = require('fibers/future');
+ let future1 = new Future();
+ let future2 = new Future();
+ let future3 = new Future();
Boards.insert(
{
title: TAPi18n.__('templates'),
@@ -1140,7 +1166,7 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.cardTemplatesSwimlaneId': swimlaneId },
});
- future1.return();
+ future1.return();
},
);
@@ -1158,7 +1184,7 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.listTemplatesSwimlaneId': swimlaneId },
});
- future2.return();
+ future2.return();
},
);
@@ -1176,22 +1202,22 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.boardTemplatesSwimlaneId': swimlaneId },
});
- future3.return();
+ future3.return();
},
);
},
);
- // HACK
- future1.wait();
- future2.wait();
- future3.wait();
+ // HACK
+ future1.wait();
+ future2.wait();
+ future3.wait();
});
});
}
- Users.after.insert((userId, doc) => {
- // HACK
- doc = Users.findOne({_id: doc._id});
+ Users.after.insert((userId, doc) => {
+ // HACK
+ doc = Users.findOne({ _id: doc._id });
if (doc.createdThroughApi) {
// The admin user should be able to create a user despite disabling registration because
// it is two different things (registration and creation).
diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py
index 54526416..fabf3819 100644
--- a/openapi/generate_openapi.py
+++ b/openapi/generate_openapi.py
@@ -249,7 +249,10 @@ class EntryPoint(object):
if name.startswith('{'):
param_type = name.strip('{}')
- if param_type not in ['string', 'number', 'boolean', 'integer', 'array', 'file']:
+ if param_type == 'Object':
+ # hope for the best
+ param_type = 'object'
+ elif param_type not in ['string', 'number', 'boolean', 'integer', 'array', 'file']:
self.warn('unknown type {}\n allowed values: string, number, boolean, integer, array, file'.format(param_type))
try:
name, desc = desc.split(maxsplit=1)
@@ -814,13 +817,21 @@ def parse_schemas(schemas_dir):
for d in data]
entry_points.extend(schema_entry_points)
+ end_of_previous_operation = -1
+
# try to match JSDoc to the operations
for entry_point in schema_entry_points:
operation = entry_point.method # POST/GET/PUT/DELETE
+
+ # find all jsdocs that end before the current operation,
+ # the last item in the list is the one we need
jsdoc = [j for j in jsdocs
- if j.loc.end.line + 1 == operation.loc.start.line]
+ if j.loc.end.line + 1 <= operation.loc.start.line and
+ j.loc.start.line > end_of_previous_operation]
if bool(jsdoc):
- entry_point.doc = jsdoc[0]
+ entry_point.doc = jsdoc[-1]
+
+ end_of_previous_operation = operation.loc.end.line
except TypeError:
logger.warning(context.txt_for(statement))
logger.error('{}:{}-{} can not parse {}'.format(path,
diff --git a/openshift/wekan.yml b/openshift/wekan.yml
index 28f63300..3d08451b 100644
--- a/openshift/wekan.yml
+++ b/openshift/wekan.yml
@@ -64,8 +64,6 @@ objects:
name: "${WEKAN_SERVICE_NAME}"
sessionAffinity: None
type: ClusterIP
- status:
- loadBalancer: {}
- apiVersion: v1
kind: Service
metadata:
@@ -86,8 +84,6 @@ objects:
name: "${DATABASE_SERVICE_NAME}"
sessionAffinity: None
type: ClusterIP
- status:
- loadBalancer: {}
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
@@ -276,7 +272,6 @@ objects:
lastTriggeredImage: ''
type: ImageChange
- type: ConfigChange
- status: {}
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
@@ -297,15 +292,6 @@ objects:
name: wekan
weight: 100
wildcardPolicy: None
- status:
- ingress:
- - conditions:
- - lastTransitionTime: '2018-08-28T14:45:21Z'
- status: 'True'
- type: Admitted
- host: ${FQDN}
- routerName: router
- wildcardPolicy: None
parameters:
- description: The Fully Qualified Hostname (FQDN) of the application
displayName: FQDN
@@ -323,7 +309,7 @@ parameters:
displayName: Database Service Name
name: DATABASE_SERVICE_NAME
required: true
- value: mongodb
+ value: wekan-mongodb
- description: Username for MongoDB user that will be used for accessing the database.
displayName: MongoDB Connection Username
from: user[A-Z0-9]{3}
@@ -356,7 +342,7 @@ parameters:
displayName: Version of MongoDB Image
name: MONGODB_VERSION
required: true
- value: '4.0.10'
+ value: '3.6'
- name: WEKAN_SERVICE_NAME
displayName: Wekan Service Name
value: wekan
diff --git a/package-lock.json b/package-lock.json
index 80afccd0..0edb0d4f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "v4.11.0",
+ "version": "v4.20.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -8,72 +8,131 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "dev": true,
"requires": {
"@babel/highlight": "^7.8.3"
}
},
"@babel/core": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz",
- "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==",
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.6",
- "@babel/helper-module-transforms": "^7.9.0",
- "@babel/helpers": "^7.9.6",
- "@babel/parser": "^7.9.6",
- "@babel/template": "^7.8.6",
- "@babel/traverse": "^7.9.6",
- "@babel/types": "^7.9.6",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz",
+ "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.5",
+ "@babel/helper-module-transforms": "^7.10.5",
+ "@babel/helpers": "^7.10.4",
+ "@babel/parser": "^7.10.5",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.5",
+ "@babel/types": "^7.10.5",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
"json5": "^2.1.2",
- "lodash": "^4.17.13",
+ "lodash": "^4.17.19",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
"@babel/generator": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
- "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+ "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
"requires": {
- "@babel/types": "^7.9.6",
+ "@babel/types": "^7.10.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.13",
"source-map": "^0.5.0"
}
},
+ "@babel/helper-function-name": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+ "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
"@babel/parser": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
- "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+ "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ=="
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
},
"@babel/traverse": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
- "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.6",
- "@babel/helper-function-name": "^7.9.5",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.6",
- "@babel/types": "^7.9.6",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+ "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.5",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/parser": "^7.10.5",
+ "@babel/types": "^7.10.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "lodash": "^4.17.19"
}
},
"@babel/types": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
- "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
"requires": {
- "@babel/helper-validator-identifier": "^7.9.5",
- "lodash": "^4.17.13",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
}
@@ -95,6 +154,7 @@
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
"integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
+ "dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.8.3",
"@babel/template": "^7.8.3",
@@ -105,116 +165,335 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
"integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
- "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz",
+ "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==",
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.5"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/types": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-module-imports": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
- "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+ "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.4"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/types": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-module-transforms": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
- "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
- "requires": {
- "@babel/helper-module-imports": "^7.8.3",
- "@babel/helper-replace-supers": "^7.8.6",
- "@babel/helper-simple-access": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/template": "^7.8.6",
- "@babel/types": "^7.9.0",
- "lodash": "^4.17.13"
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz",
+ "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.5",
+ "lodash": "^4.17.19"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+ "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+ "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ=="
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/types": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
- "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.4"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/types": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-replace-supers": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
- "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
- "requires": {
- "@babel/helper-member-expression-to-functions": "^7.8.3",
- "@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/traverse": "^7.9.6",
- "@babel/types": "^7.9.6"
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+ "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
"@babel/generator": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
- "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+ "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
"requires": {
- "@babel/types": "^7.9.6",
+ "@babel/types": "^7.10.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.13",
"source-map": "^0.5.0"
}
},
+ "@babel/helper-function-name": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+ "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
"@babel/parser": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
- "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+ "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ=="
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
},
"@babel/traverse": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
- "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.6",
- "@babel/helper-function-name": "^7.9.5",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.6",
- "@babel/types": "^7.9.6",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+ "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.5",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/parser": "^7.10.5",
+ "@babel/types": "^7.10.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "lodash": "^4.17.19"
}
},
"@babel/types": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
- "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
"requires": {
- "@babel/helper-validator-identifier": "^7.9.5",
- "lodash": "^4.17.13",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
}
}
},
"@babel/helper-simple-access": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
- "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+ "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
"requires": {
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+ "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ=="
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/types": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-split-export-declaration": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
"integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "dev": true,
"requires": {
"@babel/types": "^7.8.3"
}
@@ -222,57 +501,116 @@
"@babel/helper-validator-identifier": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
- "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g=="
+ "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
+ "dev": true
},
"@babel/helpers": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
- "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+ "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
"requires": {
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.9.6",
- "@babel/types": "^7.9.6"
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
"@babel/generator": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
- "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+ "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
"requires": {
- "@babel/types": "^7.9.6",
+ "@babel/types": "^7.10.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.13",
"source-map": "^0.5.0"
}
},
+ "@babel/helper-function-name": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+ "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
"@babel/parser": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
- "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+ "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ=="
+ },
+ "@babel/template": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
},
"@babel/traverse": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
- "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.6",
- "@babel/helper-function-name": "^7.9.5",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.6",
- "@babel/types": "^7.9.6",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+ "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.10.5",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/parser": "^7.10.5",
+ "@babel/types": "^7.10.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "lodash": "^4.17.19"
}
},
"@babel/types": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
- "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+ "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
"requires": {
- "@babel/helper-validator-identifier": "^7.9.5",
- "lodash": "^4.17.13",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
}
@@ -282,6 +620,7 @@
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
"integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.0",
"chalk": "^2.0.0",
@@ -291,12 +630,13 @@
"@babel/parser": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
- "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA=="
+ "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+ "dev": true
},
"@babel/runtime": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
- "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz",
+ "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -305,6 +645,7 @@
"version": "7.8.6",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
"integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+ "dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@babel/parser": "^7.8.6",
@@ -332,6 +673,7 @@
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
"integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+ "dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.5",
"lodash": "^4.17.13",
@@ -364,6 +706,12 @@
"integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==",
"dev": true
},
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "dev": true
+ },
"@typescript-eslint/experimental-utils": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz",
@@ -410,6 +758,11 @@
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
+ "abstract-logging": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-1.0.0.tgz",
+ "integrity": "sha1-i33q/TEFWbwo93ck3RuzAXcnjBs="
+ },
"acorn": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
@@ -423,14 +776,14 @@
"dev": true
},
"ajv": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
- "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
"requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
+ "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
"ansi-escapes": {
@@ -527,9 +880,12 @@
}
},
"asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
},
"assert-plus": {
"version": "1.0.0",
@@ -658,12 +1014,12 @@
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
},
"bcrypt": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.8.tgz",
- "integrity": "sha512-jKV6RvLhI36TQnPDvUFqBEnGX9c8dRRygKxCZu7E+MgLfKZbmmXL8a7/SFFOyHoPNX9nV81cKRC5tbQfvEQtpw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.0.tgz",
+ "integrity": "sha512-jB0yCBl4W/kVHM2whjfyqnxTmOHkCX4kHEa5nYKSoGeYe8YrjTYTc87/6bwt1g8cmV0QrbhKriETg9jWtcREhg==",
"requires": {
- "nan": "2.14.0",
- "node-pre-gyp": "0.14.0"
+ "node-addon-api": "^3.0.0",
+ "node-pre-gyp": "0.15.0"
}
},
"bl": {
@@ -737,12 +1093,13 @@
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"bunyan": {
- "version": "1.8.12",
- "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
- "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-2.0.4.tgz",
+ "integrity": "sha512-wJWl1J0aO+AJV+mEXh5jr2jiSUo+JJHQZ/P2z0JSFJidFAWuJPafD+IhE8BeQNMBZyldA9Y3GDR1U15zAAaJHA==",
"requires": {
"dtrace-provider": "~0.8",
- "moment": "^2.10.6",
+ "exeunt": "1.1.0",
+ "moment": "^2.19.3",
"mv": "~2",
"safe-json-stringify": "~1"
}
@@ -873,11 +1230,6 @@
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
"dev": true
},
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
- },
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -1033,19 +1385,6 @@
"resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
"integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4="
},
- "csv-stringify": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.0.tgz",
- "integrity": "sha512-G05575DSO/9vFzQxZN+Srh30cNyHk0SM0ePyiTChMD5WVt7GMTVPBQf4rtgMF6mqhNCJUPw4pN8LDe8MF9EYOA=="
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
"date-fns": {
"version": "1.30.1",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
@@ -1194,22 +1533,22 @@
}
},
"es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
"dev": true,
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
"object-inspect": "^1.7.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
}
},
"es-to-primitive": {
@@ -1344,9 +1683,9 @@
}
},
"eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
+ "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
"dev": true,
"requires": {
"debug": "^2.6.9",
@@ -1398,23 +1737,24 @@
}
},
"eslint-plugin-import": {
- "version": "2.20.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
- "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
+ "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
"dev": true,
"requires": {
- "array-includes": "^3.0.3",
- "array.prototype.flat": "^1.2.1",
+ "array-includes": "^3.1.1",
+ "array.prototype.flat": "^1.2.3",
"contains-path": "^0.1.0",
"debug": "^2.6.9",
"doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.2",
- "eslint-module-utils": "^2.4.1",
+ "eslint-import-resolver-node": "^0.3.3",
+ "eslint-module-utils": "^2.6.0",
"has": "^1.0.3",
"minimatch": "^3.0.4",
- "object.values": "^1.1.0",
+ "object.values": "^1.1.1",
"read-pkg-up": "^2.0.0",
- "resolve": "^1.12.0"
+ "resolve": "^1.17.0",
+ "tsconfig-paths": "^3.9.0"
},
"dependencies": {
"debug": {
@@ -1441,6 +1781,15 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
}
}
},
@@ -1454,9 +1803,9 @@
}
},
"eslint-plugin-prettier": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz",
- "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz",
+ "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
@@ -1570,6 +1919,11 @@
}
}
},
+ "exeunt": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/exeunt/-/exeunt-1.1.0.tgz",
+ "integrity": "sha1-r3Lbb5Szy3XpIa7jddUTBJhD0oQ="
+ },
"expand-brackets": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -1718,14 +2072,14 @@
}
},
"extsprintf": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz",
- "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk="
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz",
+ "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8="
},
"fast-deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
- "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-diff": {
"version": "1.2.0",
@@ -1819,6 +2173,12 @@
"write": "1.0.3"
},
"dependencies": {
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
"rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
@@ -1831,9 +2191,14 @@
}
},
"flatted": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
- "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.0.4.tgz",
+ "integrity": "sha512-4gZhsMc26tSiMgQ+0gRN818ST2KCkX/4EvqocCkE1+SRb7mapNk4KLSP+XAj02jc8rxuyD3DrmI3a0BQ/TNOpg=="
+ },
+ "flushwritable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/flushwritable/-/flushwritable-1.0.0.tgz",
+ "integrity": "sha1-PjKNj95BKtR+c44751C00pAENJg="
},
"for-in": {
"version": "1.0.2",
@@ -1938,15 +2303,18 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"gridfs-stream": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/gridfs-stream/-/gridfs-stream-0.5.3.tgz",
- "integrity": "sha1-wIlnKPo+qD9fo8nO1GGvt6A20Uk="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/gridfs-stream/-/gridfs-stream-1.1.1.tgz",
+ "integrity": "sha1-PdOhAOwgIaGBKC9utGcJY2B034k=",
+ "requires": {
+ "flushwritable": "^1.0.0"
+ }
},
"has": {
"version": "1.0.3",
@@ -2216,9 +2584,9 @@
"dev": true
},
"is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
"dev": true
},
"is-data-descriptor": {
@@ -2352,12 +2720,12 @@
"dev": true
},
"is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "has-symbols": "^1.0.1"
}
},
"is-regexp": {
@@ -2455,9 +2823,9 @@
"dev": true
},
"json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -2474,9 +2842,9 @@
}
},
"jszip": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz",
- "integrity": "sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz",
+ "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==",
"requires": {
"lie": "~3.3.0",
"pako": "~1.0.2",
@@ -2491,34 +2859,25 @@
"dev": true
},
"ldap-filter": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz",
- "integrity": "sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz",
+ "integrity": "sha1-KxTGiiqdQQTb28kQocqF/Riel5c=",
"requires": {
- "assert-plus": "0.1.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
- "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
- }
+ "assert-plus": "^1.0.0"
}
},
"ldapjs": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.2.tgz",
- "integrity": "sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.0.0.tgz",
+ "integrity": "sha512-ZESQmVoG4a2ZX51pl/aRI+/kqiN2eRWMgHIsNZ2TYf37/S64OPnVJL5Vd5gdZR/qRPZVe5uuKW5p0GK2FUx/FQ==",
"requires": {
- "asn1": "0.2.3",
+ "abstract-logging": "^1.0.0",
+ "asn1": "^0.2.4",
"assert-plus": "^1.0.0",
"backoff": "^2.5.0",
- "bunyan": "^1.8.3",
- "dashdash": "^1.14.0",
- "dtrace-provider": "~0.8",
- "ldap-filter": "0.2.2",
+ "ldap-filter": "^0.3.3",
"once": "^1.4.0",
- "vasync": "^1.6.4",
+ "vasync": "^2.2.0",
"verror": "^1.8.1"
}
},
@@ -2721,9 +3080,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash.merge": {
"version": "4.6.2",
@@ -2854,33 +3213,33 @@
"optional": true
},
"meteor-node-stubs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz",
- "integrity": "sha512-UO2OStvLOKoApmOdIP5eCqoLaa/ritMXRg4ffJVdkNLEsczzPvTjgC0Mxk4cM4R8MZkwll90FYgjDf5qUTJdMA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz",
+ "integrity": "sha512-QJwyv23wyXD3uEMzk5Xr/y5ezoVlCbHvBbrgdkVadn84dmifLRbs0PtD6EeNw5NLIk+SQSfxld7IMdEsneGz5w==",
"requires": {
"assert": "^1.4.1",
- "browserify-zlib": "^0.1.4",
- "buffer": "^4.9.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^5.2.1",
"console-browserify": "^1.1.0",
"constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.7",
- "events": "^1.1.1",
- "https-browserify": "0.0.1",
- "os-browserify": "^0.2.1",
- "path-browserify": "0.0.0",
- "process": "^0.11.9",
- "punycode": "^1.4.1",
+ "crypto-browserify": "^3.12.0",
+ "domain-browser": "^1.2.0",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "^1.0.0",
+ "process": "^0.11.10",
+ "punycode": "^2.1.1",
"querystring-es3": "^0.2.1",
- "readable-stream": "^2.3.6",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.8.0",
- "string_decoder": "^1.1.0",
- "timers-browserify": "^1.4.2",
- "tty-browserify": "0.0.0",
+ "readable-stream": "^3.3.0",
+ "stream-browserify": "^2.0.2",
+ "stream-http": "^3.0.0",
+ "string_decoder": "^1.2.0",
+ "timers-browserify": "^2.0.10",
+ "tty-browserify": "0.0.1",
"url": "^0.11.0",
- "util": "^0.10.3",
- "vm-browserify": "0.0.4"
+ "util": "^0.11.1",
+ "vm-browserify": "^1.1.0"
},
"dependencies": {
"asn1.js": {
@@ -2897,6 +3256,15 @@
"bundled": true,
"requires": {
"util": "0.10.3"
+ },
+ "dependencies": {
+ "util": {
+ "version": "0.10.3",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
}
},
"base64-js": {
@@ -2933,12 +3301,13 @@
}
},
"browserify-des": {
- "version": "1.0.1",
+ "version": "1.0.2",
"bundled": true,
"requires": {
"cipher-base": "^1.0.1",
"des.js": "^1.0.0",
- "inherits": "^2.0.1"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
"browserify-rsa": {
@@ -2963,19 +3332,18 @@
}
},
"browserify-zlib": {
- "version": "0.1.4",
+ "version": "0.2.0",
"bundled": true,
"requires": {
- "pako": "~0.2.0"
+ "pako": "~1.0.5"
}
},
"buffer": {
- "version": "4.9.1",
+ "version": "5.2.1",
"bundled": true,
"requires": {
"base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
+ "ieee754": "^1.1.4"
}
},
"buffer-xor": {
@@ -3083,7 +3451,7 @@
"bundled": true
},
"elliptic": {
- "version": "6.4.0",
+ "version": "6.4.1",
"bundled": true,
"requires": {
"bn.js": "^4.4.0",
@@ -3096,7 +3464,7 @@
}
},
"events": {
- "version": "1.1.1",
+ "version": "3.0.0",
"bundled": true
},
"evp_bytestokey": {
@@ -3116,11 +3484,11 @@
}
},
"hash.js": {
- "version": "1.1.3",
+ "version": "1.1.7",
"bundled": true,
"requires": {
"inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.0"
+ "minimalistic-assert": "^1.0.1"
},
"dependencies": {
"inherits": {
@@ -3139,15 +3507,11 @@
}
},
"https-browserify": {
- "version": "0.0.1",
+ "version": "1.0.0",
"bundled": true
},
"ieee754": {
- "version": "1.1.11",
- "bundled": true
- },
- "indexof": {
- "version": "0.0.1",
+ "version": "1.1.13",
"bundled": true
},
"inherits": {
@@ -3159,11 +3523,12 @@
"bundled": true
},
"md5.js": {
- "version": "1.3.4",
+ "version": "1.3.5",
"bundled": true,
"requires": {
"hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
"miller-rabin": {
@@ -3183,30 +3548,31 @@
"bundled": true
},
"os-browserify": {
- "version": "0.2.1",
+ "version": "0.3.0",
"bundled": true
},
"pako": {
- "version": "0.2.9",
+ "version": "1.0.10",
"bundled": true
},
"parse-asn1": {
- "version": "5.1.1",
+ "version": "5.1.4",
"bundled": true,
"requires": {
"asn1.js": "^4.0.0",
"browserify-aes": "^1.0.0",
"create-hash": "^1.1.0",
"evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3"
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
}
},
"path-browserify": {
- "version": "0.0.0",
+ "version": "1.0.0",
"bundled": true
},
"pbkdf2": {
- "version": "3.0.16",
+ "version": "3.0.17",
"bundled": true,
"requires": {
"create-hash": "^1.1.2",
@@ -3225,18 +3591,19 @@
"bundled": true
},
"public-encrypt": {
- "version": "4.0.2",
+ "version": "4.0.3",
"bundled": true,
"requires": {
"bn.js": "^4.1.0",
"browserify-rsa": "^4.0.0",
"create-hash": "^1.1.0",
"parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1"
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
"punycode": {
- "version": "1.4.1",
+ "version": "2.1.1",
"bundled": true
},
"querystring": {
@@ -3248,7 +3615,7 @@
"bundled": true
},
"randombytes": {
- "version": "2.0.6",
+ "version": "2.1.0",
"bundled": true,
"requires": {
"safe-buffer": "^5.1.0"
@@ -3263,16 +3630,12 @@
}
},
"readable-stream": {
- "version": "2.3.6",
+ "version": "3.3.0",
"bundled": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"dependencies": {
"inherits": {
@@ -3293,6 +3656,10 @@
"version": "5.1.2",
"bundled": true
},
+ "setimmediate": {
+ "version": "1.0.5",
+ "bundled": true
+ },
"sha.js": {
"version": "2.4.11",
"bundled": true,
@@ -3302,44 +3669,67 @@
}
},
"stream-browserify": {
- "version": "2.0.1",
+ "version": "2.0.2",
"bundled": true,
"requires": {
"inherits": "~2.0.1",
"readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
}
},
"stream-http": {
- "version": "2.8.1",
+ "version": "3.0.0",
"bundled": true,
"requires": {
"builtin-status-codes": "^3.0.0",
"inherits": "^2.0.1",
- "readable-stream": "^2.3.3",
- "to-arraybuffer": "^1.0.0",
+ "readable-stream": "^3.0.6",
"xtend": "^4.0.0"
}
},
"string_decoder": {
- "version": "1.1.1",
+ "version": "1.2.0",
"bundled": true,
"requires": {
"safe-buffer": "~5.1.0"
}
},
"timers-browserify": {
- "version": "1.4.2",
+ "version": "2.0.10",
"bundled": true,
"requires": {
- "process": "~0.11.0"
+ "setimmediate": "^1.0.4"
}
},
- "to-arraybuffer": {
- "version": "1.0.1",
- "bundled": true
- },
"tty-browserify": {
- "version": "0.0.0",
+ "version": "0.0.1",
"bundled": true
},
"url": {
@@ -3357,10 +3747,16 @@
}
},
"util": {
- "version": "0.10.3",
+ "version": "0.11.1",
"bundled": true,
"requires": {
- "inherits": "2.0.1"
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true
+ }
}
},
"util-deprecate": {
@@ -3368,11 +3764,8 @@
"bundled": true
},
"vm-browserify": {
- "version": "0.0.4",
- "bundled": true,
- "requires": {
- "indexof": "0.0.1"
- }
+ "version": "1.1.0",
+ "bundled": true
},
"xtend": {
"version": "4.0.1",
@@ -3467,15 +3860,15 @@
}
},
"moment": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
- "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
+ "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==",
"optional": true
},
"mongodb": {
- "version": "3.5.7",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz",
- "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==",
+ "version": "3.5.9",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.9.tgz",
+ "integrity": "sha512-vXHBY1CsGYcEPoVWhwgxIBeWqP3dSu9RuRDsoLRPTITrcrgm1f0Ubu1xqF9ozMwv53agmEiZm0YGo+7WL3Nbug==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@@ -3539,9 +3932,10 @@
}
},
"nan": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
+ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
+ "optional": true
},
"nanomatch": {
"version": "1.2.13",
@@ -3575,9 +3969,9 @@
"optional": true
},
"needle": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz",
- "integrity": "sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz",
+ "integrity": "sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==",
"requires": {
"debug": "^3.2.6",
"iconv-lite": "^0.4.4",
@@ -3600,14 +3994,19 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
+ "node-addon-api": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.1.tgz",
+ "integrity": "sha512-YUpjl57P55u2yUaKX5Bgy4t5s6SCNYMg+62XNg+k41aYbBL1NgWrZfcgljR5MxDxHDjzl0qHDNtH6SkW4DXNCA=="
+ },
"node-pre-gyp": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
- "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
+ "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.1",
- "needle": "^2.2.1",
+ "mkdirp": "^0.5.3",
+ "needle": "^2.5.0",
"nopt": "^4.0.1",
"npm-packlist": "^1.1.6",
"npmlog": "^4.0.2",
@@ -3743,9 +4142,9 @@
}
},
"object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
"dev": true
},
"object-keys": {
@@ -4149,8 +4548,7 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
"version": "6.9.4",
@@ -4616,9 +5014,9 @@
}
},
"spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
@@ -4632,9 +5030,9 @@
"dev": true
},
"spdx-expression-parse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
@@ -4715,28 +5113,6 @@
"es-abstract": "^1.17.5"
}
},
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- }
- },
"string.prototype.trimstart": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
@@ -4957,6 +5333,29 @@
"repeat-string": "^1.6.1"
}
},
+ "tsconfig-paths": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
+ "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
"tslib": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
@@ -5040,7 +5439,6 @@
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
- "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -5073,21 +5471,11 @@
}
},
"vasync": {
- "version": "1.6.4",
- "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz",
- "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.0.tgz",
+ "integrity": "sha1-z951GGChWCLbOxMrxZsRakra8Bs=",
"requires": {
- "verror": "1.6.0"
- },
- "dependencies": {
- "verror": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz",
- "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=",
- "requires": {
- "extsprintf": "1.2.0"
- }
- }
+ "verror": "1.10.0"
}
},
"verror": {
@@ -5249,11 +5637,11 @@
}
},
"xss": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.6.tgz",
- "integrity": "sha512-6Q9TPBeNyoTRxgZFk5Ggaepk/4vUOYdOsIUYvLehcsIZTFjaavbVnsuAkLA5lIFuug5hw8zxcB9tm01gsjph2A==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.7.tgz",
+ "integrity": "sha512-A9v7tblGvxu8TWXQC9rlpW96a+LN1lyw6wyhpTmmGW+FwRMactchBR3ROKSi33UPCUcUHSu8s9YP6F+K3Mw//w==",
"requires": {
- "commander": "^2.9.0",
+ "commander": "^2.20.3",
"cssfilter": "0.0.10"
}
},
diff --git a/package.json b/package.json
index da891bec..769ee703 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "v4.11.0",
+ "version": "v4.20.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
@@ -45,37 +45,36 @@
"eslint-config-meteor": "0.0.9",
"eslint-config-prettier": "^3.6.0",
"eslint-import-resolver-meteor": "^0.4.0",
- "eslint-plugin-import": "^2.20.0",
+ "eslint-plugin-import": "^2.22.0",
"eslint-plugin-meteor": "^5.1.0",
- "eslint-plugin-prettier": "^3.1.2",
+ "eslint-plugin-prettier": "^3.1.4",
"lint-staged": "^7.3.0",
"pre-commit": "^1.2.2",
"prettier": "^1.19.1",
"prettier-eslint": "^9.0.2"
},
"dependencies": {
- "@babel/core": "^7.9.6",
- "@babel/runtime": "^7.9.6",
+ "@babel/core": "^7.10.5",
+ "@babel/runtime": "^7.10.5",
"@root/request": "^1.6.1",
- "ajv": "^5.0.0",
+ "ajv": "^6.12.3",
"babel-runtime": "^6.26.0",
- "bcrypt": "^3.0.7",
- "bson": "^4.0.3",
- "bunyan": "^1.8.12",
- "csv-stringify": "^5.5.0",
- "es6-promise": "^4.2.4",
+ "bcrypt": "^5.0.0",
+ "bson": "^4.0.4",
+ "bunyan": "^2.0.4",
+ "es6-promise": "^4.2.8",
"fibers": "^5.0.0",
- "flatted": "^2.0.1",
- "gridfs-stream": "^0.5.3",
- "jszip": "^3.4.0",
- "ldapjs": "^1.0.2",
- "meteor-node-stubs": "^0.4.1",
- "mongodb": "^3.5.7",
+ "flatted": "^3.0.4",
+ "gridfs-stream": "^1.1.1",
+ "jszip": "^3.5.0",
+ "ldapjs": "^2.0.0",
+ "meteor-node-stubs": "^1.0.0",
+ "mongodb": "^3.5.9",
"os": "^0.1.1",
- "page": "^1.11.5",
+ "page": "^1.11.6",
"papaparse": "^5.2.0",
"qs": "^6.9.4",
"source-map-support": "^0.5.19",
- "xss": "^1.0.6"
+ "xss": "^1.0.7"
}
}
diff --git a/packages/markdown/markdown.js b/packages/markdown/markdown.js
deleted file mode 100755
index bb015cc4..00000000
--- a/packages/markdown/markdown.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var mark = marked;
-
-mark.setOptions({
- gfm: true,
- tables: true,
- breaks: true
-});
-
-Markdown = mark;
diff --git a/packages/markdown/marked/package-lock.json b/packages/markdown/marked/package-lock.json
index ca9b5848..adeef6be 100644
--- a/packages/markdown/marked/package-lock.json
+++ b/packages/markdown/marked/package-lock.json
@@ -2675,10 +2675,9 @@
}
},
"lodash": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
- "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
- "dev": true
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"loose-envify": {
"version": "1.4.0",
diff --git a/packages/markdown/marked/package.json b/packages/markdown/marked/package.json
index a2fcfe60..db7d2f99 100644
--- a/packages/markdown/marked/package.json
+++ b/packages/markdown/marked/package.json
@@ -74,5 +74,8 @@
},
"engines": {
"node": ">= 8.16.2"
+ },
+ "dependencies": {
+ "lodash": "^4.17.19"
}
}
diff --git a/packages/markdown/package.js b/packages/markdown/package.js
index 0838922b..55228856 100755
--- a/packages/markdown/package.js
+++ b/packages/markdown/package.js
@@ -2,23 +2,27 @@
Package.describe({
name: 'wekan-markdown',
- summary: "GitHub flavored markdown parser for Meteor based on marked.js",
- version: "1.0.8",
- git: "https://github.com/wekan/markdown.git"
+ summary: 'GitHub flavored markdown parser for Meteor based on marked.js',
+ version: '1.0.9',
+ git: 'https://github.com/wekan/markdown.git',
});
// Before Meteor 0.9?
if(!Package.onUse) Package.onUse = Package.on_use;
Package.onUse(function (api) {
- if(api.versionsFrom) api.versionsFrom('METEOR@0.9.0');
+ if(api.versionsFrom) api.versionsFrom('1.8.2');
api.use('templating');
+ api.use("ecmascript", ['server', 'client']);
api.add_files('marked/lib/marked.js', ['server', 'client']);
- api.add_files('markdown.js', ['server', 'client']);
+ api.add_files('src/markdown.js', ['server', 'client']);
api.export('Markdown', ['server', 'client']);
- api.use("ui", "client", {weak: true});
- api.add_files("template-integration.js", "client");
+ api.use('ui', 'client', {weak: true});
+ api.use('tmeasday:check-npm-versions', 'client');
+
+ api.add_files('src/checkNpmVersions.js', 'client');
+ api.add_files('src/template-integration.js', 'client');
});
diff --git a/packages/markdown/src/checkNpmVersions.js b/packages/markdown/src/checkNpmVersions.js
new file mode 100644
index 00000000..350ca549
--- /dev/null
+++ b/packages/markdown/src/checkNpmVersions.js
@@ -0,0 +1,5 @@
+import { checkNpmVersions } from 'meteor/tmeasday:check-npm-versions';
+
+checkNpmVersions({
+ 'xss': '1.0.6',
+}, 'my:xss');
diff --git a/packages/markdown/src/markdown.js b/packages/markdown/src/markdown.js
new file mode 100755
index 00000000..8e003f26
--- /dev/null
+++ b/packages/markdown/src/markdown.js
@@ -0,0 +1,9 @@
+import marked from '../marked/lib/marked.js';
+
+marked.setOptions({
+ gfm: true,
+ tables: true,
+ breaks: true,
+});
+
+Markdown = marked;
diff --git a/packages/markdown/src/template-integration.js b/packages/markdown/src/template-integration.js
new file mode 100755
index 00000000..bd8eec47
--- /dev/null
+++ b/packages/markdown/src/template-integration.js
@@ -0,0 +1,18 @@
+import sanitizeXss from 'xss';
+
+if (Package.ui) {
+ const Template = Package.templating.Template;
+ const UI = Package.ui.UI;
+ const HTML = Package.htmljs.HTML;
+ const Blaze = Package.blaze.Blaze; // implied by `ui`
+
+ UI.registerHelper('markdown', new Template('markdown', function () {
+ const self = this;
+ let text = '';
+ if (self.templateContentBlock) {
+ text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING);
+ }
+
+ return HTML.Raw(sanitizeXss(Markdown(text)));
+ }));
+}
diff --git a/packages/markdown/template-integration.js b/packages/markdown/template-integration.js
deleted file mode 100755
index 301bde31..00000000
--- a/packages/markdown/template-integration.js
+++ /dev/null
@@ -1,16 +0,0 @@
-if (Package.ui) {
- var Template = Package.templating.Template;
- var UI = Package.ui.UI;
- var HTML = Package.htmljs.HTML;
- var Blaze = Package.blaze.Blaze; // implied by `ui`
-
- UI.registerHelper('markdown', new Template('markdown', function () {
- var self = this;
- var text = "";
- if(self.templateContentBlock) {
- text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING);
- }
-
- return HTML.Raw(Markdown(text));
- }));
-}
diff --git a/packages/wekan-accounts-cas/cas_server.js b/packages/wekan-accounts-cas/cas_server.js
index 15c1b174..c13a6df1 100644
--- a/packages/wekan-accounts-cas/cas_server.js
+++ b/packages/wekan-accounts-cas/cas_server.js
@@ -229,13 +229,13 @@ const casValidate = (req, ticket, token, service, callback) => {
if (attrs.debug) {
console.log(`CAS response : ${JSON.stringify(result)}`);
}
- let user = Meteor.users.findOne({ 'username': options.username });
+ let user = Users.findOne({ 'username': options.username });
if (! user) {
if (attrs.debug) {
console.log(`Creating user account ${JSON.stringify(options)}`);
}
const userId = Accounts.insertUserDoc({}, options);
- user = Meteor.users.findOne(userId);
+ user = Users.findOne(userId);
}
if (attrs.debug) {
console.log(`Using user account ${JSON.stringify(user)}`);
diff --git a/public/Square150x150Logo.scale-100.png b/public/Square150x150Logo.scale-100.png
new file mode 100644
index 00000000..0445b50c
--- /dev/null
+++ b/public/Square150x150Logo.scale-100.png
Binary files differ
diff --git a/public/Square44x44Logo.scale-100.png b/public/Square44x44Logo.scale-100.png
new file mode 100644
index 00000000..bf8cacfe
--- /dev/null
+++ b/public/Square44x44Logo.scale-100.png
Binary files differ
diff --git a/public/StoreLogo.scale-100.png b/public/StoreLogo.scale-100.png
new file mode 100644
index 00000000..5d73037e
--- /dev/null
+++ b/public/StoreLogo.scale-100.png
Binary files differ
diff --git a/public/api/wekan.html b/public/api/wekan.html
index 9d3114fd..d3ed75c2 100644
--- a/public/api/wekan.html
+++ b/public/api/wekan.html
@@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
- <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.11">Wekan REST API v4.11</a>
+ <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.20">Wekan REST API v4.20</a>
</li>
@@ -1612,22 +1612,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h2">
<li>
- <a href="#get_board_card_checklists" class="toc-h2 toc-link" data-title="get_board_card_checklists">get_board_card_checklists</a>
+ <a href="#get_all_checklists" class="toc-h2 toc-link" data-title="get_all_checklists">get_all_checklists</a>
</li>
<li>
- <a href="#post_board_card_checklists" class="toc-h2 toc-link" data-title="post_board_card_checklists">post_board_card_checklists</a>
+ <a href="#new_checklist" class="toc-h2 toc-link" data-title="new_checklist">new_checklist</a>
</li>
<li>
- <a href="#get_board_card_checklist" class="toc-h2 toc-link" data-title="get_board_card_checklist">get_board_card_checklist</a>
+ <a href="#get_checklist" class="toc-h2 toc-link" data-title="get_checklist">get_checklist</a>
</li>
<li>
- <a href="#delete_board_card_checklist" class="toc-h2 toc-link" data-title="delete_board_card_checklist">delete_board_card_checklist</a>
+ <a href="#delete_checklist" class="toc-h2 toc-link" data-title="delete_checklist">delete_checklist</a>
</li>
@@ -1641,17 +1641,17 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h2">
<li>
- <a href="#get_board_card_checklist_item" class="toc-h2 toc-link" data-title="get_board_card_checklist_item">get_board_card_checklist_item</a>
+ <a href="#get_checklist_item" class="toc-h2 toc-link" data-title="get_checklist_item">get_checklist_item</a>
</li>
<li>
- <a href="#put_board_card_checklist_item" class="toc-h2 toc-link" data-title="put_board_card_checklist_item">put_board_card_checklist_item</a>
+ <a href="#edit_checklist_item" class="toc-h2 toc-link" data-title="edit_checklist_item">edit_checklist_item</a>
</li>
<li>
- <a href="#delete_board_card_checklist_item" class="toc-h2 toc-link" data-title="delete_board_card_checklist_item">delete_board_card_checklist_item</a>
+ <a href="#delete_checklist_item" class="toc-h2 toc-link" data-title="delete_checklist_item">delete_checklist_item</a>
</li>
@@ -1670,17 +1670,17 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#post_board_card_comments" class="toc-h2 toc-link" data-title="post_board_card_comments">post_board_card_comments</a>
+ <a href="#new_comment" class="toc-h2 toc-link" data-title="new_comment">new_comment</a>
</li>
<li>
- <a href="#get_board_card_comment" class="toc-h2 toc-link" data-title="get_board_card_comment">get_board_card_comment</a>
+ <a href="#get_comment" class="toc-h2 toc-link" data-title="get_comment">get_comment</a>
</li>
<li>
- <a href="#delete_board_card_comment" class="toc-h2 toc-link" data-title="delete_board_card_comment">delete_board_card_comment</a>
+ <a href="#delete_comment" class="toc-h2 toc-link" data-title="delete_comment">delete_comment</a>
</li>
@@ -1694,7 +1694,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h2">
<li>
- <a href="#get_board_customfieldvalue" class="toc-h2 toc-link" data-title="get_board_customFieldValue">get_board_customFieldValue</a>
+ <a href="#get_cards_by_custom_field" class="toc-h2 toc-link" data-title="get_cards_by_custom_field">get_cards_by_custom_field</a>
</li>
@@ -1709,22 +1709,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#get_board_list_card" class="toc-h2 toc-link" data-title="get_board_list_card">get_board_list_card</a>
+ <a href="#get_card" class="toc-h2 toc-link" data-title="get_card">get_card</a>
</li>
<li>
- <a href="#put_board_list_card" class="toc-h2 toc-link" data-title="put_board_list_card">put_board_list_card</a>
+ <a href="#edit_card" class="toc-h2 toc-link" data-title="edit_card">edit_card</a>
</li>
<li>
- <a href="#delete_board_list_card" class="toc-h2 toc-link" data-title="delete_board_list_card">delete_board_list_card</a>
+ <a href="#delete_card" class="toc-h2 toc-link" data-title="delete_card">delete_card</a>
</li>
<li>
- <a href="#get_board_swimlane_cards" class="toc-h2 toc-link" data-title="get_board_swimlane_cards">get_board_swimlane_cards</a>
+ <a href="#get_swimlane_cards" class="toc-h2 toc-link" data-title="get_swimlane_cards">get_swimlane_cards</a>
</li>
@@ -1748,12 +1748,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#get_board_customfield" class="toc-h2 toc-link" data-title="get_board_customField">get_board_customField</a>
+ <a href="#get_custom_field" class="toc-h2 toc-link" data-title="get_custom_field">get_custom_field</a>
</li>
<li>
- <a href="#delete_board_customfield" class="toc-h2 toc-link" data-title="delete_board_customField">delete_board_customField</a>
+ <a href="#delete_custom_field" class="toc-h2 toc-link" data-title="delete_custom_field">delete_custom_field</a>
</li>
@@ -1792,12 +1792,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#delete_board_int_activities" class="toc-h2 toc-link" data-title="delete_board_int_activities">delete_board_int_activities</a>
+ <a href="#delete_integration_activities" class="toc-h2 toc-link" data-title="delete_integration_activities">delete_integration_activities</a>
</li>
<li>
- <a href="#post_board_int_activities" class="toc-h2 toc-link" data-title="post_board_int_activities">post_board_int_activities</a>
+ <a href="#new_integration_activities" class="toc-h2 toc-link" data-title="new_integration_activities">new_integration_activities</a>
</li>
@@ -1845,7 +1845,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#post_board_user_remove" class="toc-h2 toc-link" data-title="post_board_user_remove">post_board_user_remove</a>
+ <a href="#remove_board_member" class="toc-h2 toc-link" data-title="remove_board_member">remove_board_member</a>
</li>
@@ -1904,7 +1904,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
- <a href="#delete_board_swimlane" class="toc-h2 toc-link" data-title="delete_board_swimlane">delete_board_swimlane</a>
+ <a href="#delete_swimlane" class="toc-h2 toc-link" data-title="delete_swimlane">delete_swimlane</a>
</li>
@@ -2027,7 +2027,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
- <h1 id="wekan-rest-api">Wekan REST API v4.11</h1>
+ <h1 id="wekan-rest-api">Wekan REST API v4.20</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
@@ -4325,20 +4325,24 @@ To perform this operation, you must be authenticated by means of one of the foll
UserSecurity
</aside>
<h1 id="wekan-rest-api-checklists">Checklists</h1>
-<h2 id="get_board_card_checklists">get_board_card_checklists</h2>
-<p><a id="opIdget_board_card_checklists"></a></p>
+<h2 id="get_all_checklists">get_all_checklists</h2>
+<p><a id="opIdget_all_checklists"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/cards/{card}/checklists \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4357,6 +4361,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4378,6 +4383,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists'</s
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -4390,6 +4396,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -4425,6 +4432,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -4440,7 +4448,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/cards/{card}/checklists</code></p>
-<h3 id="get_board_card_checklists-parameters">Parameters</h3>
+<p><em>Get the list of checklists attached to a card</em></p>
+<h3 id="get_all_checklists-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -4457,18 +4466,34 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_card_checklists-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>[
+ {
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>
+ }
+]
+</code></pre>
+<h3 id="get_all_checklists-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4483,7 +4508,36 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="get_all_checklists-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -4491,24 +4545,27 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="post_board_card_checklists">post_board_card_checklists</h2>
-<p><a id="opIdpost_board_card_checklists"></a></p>
+<h2 id="new_checklist">new_checklist</h2>
+<p><a id="opIdnew_checklist"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/cards/{card}/checklists \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4531,6 +4588,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4553,6 +4611,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists'</s
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -4566,6 +4625,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -4602,6 +4662,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -4617,6 +4678,7 @@ System.out.println(response.toString());
</code></pre>
<p><code>POST /api/boards/{board}/cards/{card}/checklists</code></p>
+<p><em>create a new checklist</em></p>
<blockquote>
<p>Body parameter</p>
</blockquote>
@@ -4624,7 +4686,7 @@ System.out.println(response.toString());
<span class="hljs-attr">items:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="post_board_card_checklists-parameters">Parameters</h3>
+<h3 id="new_checklist-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -4641,14 +4703,14 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>body</td>
@@ -4662,18 +4724,31 @@ System.out.println(response.toString());
<td>body</td>
<td>string</td>
<td>true</td>
-<td>the title value</td>
+<td>the title of the new checklist</td>
</tr>
<tr>
<td>» items</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the items value</td>
+<td>false</td>
+<td>the list of items on the new checklist</td>
</tr>
</tbody>
</table>
-<h3 id="post_board_card_checklists-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="new_checklist-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4688,7 +4763,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="new_checklist-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -4696,20 +4793,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="get_board_card_checklist">get_board_card_checklist</h2>
-<p><a id="opIdget_board_card_checklist"></a></p>
+<h2 id="get_checklist">get_checklist</h2>
+<p><a id="opIdget_checklist"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4728,6 +4829,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4749,6 +4851,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists/{ch
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -4761,6 +4864,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -4796,6 +4900,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -4811,7 +4916,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/cards/{card}/checklists/{checklist}</code></p>
-<h3 id="get_board_card_checklist-parameters">Parameters</h3>
+<p><em>Get a checklist</em></p>
+<h3 id="get_checklist-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -4828,25 +4934,50 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the checklist value</td>
+<td>the ID of the checklist</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_card_checklist-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<p><strong>checklist</strong>: the ID of the checklist</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"cardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"finishedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>,
+ <span class="hljs-attr">"items"</span>: [
+ {
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"isFinished"</span>: <span class="hljs-literal">true</span>
+ }
+ ]
+}
+</code></pre>
+<h3 id="get_checklist-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -4861,7 +4992,85 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="get_checklist-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» cardId</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» finishedAt</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» createdAt</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» sort</td>
+<td>number</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» items</td>
+<td>[object]</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>»» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>»» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>»» isFinished</td>
+<td>boolean</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -4869,20 +5078,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_card_checklist">delete_board_card_checklist</h2>
-<p><a id="opIddelete_board_card_checklist"></a></p>
+<h2 id="delete_checklist">delete_checklist</h2>
+<p><a id="opIddelete_checklist"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4901,6 +5114,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -4922,6 +5136,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists/{ch
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -4934,6 +5149,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -4969,6 +5185,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -4984,7 +5201,9 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}</code></p>
-<h3 id="delete_board_card_checklist-parameters">Parameters</h3>
+<p><em>Delete a checklist</em></p>
+<p>The checklist will be removed, not put in the recycle bin.</p>
+<h3 id="delete_checklist-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -5001,25 +5220,39 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the checklist value</td>
+<td>the ID of the checklist to remove</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_card_checklist-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<p><strong>checklist</strong>: the ID of the checklist to remove</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_checklist-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -5034,7 +5267,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_checklist-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -5043,20 +5298,24 @@ To perform this operation, you must be authenticated by means of one of the foll
UserSecurity
</aside>
<h1 id="wekan-rest-api-checklistitems">ChecklistItems</h1>
-<h2 id="get_board_card_checklist_item">get_board_card_checklist_item</h2>
-<p><a id="opIdget_board_card_checklist_item"></a></p>
+<h2 id="get_checklist_item">get_checklist_item</h2>
+<p><a id="opIdget_checklist_item"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5075,6 +5334,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5096,6 +5356,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists/{ch
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -5108,6 +5369,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -5143,6 +5405,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -5158,7 +5421,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</code></p>
-<h3 id="get_board_card_checklist_item-parameters">Parameters</h3>
+<p><em>Get a checklist item</em></p>
+<h3 id="get_checklist_item-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -5175,32 +5439,53 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the checklist value</td>
+<td>the checklist ID</td>
</tr>
<tr>
<td>item</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the item value</td>
+<td>the ID of the item</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_card_checklist_item-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<p><strong>checklist</strong>: the checklist ID</p>
+<p><strong>item</strong>: the ID of the item</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>,
+ <span class="hljs-attr">"isFinished"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"checklistId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"cardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="get_checklist_item-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -5215,7 +5500,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemachecklistitems">ChecklistItems</a></td>
</tr>
</tbody>
</table>
@@ -5223,24 +5508,27 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="put_board_card_checklist_item">put_board_card_checklist_item</h2>
-<p><a id="opIdput_board_card_checklist_item"></a></p>
+<h2 id="edit_checklist_item">edit_checklist_item</h2>
+<p><a id="opIdedit_checklist_item"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">PUT</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5263,6 +5551,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5285,6 +5574,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists/{ch
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -5298,6 +5588,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -5334,6 +5625,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -5349,6 +5641,7 @@ System.out.println(response.toString());
</code></pre>
<p><code>PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</code></p>
+<p><em>Edit a checklist item</em></p>
<blockquote>
<p>Body parameter</p>
</blockquote>
@@ -5356,7 +5649,7 @@ System.out.println(response.toString());
<span class="hljs-attr">title:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="put_board_card_checklist_item-parameters">Parameters</h3>
+<h3 id="edit_checklist_item-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -5373,28 +5666,28 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the checklist value</td>
+<td>the checklist ID</td>
</tr>
<tr>
<td>item</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the item value</td>
+<td>the ID of the item</td>
</tr>
<tr>
<td>body</td>
@@ -5407,19 +5700,34 @@ System.out.println(response.toString());
<td>» isFinished</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the isFinished value</td>
+<td>false</td>
+<td>is the item checked?</td>
</tr>
<tr>
<td>» title</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the title value</td>
+<td>false</td>
+<td>the new text of the item</td>
</tr>
</tbody>
</table>
-<h3 id="put_board_card_checklist_item-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<p><strong>checklist</strong>: the checklist ID</p>
+<p><strong>item</strong>: the ID of the item</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="edit_checklist_item-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -5434,7 +5742,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="edit_checklist_item-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -5442,20 +5772,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_card_checklist_item">delete_board_card_checklist_item</h2>
-<p><a id="opIddelete_board_card_checklist_item"></a></p>
+<h2 id="delete_checklist_item">delete_checklist_item</h2>
+<p><a id="opIddelete_checklist_item"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5474,6 +5808,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5495,6 +5830,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/checklists/{ch
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -5507,6 +5843,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -5542,6 +5879,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -5557,7 +5895,9 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}</code></p>
-<h3 id="delete_board_card_checklist_item-parameters">Parameters</h3>
+<p><em>Delete a checklist item</em></p>
+<p>Note: this operation can't be reverted.</p>
+<h3 id="delete_checklist_item-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -5574,32 +5914,47 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the checklist value</td>
+<td>the checklist ID</td>
</tr>
<tr>
<td>item</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the item value</td>
+<td>the ID of the item to be removed</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_card_checklist_item-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>card</strong>: the card ID</p>
+<p><strong>checklist</strong>: the checklist ID</p>
+<p><strong>item</strong>: the ID of the item to be removed</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_checklist_item-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -5614,7 +5969,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_checklist_item-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -5851,24 +6228,27 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="post_board_card_comments">post_board_card_comments</h2>
-<p><a id="opIdpost_board_card_comments"></a></p>
+<h2 id="new_comment">new_comment</h2>
+<p><a id="opIdnew_comment"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/cards/{card}/comments \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/comments</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5891,6 +6271,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -5913,6 +6294,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/comments'</spa
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -5926,6 +6308,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -5962,6 +6345,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -5977,6 +6361,7 @@ System.out.println(response.toString());
</code></pre>
<p><code>POST /api/boards/{board}/cards/{card}/comments</code></p>
+<p><em>Add a comment on a card</em></p>
<blockquote>
<p>Body parameter</p>
</blockquote>
@@ -5984,7 +6369,7 @@ System.out.println(response.toString());
<span class="hljs-attr">comment:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="post_board_card_comments-parameters">Parameters</h3>
+<h3 id="new_comment-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -6001,14 +6386,14 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the ID of the card</td>
</tr>
<tr>
<td>body</td>
@@ -6022,7 +6407,7 @@ System.out.println(response.toString());
<td>body</td>
<td>string</td>
<td>true</td>
-<td>the authorId value</td>
+<td>the user who 'posted' the comment</td>
</tr>
<tr>
<td>» comment</td>
@@ -6033,7 +6418,20 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
-<h3 id="post_board_card_comments-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID of the card</p>
+<p><strong>card</strong>: the ID of the card</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="new_comment-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -6048,7 +6446,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="new_comment-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -6056,20 +6476,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="get_board_card_comment">get_board_card_comment</h2>
-<p><a id="opIdget_board_card_comment"></a></p>
+<h2 id="get_comment">get_comment</h2>
+<p><a id="opIdget_comment"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/comments/{comment}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6088,6 +6512,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6109,6 +6534,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/comments/{comm
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -6121,6 +6547,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -6156,6 +6583,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -6171,7 +6599,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/cards/{card}/comments/{comment}</code></p>
-<h3 id="get_board_card_comment-parameters">Parameters</h3>
+<p><em>Get a comment on a card</em></p>
+<h3 id="get_comment-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -6188,25 +6617,44 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the ID of the card</td>
</tr>
<tr>
<td>comment</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the comment value</td>
+<td>the ID of the comment to retrieve</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_card_comment-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID of the card</p>
+<p><strong>card</strong>: the ID of the card</p>
+<p><strong>comment</strong>: the ID of the comment to retrieve</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"boardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"cardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"text"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"userId"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="get_comment-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -6221,7 +6669,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemacardcomments">CardComments</a></td>
</tr>
</tbody>
</table>
@@ -6229,20 +6677,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_card_comment">delete_board_card_comment</h2>
-<p><a id="opIddelete_board_card_comment"></a></p>
+<h2 id="delete_comment">delete_comment</h2>
+<p><a id="opIddelete_comment"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/comments/{comment}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6261,6 +6713,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6282,6 +6735,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cards/{card}/comments/{comm
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -6294,6 +6748,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -6329,6 +6784,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -6344,7 +6800,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/cards/{card}/comments/{comment}</code></p>
-<h3 id="delete_board_card_comment-parameters">Parameters</h3>
+<p><em>Delete a comment on a card</em></p>
+<h3 id="delete_comment-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -6361,25 +6818,39 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the ID of the card</td>
</tr>
<tr>
<td>comment</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the comment value</td>
+<td>the ID of the comment to delete</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_card_comment-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID of the card</p>
+<p><strong>card</strong>: the ID of the card</p>
+<p><strong>comment</strong>: the ID of the comment to delete</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_comment-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -6394,7 +6865,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_comment-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -6403,20 +6896,24 @@ To perform this operation, you must be authenticated by means of one of the foll
UserSecurity
</aside>
<h1 id="wekan-rest-api-cards">Cards</h1>
-<h2 id="get_board_customfieldvalue">get_board_customFieldValue</h2>
-<p><a id="opIdget_board_customFieldValue"></a></p>
+<h2 id="get_cards_by_custom_field">get_cards_by_custom_field</h2>
+<p><a id="opIdget_cards_by_custom_field"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6435,6 +6932,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -6456,6 +6954,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/cardsByCustomField/{customF
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -6468,6 +6967,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -6503,6 +7003,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -6518,7 +7019,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}</code></p>
-<h3 id="get_board_customfieldvalue-parameters">Parameters</h3>
+<p><em>Get all Cards that matchs a value of a specific custom field</em></p>
+<h3 id="get_cards_by_custom_field-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -6535,25 +7037,45 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>customField</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the customField value</td>
+<td>the list ID</td>
</tr>
<tr>
<td>customFieldValue</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the customFieldValue value</td>
+<td>the value to look for</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_customfieldvalue-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>customField</strong>: the list ID</p>
+<p><strong>customFieldValue</strong>: the value to look for</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>[
+ {
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"description"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"listId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"swinlaneId"</span>: <span class="hljs-string">"string"</span>
+ }
+]
+</code></pre>
+<h3 id="get_cards_by_custom_field-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -6568,7 +7090,57 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="get_cards_by_custom_field-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» description</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» listId</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» swinlaneId</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -7088,20 +7660,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="get_board_list_card">get_board_list_card</h2>
-<p><a id="opIdget_board_list_card"></a></p>
+<h2 id="get_card">get_card</h2>
+<p><a id="opIdget_card"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7120,6 +7696,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7141,6 +7718,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'<
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -7153,6 +7731,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -7188,6 +7767,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -7203,7 +7783,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/lists/{list}/cards/{card}</code></p>
-<h3 id="get_board_list_card-parameters">Parameters</h3>
+<p><em>Get a Card</em></p>
+<h3 id="get_card-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -7220,25 +7801,87 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>list</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the list value</td>
+<td>the list ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the card ID</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_list_card-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>list</strong>: the list ID of the card</p>
+<p><strong>card</strong>: the card ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"archived"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"parentId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"listId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"swimlaneId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"boardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"coverId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"color"</span>: <span class="hljs-string">"white"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"customFields"</span>: [
+ {}
+ ],
+ <span class="hljs-attr">"dateLastActivity"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"description"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"requestedBy"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"assignedBy"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"labelIds"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"members"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"assignees"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"receivedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"startAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"dueAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"endAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"spentTime"</span>: <span class="hljs-number">0</span>,
+ <span class="hljs-attr">"isOvertime"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"userId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>,
+ <span class="hljs-attr">"subtaskSort"</span>: <span class="hljs-number">0</span>,
+ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"linkedId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"vote"</span>: {
+ <span class="hljs-attr">"question"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"positive"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"negative"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"end"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"public"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"allowNonBoardMembers"</span>: <span class="hljs-literal">true</span>
+ }
+}
+</code></pre>
+<h3 id="get_card-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -7253,7 +7896,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemacards">Cards</a></td>
</tr>
</tbody>
</table>
@@ -7261,24 +7904,27 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="put_board_list_card">put_board_list_card</h2>
-<p><a id="opIdput_board_list_card"></a></p>
+<h2 id="edit_card">edit_card</h2>
+<p><a id="opIdedit_card"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">PUT</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7302,6 +7948,7 @@ $.ajax({
"parentId": "string",
"description": "string",
"color": "string",
+ "vote": {},
"labelIds": "string",
"requestedBy": "string",
"assignedBy": "string",
@@ -7310,7 +7957,7 @@ $.ajax({
"dueAt": "string",
"endAt": "string",
"spentTime": "string",
- "isOverTime": "string",
+ "isOverTime": true,
"customFields": "string",
"members": "string",
"assignees": "string",
@@ -7318,6 +7965,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7340,6 +7988,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'<
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -7353,6 +8002,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -7389,6 +8039,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -7404,6 +8055,15 @@ System.out.println(response.toString());
</code></pre>
<p><code>PUT /api/boards/{board}/lists/{list}/cards/{card}</code></p>
+<p><em>Edit Fields in a Card</em></p>
+<p>Edit a card</p>
+<p>The color has to be chosen between <code>white</code>, <code>green</code>, <code>yellow</code>, <code>orange</code>,
+<code>red</code>, <code>purple</code>, <code>blue</code>, <code>sky</code>, <code>lime</code>, <code>pink</code>, <code>black</code>, <code>silver</code>,
+<code>peachpuff</code>, <code>crimson</code>, <code>plum</code>, <code>darkgreen</code>, <code>slateblue</code>, <code>magenta</code>,
+<code>gold</code>, <code>navy</code>, <code>gray</code>, <code>saddlebrown</code>, <code>paleturquoise</code>, <code>mistyrose</code>,
+<code>indigo</code>:</p>
+ <img src="/card-colors.png" alt="Wekan card colors" />
+<p>Note: setting the color to white has the same effect than removing it.</p>
<blockquote>
<p>Body parameter</p>
</blockquote>
@@ -7413,6 +8073,7 @@ System.out.println(response.toString());
<span class="hljs-attr">parentId:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">color:</span> <span class="hljs-string">string</span>
+<span class="hljs-attr">vote:</span> <span class="hljs-string">{}</span>
<span class="hljs-attr">labelIds:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">requestedBy:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">assignedBy:</span> <span class="hljs-string">string</span>
@@ -7421,14 +8082,14 @@ System.out.println(response.toString());
<span class="hljs-attr">dueAt:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">endAt:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">spentTime:</span> <span class="hljs-string">string</span>
-<span class="hljs-attr">isOverTime:</span> <span class="hljs-string">string</span>
+<span class="hljs-attr">isOverTime:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">customFields:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">members:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">assignees:</span> <span class="hljs-string">string</span>
<span class="hljs-attr">swimlaneId:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="put_board_list_card-parameters">Parameters</h3>
+<h3 id="edit_card-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -7445,21 +8106,21 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID of the card</td>
</tr>
<tr>
<td>list</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the list value</td>
+<td>the list ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the ID of the card</td>
</tr>
<tr>
<td>body</td>
@@ -7472,138 +8133,159 @@ System.out.println(response.toString());
<td>» title</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the title value</td>
+<td>false</td>
+<td>the new title of the card</td>
</tr>
<tr>
<td>» listId</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the listId value</td>
+<td>false</td>
+<td>the new list ID of the card (move operation)</td>
</tr>
<tr>
<td>» authorId</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the authorId value</td>
+<td>false</td>
+<td>change the owner of the card</td>
</tr>
<tr>
<td>» parentId</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the parentId value</td>
+<td>false</td>
+<td>change the parent of the card</td>
</tr>
<tr>
<td>» description</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the description value</td>
+<td>false</td>
+<td>the new description of the card</td>
</tr>
<tr>
<td>» color</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the color value</td>
+<td>false</td>
+<td>the new color of the card</td>
+</tr>
+<tr>
+<td>» vote</td>
+<td>body</td>
+<td>object</td>
+<td>false</td>
+<td>the vote object</td>
</tr>
<tr>
<td>» labelIds</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the labelIds value</td>
+<td>false</td>
+<td>the new list of label IDs attached to the card</td>
</tr>
<tr>
<td>» requestedBy</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the requestedBy value</td>
+<td>false</td>
+<td>the new requestedBy field of the card</td>
</tr>
<tr>
<td>» assignedBy</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the assignedBy value</td>
+<td>false</td>
+<td>the new assignedBy field of the card</td>
</tr>
<tr>
<td>» receivedAt</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the receivedAt value</td>
+<td>false</td>
+<td>the new receivedAt field of the card</td>
</tr>
<tr>
<td>» startAt</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the startAt value</td>
+<td>false</td>
+<td>the new startAt field of the card</td>
</tr>
<tr>
<td>» dueAt</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the dueAt value</td>
+<td>false</td>
+<td>the new dueAt field of the card</td>
</tr>
<tr>
<td>» endAt</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the endAt value</td>
+<td>false</td>
+<td>the new endAt field of the card</td>
</tr>
<tr>
<td>» spentTime</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the spentTime value</td>
+<td>false</td>
+<td>the new spentTime field of the card</td>
</tr>
<tr>
<td>» isOverTime</td>
<td>body</td>
-<td>string</td>
-<td>true</td>
-<td>the isOverTime value</td>
+<td>boolean</td>
+<td>false</td>
+<td>the new isOverTime field of the card</td>
</tr>
<tr>
<td>» customFields</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the customFields value</td>
+<td>false</td>
+<td>the new customFields value of the card</td>
</tr>
<tr>
<td>» members</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the members value</td>
+<td>false</td>
+<td>the new list of member IDs attached to the card</td>
</tr>
<tr>
<td>» assignees</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the assignees value</td>
+<td>false</td>
+<td>the array of maximum one ID of assignee attached to the card</td>
</tr>
<tr>
<td>» swimlaneId</td>
<td>body</td>
<td>string</td>
-<td>true</td>
-<td>the swimlaneId value</td>
+<td>false</td>
+<td>the new swimlane ID of the card</td>
</tr>
</tbody>
</table>
-<h3 id="put_board_list_card-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID of the card</p>
+<p><strong>list</strong>: the list ID of the card</p>
+<p><strong>card</strong>: the ID of the card</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="edit_card-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -7618,7 +8300,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="edit_card-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -7626,20 +8330,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_list_card">delete_board_list_card</h2>
-<p><a id="opIddelete_board_list_card"></a></p>
+<h2 id="delete_card">delete_card</h2>
+<p><a id="opIddelete_card"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7658,6 +8366,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7679,6 +8388,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/lists/{list}/cards/{card}'<
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -7691,6 +8401,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -7726,6 +8437,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -7741,7 +8453,10 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/lists/{list}/cards/{card}</code></p>
-<h3 id="delete_board_list_card-parameters">Parameters</h3>
+<p><em>Delete a card from a board</em></p>
+<p>This operation <strong>deletes</strong> a card, and therefore the card
+is not put in the recycle bin.</p>
+<h3 id="delete_card-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -7758,25 +8473,39 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID of the card</td>
</tr>
<tr>
<td>list</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the list value</td>
+<td>the list ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the card value</td>
+<td>the ID of the card</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_list_card-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID of the card</p>
+<p><strong>list</strong>: the list ID of the card</p>
+<p><strong>card</strong>: the ID of the card</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_card-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -7791,7 +8520,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_card-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -7799,20 +8550,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="get_board_swimlane_cards">get_board_swimlane_cards</h2>
-<p><a id="opIdget_board_swimlane_cards"></a></p>
+<h2 id="get_swimlane_cards">get_swimlane_cards</h2>
+<p><a id="opIdget_swimlane_cards"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/swimlanes/{swimlane}/cards</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7831,6 +8586,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -7852,6 +8608,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}/cards'
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -7864,6 +8621,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -7899,6 +8657,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -7914,7 +8673,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/swimlanes/{swimlane}/cards</code></p>
-<h3 id="get_board_swimlane_cards-parameters">Parameters</h3>
+<p><em>get all cards attached to a swimlane</em></p>
+<h3 id="get_swimlane_cards-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -7931,18 +8691,36 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>swimlane</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the swimlane value</td>
+<td>the swimlane ID</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_swimlane_cards-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>swimlane</strong>: the swimlane ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>[
+ {
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"description"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"listId"</span>: <span class="hljs-string">"string"</span>
+ }
+]
+</code></pre>
+<h3 id="get_swimlane_cards-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -7957,7 +8735,50 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="get_swimlane_cards-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» description</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» listId</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -8467,20 +9288,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="get_board_customfield">get_board_customField</h2>
-<p><a id="opIdget_board_customField"></a></p>
+<h2 id="get_custom_field">get_custom_field</h2>
+<p><a id="opIdget_custom_field"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/custom-fields/{customField} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/custom-fields/{customField}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -8499,6 +9324,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -8520,6 +9346,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/custom-fields/{customField}
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -8532,6 +9359,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -8567,6 +9395,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -8582,7 +9411,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>GET /api/boards/{board}/custom-fields/{customField}</code></p>
-<h3 id="get_board_customfield-parameters">Parameters</h3>
+<p><em>Get a Custom Fields attached to a board</em></p>
+<h3 id="get_custom_field-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -8606,11 +9436,38 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the customField value</td>
+<td>the ID of the custom field</td>
</tr>
</tbody>
</table>
-<h3 id="get_board_customfield-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>customField</strong>: the ID of the custom field</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"boardIds"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"text"</span>,
+ <span class="hljs-attr">"settings"</span>: {
+ <span class="hljs-attr">"currencyCode"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"dropdownItems"</span>: [
+ {}
+ ]
+ },
+ <span class="hljs-attr">"showOnCard"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"automaticallyOnCard"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"showLabelOnMiniCard"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="get_custom_field-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -8625,7 +9482,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemacustomfields">CustomFields</a></td>
</tr>
</tbody>
</table>
@@ -8633,20 +9490,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_customfield">delete_board_customField</h2>
-<p><a id="opIddelete_board_customField"></a></p>
+<h2 id="delete_custom_field">delete_custom_field</h2>
+<p><a id="opIddelete_custom_field"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/custom-fields/{customField}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -8665,6 +9526,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -8686,6 +9548,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/custom-fields/{customField}
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -8698,6 +9561,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -8733,6 +9597,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -8748,7 +9613,9 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/custom-fields/{customField}</code></p>
-<h3 id="delete_board_customfield-parameters">Parameters</h3>
+<p><em>Delete a Custom Fields attached to a board</em></p>
+<p>The Custom Field can't be retrieved after this operation</p>
+<h3 id="delete_custom_field-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -8772,11 +9639,23 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the customField value</td>
+<td>the ID of the custom field</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_customfield-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>customField</strong>: the ID of the custom field</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_custom_field-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -8791,7 +9670,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_custom_field-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -10000,20 +10901,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_int_activities">delete_board_int_activities</h2>
-<p><a id="opIddelete_board_int_activities"></a></p>
+<h2 id="delete_integration_activities">delete_integration_activities</h2>
+<p><a id="opIddelete_integration_activities"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/integrations/{int}/activities</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -10032,6 +10937,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -10053,6 +10959,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/integrations/{int}/activiti
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -10065,6 +10972,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -10100,6 +11008,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -10115,7 +11024,8 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/integrations/{int}/activities</code></p>
-<h3 id="delete_board_int_activities-parameters">Parameters</h3>
+<p><em>Delete subscribed activities</em></p>
+<h3 id="delete_integration_activities-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -10132,18 +11042,42 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>int</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the int value</td>
+<td>the integration ID</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_int_activities-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>int</strong>: the integration ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"enabled"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"activities"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"url"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"token"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"boardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"userId"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_integration_activities-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -10158,7 +11092,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemaintegrations">Integrations</a></td>
</tr>
</tbody>
</table>
@@ -10166,24 +11100,27 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="post_board_int_activities">post_board_int_activities</h2>
-<p><a id="opIdpost_board_int_activities"></a></p>
+<h2 id="new_integration_activities">new_integration_activities</h2>
+<p><a id="opIdnew_integration_activities"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/integrations/{int}/activities \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/integrations/{int}/activities</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -10205,6 +11142,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -10227,6 +11165,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/integrations/{int}/activiti
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -10240,6 +11179,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -10276,6 +11216,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -10291,13 +11232,14 @@ System.out.println(response.toString());
</code></pre>
<p><code>POST /api/boards/{board}/integrations/{int}/activities</code></p>
+<p><em>Add subscribed activities</em></p>
<blockquote>
<p>Body parameter</p>
</blockquote>
<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">activities:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="post_board_int_activities-parameters">Parameters</h3>
+<h3 id="new_integration_activities-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -10314,14 +11256,14 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>int</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the int value</td>
+<td>the integration ID</td>
</tr>
<tr>
<td>body</td>
@@ -10339,7 +11281,31 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
-<h3 id="post_board_int_activities-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>int</strong>: the integration ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"enabled"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"activities"</span>: [
+ <span class="hljs-string">"string"</span>
+ ],
+ <span class="hljs-attr">"url"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"token"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"boardId"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"userId"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="new_integration_activities-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -10354,7 +11320,7 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td><a href="#schemaintegrations">Integrations</a></td>
</tr>
</tbody>
</table>
@@ -11499,24 +12465,27 @@ to later change the permissions.</p>
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="post_board_user_remove">post_board_user_remove</h2>
-<p><a id="opIdpost_board_user_remove"></a></p>
+<h2 id="remove_board_member">remove_board_member</h2>
+<p><a id="opIdremove_board_member"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/members/{user}/remove \
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/members/{user}/remove</span> HTTP/1.1
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
+Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -11538,6 +12507,7 @@ $.ajax({
}'</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -11560,6 +12530,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/members/{user}/remove'</spa
headers = {
<span class="hljs-string">'Content-Type'</span> =&gt; <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -11573,6 +12544,7 @@ p JSON.parse(result)
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -11609,6 +12581,7 @@ System.out.println(response.toString());
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -11624,13 +12597,15 @@ System.out.println(response.toString());
</code></pre>
<p><code>POST /api/boards/{board}/members/{user}/remove</code></p>
+<p><em>Remove Member from Board</em></p>
+<p>Only the admin user (the first user) can call the REST API.</p>
<blockquote>
<p>Body parameter</p>
</blockquote>
<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">action:</span> <span class="hljs-string">string</span>
</code></pre>
-<h3 id="post_board_user_remove-parameters">Parameters</h3>
+<h3 id="remove_board_member-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -11647,14 +12622,14 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the board ID</td>
</tr>
<tr>
<td>user</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the user value</td>
+<td>the user ID</td>
</tr>
<tr>
<td>body</td>
@@ -11668,11 +12643,25 @@ System.out.println(response.toString());
<td>body</td>
<td>string</td>
<td>true</td>
-<td>the action value</td>
+<td>the action (needs to be <code>remove</code>)</td>
</tr>
</tbody>
</table>
-<h3 id="post_board_user_remove-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the board ID</p>
+<p><strong>user</strong>: the user ID</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>,
+ <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="remove_board_member-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -11687,7 +12676,36 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="remove_board_member-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
+</tr>
+<tr>
+<td>» title</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -11842,6 +12860,7 @@ System.out.println(response.toString());
],
<span class="hljs-attr">"fullname"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"showDesktopDragHandles"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"hideCheckedItems"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenSystemMessages"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenMinicardLabelText"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"initials"</span>: <span class="hljs-string">"string"</span>,
@@ -11858,7 +12877,7 @@ System.out.println(response.toString());
<span class="hljs-string">"string"</span>
],
<span class="hljs-attr">"icode"</span>: <span class="hljs-string">"string"</span>,
- <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-lists"</span>,
+ <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-swimlanes"</span>,
<span class="hljs-attr">"listSortBy"</span>: <span class="hljs-string">"-modifiedat"</span>,
<span class="hljs-attr">"templatesBoardId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"cardTemplatesSwimlaneId"</span>: <span class="hljs-string">"string"</span>,
@@ -12498,6 +13517,7 @@ System.out.println(response.toString());
],
<span class="hljs-attr">"fullname"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"showDesktopDragHandles"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"hideCheckedItems"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenSystemMessages"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenMinicardLabelText"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"initials"</span>: <span class="hljs-string">"string"</span>,
@@ -12514,7 +13534,7 @@ System.out.println(response.toString());
<span class="hljs-string">"string"</span>
],
<span class="hljs-attr">"icode"</span>: <span class="hljs-string">"string"</span>,
- <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-lists"</span>,
+ <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-swimlanes"</span>,
<span class="hljs-attr">"listSortBy"</span>: <span class="hljs-string">"-modifiedat"</span>,
<span class="hljs-attr">"templatesBoardId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"cardTemplatesSwimlaneId"</span>: <span class="hljs-string">"string"</span>,
@@ -13641,20 +14661,24 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
-<h2 id="delete_board_swimlane">delete_board_swimlane</h2>
-<p><a id="opIddelete_board_swimlane"></a></p>
+<h2 id="delete_swimlane">delete_swimlane</h2>
+<p><a id="opIddelete_swimlane"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
+ -H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">DELETE</span> <span class="hljs-string">/api/boards/{board}/swimlanes/{swimlane}</span> HTTP/1.1
-<span class="undefined"></span></code></pre>
+<span class="http"><span class="hljs-attribute">Accept</span>: application/json
+
+<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -13673,6 +14697,7 @@ $.ajax({
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
+ <span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
@@ -13694,6 +14719,7 @@ fetch(<span class="hljs-string">'/api/boards/{board}/swimlanes/{swimlane}'</span
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
+ <span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
@@ -13706,6 +14732,7 @@ p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
+ <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
@@ -13741,6 +14768,7 @@ System.out.println(response.toString());
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
+ <span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
@@ -13756,7 +14784,9 @@ System.out.println(response.toString());
</code></pre>
<p><code>DELETE /api/boards/{board}/swimlanes/{swimlane}</code></p>
-<h3 id="delete_board_swimlane-parameters">Parameters</h3>
+<p><em>Delete a swimlane</em></p>
+<p>The swimlane will be deleted, not moved to the recycle bin</p>
+<h3 id="delete_swimlane-parameters">Parameters</h3>
<table>
<thead>
<tr>
@@ -13773,18 +14803,31 @@ System.out.println(response.toString());
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the board value</td>
+<td>the ID of the board</td>
</tr>
<tr>
<td>swimlane</td>
<td>path</td>
<td>string</td>
<td>true</td>
-<td>the swimlane value</td>
+<td>the ID of the swimlane</td>
</tr>
</tbody>
</table>
-<h3 id="delete_board_swimlane-responses">Responses</h3>
+<h4 id="detailed-descriptions">Detailed descriptions</h4>
+<p><strong>board</strong>: the ID of the board</p>
+<p><strong>swimlane</strong>: the ID of the swimlane</p>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+ <span class="hljs-attr">"_id"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="delete_swimlane-responses">Responses</h3>
<table>
<thead>
<tr>
@@ -13799,7 +14842,29 @@ System.out.println(response.toString());
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
-<td>None</td>
+<td>Inline</td>
+</tr>
+</tbody>
+</table>
+<h3 id="delete_swimlane-responseschema">Response Schema</h3>
+<p>Status Code <strong>200</strong></p>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>» _id</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>none</td>
</tr>
</tbody>
</table>
@@ -15928,6 +16993,7 @@ UserSecurity
],
<span class="hljs-attr">"fullname"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"showDesktopDragHandles"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"hideCheckedItems"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenSystemMessages"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenMinicardLabelText"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"initials"</span>: <span class="hljs-string">"string"</span>,
@@ -15944,7 +17010,7 @@ UserSecurity
<span class="hljs-string">"string"</span>
],
<span class="hljs-attr">"icode"</span>: <span class="hljs-string">"string"</span>,
- <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-lists"</span>,
+ <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-swimlanes"</span>,
<span class="hljs-attr">"listSortBy"</span>: <span class="hljs-string">"-modifiedat"</span>,
<span class="hljs-attr">"templatesBoardId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"cardTemplatesSwimlaneId"</span>: <span class="hljs-string">"string"</span>,
@@ -16097,6 +17163,7 @@ UserSecurity
],
<span class="hljs-attr">"fullname"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"showDesktopDragHandles"</span>: <span class="hljs-literal">true</span>,
+ <span class="hljs-attr">"hideCheckedItems"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenSystemMessages"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"hiddenMinicardLabelText"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"initials"</span>: <span class="hljs-string">"string"</span>,
@@ -16113,7 +17180,7 @@ UserSecurity
<span class="hljs-string">"string"</span>
],
<span class="hljs-attr">"icode"</span>: <span class="hljs-string">"string"</span>,
- <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-lists"</span>,
+ <span class="hljs-attr">"boardView"</span>: <span class="hljs-string">"board-view-swimlanes"</span>,
<span class="hljs-attr">"listSortBy"</span>: <span class="hljs-string">"-modifiedat"</span>,
<span class="hljs-attr">"templatesBoardId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"cardTemplatesSwimlaneId"</span>: <span class="hljs-string">"string"</span>,
@@ -16163,6 +17230,13 @@ UserSecurity
<td>does the user want to hide system messages?</td>
</tr>
<tr>
+<td>hideCheckedItems</td>
+<td>boolean</td>
+<td>false</td>
+<td>none</td>
+<td>does the user want to hide checked checklist items?</td>
+</tr>
+<tr>
<td>hiddenSystemMessages</td>
<td>boolean</td>
<td>false</td>
@@ -16301,11 +17375,11 @@ UserSecurity
<tbody>
<tr>
<td>boardView</td>
-<td>board-view-lists</td>
+<td>board-view-swimlanes</td>
</tr>
<tr>
<td>boardView</td>
-<td>board-view-swimlanes</td>
+<td>board-view-lists</td>
</tr>
<tr>
<td>boardView</td>
diff --git a/public/api/wekan.yml b/public/api/wekan.yml
index 40fcf4b4..da61bc5a 100644
--- a/public/api/wekan.yml
+++ b/public/api/wekan.yml
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
- version: v4.11
+ version: v4.20
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -290,18 +290,21 @@ paths:
200 response
/api/boards/{board}/cards/{card}/checklists:
get:
- operationId: get_board_card_checklists
+ operationId: get_all_checklists
+ summary: Get the list of checklists attached to a card
tags:
- Checklists
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
produces:
@@ -312,8 +315,18 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: array
+ items:
+ type: object
+ properties:
+ _id:
+ type: string
+ title:
+ type: string
post:
- operationId: post_board_card_checklists
+ operationId: new_checklist
+ summary: create a new checklist
tags:
- Checklists
consumes:
@@ -322,22 +335,26 @@ paths:
parameters:
- name: title
in: formData
- description: the title value
+ description: |
+ the title of the new checklist
type: string
required: true
- name: items
in: formData
- description: the items value
+ description: |
+ the list of items on the new checklist
type: string
- required: true
+ required: false
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
produces:
@@ -348,25 +365,34 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/cards/{card}/checklists/{checklist}:
get:
- operationId: get_board_card_checklist
+ operationId: get_checklist
+ summary: Get a checklist
tags:
- Checklists
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
- name: checklist
in: path
- description: the checklist value
+ description: |
+ the ID of the checklist
type: string
required: true
produces:
@@ -377,24 +403,54 @@ paths:
'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_board_card_checklist
+ 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 value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
- name: checklist
in: path
- description: the checklist value
+ description: |
+ the ID of the checklist to remove
type: string
required: true
produces:
@@ -405,30 +461,41 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}:
get:
- operationId: get_board_card_checklist_item
+ operationId: get_checklist_item
+ summary: Get a checklist item
tags:
- ChecklistItems
+ - Checklists
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
- name: checklist
in: path
- description: the checklist value
+ description: |
+ the checklist ID
type: string
required: true
- name: item
in: path
- description: the item value
+ description: |
+ the ID of the item
type: string
required: true
produces:
@@ -439,42 +506,52 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/ChecklistItems"
put:
- operationId: put_board_card_checklist_item
+ operationId: edit_checklist_item
+ summary: Edit a checklist item
tags:
- ChecklistItems
+ - Checklists
consumes:
- multipart/form-data
- application/json
parameters:
- name: isFinished
in: formData
- description: the isFinished value
+ description: |
+ is the item checked?
type: string
- required: true
+ required: false
- name: title
in: formData
- description: the title value
+ description: |
+ the new text of the item
type: string
- required: true
+ required: false
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
- name: checklist
in: path
- description: the checklist value
+ description: |
+ the checklist ID
type: string
required: true
- name: item
in: path
- description: the item value
+ description: |
+ the ID of the item
type: string
required: true
produces:
@@ -485,29 +562,42 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
delete:
- operationId: delete_board_card_checklist_item
+ 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 value
+ description: |
+ the board ID
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
- name: checklist
in: path
- description: the checklist value
+ description: |
+ the checklist ID
type: string
required: true
- name: item
in: path
- description: the item value
+ description: |
+ the ID of the item to be removed
type: string
required: true
produces:
@@ -518,6 +608,11 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/cards/{card}/comments:
get:
operationId: get_all_comments
@@ -557,7 +652,8 @@ paths:
authorId:
type: string
post:
- operationId: post_board_card_comments
+ operationId: new_comment
+ summary: Add a comment on a card
tags:
- CardComments
consumes:
@@ -566,7 +662,8 @@ paths:
parameters:
- name: authorId
in: formData
- description: the authorId value
+ description: |
+ the user who 'posted' the comment
type: string
required: true
- name: comment
@@ -576,12 +673,14 @@ paths:
required: true
- name: board
in: path
- description: the board value
+ description: |
+ the board ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the ID of the card
type: string
required: true
produces:
@@ -592,25 +691,34 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/cards/{card}/comments/{comment}:
get:
- operationId: get_board_card_comment
+ operationId: get_comment
+ summary: Get a comment on a card
tags:
- CardComments
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the ID of the card
type: string
required: true
- name: comment
in: path
- description: the comment value
+ description: |
+ the ID of the comment to retrieve
type: string
required: true
produces:
@@ -621,24 +729,30 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/CardComments"
delete:
- operationId: delete_board_card_comment
+ operationId: delete_comment
+ summary: Delete a comment on a card
tags:
- CardComments
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the ID of the card
type: string
required: true
- name: comment
in: path
- description: the comment value
+ description: |
+ the ID of the comment to delete
type: string
required: true
produces:
@@ -649,25 +763,34 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}:
get:
- operationId: get_board_customFieldValue
+ 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 value
+ description: |
+ the board ID
type: string
required: true
- name: customField
in: path
- description: the customField value
+ description: |
+ the list ID
type: string
required: true
- name: customFieldValue
in: path
- description: the customFieldValue value
+ description: |
+ the value to look for
type: string
required: true
produces:
@@ -678,6 +801,21 @@ paths:
'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
@@ -779,7 +917,8 @@ paths:
type: string
/api/boards/{board}/custom-fields/{customField}:
get:
- operationId: get_board_customField
+ operationId: get_custom_field
+ summary: Get a Custom Fields attached to a board
tags:
- CustomFields
parameters:
@@ -790,7 +929,8 @@ paths:
required: true
- name: customField
in: path
- description: the customField value
+ description: |
+ the ID of the custom field
type: string
required: true
produces:
@@ -801,8 +941,13 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/CustomFields"
delete:
- operationId: delete_board_customField
+ 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:
@@ -813,7 +958,8 @@ paths:
required: true
- name: customField
in: path
- description: the customField value
+ description: |
+ the ID of the custom field
type: string
required: true
produces:
@@ -824,6 +970,11 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/export:
get:
operationId: exportJson
@@ -1036,18 +1187,21 @@ paths:
type: string
/api/boards/{board}/integrations/{int}/activities:
delete:
- operationId: delete_board_int_activities
+ operationId: delete_integration_activities
+ summary: Delete subscribed activities
tags:
- Integrations
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: int
in: path
- description: the int value
+ description: |
+ the integration ID
type: string
required: true
produces:
@@ -1058,8 +1212,11 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/Integrations"
post:
- operationId: post_board_int_activities
+ operationId: new_integration_activities
+ summary: Add subscribed activities
tags:
- Integrations
consumes:
@@ -1073,12 +1230,14 @@ paths:
required: true
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: int
in: path
- description: the int value
+ description: |
+ the integration ID
type: string
required: true
produces:
@@ -1089,6 +1248,8 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/Integrations"
/api/boards/{board}/labels:
put:
operationId: add_board_label
@@ -1359,23 +1520,27 @@ paths:
type: string
/api/boards/{board}/lists/{list}/cards/{card}:
get:
- operationId: get_board_list_card
+ operationId: get_card
+ summary: Get a Card
tags:
- Cards
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: list
in: path
- description: the list value
+ description: |
+ the list ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the card ID
type: string
required: true
produces:
@@ -1386,8 +1551,23 @@ paths:
'200':
description: |-
200 response
+ schema:
+ $ref: "#/definitions/Cards"
put:
- operationId: put_board_list_card
+ 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`:
+
+ <img src="/card-colors.png" width="40%" alt="Wekan card colors" />
+
+ Note: setting the color to white has the same effect than removing it.
tags:
- Cards
consumes:
@@ -1396,112 +1576,140 @@ paths:
parameters:
- name: title
in: formData
- description: the title value
+ description: |
+ the new title of the card
type: string
- required: true
+ required: false
- name: listId
in: formData
- description: the listId value
+ description: |
+ the new list ID of the card (move operation)
type: string
- required: true
+ required: false
- name: authorId
in: formData
- description: the authorId value
+ description: |
+ change the owner of the card
type: string
- required: true
+ required: false
- name: parentId
in: formData
- description: the parentId value
+ description: |
+ change the parent of the card
type: string
- required: true
+ required: false
- name: description
in: formData
- description: the description value
+ description: |
+ the new description of the card
type: string
- required: true
+ required: false
- name: color
in: formData
- description: the color value
+ description: |
+ the new color of the card
type: string
- required: true
+ required: false
+ - name: vote
+ in: formData
+ description: |
+ the vote object
+ type: object
+ required: false
- name: labelIds
in: formData
- description: the labelIds value
+ description: |
+ the new list of label IDs attached to the card
type: string
- required: true
+ required: false
- name: requestedBy
in: formData
- description: the requestedBy value
+ description: |
+ the new requestedBy field of the card
type: string
- required: true
+ required: false
- name: assignedBy
in: formData
- description: the assignedBy value
+ description: |
+ the new assignedBy field of the card
type: string
- required: true
+ required: false
- name: receivedAt
in: formData
- description: the receivedAt value
+ description: |
+ the new receivedAt field of the card
type: string
- required: true
+ required: false
- name: startAt
in: formData
- description: the startAt value
+ description: |
+ the new startAt field of the card
type: string
- required: true
+ required: false
- name: dueAt
in: formData
- description: the dueAt value
+ description: |
+ the new dueAt field of the card
type: string
- required: true
+ required: false
- name: endAt
in: formData
- description: the endAt value
+ description: |
+ the new endAt field of the card
type: string
- required: true
+ required: false
- name: spentTime
in: formData
- description: the spentTime value
+ description: |
+ the new spentTime field of the card
type: string
- required: true
+ required: false
- name: isOverTime
in: formData
- description: the isOverTime value
- type: string
- required: true
+ description: |
+ the new isOverTime field of the card
+ type: boolean
+ required: false
- name: customFields
in: formData
- description: the customFields value
+ description: |
+ the new customFields value of the card
type: string
- required: true
+ required: false
- name: members
in: formData
- description: the members value
+ description: |
+ the new list of member IDs attached to the card
type: string
- required: true
+ required: false
- name: assignees
in: formData
- description: the assignees value
+ description: |
+ the array of maximum one ID of assignee attached to the card
type: string
- required: true
+ required: false
- name: swimlaneId
in: formData
- description: the swimlaneId value
+ description: |
+ the new swimlane ID of the card
type: string
- required: true
+ required: false
- name: board
in: path
- description: the board value
+ description: |
+ the board ID of the card
type: string
required: true
- name: list
in: path
- description: the list value
+ description: |
+ the list ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the ID of the card
type: string
required: true
produces:
@@ -1512,24 +1720,36 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
delete:
- operationId: delete_board_list_card
+ 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 value
+ description: |
+ the board ID of the card
type: string
required: true
- name: list
in: path
- description: the list value
+ description: |
+ the list ID of the card
type: string
required: true
- name: card
in: path
- description: the card value
+ description: |
+ the ID of the card
type: string
required: true
produces:
@@ -1540,6 +1760,11 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/members/{member}:
post:
operationId: set_board_member_permission
@@ -1663,26 +1888,33 @@ paths:
type: string
/api/boards/{board}/members/{user}/remove:
post:
- operationId: post_board_user_remove
+ 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 value
+ description: |
+ the action (needs to be `remove`)
type: string
required: true
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: user
in: path
- description: the user value
+ description: |
+ the user ID
type: string
required: true
produces:
@@ -1693,6 +1925,13 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
+ title:
+ type: string
/api/boards/{board}/swimlanes:
get:
operationId: get_all_swimlanes
@@ -1787,18 +2026,23 @@ paths:
schema:
$ref: "#/definitions/Swimlanes"
delete:
- operationId: delete_board_swimlane
+ 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 board value
+ description: |
+ the ID of the board
type: string
required: true
- name: swimlane
in: path
- description: the swimlane value
+ description: |
+ the ID of the swimlane
type: string
required: true
produces:
@@ -1809,20 +2053,28 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: object
+ properties:
+ _id:
+ type: string
/api/boards/{board}/swimlanes/{swimlane}/cards:
get:
- operationId: get_board_swimlane_cards
+ operationId: get_swimlane_cards
+ summary: get all cards attached to a swimlane
tags:
- Cards
parameters:
- name: board
in: path
- description: the board value
+ description: |
+ the board ID
type: string
required: true
- name: swimlane
in: path
- description: the swimlane value
+ description: |
+ the swimlane ID
type: string
required: true
produces:
@@ -1833,6 +2085,19 @@ paths:
'200':
description: |-
200 response
+ schema:
+ type: array
+ items:
+ type: object
+ properties:
+ _id:
+ type: string
+ title:
+ type: string
+ description:
+ type: string
+ listId:
+ type: string
/api/user:
get:
operationId: get_current_user
@@ -3071,6 +3336,10 @@ definitions:
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?
@@ -3132,8 +3401,8 @@ definitions:
boardView field of the user
type: string
enum:
- - board-view-lists
- board-view-swimlanes
+ - board-view-lists
- board-view-cal
listSortBy:
description: |
diff --git a/public/site.webmanifest b/public/site.webmanifest
index 997a52ec..1be96989 100644
--- a/public/site.webmanifest
+++ b/public/site.webmanifest
@@ -11,6 +11,21 @@
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
+ },
+ {
+ "src": "/Square150x150Logo.scale-100.png",
+ "sizes": "150x150",
+ "type": "image/png"
+ },
+ {
+ "src": "/Square44x44Logo.scale-100.png",
+ "sizes": "44x44",
+ "type": "image/png"
+ },
+ {
+ "src": "/StoreLogo.scale-100.png",
+ "sizes": "50x50",
+ "type": "image/png"
}
],
"theme_color": "#ffffff",
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh
index 818d9923..e07dfc0e 100755
--- a/rebuild-wekan.sh
+++ b/rebuild-wekan.sh
@@ -5,7 +5,7 @@ echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correct
echo " You can still use any other locale as your main locale."
#Below script installs newest node 8.x for Debian/Ubuntu/Mint.
-#NODE_VERSION=12.18.0
+#NODE_VERSION=12.18.2
#X64NODE="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz"
function pause(){
@@ -64,7 +64,8 @@ function npm_call(){
echo
PS3='Please enter your choice: '
-options=("Install Wekan dependencies" "Build Wekan" "Run Meteor for development on Ethernet IP address port 4000" "Run Meteor for development on Custom IP address and port" "Quit")
+options=("Install Wekan dependencies" "Build Wekan" "Run Meteor for dev on http://localhost:4000" "Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000" "Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT" "Quit")
+
select opt in "${options[@]}"
do
case $opt in
@@ -79,7 +80,7 @@ do
curl -0 -L https://npmjs.org/install.sh | sudo sh
sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
- sudo n 12.18.0
+ sudo n 12.18.2
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then
@@ -166,13 +167,18 @@ do
break
;;
- "Run Meteor for development on Ethernet IP address port 4000")
- IPADDRESS=$(ip addr show enp2s0 | grep 'inet ' | cut -d: -f2 | awk '{ print $2}' | cut -d '/' -f 1)
+ "Run Meteor for dev on http://localhost:4000")
+ WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://localhost:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
+ break
+ ;;
+
+ "Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000")
+ IPADDRESS=$(ip a | grep 'scope global' | grep 'inet ' | cut -d: -f2 | awk '{ print $2}' | cut -d '/' -f 1)
WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
break
;;
- "Run Meteor for development on Custom IP address and port")
+ "Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT")
ip address
echo "From above list, what is your IP address?"
read IPADDRESS
diff --git a/releases/release-sandstorm.sh b/releases/release-sandstorm.sh
index 069df417..65a0e640 100755
--- a/releases/release-sandstorm.sh
+++ b/releases/release-sandstorm.sh
@@ -18,7 +18,7 @@ cd $REPODIR
rm -rf $WEKANDIR
git clone git@github.com:wekan/wekan.git
cd $WEKANDIR
-sudo n 12.18.0
+sudo n 12.18.2
sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
# Build Wekan
./releases/rebuild-release.sh
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index e2d67fbf..521fb772 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 = 411,
+ appVersion = 420,
# Increment this for every release.
- appMarketingVersion = (defaultText = "4.11.0~2020-06-04"),
+ appMarketingVersion = (defaultText = "4.20.0~2020-07-20"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
diff --git a/server/migrations.js b/server/migrations.js
index 5655bd1d..85d10c8e 100644
--- a/server/migrations.js
+++ b/server/migrations.js
@@ -246,19 +246,6 @@ Migrations.add('add-checklist-items', () => {
});
});
-Migrations.add('add-profile-view', () => {
- Users.find().forEach(user => {
- if (!user.hasOwnProperty('profile.boardView')) {
- // Set default view
- Users.direct.update(
- { _id: user._id },
- { $set: { 'profile.boardView': 'board-view-lists' } },
- noValidate,
- );
- }
- });
-});
-
Migrations.add('add-card-types', () => {
Cards.find().forEach(card => {
Cards.direct.update(
@@ -1044,3 +1031,16 @@ Migrations.add('add-sort-field-to-boards', () => {
}
});
});
+
+Migrations.add('add-default-profile-view', () => {
+ Users.find().forEach(user => {
+ if (!user.hasOwnProperty('profile.boardView')) {
+ // Set default view
+ Users.direct.update(
+ { _id: user._id },
+ { $set: { 'profile.boardView': 'board-view-swimlanes' } },
+ noValidate,
+ );
+ }
+ });
+});
diff --git a/snapcraft.yaml b/snapcraft.yaml
index b1bfb161..816f97a2 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.18.0
+ node-engine: 12.18.2
node-packages:
- node-gyp
- node-pre-gyp
diff --git a/stacksmith/user-scripts/build.sh b/stacksmith/user-scripts/build.sh
index 7b27a453..4d57bb26 100755
--- a/stacksmith/user-scripts/build.sh
+++ b/stacksmith/user-scripts/build.sh
@@ -2,7 +2,7 @@
set -euxo pipefail
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
-NODE_VERSION=v12.17.0
+NODE_VERSION=v12.18.2
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
USE_EDGE=false
METEOR_EDGE=1.5-beta.17
diff --git a/start-wekan.bat b/start-wekan.bat
index 272e963e..cfea7001 100755..100644
--- a/start-wekan.bat
+++ b/start-wekan.bat
@@ -1,9 +1,4 @@
-REM ------------------------------------------------------------
-
-REM NOTE: THIS .BAT DOES NOT WORK !!
-REM Use instead this webpage instructions to build on Windows:
-REM https://github.com/wekan/wekan/wiki/Install-Wekan-from-source-on-Windows
-REM Please add fix PRs, like config of MongoDB etc.
+@ECHO OFF
REM ------------------------------------------------------------
@@ -12,11 +7,13 @@ REM SET DEBUG=true
REM ------------------------------------------------------------
+SET ROOT_URL=http://localhost
+SET PORT=80
SET MONGO_URL=mongodb://127.0.0.1:27017/wekan
-SET ROOT_URL=http://127.0.0.1:2000/
-SET MAIL_URL=smtp://user:pass@mailserver.example.com:25/
-SET MAIL_FROM=admin@example.com
-SET PORT=2000
+
+REM https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
+REM SET MAIL_URL=smtps://username:password@email-smtp.eu-west-1.amazonaws.com:587/
+REM SET MAIL_FROM="Wekan Boards <info@example.com>"
REM # If you disable Wekan API with false, Export Board does not work.
SET WITH_API=true
@@ -395,6 +392,4 @@ REM # LOGOUT_ON_MINUTES : The number of minutes
REM # example : LOGOUT_ON_MINUTES=55
REM SET LOGOUT_ON_MINUTES=
-cd .build\bundle
node main.js
-cd ..\..
diff --git a/torodb-postgresql/docker-compose.yml b/torodb-postgresql/docker-compose.yml
index 793a9b4f..5ea02525 100644
--- a/torodb-postgresql/docker-compose.yml
+++ b/torodb-postgresql/docker-compose.yml
@@ -173,7 +173,7 @@ services:
# that if you're using more than 1 instance of Wekan
# (or any MeteorJS based tool) you're supposed to set
# MONGO_OPLOG_URL as an environment variable.
- # Without setting it, Meteor will perform a pull-and-diff
+ # Without setting it, Meteor will perform a poll-and-diff
# update of it's dataset. With it, Meteor will update from
# the OPLOG. See here
# https://blog.meteor.com/tuning-meteor-mongo-livedata-for-scalability-13fe9deb8908