Compare commits

...
69 Commits
Author SHA1 Message Date
Lauri Ojansivu d896f6dbcf v3.42 2019-09-14 06:06:08 +03:00
Lauri Ojansivu 5e963375cb Update translations. 2019-09-14 06:00:05 +03:00
Lauri Ojansivu 57119868bb Revert drag handle changes.
Thanks to Keelan !

Related #2704
2019-09-14 05:55:32 +03:00
Lauri Ojansivu 7b445dfc93 v3.41 2019-09-13 03:59:51 +03:00
Lauri Ojansivu 5f27a76312 Update translations. 2019-09-13 03:56:37 +03:00
Lauri Ojansivu b34960d1bd Update ChangeLog. 2019-09-13 03:50:09 +03:00
Lauri Ojansivu ff550e9110 Mobile and Desktop drag handles part 1.
Thanks to xet7 !

Related #2081
2019-09-13 03:45:55 +03:00
Lauri Ojansivu 0fcfc3a340 Update readme. 2019-09-12 13:06:35 +03:00
Lauri Ojansivu f95d19ab49 Update readme. 2019-09-12 13:05:01 +03:00
Lauri Ojansivu 50744dead8 Update links at readme. 2019-09-12 12:59:27 +03:00
Lauri Ojansivu a0e5737e4c Anonymize data please. 2019-09-12 10:18:53 +03:00
Lauri Ojansivu ecd9b9b5f4 v3.40 2019-09-11 21:12:58 +03:00
Lauri Ojansivu 389ed2f1ad Update translations. 2019-09-11 21:07:54 +03:00
Lauri Ojansivu 273dc5223b Update ChangeLog. 2019-09-11 21:02:55 +03:00
Lauri Ojansivu db32f595fe Merge pull request #2697 from justinr1234/patch-7
Fix #2688 subcard selector
2019-09-11 19:18:32 +03:00
justinr1234 4d967360b2 Fix #2688 subcard selector 2019-09-11 10:54:32 -05:00
Lauri Ojansivu f14dce2f19 v3.39 2019-09-11 16:11:55 +03:00
Lauri Ojansivu 82f73ab58c Update translations. 2019-09-11 16:05:58 +03:00
Lauri Ojansivu f094efa929 Update ChangeLog. 2019-09-11 16:04:26 +03:00
Lauri Ojansivu 6ce8eeee6c Revert Wekan v3.37 Fix Linked cards make load all cards of database.
Thanks to xet7!

Related #2688,
related #2693
2019-09-11 16:00:57 +03:00
Lauri Ojansivu be70c02922 v3.38 2019-09-11 04:47:56 +03:00
Lauri Ojansivu a61afda39e Update translations. 2019-09-11 04:30:38 +03:00
Lauri Ojansivu 126ab58e03 Create FUNDING.yml 2019-09-11 03:05:45 +03:00
Lauri Ojansivu ca95bba358 v3.37 2019-09-07 22:42:03 +03:00
Lauri Ojansivu 6407893aa6 Update translations. 2019-09-07 22:39:23 +03:00
Lauri Ojansivu 45ed9b426f [Fix Unable to drag select text without closing card details](https://github.com/wekan/wekan/pull/2690).
Thanks to justinr1234 !

Closes #2451
2019-09-07 22:35:15 +03:00
Lauri Ojansivu 11d6b77bb1 Merge pull request #2690 from justinr1234/fix-drag-select-on-card-details
Fix #2451 unable to drag select text without closing card details
2019-09-07 22:33:20 +03:00
Lauri Ojansivu f248dada3f Update ChangeLog. 2019-09-07 17:58:55 +03:00
Lauri Ojansivu a56988c487 Fix: Linked cards make load all cards of database.
Thanks to Akuket !

Closes #2688
2019-09-07 17:56:38 +03:00
Justin Reynolds 74b5bdf2aa Fix #2451 unable to drag select text without closing card details 2019-09-06 17:18:06 -05:00
Lauri Ojansivu 753d5b953d Fix prettier. 2019-09-06 21:27:06 +03:00
Lauri Ojansivu ea26f70669 Merge pull request #2683 from insertjokehere/fix_error_on_successful_webhook
Treat any 2xx webhook response status code as success
2019-09-06 19:22:36 +03:00
William Hughes 682c23e011 Treat any 2xx webhook response status code as success 2019-09-06 11:29:00 +12:00
Lauri Ojansivu d4a307f66d Update translations. 2019-09-06 01:28:43 +03:00
Lauri Ojansivu 7c9bf3ce0f Update ChangeLog. 2019-09-06 01:27:09 +03:00
Lauri Ojansivu 6cbd4cabc7 LDAP: Fix USERDN example, when parameters contain spaces:
LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan"

Thanks to compumatter !
2019-09-06 01:22:15 +03:00
Lauri Ojansivu 10b953041f v3.36 2019-09-05 23:17:03 +03:00
Lauri Ojansivu 36fb31c138 Try to fix snap. 2019-09-05 23:05:50 +03:00
Lauri Ojansivu 3f2490e64d Update translations. 2019-09-05 22:58:53 +03:00
Lauri Ojansivu 37065c1d50 Update ChangeLog. 2019-09-05 22:54:37 +03:00
Lauri Ojansivu 9764e03a37 Merge branch 'justinr1234-fix-date-stamps' 2019-09-05 22:48:36 +03:00
Lauri Ojansivu 0f5226f814 Merge branch 'fix-date-stamps' of https://github.com/justinr1234/wekan into justinr1234-fix-date-stamps 2019-09-05 21:01:51 +03:00
Justin Reynolds 3b9f2ca7c2 Fixes #2596 incorrect date types for created & updated 2019-09-05 12:29:45 -05:00
Lauri Ojansivu 7953e5a52a Try to fix Snap. 2019-09-04 23:53:14 +03:00
Lauri Ojansivu 9617c78798 Update translations. 2019-09-04 22:48:17 +03:00
Lauri Ojansivu 28f21487b0 Add package-lock.json back. 2019-09-04 22:35:32 +03:00
Lauri Ojansivu 4567f08a0b Try to fix prettier. 2019-09-04 22:26:00 +03:00
Lauri Ojansivu b0281e1941 Try to fix rebuild script. 2019-09-04 22:25:30 +03:00
Lauri Ojansivu efed77b474 Update translations. 2019-09-04 22:14:44 +03:00
Lauri Ojansivu a70b97676a Remove package-lock.json 2019-09-04 22:09:22 +03:00
Lauri Ojansivu 7b54983ec2 Try to fix snap. 2019-09-04 22:05:51 +03:00
Lauri Ojansivu bc2fcef7c4 Update ChangeLog. 2019-09-04 21:54:27 +03:00
Lauri Ojansivu 750349053c Update translations. 2019-09-04 21:46:01 +03:00
Lauri Ojansivu bfbe32e1ec Merge pull request #2665 from whowillcare/master
Add Feature: complete the original author's webhook functions and add two-way webhook type
2019-09-04 21:11:41 +03:00
Lauri Ojansivu ccfaf879dd Merge pull request #2667 from Akuket/master
Patch admin search feature
2019-09-04 21:10:25 +03:00
Lauri Ojansivu ebd32af5c1 Merge pull request #2672 from Scherdel/master
Devcontainer: Removed MAIL-Vars, Add PATH with meteor to Envionment
2019-09-04 21:09:57 +03:00
Lauri Ojansivu 43ea7d761e Try to fix snap. 2019-09-04 21:07:17 +03:00
Christoph Jahn a715e30cba DevContainer: use docker extend file, fix PATH 2019-09-03 21:20:24 +02:00
Christoph Jahn 8633bd8974 Merge branch 'master' of https://github.com/scherdel/wekan 2019-09-02 20:28:48 +02:00
Christoph Jahn 9474bee7fa DevContainer: Updated node and mongodb 2019-09-02 20:28:39 +02:00
Christoph Jahn 92b86ada39 Merge branch 'master' of https://github.com/scherdel/wekan 2019-09-02 17:00:17 +00:00
Christoph Jahn 03bea6e406 Removed MAIL-Vars for DEV, Add PATH to ENV 2019-09-02 18:57:17 +02:00
guillaume 6183402754 Merge branch 'master' of https://github.com/wekan/wekan 2019-08-30 17:18:29 +02:00
guillaume 663ba26d4d Patch admin search feature 2019-08-30 17:17:25 +02:00
Sam X. Chen 510407467c Add Feature: enable two-way webhooks - add comments need userid 2019-08-30 10:36:17 -04:00
Sam X. Chen b477fc1b1c Add Feature: enable two-way webhooks - fixing lint error 2019-08-29 23:49:32 -04:00
Sam X. Chen 58155288fb Merge remote-tracking branch 'upstream/master' 2019-08-29 22:08:41 -04:00
Sam X. Chen dd0682328b Add Feature: enable two-way webhooks - stage two 2019-08-29 22:07:40 -04:00
Sam X. Chen 3f0600fed7 Add Feature: enable two-way webhooks - stage one 2019-08-17 19:17:57 -04:00
104 changed files with 1042 additions and 479 deletions

No files matched your search

+4 -2
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=8.16.0 \
NODE_VERSION=8.16.1 \
METEOR_RELEASE=1.8.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -144,11 +144,13 @@ RUN set -o xtrace \
&& printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \
&& sh /home/wekan/install-meteor.sh
ENV PATH=$PATH:$HOME/.meteor/
ENV PATH=$PATH:/home/wekan/.meteor/
# Copy source dir
USER root
RUN echo "export PATH=$PATH" >> /etc/environment
RUN set -o xtrace \
&& mkdir /home/wekan/app
+1 -1
View File
@@ -1,6 +1,6 @@
// See https://aka.ms/vscode-remote/devcontainer.json for format details.
{
"dockerComposeFile": "docker-compose.yml",
"dockerComposeFile": ["docker-compose.yml", "docker-compose.extend.yml"],
"service": "wekan-dev",
"workspaceFolder": "/home/wekan/app",
"extensions": [
+1 -4
View File
@@ -3,7 +3,7 @@ version: '3.7'
services:
wekandb-dev:
image: mongo:4.0.11
image: mongo:4.0.12
container_name: wekan-dev-db
restart: unless-stopped
command: mongod --smallfiles --oplogSize 128
@@ -29,9 +29,6 @@ services:
environment:
- MONGO_URL=mongodb://wekandb-dev:27017/wekan
- ROOT_URL=http://localhost:3000
#- MAIL_URL=smtp://user:pass@mailserver.example.com:25/
- MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
- MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com>
- WITH_API=true
- RICHER_CARD_COMMENT_EDITOR=true
- BROWSER_POLICY_ENABLED=true
+3
View File
@@ -0,0 +1,3 @@
# These are supported funding model platforms
custom: ['https://wekan.team/commercial-support/']
+4 -4
View File
@@ -7,8 +7,9 @@ Other Wekan issues can be added here.
**Server Setup Information**:
* Note: Please anonymize info, and do not add to this public issue any of your Wekan board URLs, passwords, API tokens etc, do you understand?:
* Did you test in newest Wekan?:
* For new Wekan install, did you configure root-url correctly https://github.com/wekan/wekan/wiki/Settings ?
* For new Wekan install, did you configure root-url correctly so Wekan cards open correctly https://github.com/wekan/wekan/wiki/Settings ?
* Wekan version:
* If this is about old version of Wekan, what upgrade problem you have?:
* Operating System:
@@ -16,13 +17,12 @@ Other Wekan issues can be added here.
* Http frontend if any (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first):
* Node Version:
* MongoDB Version:
* ROOT_URL environment variable http(s)://(subdomain).example.com(/suburl):
* Wekan only works on newest desktop Firefox/Chromium/Chrome/Edge/Chromium Edge and mobile Chrome. What webbrowser version are you using?
**Problem description**:
- *REQUIRED: Add recorded animated gif about how it works currently, and screenshot mockups how it should work. Use peek to record animgif in Linux https://github.com/phw/peek*
- *Explain steps how to reproduce*
- *In webbrowser, what does show Right Click / Inspect / Console ? Chrome shows more detailed info than Firefox.*
- *If using Snap, what does show command `sudo snap logs wekan.wekan` ?*
- *If using Docker, what does show command `sudo docker logs wekan-app` ?*
- *If using Snap, what does show command `sudo snap logs wekan.wekan` ? Please anonymize logs.*
- *If using Docker, what does show command `sudo docker logs wekan-app` ? Please anonymize logs.*
- *If logs are very long, attach them in .zip file*
+1
View File
@@ -31,3 +31,4 @@ ehthumbs.db
.eslintcache
.meteor/local
.meteor-1.6-snap/.meteor/local
.devcontainer/docker-compose.extend.yml
+81
View File
@@ -1,3 +1,84 @@
# v3.42 2019-09-14 Wekan release
This release removed the following new features:
- [Revert drag handle changes of Wekan v3.41](https://github.com/wekan/wekan/commit/57119868bbb49f47c7d0b51b9952df9bd83d46f5).
Thanks to Keelan.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.41 2019-09-13 Wekan release
This release adds the following new features:
- [More Mobile and Desktop drag handles for Swimlanes/Lists/Cards. Part 1](https://github.com/wekan/wekan/commit/ff550e91103115e7b731dd80c4588b93b2d4c64f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.40 2019-09-11 Wekan release
This release fixes the following bugs:
- [Fix subcard selector](https://github.com/wekan/wekan/pull/2697).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.39 2019-09-11 Wekan release
This release fixes the following bugs:
- [To load all boards, revert Wekan v3.37 Fix Linked cards make load all cards of database](https://github.com/wekan/wekan/commit/6ce8eeee6c477cd39b684c47bf122b5872818ada).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.38 2019-09-11 Wekan release
- Update translations. Thanks to translators.
# v3.37 2019-09-07 Wekan release
This release fixes the following bugs:
- LDAP: [Fix USERDN example, when parameters contain spaces](https://github.com/wekan/wekan/commit/6cbd4cabc716c755e547abb798f657fe5476ed04).
LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan" .
Thanks to compumatter.
- [Fix: Linked cards make load all cards of database](https://github.com/wekan/wekan/commit/a56988c487745b2879cebe1943e7a987016e8bef).
Thanks to Akuket.
- [Fix Unable to drag select text without closing card details](https://github.com/wekan/wekan/pull/2690).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.36 2019-09-05 Wekan release
This release adds the following new features:
- [Complete the original author's webhook functions and add two-way webhook type](https://github.com/wekan/wekan/pull/2665):
1. Make webhook function more complete by allowing user to specify name and token of
a webhook to increase security.
1. Allow wekan admin to sepcify a global webhook.
3. Add new type of two-way webhook that can act on the JSON webhook return payload:
3.1. If the payload data contains cardId, boardId, and comment key words,
3.2. If it has commentId, an existing comment will be modified
3.3. If it doesn't have commentId, then a new comment will be added, otherwise, does nothing.
Thanks to whowillcare.
- [Patch admin search feature to Search in all users, not just "loaded" users
in the client](https://github.com/wekan/wekan/pull/2667).
Thanks to Akuket.
- [Devcontainer: Moved MAIL-Vars to not-committed file, and added PATH with meteor to
Environment](https://github.com/wekan/wekan/pull/2672).
Thanks to road42.
and fixes the following bugs:
- [Fix incorrect date types for created and updated, so now newest card comments are at top](https://github.com/wekan/wekan/pull/2679).
Thanks to justinr1234.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.35 2019-08-29 Wekan release
This release fixes the following bugs:
+6 -22
View File
@@ -54,13 +54,12 @@ that by providing one-click installation on various platforms.
- [Features][features]: Wekan has real-time user interface.
- [Platforms][platforms]: Wekan supports many platforms.
Wekan is critical part of new platforms Wekan is currently being integrated to.
- [Integrations][integrations]: Current possible integrations and future plans.
## Requirements
- 64bit: Linux [Snap](https://github.com/wekan/wekan-snap/wiki/Install) or [Sandstorm](https://sandstorm.io) /
[Mac](https://github.com/wekan/wekan/wiki/Mac) / [Windows](https://github.com/wekan/wekan/wiki/Install-Wekan-from-source-on-Windows).
[More Platforms](https://github.com/wekan/wekan/wiki/Platforms). [ARM progress](https://github.com/wekan/wekan/issues/1053#issuecomment-410919264).
[More Platforms](https://github.com/wekan/wekan/wiki/Platforms), bundle for RasPi3 ARM and other CPUs where Node.js and MongoDB exists.
- 1 GB RAM minimum free for Wekan. Production server should have minimum total 4 GB RAM.
For thousands of users, for example with [Docker](https://github.com/wekan/wekan/blob/devel/docker-compose.yml): 3 frontend servers,
each having 2 CPU and 2 wekan-app containers. One backend wekan-db server with many CPUs.
@@ -84,31 +83,19 @@ that by providing one-click installation on various platforms.
[many times a day](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md).
- [Please add Add new Feature Requests and Bug Reports immediately](https://github.com/wekan/wekan/issues).
- [Commercial Support](https://wekan.team).
- [Bounties](https://wekan.team/bounties/index.html).
We also welcome sponsors for features and bugfixes.
By working directly with Wekan you get the benefit of active maintenance and new features added by growing Wekan developer community.
## Demo
[Wekan demo][roadmap_wefork]
[Wekan demo][roadmap_wekan]
## Screenshot
[More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features)
[![Screenshot of Wekan][screenshot_wefork]][roadmap_wefork]
## Stable
- master+devel branch. At release, devel is merged to master.
- Receives fixes and features that have been tested at edge that they work.
- If you want automatic updates, [use Snap](https://github.com/wekan/wekan-snap/wiki/Install).
- If you want to test before update, [use Docker quay.io release tags](https://github.com/wekan/wekan/wiki/Docker).
## Edge
- edge branch. All new fixes and features are added to here first. [Testing Edge](https://github.com/wekan/wekan-snap/wiki/Snap-Developer-Docs).
[![Screenshot of Wekan][screenshot_wekan]][roadmap_wekan]
## License
@@ -117,14 +104,11 @@ with [Meteor](https://www.meteor.com).
[platforms]: https://github.com/wekan/wekan/wiki/Platforms
[dev_docs]: https://github.com/wekan/wekan/wiki/Developer-Documentation
[screenshot_wekan]: http://i.imgur.com/cI4jW2h.png
[screenshot_wefork]: https://wekan.github.io/wekan-markdown.png
[screenshot_wekan]: https://wekan.github.io/wekan-markdown.png
[features]: https://github.com/wekan/wekan/wiki/Features
[integrations]: https://github.com/wekan/wekan/wiki/Integrations
[roadmap_wekan]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
[roadmap_wefork]: https://wekan.indie.host/b/t2YaGmyXgNkppcFBq/wekan-fork-roadmap
[roadmap_wekan]: https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license
[wekan_issues]: https://github.com/wekan/wekan/issues
[wekan_issues]: https://github.com/wekan/wekan/issues
[wefork_issues]: https://github.com/wefork/wekan/issues
[docker_image]: https://hub.docker.com/r/wekanteam/wekan/
[travis_badge]: https://travis-ci.org/wekan/wekan.svg?branch=devel
[travis_status]: https://travis-ci.org/wekan/wekan
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v3.35.0"
appVersion: "v3.42.0"
files:
userUploads:
- README.md
+21 -1
View File
@@ -321,6 +321,19 @@ BlazeComponent.extendComponent({
parentComponent.showOverlay.set(true);
parentComponent.mouseHasEnterCardDetails = true;
},
'mousedown .js-card-details'() {
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', true);
},
'mousemove .js-card-details'() {
if (Session.get('cardDetailsIsMouseDown')) {
Session.set('cardDetailsIsDragging', true);
}
},
'mouseup .js-card-details'() {
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', false);
},
'click #toggleButton'() {
Meteor.call('toggleSystemMessages');
},
@@ -777,7 +790,14 @@ BlazeComponent.extendComponent({
EscapeActions.register(
'detailsPane',
() => {
Utils.goBoardId(Session.get('currentBoard'));
if (Session.get('cardDetailsIsDragging')) {
// Reset dragging status as the mouse landed outside the cardDetails template area and this will prevent a mousedown event from firing
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', false);
} else {
// Prevent close card when the user is selecting text and moves the mouse cursor outside the card detail area
Utils.goBoardId(Session.get('currentBoard'));
}
},
() => {
return !Session.equals('currentCard', null);
+2 -2
View File
@@ -17,7 +17,7 @@ BlazeComponent.extendComponent({
this.autorun(() => {
const limit = this.page.get() * usersPerPage;
this.subscribe('people', limit, () => {
this.subscribe('people', this.findUsersOptions.get(), limit, () => {
this.loadNextPageLocked = false;
const nextPeakBefore = this.callFirstWith(null, 'getNextPeak');
this.calculateNextPeak();
@@ -85,7 +85,7 @@ BlazeComponent.extendComponent({
const users = Users.find(this.findUsersOptions.get(), {
fields: { _id: true },
});
this.number.set(users.count());
this.number.set(users.count(false));
return users;
},
peopleNumber() {
@@ -18,6 +18,8 @@ template(name="setting")
a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}}
li
a.js-setting-menu(data-id="layout-setting") {{_ 'layout'}}
li
a.js-setting-menu(data-id="webhook-setting") {{_ 'global-webhook'}}
.main-body
if loading.get
+spinner
@@ -31,6 +33,12 @@ template(name="setting")
+announcementSettings
else if layoutSetting.get
+layoutSettings
else if webhookSetting.get
+webhookSettings
template(name="webhookSettings")
span
+outgoingWebhooksPopup
template(name="general")
ul#registration-setting.setting-detail
@@ -7,11 +7,13 @@ BlazeComponent.extendComponent({
this.accountSetting = new ReactiveVar(false);
this.announcementSetting = new ReactiveVar(false);
this.layoutSetting = new ReactiveVar(false);
this.webhookSetting = new ReactiveVar(false);
Meteor.subscribe('setting');
Meteor.subscribe('mailServer');
Meteor.subscribe('accountSettings');
Meteor.subscribe('announcements');
Meteor.subscribe('globalwebhooks');
},
setError(error) {
@@ -83,6 +85,7 @@ BlazeComponent.extendComponent({
this.accountSetting.set('account-setting' === targetID);
this.announcementSetting.set('announcement-setting' === targetID);
this.layoutSetting.set('layout-setting' === targetID);
this.webhookSetting.set('webhook-setting' === targetID);
}
},
+22 -14
View File
@@ -135,22 +135,30 @@ template(name="archiveBoardPopup")
template(name="outgoingWebhooksPopup")
each integrations
form.integration-form
if title
h4 {{title}}
else
h4 {{_ 'no-name'}}
label
| URL
input.js-outgoing-webhooks-url(type="text" name="url" value=url)
input(type="hidden" value=_id name="id")
a.flex
span {{_ 'disable-webhook'}}
b &nbsp;
.materialCheckBox(class="{{#unless enabled}}is-checked{{/unless}}")
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title" value=title)
input.js-outgoing-webhooks-url(type="text" name="url" value=url autofocus)
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" value=token name="token")
select.js-outgoing-webhooks-type(name="type")
each _type in types
if($eq _type this.type)
option(value=_type selected="selected") {{_ _type}}
else
option(value=_type) {{_ _type}}
input(type="hidden" value=this.type name="_type")
input(type="hidden" value=_id name="id")
input.primary.wide(type="submit" value="{{_ 'save'}}")
form.integration-form
h4
| {{_ 'new-outgoing-webhook'}}
label
| URL
input.js-outgoing-webhooks-url(type="text" name="url" autofocus)
input.primary.wide(type="submit" value="{{_ 'save'}}")
input.js-outgoing-webhooks-title(placeholder="{{_ 'webhook-title'}}" type="text" name="title" autofocus)
input.js-outgoing-webhooks-url(placeholder="{{_ 'URL' }}" type="text" name="url")
input.js-outgoing-webhooks-token(placeholder="{{_ 'webhook-token' }}" type="text" name="token")
select.js-outgoing-webhooks-type(name="type")
each _type in types
option(value=_type) {{_ _type}}
input.primary.wide(type="submit" value="{{_ 'create'}}")
template(name="boardMenuPopup")
ul.pop-over-list
+56 -30
View File
@@ -1,6 +1,8 @@
Sidebar = null;
const defaultView = 'home';
const MCB = '.materialCheckBox';
const CKCLS = 'is-checked';
const viewTitles = {
filter: 'filter-cards',
@@ -280,44 +282,71 @@ Template.membersWidget.events({
});
BlazeComponent.extendComponent({
boardId() {
return Session.get('currentBoard') || Integrations.Const.GLOBAL_WEBHOOK_ID;
},
integrations() {
const boardId = Session.get('currentBoard');
const boardId = this.boardId();
return Integrations.find({ boardId: `${boardId}` }).fetch();
},
integration(id) {
const boardId = Session.get('currentBoard');
return Integrations.findOne({ _id: id, boardId: `${boardId}` });
types() {
return Integrations.Const.WEBHOOK_TYPES;
},
integration(cond) {
const boardId = this.boardId();
const condition = { boardId, ...cond };
for (const k in condition) {
if (!condition[k]) delete condition[k];
}
return Integrations.findOne(condition);
},
onCreated() {
this.disabled = new ReactiveVar(false);
},
events() {
return [
{
'click a.flex'(evt) {
this.disabled.set(!this.disabled.get());
$(evt.target).toggleClass(CKCLS, this.disabled.get());
},
submit(evt) {
evt.preventDefault();
const url = evt.target.url.value;
const boardId = Session.get('currentBoard');
const boardId = this.boardId();
let id = null;
let integration = null;
const title = evt.target.title.value;
const token = evt.target.token.value;
const type = evt.target.type.value;
const enabled = !this.disabled.get();
let remove = false;
const values = {
url,
type,
token,
title,
enabled,
};
if (evt.target.id) {
id = evt.target.id.value;
integration = this.integration(id);
if (url) {
Integrations.update(integration._id, {
$set: {
url: `${url}`,
},
});
} else {
Integrations.remove(integration._id);
}
integration = this.integration({ _id: id });
remove = !url;
} else if (url) {
integration = this.integration({ url, token });
}
if (remove) {
Integrations.remove(integration._id);
} else if (integration && integration._id) {
Integrations.update(integration._id, {
$set: values,
});
} else if (url) {
Integrations.insert({
...values,
userId: Meteor.userId(),
enabled: true,
type: 'outgoing-webhooks',
url: `${url}`,
boardId: `${boardId}`,
boardId,
activities: ['all'],
});
}
@@ -474,12 +503,12 @@ BlazeComponent.extendComponent({
evt.preventDefault();
this.currentBoard.allowsSubtasks = !this.currentBoard.allowsSubtasks;
this.currentBoard.setAllowsSubtasks(this.currentBoard.allowsSubtasks);
$('.js-field-has-subtasks .materialCheckBox').toggleClass(
'is-checked',
$(`.js-field-has-subtasks ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsSubtasks,
);
$('.js-field-has-subtasks').toggleClass(
'is-checked',
CKCLS,
this.currentBoard.allowsSubtasks,
);
$('.js-field-deposit-board').prop(
@@ -515,15 +544,12 @@ BlazeComponent.extendComponent({
];
options.forEach(function(element) {
if (element !== value) {
$(`#${element} .materialCheckBox`).toggleClass(
'is-checked',
false,
);
$(`#${element}`).toggleClass('is-checked', false);
$(`#${element} ${MCB}`).toggleClass(CKCLS, false);
$(`#${element}`).toggleClass(CKCLS, false);
}
});
$(`#${value} .materialCheckBox`).toggleClass('is-checked', true);
$(`#${value}`).toggleClass('is-checked', true);
$(`#${value} ${MCB}`).toggleClass(CKCLS, true);
$(`#${value}`).toggleClass(CKCLS, true);
this.currentBoard.setPresentParentTask(value);
evt.preventDefault();
},
-1
View File
@@ -23,7 +23,6 @@ Utils = {
})
);
},
MAX_IMAGE_PIXEL: Meteor.settings.public.MAX_IMAGE_PIXEL,
COMPRESS_RATIO: Meteor.settings.public.IMAGE_COMPRESS_RATIO,
processUploadedAttachment(card, fileObj, callback) {
+4 -2
View File
@@ -426,8 +426,10 @@ services:
# If the LDAP needs a user account to search
#- LDAP_AUTHENTIFICATION=true
#
# The search user DN
#- LDAP_AUTHENTIFICATION_USERDN=cn=wekan_adm,ou=serviceaccounts,ou=admin,ou=prod,dc=mydomain,dc=com
# The search user DN - You need quotes when you have spaces in parameters
# 2 examples:
#- LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan"
#- LDAP_AUTHENTIFICATION_USERDN="CN=wekan_adm,OU=serviceaccounts,OU=admin,OU=prod,DC=mydomain,DC=com"
#
# The password for the search user
#- LDAP_AUTHENTIFICATION_PASSWORD=pwd
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "رمز الدعوة غير موجود",
"error-notAuthorized": "أنتَ لا تملك الصلاحيات لرؤية هذه الصفحة.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "الويبهوك الصادرة",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "الويبهوك الصادرة",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "ويبهوك جديدة ",
"no-name": "(غير معروف)",
"Node_version": "إصدار النود",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Успешно изпратихте имейл",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Версия на Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Has enviat un missatge satisfactòriament",
"error-invitation-code-not-exist": "El codi d'invitació no existeix",
"error-notAuthorized": "No estau autoritzats per veure aquesta pàgina",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Webhooks sortints",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Webhooks sortints",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Nou Webook sortint",
"no-name": "Importa tauler des de Wekan",
"Node_version": "Versió Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Email byl úspěšně odeslán",
"error-invitation-code-not-exist": "Kód pozvánky neexistuje.",
"error-notAuthorized": "Nejste autorizován k prohlížení této stránky.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Odchozí Webhooky",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Odchozí Webhooky",
"boardCardTitlePopup-title": "Filtr názvů karet",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Nové odchozí Webhooky",
"no-name": "(Neznámé)",
"Node_version": "Node verze",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Sie haben erfolgreich eine E-Mail versandt",
"error-invitation-code-not-exist": "Ungültiger Einladungscode",
"error-notAuthorized": "Sie sind nicht berechtigt diese Seite zu sehen.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional für Authentifizierung)",
"outgoing-webhooks": "Ausgehende Webhooks",
"bidirectional-webhooks": "Zwei-Wege Webhooks",
"outgoingWebhooksPopup-title": "Ausgehende Webhooks",
"boardCardTitlePopup-title": "Kartentitelfilter",
"disable-webhook": "Diesen Webhook deaktivieren",
"global-webhook": "Globale Webhooks",
"new-outgoing-webhook": "Neuer ausgehender Webhook",
"no-name": "(Unbekannt)",
"Node_version": "Node-Version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Ο κωδικός πρόσκλησης δεν υπάρχει",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Άγνωστο)",
"Node_version": "Έκδοση Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorised to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Enviaste el correo correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No estás autorizado para ver esta página.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Ganchos Web Salientes",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Ganchos Web Salientes",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Nuevo Gancho Web",
"no-name": "(desconocido)",
"Node_version": "Versión de Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "El correo se ha enviado correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No estás autorizado a ver esta página.",
"webhook-title": "Nombre del Webhook",
"webhook-token": "Token (opcional para la autenticación)",
"outgoing-webhooks": "Webhooks salientes",
"bidirectional-webhooks": "Webhooks de doble sentido",
"outgoingWebhooksPopup-title": "Webhooks salientes",
"boardCardTitlePopup-title": "Filtro de títulos de tarjeta",
"disable-webhook": "Deshabilitar este Webhook",
"global-webhook": "Webhooks globales",
"new-outgoing-webhook": "Nuevo webhook saliente",
"no-name": "(Desconocido)",
"Node_version": "Versión de Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Arrakastaz bidali duzu posta elektroniko mezua",
"error-invitation-code-not-exist": "Gonbidapen kodea ez da existitzen",
"error-notAuthorized": "Ez duzu orri hau ikusteko baimenik.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Irteerako Webhook-ak",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Irteerako Webhook-ak",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Irteera-webhook berria",
"no-name": "(Ezezaguna)",
"Node_version": "Nodo bertsioa",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "با موفقیت، یک رایانامه را فرستادید",
"error-invitation-code-not-exist": "چنین کد دعوتی یافت نشد",
"error-notAuthorized": "شما مجاز به دیدن این صفحه نیستید.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "فیلتر موضوع کارت",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(ناشناخته)",
"Node_version": "نسخه Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Olet onnistuneesti lähettänyt sähköpostin",
"error-invitation-code-not-exist": "Kutsukoodia ei ole olemassa",
"error-notAuthorized": "Sinulla ei ole oikeutta tarkastella tätä sivua.",
"webhook-title": "Webkoukun nimi",
"webhook-token": "Token (Valinnainen autentikoinnissa)",
"outgoing-webhooks": "Lähtevät Webkoukut",
"bidirectional-webhooks": "Kaksisuuntaiset Webkoukut",
"outgoingWebhooksPopup-title": "Lähtevät Webkoukut",
"boardCardTitlePopup-title": "Kortin otsikkosuodatin",
"disable-webhook": "Poista käytöstä tämä Webkoukku",
"global-webhook": "Kaikenkattavat Webkoukut",
"new-outgoing-webhook": "Uusi lähtevä Webkoukku",
"no-name": "(Tuntematon)",
"Node_version": "Node-versio",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Vous avez envoyé un mail avec succès",
"error-invitation-code-not-exist": "Ce code d'invitation n'existe pas.",
"error-notAuthorized": "Vous n'êtes pas autorisé à accéder à cette page.",
"webhook-title": "Nom du webhook",
"webhook-token": "Jeton (optionnel pour l'authentification)",
"outgoing-webhooks": "Webhooks sortants",
"bidirectional-webhooks": "Webhooks bidirectionnels",
"outgoingWebhooksPopup-title": "Webhooks sortants",
"boardCardTitlePopup-title": "Filtre par titre de carte",
"disable-webhook": "Désactiver ce webhook",
"global-webhook": "Webhooks globaux",
"new-outgoing-webhook": "Nouveau webhook sortant",
"no-name": "(Inconnu)",
"Node_version": "Version de Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "שלחת הודעת דוא״ל בהצלחה",
"error-invitation-code-not-exist": "קוד ההזמנה אינו קיים",
"error-notAuthorized": "אין לך הרשאה לצפות בעמוד זה.",
"webhook-title": "שם ההתלייה",
"webhook-token": "אסימון (כרשות לצורך אימות)",
"outgoing-webhooks": "קרסי רשת יוצאים",
"bidirectional-webhooks": "התליות דו־כיווניות",
"outgoingWebhooksPopup-title": "קרסי רשת יוצאים",
"boardCardTitlePopup-title": "מסנן כותרת כרטיס",
"disable-webhook": "השבתת ההתלייה הזאת",
"global-webhook": "התליות גלובליות",
"new-outgoing-webhook": "קרסי רשת יוצאים חדשים",
"no-name": "(לא ידוע)",
"Node_version": "גרסת Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully प्रेषित an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized तक आलोकन यह page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Sikeresen elküldött egy e-mailt",
"error-invitation-code-not-exist": "A meghívási kód nem létezik",
"error-notAuthorized": "Nincs jogosultsága az oldal megtekintéséhez.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Kimenő webhurkok",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Kimenő webhurkok",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Új kimenő webhurok",
"no-name": "(Ismeretlen)",
"Node_version": "Node verzió",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"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-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Hai inviato un'email con successo",
"error-invitation-code-not-exist": "Il codice d'invito non esiste",
"error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Server esterni",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Server esterni",
"boardCardTitlePopup-title": "Filtro per Titolo Scheda",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Nuovo webhook in uscita",
"no-name": "(Sconosciuto)",
"Node_version": "Versione di Node",
+13 -8
View File
@@ -111,8 +111,8 @@
"restore-board": "ボードをリストア",
"no-archived-boards": "No Boards in Archive.",
"archives": "アーカイブ",
"template": "Template",
"templates": "Templates",
"template": "テンプレート",
"templates": "テンプレート",
"assign-member": "メンバーの割当",
"attached": "添付されました",
"attachment": "添付ファイル",
@@ -164,7 +164,7 @@
"cardLabelsPopup-title": "ラベル",
"cardMembersPopup-title": "メンバー",
"cardMorePopup-title": "さらに見る",
"cardTemplatePopup-title": "Create template",
"cardTemplatePopup-title": "テンプレートの作成",
"cards": "カード",
"cards-count": "カード",
"casSignIn": "Sign In with CAS",
@@ -387,8 +387,8 @@
"muted-info": "このボードの変更は通知されません",
"my-boards": "自分のボード",
"name": "名前",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-cards": "カードをアーカイブする",
"no-archived-lists": "リストをアーカイブする",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "該当するものはありません",
"normal": "通常",
@@ -477,9 +477,9 @@
"welcome-swimlane": "Milestone 1",
"welcome-list1": "基本",
"welcome-list2": "高度",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"card-templates-swimlane": "カードのテンプレート",
"list-templates-swimlane": "リストのテンプレート",
"board-templates-swimlane": "ボードのテンプレート",
"what-to-do": "何をしたいですか?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "招待コードが存在しません",
"error-notAuthorized": "このページを参照する権限がありません。",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "発信Webフック",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "発信Webフック",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "発信Webフックの作成",
"no-name": "(Unknown)",
"Node_version": "Nodeバージョン",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "თქვენ წარმატებით გააგზავნეთ ელ.ფოსტა.",
"error-invitation-code-not-exist": "მსგავსი მოსაწვევი კოდი არ არსებობს",
"error-notAuthorized": "თქვენ არ გაქვთ ამ გვერდის ნახვის უფლება",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "გამავალი Webhook",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "გამავალი Webhook",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(უცნობი)",
"Node_version": "Node ვერსია",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "테스트 메일을 성공적으로 발송하였습니다.",
"error-invitation-code-not-exist": "초대 코드가 존재하지 않습니다.",
"error-notAuthorized": "이 페이지를 볼 수있는 권한이 없습니다.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Успешно изпратихте е-маил",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Версия на Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+278 -273
View File
@@ -1,7 +1,7 @@
{
"accept": "Accepteren",
"act-activity-notify": "Activiteiten Notificatie",
"act-addAttachment": "bijlage __attachment__ toegevoegd op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-addAttachment": "bijlage __attachment__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-deleteAttachment": "bijlage __attachment__ verwijderd op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-addSubtask": "subtaak __subtask__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-addLabel": "Label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
@@ -22,24 +22,24 @@
"act-createBoard": "bord __board__ aangemaakt",
"act-createSwimlane": "swimlane __swimlane__ aangemaakt op bord __board__",
"act-createCard": "kaart __card__ aangemaakt in lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-createCustomField": "maatwerkveld __customField__ gecreëerd op bord __board__",
"act-createCustomField": "maatwerkveld __customField__ aangemaakt op bord __board__",
"act-deleteCustomField": "maatwerkveld __customField__ verwijderd van bord __board__",
"act-setCustomField": "maatwerkveld gewijzigd __customField__: __customFieldValue__ op kaart __card__ in lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-createList": "added list __list__ to board __board__",
"act-addBoardMember": "added member __member__ to board __board__",
"act-createList": "lijst __list__ toegevoegd aan bord __board__",
"act-addBoardMember": "lid __member__ toegevoegd aan bord __board__",
"act-archivedBoard": "Bord __board__ verplaatst naar Archief",
"act-archivedCard": "Kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__ verplaatst naar Archief",
"act-archivedList": "Lijst __list__ uit swimlane __swimlane__ op bord __board__ verplaatst naar Archief",
"act-archivedSwimlane": "Swimlane __swimlane__ op bord __board__ verplaatst naar Archief",
"act-importBoard": "imported board __board__",
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-removeBoardMember": "removed member __member__ from board __board__",
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-importBoard": "bord __board__ geïmporteerd",
"act-importCard": "kaart __card__ geïmporteerd in lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-importList": "lijst __list__ geïmporteerd in swimlane __swimlane__ op bord __board__",
"act-joinMember": "lid __member__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-moveCard": "kaart __card__ verplaatst op bord __board__ van lijst __oldList__ uit swimlane __oldSwimlane__ naar lijst __list__ in swimlane __swimlane__",
"act-moveCardToOtherBoard": "kaart __card__ verplaatst van lijst __oldList__ uit swimlane __oldSwimlane__ op bord __oldBoard__ naar lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-removeBoardMember": "lid __member__ verwijderd van bord __board__",
"act-restoredCard": "kaart __card__ teruggehaald naar lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-unjoinMember": "lid __member__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Acties",
@@ -48,44 +48,44 @@
"activity-added": "%s toegevoegd aan %s",
"activity-archived": "%s verplaatst naar Archief",
"activity-attached": "%s bijgevoegd aan %s",
"activity-created": "%s gecreëerd",
"activity-customfield-created": "maatwerkveld gecreëerd %s",
"activity-created": "%s aangemaakt",
"activity-customfield-created": "maatwerkveld aangemaakt %s",
"activity-excluded": "%s uitgesloten van %s",
"activity-imported": "%s geimporteerd in %s van %s",
"activity-imported-board": "%s geimporteerd van %s",
"activity-imported": "%s geïmporteerd in %s van %s",
"activity-imported-board": "%s geïmporteerd van %s",
"activity-joined": "%s toegetreden",
"activity-moved": "%s verplaatst van %s naar %s",
"activity-on": "bij %s",
"activity-removed": "%s verwijderd van %s",
"activity-sent": "%s gestuurd naar %s",
"activity-unjoined": "uit %s gegaan",
"activity-subtask-added": "added subtask to %s",
"activity-checked-item": "checked %s in checklist %s of %s",
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-subtask-added": "subtaak toegevoegd aan %s",
"activity-checked-item": "%s aangevinkt in checklist %s van %s",
"activity-unchecked-item": "%s uitgevinkt in checklist %s van %s",
"activity-checklist-added": "checklist toegevoegd aan %s",
"activity-checklist-removed": "removed a checklist from %s",
"activity-checklist-removed": "checklist verwijderd van %s",
"activity-checklist-completed": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
"activity-checklist-item-added": "checklist punt toegevoegd aan '%s' in '%s'",
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
"activity-checklist-uncompleted": "checklist %s onafgewerkt van %s",
"activity-checklist-item-added": "checklist item toegevoegd aan '%s' in '%s'",
"activity-checklist-item-removed": "checklist item verwijderd van '%s' in %s",
"add": "Toevoegen",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checked-item-card": "%s aangevinkt in checklist %s",
"activity-unchecked-item-card": "%s uitgevinkt in checklist %s",
"activity-checklist-completed-card": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-checklist-uncompleted-card": "checklist %s onafgewerkt",
"activity-editComment": "aantekening gewijzigd %s",
"activity-deleteComment": "aantekening verwijderd %s",
"add-attachment": "Voeg Bijlage Toe",
"add-board": "Voeg Bord Toe",
"add-card": "Voeg Kaart Toe",
"add-attachment": "Bijlage Toevoegen",
"add-board": "Bord Toevoegen",
"add-card": "Kaart Toevoegen",
"add-swimlane": "Swimlane Toevoegen",
"add-subtask": "Add Subtask",
"add-checklist": "Voeg Checklist Toe",
"add-subtask": "Subtaak Toevoegen",
"add-checklist": "Checkcklist Toevoegen",
"add-checklist-item": "Voeg item toe aan checklist",
"add-cover": "Voeg Cover Toe",
"add-label": "Voeg Label Toe",
"add-list": "Voeg Lijst Toe",
"add-members": "Voeg Leden Toe",
"add-cover": "Cover Toevoegen",
"add-label": "Label Toevoegen",
"add-list": "Lijst Toevoegen",
"add-members": "Leden Toevoegen",
"added": "Toegevoegd",
"addMemberPopup-title": "Leden",
"admin": "Administrator",
@@ -94,10 +94,10 @@
"admin-announcement-active": "Systeem melding",
"admin-announcement-title": "Melding van de administrator",
"all-boards": "Alle borden",
"and-n-other-card": "En nog __count__ ander",
"and-n-other-card": "En __count__ andere kaarten",
"and-n-other-card_plural": "En __count__ andere kaarten",
"apply": "Aanmelden",
"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.",
"app-is-offline": "Wekan is aan het laden, wacht alstublieft. Het verversen van de pagina zorgt voor verlies van gegevens. Als Wekan niet laadt, check dan of de Wekan server niet is gestopt. ",
"archive": "Verplaats naar Archief",
"archive-all": "Verplaats Alles naar Archief",
"archive-board": "Verplaats Bord naar Archief",
@@ -106,18 +106,18 @@
"archive-swimlane": "Verplaats Swimlane naar Archief",
"archive-selection": "Verplaats selectie naar Archief",
"archiveBoardPopup-title": "Bord naar Archief verplaatsen?",
"archived-items": "Archiefveren",
"archived-items": "Archiveren",
"archived-boards": "Borden in Archief",
"restore-board": "Herstel Bord",
"no-archived-boards": "Geen Borden in Archief.",
"archives": "Archiveren",
"archives": "Archief",
"template": "Template",
"templates": "Templates",
"assign-member": "Lid toevoegen",
"attached": "bijgevoegd",
"attachment": "Bijlage",
"attachment-delete-pop": "Een bijlage verwijderen is permanent. Er is geen herstelmogelijkheid.",
"attachmentDeletePopup-title": "Verwijder Bijlage?",
"attachmentDeletePopup-title": "Bijlage verwijderen?",
"attachments": "Bijlagen",
"auto-watch": "Automatisch borden bekijken wanneer deze aangemaakt worden",
"avatar-too-big": "De bestandsgrootte van je avatar is te groot (70KB max)",
@@ -131,13 +131,13 @@
"boardChangeTitlePopup-title": "Hernoem bord",
"boardChangeVisibilityPopup-title": "Verander zichtbaarheid",
"boardChangeWatchPopup-title": "Verander naar 'Watch'",
"boardMenuPopup-title": "Board Settings",
"boardMenuPopup-title": "Bord Instellingen",
"boards": "Borden",
"board-view": "Bord overzicht",
"board-view-cal": "Kalender",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Lijsten",
"bucket-example": "Zoals \"Bucket List\" bijvoorbeeld",
"bucket-example": "Zoals bijvoorbeeld een \"Bucket List\"",
"cancel": "Annuleren",
"card-archived": "Deze kaart is verplaatst naar Archief.",
"board-archived": "Dit bord is verplaatst naar Archief.",
@@ -145,9 +145,9 @@
"card-delete-notice": "Verwijdering is permanent. Als je dit doet, verlies je alle informatie die op deze kaart is opgeslagen.",
"card-delete-pop": "Alle acties worden verwijderd van de activiteiten feed, en er zal geen mogelijkheid zijn om de kaart opnieuw te openen. Er is geen herstelmogelijkheid.",
"card-delete-suggest-archive": "Je kunt een kaart naar Archief verplaatsen om die van het bord te verwijderen waarbij de activiteiten behouden blijven.",
"card-due": "Deadline: ",
"card-due-on": "Deadline: ",
"card-spent": "gespendeerde tijd",
"card-due": "Verval",
"card-due-on": "Vervalt op ",
"card-spent": "Gespendeerde tijd",
"card-edit-attachments": "Wijzig bijlagen",
"card-edit-custom-fields": "Wijzig maatwerkvelden",
"card-edit-labels": "Wijzig labels",
@@ -157,27 +157,27 @@
"card-start": "Begin",
"card-start-on": "Begint op",
"cardAttachmentsPopup-title": "Voeg bestand toe vanuit",
"cardCustomField-datePopup-title": "Change date",
"cardCustomField-datePopup-title": "Wijzigingsdatum",
"cardCustomFieldsPopup-title": "Wijzig maatwerkvelden",
"cardDeletePopup-title": "Kaart verwijderen?",
"cardDetailsActionsPopup-title": "Kaart actie ondernemen",
"cardLabelsPopup-title": "Labels",
"cardMembersPopup-title": "Leden",
"cardMorePopup-title": "Meer",
"cardTemplatePopup-title": "Create template",
"cardTemplatePopup-title": "Template aanmaken",
"cards": "Kaarten",
"cards-count": "Kaarten",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"casSignIn": "Log in met CAS",
"cardType-card": "Kaart",
"cardType-linkedCard": "Gekoppelde Kaart",
"cardType-linkedBoard": "Gekoppeld Bord",
"change": "Wijzig",
"change-avatar": "Wijzig avatar",
"change-password": "Wijzig wachtwoord",
"change-permissions": "Wijzig permissies",
"change-settings": "Wijzig instellingen",
"changeAvatarPopup-title": "Wijzig avatar",
"changeLanguagePopup-title": "Verander van taal",
"changeLanguagePopup-title": "Wijzig taal",
"changePasswordPopup-title": "Wijzig wachtwoord",
"changePermissionsPopup-title": "Wijzig permissies",
"changeSettingsPopup-title": "Wijzig instellingen",
@@ -191,30 +191,30 @@
"close-board-pop": "Je kunt het bord terughalen door de \"Archief\" knop te klikken in de menubalk \"Mijn Borden\".",
"color-black": "zwart",
"color-blue": "blauw",
"color-crimson": "crimson",
"color-darkgreen": "darkgreen",
"color-gold": "gold",
"color-gray": "gray",
"color-crimson": "karmijn",
"color-darkgreen": "donkergroen",
"color-gold": "goud",
"color-gray": "grijs",
"color-green": "groen",
"color-indigo": "indigo",
"color-lime": "Felgroen",
"color-lime": "felgroen",
"color-magenta": "magenta",
"color-mistyrose": "mistyrose",
"color-navy": "navy",
"color-orange": "Oranje",
"color-paleturquoise": "paleturquoise",
"color-peachpuff": "peachpuff",
"color-pink": "Roze",
"color-plum": "plum",
"color-purple": "Paars",
"color-red": "Rood",
"color-saddlebrown": "saddlebrown",
"color-silver": "silver",
"color-sky": "Lucht",
"color-slateblue": "slateblue",
"color-white": "white",
"color-yellow": "Geel",
"unset-color": "Unset",
"color-mistyrose": "zachtroze",
"color-navy": "marineblauw",
"color-orange": "oranje",
"color-paleturquoise": "vaalturkoois",
"color-peachpuff": "perzikroze",
"color-pink": "roze",
"color-plum": "pruim",
"color-purple": "paars",
"color-red": "rood",
"color-saddlebrown": "zadelbruin",
"color-silver": "zilver",
"color-sky": "lucht",
"color-slateblue": "leiblauw",
"color-white": "wit",
"color-yellow": "geel",
"unset-color": "Ongedefinieerd",
"comment": "Aantekening",
"comment-placeholder": "Schrijf aantekening",
"comment-only": "Alleen aantekeningen maken",
@@ -222,10 +222,10 @@
"no-comments": "Geen aantekeningen",
"no-comments-desc": "Zie geen aantekeningen of activiteiten.",
"computer": "Computer",
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
"confirm-subtask-delete-dialog": "Weet je zeker dat je de subtaak wilt verwijderen?",
"confirm-checklist-delete-dialog": "Weet je zeker dat je de checklist wilt verwijderen?",
"copy-card-link-to-clipboard": "Kopieer kaart link naar klembord",
"linkCardPopup-title": "Link Card",
"linkCardPopup-title": "Koppel Kaart",
"searchElementPopup-title": "Zoek",
"copyCardPopup-title": "Kopieer kaart",
"copyChecklistToManyCardsPopup-title": "Checklist sjabloon kopiëren naar meerdere kaarten",
@@ -235,30 +235,30 @@
"createBoardPopup-title": "Bord aanmaken",
"chooseBoardSourcePopup-title": "Importeer bord",
"createLabelPopup-title": "Label aanmaken",
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"createCustomField": "Veld aanmaken",
"createCustomFieldPopup-title": "Veld aanmaken",
"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-date": "Datum",
"custom-field-dropdown": "Dropdown List",
"custom-field-dropdown-none": "(none)",
"custom-field-dropdown-options": "List Options",
"custom-field-dropdown-options-placeholder": "Press enter to add more options",
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-number": "Number",
"custom-field-text": "Text",
"custom-field-dropdown": "Dropdown Lijst",
"custom-field-dropdown-none": "(geen)",
"custom-field-dropdown-options": "Lijst Opties",
"custom-field-dropdown-options-placeholder": "Toets Enter om meer opties toe te voegen ",
"custom-field-dropdown-unknown": "(onbekend)",
"custom-field-number": "Aantal",
"custom-field-text": "Tekst",
"custom-fields": "Maatwerkvelden",
"date": "Datum",
"decline": "Weigeren",
"default-avatar": "Standaard avatar",
"delete": "Verwijderen",
"deleteCustomFieldPopup-title": "Maatwerkveld verwijderen?",
"deleteLabelPopup-title": "Verwijder label?",
"deleteLabelPopup-title": "Label verwijderen?",
"description": "Beschrijving",
"disambiguateMultiLabelPopup-title": "Disambigueer Label Actie",
"disambiguateMultiMemberPopup-title": "Disambigueer Lid Actie",
"discard": "Weggooien",
"discard": "Negeer",
"done": "Klaar",
"download": "Download",
"edit": "Wijzig",
@@ -267,8 +267,8 @@
"edit-wip-limit": "Verander WIP limiet",
"soft-wip-limit": "Zachte WIP limiet",
"editCardStartDatePopup-title": "Wijzig start datum",
"editCardDueDatePopup-title": "Wijzig deadline",
"editCustomFieldPopup-title": "Edit Field",
"editCardDueDatePopup-title": "Wijzig vervaldatum",
"editCustomFieldPopup-title": "Wijzig Veld",
"editCardSpentTimePopup-title": "Verander gespendeerde tijd",
"editLabelPopup-title": "Wijzig label",
"editNotificationPopup-title": "Wijzig notificatie",
@@ -278,7 +278,7 @@
"email-enrollAccount-text": "Hallo __user__,\n\nOm gebruik te maken van de online dienst, kan je op de volgende link klikken.\n\n__url__\n\nBedankt.",
"email-fail": "E-mail verzenden is mislukt",
"email-fail-text": "Fout tijdens het verzenden van de email",
"email-invalid": "Ongeldige e-mail",
"email-invalid": "Ongeldig e-mailadres",
"email-invite": "Nodig uit via e-mail",
"email-invite-subject": "__inviter__ heeft je een uitnodiging gestuurd",
"email-invite-text": "Beste __user__,\n\n__inviter__ heeft je uitgenodigd om voor een samenwerking deel te nemen aan het bord \"__board__\".\n\nKlik op de link hieronder:\n\n__url__\n\nBedankt.",
@@ -297,22 +297,22 @@
"error-user-doesNotExist": "Deze gebruiker bestaat niet",
"error-user-notAllowSelf": "Je kan jezelf niet uitnodigen",
"error-user-notCreated": "Deze gebruiker is niet aangemaakt",
"error-username-taken": "Deze gebruikersnaam is al bezet",
"error-email-taken": "Deze e-mail is al eerder gebruikt",
"error-username-taken": "Deze gebruikersnaam is al in gebruik",
"error-email-taken": "Dit e-mailadres is al in gebruik",
"export-board": "Exporteer bord",
"filter": "Filter",
"filter-cards": "Filter kaarten",
"filter-clear": "Reset filter",
"filter-cards": "Filter Kaarten",
"filter-clear": "Wis filter",
"filter-no-label": "Geen label",
"filter-no-member": "Geen lid",
"filter-no-custom-fields": "Geen maatwerkvelden",
"filter-show-archive": "Toon gearchiveerde lijsten",
"filter-hide-empty": "Hide empty lists",
"filter-on": "Filter staat aan",
"filter-hide-empty": "Verberg lege lijsten",
"filter-on": "Filter is actief",
"filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.",
"filter-to-selection": "Filter zoals selectie",
"advanced-filter-label": "Advanced Filter",
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
"advanced-filter-label": "Geavanceerd Filter",
"advanced-filter-description": "Met het Geavanceerd Filter kun je een tekst schrijven die de volgende operatoren mag bevatten: == != <= >= && || ( ) Een Spatie wordt als scheiding gebruikt tussen de verschillende operatoren. Je kunt filteren op alle Maatwerkvelden door hun namen en waarden in te tikken. Bijvoorbeeld: Veld1 == Waarde1. Let op: Als velden of waarden spaties bevatten dan moet je die tussen enkele aanhalingstekens zetten. Bijvoorbeeld: 'Veld 1' == 'Waarde 1'. Om controle karakters (' \\/) over te slaan gebruik je \\. Bijvoorbeeld: Veld1 == I\\'m. Je kunt ook meerdere condities combineren. Bijvoorbeeld: F1 == V1 || F1 == V2. Normalerwijze worden alle operatoren van links naar rechts verwerkt. Dit kun je veranderen door ronde haken te gebruiken. Bijvoorbeeld: F1 == V1 && ( F2 == V2 || F2 == V3 ). Je kunt ook met regex in tekstvelden zoeken. Bijvoorbeeld: F1 == /Tes.*/i",
"fullname": "Volledige naam",
"header-logo-title": "Ga terug naar jouw borden pagina.",
"hide-system-messages": "Verberg systeemberichten",
@@ -322,35 +322,35 @@
"link": "Link",
"import-board": "Importeer bord",
"import-board-c": "Importeer bord",
"import-board-title-trello": "Importeer bord van Trello",
"import-board-title-wekan": "Import board from previous export",
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
"import-sandstorm-warning": "Het geïmporteerde bord verwijdert alle data op het huidige bord, om het daarna te vervangen.",
"from-trello": "Van Trello",
"from-wekan": "From previous export",
"import-board-title-trello": "Importeer bord vanuit Trello",
"import-board-title-wekan": "Importeer bord vanuit eerdere export",
"import-sandstorm-backup-warning": "Verwijder nog niet de data van je geëxporteerde Trello-bord totdat je vastgesteld hebt dat het Wekan-bord werkt. Doe dit door het nieuwe bord te sluiten en opnieuw te openen. Als er dan een foutmelding krijgt of het nieuwe bord opent niet dan kun je nog terugvallen op het originele bord. ",
"import-sandstorm-warning": "Het geïmporteerde bord verwijdert alle huidige data op dit bord, om het daarna te vervangen.",
"from-trello": "Vanuit Trello",
"from-wekan": "Vanuit eerdere export",
"import-board-instruction-trello": "Op jouw Trello bord, ga naar 'Menu', dan naar 'Meer', 'Print en Exporteer', 'Exporteer JSON', en kopieer de tekst.",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-board-instruction-wekan": "Ga op je bord naar 'Menu' en klik dan 'Export board' en kopieer de tekst in het gedownloade bestand.",
"import-board-instruction-about-errors": "Als je tijdens de import van het bord foutmeldingen krijgt is de import soms toch gelukt en vind je het bord terug op de 'Alle borden' scherm.",
"import-json-placeholder": "Plak geldige JSON data hier",
"import-map-members": "Breng leden in kaart",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-members-map": "Je geïmporteerde bord heeft een aantal leden. Koppel de leden die je wilt importeren aan je gebruikers.",
"import-show-user-mapping": "Breng leden overzicht tevoorschijn",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"import-user-select": "Kies een bestaande gebruiker die je als dit lid wilt koppelen",
"importMapMembersAddPopup-title": "Kies lid",
"info": "Versie",
"initials": "Initialen",
"invalid-date": "Ongeldige datum",
"invalid-time": "Ongeldige tijd",
"invalid-user": "Ongeldige gebruiker",
"joined": "doet nu mee met",
"just-invited": "Je bent zojuist uitgenodigd om mee toen doen met dit bord",
"just-invited": "Je bent zojuist uitgenodigd om mee toen doen aan dit bord",
"keyboard-shortcuts": "Toetsenbord snelkoppelingen",
"label-create": "Label aanmaken",
"label-default": "%s label (standaard)",
"label-delete-pop": "Er is geen herstelmogelijkheid. Deze actie zal de label van alle kaarten verwijderen, en de feed.",
"label-delete-pop": "Er is geen herstelmogelijkheid. Deze actie zal het label van alle kaarten verwijderen met de bijbehorende historie.",
"labels": "Labels",
"language": "Taal",
"last-admin-desc": "Je kan de permissies niet veranderen omdat er maar een administrator is.",
"last-admin-desc": "Je kunt de permissies niet veranderen omdat er minimaal een administrator moet zijn.",
"leave-board": "Verlaat bord",
"leave-board-pop": "Weet u zeker dat u __boardTitle__ wilt verlaten? U wordt verwijderd van alle kaarten binnen dit bord",
"leaveBoardPopup-title": "Bord verlaten?",
@@ -362,7 +362,7 @@
"set-color-list": "Wijzig kleur in",
"listActionPopup-title": "Lijst acties",
"swimlaneActionPopup-title": "Swimlane handelingen",
"swimlaneAddPopup-title": "Add a Swimlane below",
"swimlaneAddPopup-title": "Voeg hieronder een Swimlane toe",
"listImportCardPopup-title": "Importeer een Trello kaart",
"listMorePopup-title": "Meer",
"link-list": "Link naar deze lijst",
@@ -393,8 +393,8 @@
"no-results": "Geen resultaten",
"normal": "Normaal",
"normal-desc": "Kan de kaarten zien en wijzigen. Kan de instellingen niet wijzigen.",
"not-accepted-yet": "Uitnodiging niet geaccepteerd",
"notify-participate": "Ontvang updates van elke kaart die je hebt gemaakt of lid van bent",
"not-accepted-yet": "Uitnodiging nog niet geaccepteerd",
"notify-participate": "Ontvang updates van elke kaart die je hebt aangemaakt of lid van bent",
"notify-watch": "Ontvang updates van elke bord, lijst of kaart die je bekijkt.",
"optional": "optioneel",
"or": "of",
@@ -407,19 +407,19 @@
"previewAttachedImagePopup-title": "Voorbeeld",
"previewClipboardImagePopup-title": "Voorbeeld",
"private": "Privé",
"private-desc": "Dit bord is privé. Alleen mensen die toegevoegd zijn aan het bord kunnen het bekijken en wijzigen.",
"private-desc": "Dit bord is privé. Alleen gebruikers die toegevoegd zijn aan het bord kunnen het bekijken en wijzigen.",
"profile": "Profiel",
"public": "Publiek",
"public-desc": "Dit bord is publiek. Het is zichtbaar voor iedereen met de link en zal tevoorschijn komen op zoekmachines zoals Google. Alleen mensen die toegevoegd zijn kunnen het bord wijzigen.",
"public": "Openbaar",
"public-desc": "Dit bord is openbaar. Het is zichtbaar voor iedereen met de link en zal tevoorschijn komen op zoekmachines zoals Google. Alleen gebruikers die toegevoegd zijn aan het bord kunnen het wijzigen.",
"quick-access-description": "Maak een bord favoriet om een snelkoppeling toe te voegen aan deze balk.",
"remove-cover": "Verwijder Cover",
"remove-from-board": "Verwijder van bord",
"remove-label": "Verwijder label",
"listDeletePopup-title": "Verwijder lijst?",
"listDeletePopup-title": "Lijst verwijderen?",
"remove-member": "Verwijder lid",
"remove-member-from-card": "Verwijder van kaart",
"remove-member-pop": "Verwijder __name__ (__username__) van __boardTitle__? Het lid zal verwijderd worden van alle kaarten op dit bord, en zal een notificatie ontvangen.",
"removeMemberPopup-title": "Verwijder lid?",
"removeMemberPopup-title": "Lid verwijderen?",
"rename": "Hernoem",
"rename-board": "Hernoem bord",
"restore": "Herstel",
@@ -434,7 +434,7 @@
"shortcut-assign-self": "Voeg jezelf toe aan huidige kaart",
"shortcut-autocomplete-emoji": "Emojis automatisch aanvullen",
"shortcut-autocomplete-members": "Leden automatisch aanvullen",
"shortcut-clear-filters": "Alle filters vrijmaken",
"shortcut-clear-filters": "Wis alle filters",
"shortcut-close-dialog": "Sluit dialoog",
"shortcut-filter-my-cards": "Filter mijn kaarten",
"shortcut-show-shortcuts": "Haal lijst met snelkoppelingen tevoorschijn",
@@ -477,16 +477,16 @@
"welcome-swimlane": "Mijlpaal 1",
"welcome-list1": "Basis",
"welcome-list2": "Geadvanceerd",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"card-templates-swimlane": "Kaart Templates",
"list-templates-swimlane": "Lijst Templates",
"board-templates-swimlane": "Bord Templates",
"what-to-do": "Wat wil je doen?",
"wipLimitErrorPopup-title": "Ongeldige WIP limiet",
"wipLimitErrorPopup-dialog-pt1": "Het aantal taken in deze lijst is groter dan de gedefinieerde WIP limiet ",
"wipLimitErrorPopup-dialog-pt2": "Verwijder een aantal taken uit deze lijst, of zet de WIP limiet hoger",
"admin-panel": "Administrator paneel",
"settings": "Instellingen",
"people": "Mensen",
"people": "Gebruikers",
"registration": "Registratie",
"disable-self-registration": "Schakel zelf-registratie uit",
"invite": "Uitnodigen",
@@ -505,42 +505,47 @@
"send-smtp-test": "Verzend een test email naar uzelf",
"invitation-code": "Uitnodigings code",
"email-invite-register-subject": "__inviter__ heeft je een uitnodiging gestuurd",
"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-invite-register-text": "Beste __user__,\n\n__inviter__ nodigt je uit voor een Kanban-bord om samen te werken.\n\nHet bord vind je via onderstaande link:\n__url__\n\nJe uitnodigingscode is: __icode__\n\nBedankt en tot ziens.",
"email-smtp-test-subject": "SMTP Test Email",
"email-smtp-test-text": "U heeft met succes een email verzonden",
"error-invitation-code-not-exist": "Uitnodigings code bestaat niet",
"error-notAuthorized": "Je bent niet toegestaan om deze pagina te bekijken.",
"webhook-title": "Webhook Naam",
"webhook-token": "Token (Optioneel voor Authenticatie)",
"outgoing-webhooks": "Uitgaande Webhooks",
"bidirectional-webhooks": "Twee-Weg Webhooks",
"outgoingWebhooksPopup-title": "Uitgaande Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"boardCardTitlePopup-title": "Kaarttitel Filter",
"disable-webhook": "Schakel deze Webhook uit",
"global-webhook": "Globale Webhooks",
"new-outgoing-webhook": "Nieuwe webhook",
"no-name": "(Onbekend)",
"Node_version": "Node versie",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"Meteor_version": "Meteor versie",
"MongoDB_version": "MongoDB versie",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"MongoDB_Oplog_enabled": "MongoDB Oplog ingeschakeld",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Vrij Geheugen",
"OS_Loadavg": "OS Gemiddelde Lading",
"OS_Loadavg": "OS Gemiddelde Belasting",
"OS_Platform": "OS Platform",
"OS_Release": "OS Versie",
"OS_Totalmem": "OS Totaal Geheugen",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"days": "days",
"days": "dagen",
"hours": "uren",
"minutes": "minuten",
"seconds": "seconden",
"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",
"show-field-on-card": "Toon dit veld op kaart",
"automatically-field-on-card": "Maak veld automatisch aan op alle kaarten",
"showLabel-field-on-card": "Toon veldnaam op minikaart",
"yes": "Ja",
"no": "Nee",
"accounts": "Accounts",
"accounts-allowEmailChange": "Sta E-mailadres wijzigingen toe",
"accounts-allowUserNameChange": "Allow Username Change",
"accounts-allowUserNameChange": "Sta Gebruikersnaam wijzigingen toe",
"createdAt": "Gemaakt op",
"verified": "Geverifieerd",
"active": "Actief",
@@ -554,181 +559,181 @@
"setCardActionsColorPopup-title": "Kies een kleur",
"setSwimlaneColorPopup-title": "Kies een kleur",
"setListColorPopup-title": "Kies een kleur",
"assigned-by": "Toegewezen Door",
"requested-by": "Aangevraagd Door",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"assigned-by": "Toegewezen door",
"requested-by": "Aangevraagd door",
"board-delete-notice": "Verwijdering kan niet ongedaan gemaakt worden. Je raakt alle met dit bord gerelateerde lijsten, kaarten en acties kwijt.",
"delete-board-confirm-popup": "Alle lijsten, kaarten, labels en activiteiten zullen worden verwijderd en je kunt de bordinhoud niet terughalen. Er is geen herstelmogelijkheid. ",
"boardDeletePopup-title": "Delete Board?",
"delete-board": "Delete Board",
"boardDeletePopup-title": "Bord verwijderen?",
"delete-board": "Verwijder bord",
"default-subtasks-board": "Subtaken voor __board__ bord",
"default": "Default",
"queue": "Queue",
"default": "Standaard",
"queue": "Rij",
"subtask-settings": "Subtaak Instellingen",
"boardSubtaskSettingsPopup-title": "Bord Subtaak Instellingen",
"show-subtasks-field": "Kaarten kunnen subtaken hebben",
"deposit-subtasks-board": "Plaats subtaken op dit bord:",
"deposit-subtasks-list": "Plaats subtaken in deze lijst:",
"show-parent-in-minicard": "Show parent in minicard:",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
"subtext-with-parent": "Subtext with parent",
"change-card-parent": "Change card's parent",
"parent-card": "Parent card",
"source-board": "Source board",
"no-parent": "Don't show parent",
"activity-added-label": "added label '%s' to %s",
"activity-removed-label": "removed label '%s' from %s",
"show-parent-in-minicard": "Toon bron in minikaart:",
"prefix-with-full-path": "Prefix met volledig pad",
"prefix-with-parent": "Prefix met bron",
"subtext-with-full-path": "Subtekst met volledig pad",
"subtext-with-parent": "Subtekst met bron",
"change-card-parent": "Wijzig bron van kaart",
"parent-card": "Bronkaart",
"source-board": "Bronbord",
"no-parent": "Toon bron niet",
"activity-added-label": "label toegevoegd '%s' aan %s",
"activity-removed-label": "label verwijderd '%s' van %s",
"activity-delete-attach": "een bijlage verwijderd van %s",
"activity-added-label-card": "added label '%s'",
"activity-removed-label-card": "removed label '%s'",
"activity-added-label-card": "label toegevoegd '%s'",
"activity-removed-label-card": "label verwijderd '%s'",
"activity-delete-attach-card": "een bijlage verwijderd",
"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",
"activity-set-customfield": "wijzig maatwerkveld '%s' naar '%s' in %s",
"activity-unset-customfield": "wijzig maatwerkveld '%s' in %s",
"r-rule": "Regel",
"r-add-trigger": "Voeg signaal toe",
"r-add-action": "Actie toevoegen",
"r-board-rules": "Bord regels",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-add-rule": "Regel toevoegen",
"r-view-rule": "Toon regel",
"r-delete-rule": "Verwijder regel",
"r-new-rule-name": "Nieuwe regelnaam",
"r-no-rules": "Geen regels",
"r-when-a-card": "When a card",
"r-when-a-card": "Als een kaart",
"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-is-moved": "is verplaatst",
"r-added-to": "toegevoegd aan",
"r-removed-from": "verwijderd van",
"r-the-board": "het bord",
"r-list": "lijst",
"set-filter": "Definieer Filter",
"r-moved-to": "verplaatst naar",
"r-moved-from": "verplaatst van",
"r-archived": "Verplaatst naar Archief",
"r-unarchived": "Teruggehaald uit Archief",
"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-a-card": "een kaart",
"r-when-a-label-is": "Als een label is",
"r-when-the-label": "Als het label",
"r-list-name": "lijstnaam",
"r-when-a-member": "Als een lid is",
"r-when-the-member": "Als het lid",
"r-name": "naam",
"r-when-a-attach": "Als een bijlage",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
"r-made-incomplete": "Made incomplete",
"r-when-a-item": "When a checklist item is",
"r-when-the-item": "When the checklist item",
"r-checked": "Checked",
"r-unchecked": "Unchecked",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-when-a-checklist": "Als een checklist is",
"r-when-the-checklist": "Als de checklist",
"r-completed": "Afgewerkt",
"r-made-incomplete": "Onafgewerkt gemaakt",
"r-when-a-item": "Als een checklist item is",
"r-when-the-item": "Als het checklist item",
"r-checked": "Aangevinkt",
"r-unchecked": "Uitgevinkt",
"r-move-card-to": "Verplaats kaart naar",
"r-top-of": "Bovenste van",
"r-bottom-of": "Onderste van",
"r-its-list": "zijn lijst",
"r-archive": "Verplaats naar Archief",
"r-unarchive": "Terughalen uit Archief",
"r-card": "card",
"r-card": "kaart",
"r-add": "Toevoegen",
"r-remove": "Remove",
"r-remove": "Verwijder",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Remove all members from the card",
"r-member": "lid",
"r-remove-all": "Verwijder alle leden van de kaart",
"r-set-color": "Wijzig kleur naar",
"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-check-all": "Vink alles aan",
"r-uncheck-all": "Vink alles uit",
"r-items-check": "items van checklist",
"r-check": "Vink aan",
"r-uncheck": "Vink uit",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-of-checklist": "van checklist",
"r-send-email": "Verzend een email",
"r-to": "to",
"r-subject": "subject",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-to": "naar",
"r-subject": "onderwerp",
"r-rule-details": "Regel details",
"r-d-move-to-top-gen": "Verplaats kaart helemaal naar boven op de lijst",
"r-d-move-to-top-spec": "Verplaats kaart naar bovenaan op lijst",
"r-d-move-to-bottom-gen": "Verplaats kaart naar onderaan op de lijst",
"r-d-move-to-bottom-spec": "Verplaats kaart naar onderaan op lijst",
"r-d-send-email": "Verzend email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-send-email-to": "naar",
"r-d-send-email-subject": "onderwerp",
"r-d-send-email-message": "bericht",
"r-d-archive": "Verplaats kaart naar Archief",
"r-d-unarchive": "Haal kaart terug uit Archief",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-create-card": "Create new card",
"r-in-list": "in list",
"r-d-add-label": "Label toevoegen",
"r-d-remove-label": "Verwijder label",
"r-create-card": "Maak nieuwe kaart aan",
"r-in-list": "van lijst",
"r-in-swimlane": "in swimlane",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-by": "by",
"r-add-checklist": "Add checklist",
"r-with-items": "with items",
"r-items-list": "item1,item2,item3",
"r-add-swimlane": "Add swimlane",
"r-swimlane-name": "swimlane name",
"r-board-note": "Note: leave a field empty to match every possible value.",
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-d-add-member": "Lid toevoegen",
"r-d-remove-member": "Verwijder lid",
"r-d-remove-all-member": "Verwijder alle leden",
"r-d-check-all": "Vink alle items van een lijst aan",
"r-d-uncheck-all": "Vink alle items van een lijst uit",
"r-d-check-one": "Vink item aan",
"r-d-uncheck-one": "Vink item uit",
"r-d-check-of-list": "van checklist",
"r-d-add-checklist": "Checklist toevoegen",
"r-d-remove-checklist": "Verwijder checklist",
"r-by": "door",
"r-add-checklist": "Checklist toevoegen",
"r-with-items": "met items",
"r-items-list": "item1, item2, item3",
"r-add-swimlane": "Swimlane toevoegen",
"r-swimlane-name": "Swimlane-naam",
"r-board-note": "Let op: laat een veld leeg om er niet op te selecteren",
"r-checklist-note": "Let op: checklist items moeten geschreven worden als kommagescheiden waarden.",
"r-when-a-card-is-moved": "Als een kaart is verplaatst naar een andere lijst",
"r-set": "Wijzig",
"r-update": "Bijwerken",
"r-datefield": "datumveld",
"r-df-start-at": "begin",
"r-df-due-at": "verval",
"r-df-end-at": "einde",
"r-df-received-at": "ontvangen",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"r-to-current-datetime": "naar huidige datum/tijd",
"r-remove-value-from": "Verwijder waarde van",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
"authentication-method": "Authentication method",
"authentication-type": "Authentication type",
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"hide-logo": "Hide Logo",
"authentication-method": "Authenticatiemethode",
"authentication-type": "Authenticatietype",
"custom-product-name": "Eigen Productnaam",
"layout": "Lay-out",
"hide-logo": "Verberg Logo",
"add-custom-html-after-body-start": "Voeg eigen HTML toe na <body> start",
"add-custom-html-before-body-end": "Voeg eigen HTML toe voor </body> einde",
"error-undefined": "Something went wrong",
"error-ldap-login": "An error occurred while trying to login",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
"duplicate-board": "Duplicate Board",
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"error-undefined": "Er is iets misgegaan",
"error-ldap-login": "Er is een fout opgetreden tijdens het inloggen",
"display-authentication-method": "Toon Authenticatiemethode",
"default-authentication-method": "Standaard Authenticatiemethode",
"duplicate-board": "Dupliceer Bord",
"people-number": "Het aantal gebruikers is:",
"swimlaneDeletePopup-title": "Swimlane verwijderen?",
"swimlane-delete-pop": "Alle acties zullen verwijderd worden van de activiteiten feed en je kunt de swimlane niet terughalen. Er is geen herstelmogelijkheid.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"restore-all": "Haal alles terug",
"delete-all": "Verwijder alles",
"loading": "Laden, even geduld.",
"previous_as": "laatste keer was",
"act-a-dueAt": "vervaldatum gewijzigd naar \nOp: __timeValue__\nKaart: __card__\noude vervaldatum was __timeOldValue__",
"act-a-endAt": "einddatum gewijzigd naar __timeValue__ van (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "begindatum gewijzigd naar __timeValue__ van (__timeOldValue__)",
"act-a-receivedAt": "ontvangstdatum gewijzigd naar __timeValue__ van (__timeOldValue__)",
"a-dueAt": "modified due time to be",
"a-dueAt": "vervaldatum gewijzigd naar",
"a-endAt": "einddatum gewijzigd naar",
"a-startAt": "modified starting time to be",
"a-startAt": "begindatum gewijzigd naar",
"a-receivedAt": "ontvangstdatum gewijzigd naar",
"almostdue": "current due time %s is approaching",
"pastdue": "current due time %s is past",
"duenow": "current due time %s is today",
"act-withDue": "__card__ due reminders [__board__]",
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
"act-atUserComment": "You were mentioned in [__board__] __card__",
"almostdue": "huidige vervaldatum %s nadert",
"pastdue": "huidige vervaldatum %s is verlopen",
"duenow": "huidige vervaldatum %s is vandaag",
"act-withDue": "__card__ verval herinneringen [__board__]",
"act-almostdue": "was aan het herinneren aan dat de huidige vervaldatum (__timeValue__) van __card__ nadert",
"act-pastdue": "was aan het herinneren aan dat de huidige vervaldatum (__timeValue__) van __card__ is verlopen",
"act-duenow": "was aan het herinneren aan dat de huidige vervaldatum (__timeValue__) van __card__ is nu",
"act-atUserComment": "Je bent genoemd op [__board__] op __card__",
"delete-user-confirm-popup": "Weet je zeker dat je dit account wilt verwijderen? Er is geen herstelmogelijkheid.",
"accounts-allowUserDelete": "Sta gebruikers toe om hun eigen account te verwijderen",
"hide-minicard-label-text": "Hide minicard label text"
"hide-minicard-label-text": "Verberg minikaart labeltekst"
}
+8 -3
View File
@@ -139,9 +139,9 @@
"board-view-lists": "Tièras",
"bucket-example": "Coma \"Tota la tièra\" per exemple",
"cancel": "Tornar",
"card-archived": "Aquesta carta es desplaçada dins Archius",
"board-archived": "Aqueste tablèu esdesplaçat dins Archius",
"card-comments-title": "Aquesta carta a %s de comentaris.",
"card-archived": "Aquesta carta es desplaçada dins Archius.",
"board-archived": "Aqueste tablèu esdesplaçat dins Archius.",
"card-comments-title": "Aquesta carta a %s comentari(s).",
"card-delete-notice": "Un còp tirat, pas de posibilitat de tornar enrè",
"card-delete-pop": "Totes las accions van èsser quitadas del seguit d'activitat e poiretz pas mai utilizar aquesta carta.",
"card-delete-suggest-archive": "Podètz desplaçar una carta dins Archius per la quitar del tablèu e gardar las activitats.",
@@ -510,9 +510,14 @@
"email-smtp-test-text": "As capitat de mandar un corrièl",
"error-invitation-code-not-exist": "Lo còde de convit existís pas",
"error-notAuthorized": "Sès pas autorizat a agachar aquesta pagina",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Desconegut)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Wiadomość testowa została wysłana z powodzeniem.",
"error-invitation-code-not-exist": "Kod zaproszenia nie istnieje",
"error-notAuthorized": "Nie jesteś uprawniony do przeglądania tej strony.",
"webhook-title": "Nazwa webhooka",
"webhook-token": "Token (opcjonalny do autoryzacji)",
"outgoing-webhooks": "Wychodzące webhooki",
"bidirectional-webhooks": "Dwustronne webhooki",
"outgoingWebhooksPopup-title": "Wychodzące webhooki",
"boardCardTitlePopup-title": "Filtruj poprzez nazwę karty",
"disable-webhook": "Wyłącz tego webhooka",
"global-webhook": "Globalne webhooki",
"new-outgoing-webhook": "Nowy wychodzący webhook",
"no-name": "(nieznany)",
"Node_version": "Wersja Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Você enviou um e-mail com sucesso",
"error-invitation-code-not-exist": "O código do convite não existe",
"error-notAuthorized": "Você não está autorizado à ver esta página.",
"webhook-title": "Nome do Webhook",
"webhook-token": "Token (Opcional para autenticação)",
"outgoing-webhooks": "Webhook de saída",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Webhook de saída",
"boardCardTitlePopup-title": "Filtro do Título do Cartão",
"disable-webhook": "Desabilitar este Webhook",
"global-webhook": "Webhooks globais",
"new-outgoing-webhook": "Novo Webhook de saída",
"no-name": "(Desconhecido)",
"Node_version": "Versão do Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Enviou um e-mail com sucesso",
"error-invitation-code-not-exist": "O código do convite não existe",
"error-notAuthorized": "Não tem autorização para ver esta página.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Webhooks de saída",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Webhooks de saída",
"boardCardTitlePopup-title": "Filtro do Título do Cartão",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Novo Webhook de saída",
"no-name": "(Desconhecido)",
"Node_version": "Versão do Node",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+8 -3
View File
@@ -510,10 +510,15 @@
"email-smtp-test-text": "Вы успешно отправили письмо",
"error-invitation-code-not-exist": "Код приглашения не существует",
"error-notAuthorized": "У вас нет доступа на просмотр этой страницы.",
"outgoing-webhooks": "Исходящие Веб-хуки",
"outgoingWebhooksPopup-title": "Исходящие Веб-хуки",
"webhook-title": "Имя Веб-Хука",
"webhook-token": "Токен (Опционально для аутентификации)",
"outgoing-webhooks": "Исходящие Веб-Хуки",
"bidirectional-webhooks": "Двунаправленный Веб-Хук",
"outgoingWebhooksPopup-title": "Исходящие Веб-Хуки",
"boardCardTitlePopup-title": "Фильтр названий карточек",
"new-outgoing-webhook": "Новый исходящий Веб-хук",
"disable-webhook": "Отключить этот Веб-Хук",
"global-webhook": "Глобальные Веб-Хуки",
"new-outgoing-webhook": "Новый исходящий Веб-Хук",
"no-name": "(Неизвестный)",
"Node_version": "Версия NodeJS",
"Meteor_version": "Версия Meteor",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "Du har skickat ett e-postmeddelande",
"error-invitation-code-not-exist": "Inbjudningskod finns inte",
"error-notAuthorized": "Du är inte behörig att se den här sidan.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Utgående Webhookar",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Utgående Webhookar",
"boardCardTitlePopup-title": "Korttitelfiler",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Ny utgående webhook",
"no-name": "(Okänd)",
"Node_version": "Nodversion",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "E-Posta başarıyla gönderildi",
"error-invitation-code-not-exist": "Davetiye kodu bulunamadı",
"error-notAuthorized": "Bu sayfayı görmek için yetkiniz yok.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Dışarı giden bağlantılar",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Dışarı giden bağlantılar",
"boardCardTitlePopup-title": "Kart Başlığı Filtresi",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "Yeni Dışarı Giden Web Bağlantısı",
"no-name": "(Bilinmeyen)",
"Node_version": "Node sürümü",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "你已成功发送邮件",
"error-invitation-code-not-exist": "邀请码不存在",
"error-notAuthorized": "您无权查看此页面。",
"webhook-title": "Webhook名称",
"webhook-token": "Token(认证选项)",
"outgoing-webhooks": "外部Web挂钩",
"bidirectional-webhooks": "双向Webhook",
"outgoingWebhooksPopup-title": "外部Web挂钩",
"boardCardTitlePopup-title": "卡片标题过滤",
"disable-webhook": "禁用Webhook",
"global-webhook": "全局Webhook",
"new-outgoing-webhook": "新建外部Web挂钩",
"no-name": "(未知)",
"Node_version": "Node.js版本",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
+5
View File
@@ -510,9 +510,14 @@
"email-smtp-test-text": "您已成功寄送郵件",
"error-invitation-code-not-exist": "邀請碼不存在",
"error-notAuthorized": "沒有適合的權限觀看",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "設定 Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "設定 Webhooks",
"boardCardTitlePopup-title": "卡片標題過濾器",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(未知)",
"Node_version": "Node 版本",
+2
View File
@@ -20,6 +20,8 @@ AccountSettings.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+10
View File
@@ -14,6 +14,16 @@ Actions.allow({
},
});
Actions.before.insert((userId, doc) => {
doc.createdAt = new Date();
doc.modifiedAt = doc.createdAt;
});
Actions.before.update((userId, doc, fieldNames, modifier) => {
modifier.$set = modifier.$set || {};
modifier.$set.modifiedAt = new Date();
});
Actions.helpers({
description() {
return this.desc;
+23 -6
View File
@@ -62,8 +62,14 @@ Activities.helpers({
//},
});
Activities.before.update((userId, doc, fieldNames, modifier) => {
modifier.$set = modifier.$set || {};
modifier.$set.modifiedAt = new Date();
});
Activities.before.insert((userId, doc) => {
doc.createdAt = new Date();
doc.modifiedAt = doc.createdAt;
});
Activities.after.insert((userId, doc) => {
@@ -184,10 +190,11 @@ if (Meteor.isServer) {
// it's person at himself, ignore it?
continue;
}
const user = Users.findOne(username) || Users.findOne({ username });
const uid = user && user._id;
const atUser =
Users.findOne(username) || Users.findOne({ username });
const uid = atUser && atUser._id;
params.atUsername = username;
params.atEmails = user.emails;
params.atEmails = atUser.emails;
if (board.hasMember(uid)) {
title = 'act-atUserComment';
watchers = _.union(watchers, [uid]);
@@ -268,13 +275,23 @@ if (Meteor.isServer) {
});
const integrations = Integrations.find({
boardId: board._id,
type: 'outgoing-webhooks',
boardId: { $in: [board._id, Integrations.Const.GLOBAL_WEBHOOK_ID] },
// type: 'outgoing-webhooks', // all types
enabled: true,
activities: { $in: [description, 'all'] },
}).fetch();
if (integrations.length > 0) {
Meteor.call('outgoingWebhooks', integrations, description, params);
integrations.forEach(integration => {
Meteor.call(
'outgoingWebhooks',
integration,
description,
params,
() => {
return;
},
);
});
}
});
}
+2
View File
@@ -25,6 +25,8 @@ Announcements.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -55,6 +55,8 @@ Boards.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -34,6 +34,8 @@ CardComments.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -107,6 +107,8 @@ Cards.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -44,6 +44,8 @@ ChecklistItems.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -35,6 +35,8 @@ Checklists.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -78,6 +78,8 @@ CustomFields.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+20 -4
View File
@@ -63,6 +63,8 @@ Integrations.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
@@ -88,16 +90,30 @@ Integrations.attachSchema(
},
}),
);
Integrations.Const = {
GLOBAL_WEBHOOK_ID: '_global',
ONEWAY: 'outgoing-webhooks',
TWOWAY: 'bidirectional-webhooks',
get WEBHOOK_TYPES() {
return [this.ONEWAY, this.TWOWAY];
},
};
const permissionHelper = {
allow(userId, doc) {
const user = Users.findOne(userId);
const isAdmin = user && Meteor.user().isAdmin;
return isAdmin || allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
},
};
Integrations.allow({
insert(userId, doc) {
return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
return permissionHelper.allow(userId, doc);
},
update(userId, doc) {
return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
return permissionHelper.allow(userId, doc);
},
remove(userId, doc) {
return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
return permissionHelper.allow(userId, doc);
},
fetch: ['boardId'],
});
+2
View File
@@ -18,6 +18,8 @@ InvitationCodes.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -45,6 +45,8 @@ Lists.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -98,6 +98,8 @@ Org.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -49,6 +49,8 @@ OrgUser.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -27,6 +27,8 @@ Rules.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -60,6 +60,8 @@ Settings.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -38,6 +38,8 @@ Swimlanes.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+10
View File
@@ -12,6 +12,16 @@ Triggers.mutations({
},
});
Triggers.before.insert((userId, doc) => {
doc.createdAt = new Date();
doc.updatedAt = doc.createdAt;
});
Triggers.before.update((userId, doc, fieldNames, modifier) => {
modifier.$set = modifier.$set || {};
modifier.$set.updatedAt = new Date();
});
Triggers.allow({
insert(userId, doc) {
return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
+2
View File
@@ -29,6 +29,8 @@ UnsavedEditCollection.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+2
View File
@@ -54,6 +54,8 @@ Users.attachSchema(
autoValue() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return { $setOnInsert: new Date() };
} else {
this.unset();
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.35.0",
"version": "v3.42.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.35.0",
"version": "v3.42.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+2 -2
View File
@@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.34">Wekan REST API v3.34</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.41">Wekan REST API v3.41</a>
</li>
@@ -2017,7 +2017,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v3.34</h1>
<h1 id="wekan-rest-api">Wekan REST API v3.41</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>
+1 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v3.34
version: v3.41
description: |
The REST API allows you to control and extend Wekan with ease.
+3 -3
View File
@@ -143,8 +143,8 @@ do
#fi
#cd ..
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
rm -rf node_modules
meteor npm install
rm -rf node_modules .meteor/local
npm install
rm -rf .build
meteor build .build --directory
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
@@ -156,7 +156,7 @@ do
#meteor npm install bcrypt
cd .build/bundle/programs/server
rm -rf node_modules
meteor npm install
npm install
#meteor npm install bcrypt
cd ../../../..
echo Done.
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 337,
appVersion = 344,
# Increment this for every release.
appMarketingVersion = (defaultText = "3.35.0~2019-08-29"),
appMarketingVersion = (defaultText = "3.42.0~2019-09-14"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+41 -33
View File
@@ -684,39 +684,6 @@ Migrations.add('mutate-boardIds-in-customfields', () => {
});
});
const firstBatchOfDbsToAddCreatedAndUpdated = [
AccountSettings,
Actions,
Activities,
Announcements,
Boards,
CardComments,
Cards,
ChecklistItems,
Checklists,
CustomFields,
Integrations,
InvitationCodes,
Lists,
Rules,
Settings,
Swimlanes,
Triggers,
UnsavedEdits,
];
firstBatchOfDbsToAddCreatedAndUpdated.forEach(db => {
db.before.insert((userId, doc) => {
doc.createdAt = Date.now();
doc.updatedAt = doc.createdAt;
});
db.before.update((userId, doc, fieldNames, modifier) => {
modifier.$set = modifier.$set || {};
modifier.$set.updatedAt = new Date();
});
});
const modifiedAtTables = [
AccountSettings,
Actions,
@@ -769,3 +736,44 @@ Migrations.add('add-missing-created-and-modified', () => {
console.error(e);
});
});
Migrations.add('fix-incorrect-dates', () => {
const tables = [
AccountSettings,
Actions,
Activities,
Announcements,
Boards,
CardComments,
Cards,
ChecklistItems,
Checklists,
CustomFields,
Integrations,
InvitationCodes,
Lists,
Rules,
Settings,
Swimlanes,
Triggers,
UnsavedEdits,
];
// Dates were previously created with Date.now() which is a number, not a date
tables.forEach(t =>
t
.rawCollection()
.find({ $or: [{ createdAt: { $type: 1 } }, { updatedAt: { $type: 1 } }] })
.forEach(({ _id, createdAt, updatedAt }) => {
t.rawCollection().update(
{ _id },
{
$set: {
createdAt: new Date(createdAt),
updatedAt: new Date(updatedAt),
},
},
);
}),
);
});
+91 -18
View File
@@ -8,6 +8,19 @@ const postCatchError = Meteor.wrapAsync((url, options, resolve) => {
});
});
const Lock = {
_lock: {},
has(id) {
return !!this._lock[id];
},
set(id) {
this._lock[id] = 1;
},
unset(id) {
delete this._lock[id];
},
};
const webhooksAtbts = (process.env.WEBHOOKS_ATTRIBUTES &&
process.env.WEBHOOKS_ATTRIBUTES.split(',')) || [
'cardId',
@@ -20,15 +33,49 @@ const webhooksAtbts = (process.env.WEBHOOKS_ATTRIBUTES &&
'commentId',
'swimlaneId',
];
const responseFunc = 'reactOnHookResponse';
Meteor.methods({
outgoingWebhooks(integrations, description, params) {
check(integrations, Array);
[responseFunc](data) {
check(data, Object);
const paramCommentId = data.commentId;
const paramCardId = data.cardId;
const paramBoardId = data.boardId;
const newComment = data.comment;
if (paramCardId && paramBoardId && newComment) {
// only process data with the cardid, boardid and comment text, TODO can expand other functions here to react on returned data
const comment = CardComments.findOne({
_id: paramCommentId,
cardId: paramCardId,
boardId: paramBoardId,
});
if (comment) {
CardComments.update(comment._id, {
$set: {
text: newComment,
},
});
} else {
const userId = data.userId;
if (userId) {
CardComments.insert({
text: newComment,
userId,
cardId,
boardId,
});
}
}
}
},
outgoingWebhooks(integration, description, params) {
check(integration, Object);
check(description, String);
check(params, Object);
this.unblock();
// label activity did not work yet, see wekan/models/activities.js
const quoteParams = _.clone(params);
const clonedParams = _.clone(params);
[
'card',
'list',
@@ -63,23 +110,49 @@ Meteor.methods({
if (params[key]) value[key] = params[key];
});
value.description = description;
const options = {
headers: {
// 'Content-Type': 'application/json',
// 'X-Wekan-Activities-Token': 'Random.Id()',
},
data: value,
//integrations.forEach(integration => {
const is2way = integration.type === Integrations.Const.TWOWAY;
const token = integration.token || '';
const headers = {
'Content-Type': 'application/json',
};
if (token) headers['X-Wekan-Token'] = token;
const options = {
headers,
data: is2way ? clonedParams : value,
};
const url = integration.url;
const response = postCatchError(url, options);
integrations.forEach(integration => {
const response = postCatchError(integration.url, options);
if (response && response.statusCode && response.statusCode === 200) {
return true; // eslint-disable-line consistent-return
} else {
throw new Meteor.Error('error-invalid-webhook-response');
if (
response &&
response.statusCode &&
response.statusCode >= 200 &&
response.statusCode < 300
) {
if (is2way) {
const cid = params.commentId;
const tooSoon = Lock.has(cid); // if an activity happens to fast, notification shouldn't fire with the same id
if (!tooSoon) {
let clearNotification = () => {};
if (cid) {
Lock.set(cid);
const clearNotificationFlagTimeout = 1000;
clearNotification = () => Lock.unset(cid);
Meteor.setTimeout(clearNotification, clearNotificationFlagTimeout);
}
const data = response.data; // only an JSON encoded response will be actioned
if (data) {
Meteor.call(responseFunc, data, () => {
clearNotification();
});
}
}
}
});
return response; // eslint-disable-line consistent-return
} else {
throw new Meteor.Error('error-invalid-webhook-response');
}
//});
},
});
+2 -2
View File
@@ -138,7 +138,7 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
parentCards.selector = _ids => ({ parentId: _ids });
const boards = this.join(Boards);
const subCards = this.join(Cards);
subCards.selector = () => ({ archived: isArchived });
subCards.selector = _ids => ({ _id: _ids, archived: isArchived });
this.cursor(
Cards.find({
@@ -148,7 +148,7 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
function(cardId, card) {
if (card.type === 'cardType-linkedCard') {
const impCardId = card.linkedId;
subCards.push(impCardId);
subCards.push(impCardId); // GitHub issue #2688 and #2693
cardComments.push(impCardId);
attachments.push(impCardId);
checklists.push(impCardId);
+16 -18
View File
@@ -1,4 +1,5 @@
Meteor.publish('people', function(limit) {
Meteor.publish('people', function(query, limit) {
check(query, Match.OneOf(Object, null));
check(limit, Number);
if (!Match.test(this.userId, String)) {
@@ -7,23 +8,20 @@ Meteor.publish('people', function(limit) {
const user = Users.findOne(this.userId);
if (user && user.isAdmin) {
return Users.find(
{},
{
limit,
sort: { createdAt: -1 },
fields: {
username: 1,
'profile.fullname': 1,
isAdmin: 1,
emails: 1,
createdAt: 1,
loginDisabled: 1,
authenticationMethod: 1,
},
return Users.find(query, {
limit,
sort: { createdAt: -1 },
fields: {
username: 1,
'profile.fullname': 1,
isAdmin: 1,
emails: 1,
createdAt: 1,
loginDisabled: 1,
authenticationMethod: 1,
},
);
} else {
return [];
});
}
return [];
});
+6
View File
@@ -1,3 +1,9 @@
Meteor.publish('globalwebhooks', () => {
const boardId = Integrations.Const.GLOBAL_WEBHOOK_ID;
return Integrations.find({
boardId,
});
});
Meteor.publish('setting', () => {
return Settings.find(
{},
Loaded 100 of 104 files, more files were not shown because too many files have changed in this diff. Show more