Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be70c02922 | ||
|
|
a61afda39e | ||
|
|
126ab58e03 | ||
|
|
ca95bba358 | ||
|
|
6407893aa6 | ||
|
|
45ed9b426f | ||
|
|
11d6b77bb1 | ||
|
|
f248dada3f | ||
|
|
a56988c487 | ||
|
|
74b5bdf2aa | ||
|
|
753d5b953d | ||
|
|
ea26f70669 | ||
|
|
682c23e011 | ||
|
|
d4a307f66d | ||
|
|
7c9bf3ce0f | ||
|
|
6cbd4cabc7 | ||
|
|
10b953041f | ||
|
|
36fb31c138 | ||
|
|
3f2490e64d | ||
|
|
37065c1d50 | ||
|
|
9764e03a37 | ||
|
|
0f5226f814 | ||
|
|
3b9f2ca7c2 | ||
|
|
7953e5a52a | ||
|
|
9617c78798 | ||
|
|
28f21487b0 | ||
|
|
4567f08a0b | ||
|
|
b0281e1941 | ||
|
|
efed77b474 | ||
|
|
a70b97676a | ||
|
|
7b54983ec2 | ||
|
|
bc2fcef7c4 | ||
|
|
750349053c | ||
|
|
bfbe32e1ec | ||
|
|
ccfaf879dd | ||
|
|
ebd32af5c1 | ||
|
|
43ea7d761e | ||
|
|
a715e30cba | ||
|
|
8633bd8974 | ||
|
|
9474bee7fa | ||
|
|
92b86ada39 | ||
|
|
03bea6e406 | ||
|
|
6183402754 | ||
|
|
663ba26d4d | ||
|
|
510407467c | ||
|
|
b477fc1b1c | ||
|
|
58155288fb | ||
|
|
dd0682328b | ||
|
|
d1ab787215 | ||
|
|
71d32c6bc8 | ||
|
|
3f0600fed7 |
No files matched your search
@@ -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,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": [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
custom: ['https://wekan.team/commercial-support/']
|
||||
@@ -31,3 +31,4 @@ ehthumbs.db
|
||||
.eslintcache
|
||||
.meteor/local
|
||||
.meteor-1.6-snap/.meteor/local
|
||||
.devcontainer/docker-compose.extend.yml
|
||||
@@ -1,3 +1,56 @@
|
||||
# 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:
|
||||
|
||||
- [Try to fix Snap](https://github.com/wekan/wekan/commit/71d32c6bc8e6affd345026797ff31e94a0a10d77).
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v3.34 2019-08-29 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v3.34.0"
|
||||
appVersion: "v3.38.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -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
|
||||
.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
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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": "إصدار النود",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ó",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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バージョン",
|
||||
|
||||
@@ -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 ვერსია",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
+276
-271
@@ -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",
|
||||
@@ -556,179 +561,179 @@
|
||||
"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.",
|
||||
"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
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ü",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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版本",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 版本",
|
||||
|
||||
@@ -20,6 +20,8 @@ AccountSettings.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ Announcements.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -55,6 +55,8 @@ Boards.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ CardComments.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -107,6 +107,8 @@ Cards.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -44,6 +44,8 @@ ChecklistItems.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ Checklists.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -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
@@ -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'],
|
||||
});
|
||||
|
||||
@@ -18,6 +18,8 @@ InvitationCodes.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -45,6 +45,8 @@ Lists.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -98,6 +98,8 @@ Org.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -49,6 +49,8 @@ OrgUser.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ Rules.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -60,6 +60,8 @@ Settings.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -38,6 +38,8 @@ Swimlanes.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -29,6 +29,8 @@ UnsavedEditCollection.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
@@ -54,6 +54,8 @@ Users.attachSchema(
|
||||
autoValue() {
|
||||
if (this.isInsert) {
|
||||
return new Date();
|
||||
} else if (this.isUpsert) {
|
||||
return { $setOnInsert: new Date() };
|
||||
} else {
|
||||
this.unset();
|
||||
}
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v3.34.0",
|
||||
"version": "v3.38.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v3.34.0",
|
||||
"version": "v3.38.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -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.33">Wekan REST API v3.33</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.37">Wekan REST API v3.37</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.33</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v3.37</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,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v3.33
|
||||
version: v3.37
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
+3
-3
@@ -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.
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 336,
|
||||
appVersion = 340,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "3.34.0~2019-08-29"),
|
||||
appMarketingVersion = (defaultText = "3.38.0~2019-09-11"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
+41
-33
@@ -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),
|
||||
},
|
||||
},
|
||||
);
|
||||
}),
|
||||
);
|
||||
});
|
||||
@@ -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');
|
||||
}
|
||||
//});
|
||||
},
|
||||
});
|
||||
@@ -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
|
||||
cardComments.push(impCardId);
|
||||
attachments.push(impCardId);
|
||||
checklists.push(impCardId);
|
||||
|
||||
@@ -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 [];
|
||||
});
|
||||
@@ -1,3 +1,9 @@
|
||||
Meteor.publish('globalwebhooks', () => {
|
||||
const boardId = Integrations.Const.GLOBAL_WEBHOOK_ID;
|
||||
return Integrations.find({
|
||||
boardId,
|
||||
});
|
||||
});
|
||||
Meteor.publish('setting', () => {
|
||||
return Settings.find(
|
||||
{},
|
||||
|
||||
@@ -281,8 +281,9 @@ echo -e "If the LDAP needs a user account to search:"
|
||||
echo -e "\t$ snap set $SNAP_NAME ldap-authentication='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Authentication User Dn."
|
||||
echo -e "The search user Dn:"
|
||||
echo -e "\t$ snap set $SNAP_NAME ldap-authentication-userdn='cn=admin,dc=example,dc=org'"
|
||||
echo -e "The search user Dn, 2 examples:"
|
||||
echo -e "\t$ snap set $SNAP_NAME ldap-authentication-userdn='CN=ldap admin,CN=users,DC=domainmatter,DC=lan'"
|
||||
echo -e "\t$ snap set $SNAP_NAME ldap-authentication-userdn='CN=wekan_adm,OU=serviceaccounts,OU=admin,OU=prod,DC=mydomain,DC=com'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Authentication Password."
|
||||
echo -e "The password for the search user:"
|
||||
|
||||
+8
-18
@@ -1,7 +1,7 @@
|
||||
name: wekan
|
||||
version: 0
|
||||
adopt-info: wekan
|
||||
summary: The Open-Source kanban
|
||||
version-script: git describe --tags | cut -c 2-
|
||||
summary: The open-source kanban
|
||||
description: |
|
||||
Wekan is an open-source and collaborative kanban board application.
|
||||
|
||||
@@ -213,24 +213,14 @@ parts:
|
||||
cd ../../../..
|
||||
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
|
||||
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
|
||||
# Delete phantomjs
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/lucasantoniassi_accounts-lockout/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
|
||||
# Delete all .swp files at subdirectories
|
||||
find $SNAPCRAFT_PART_INSTALL -name \*.swp -type f -delete
|
||||
# OLD: Delete each .swp file separately
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan/.build/bundle/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan/.build/bundle/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan/node_modules/tar/lib/.mkdir.js.swp
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
# Meteor 1.8.x additional .swp remove
|
||||
#rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
# Wekan version
|
||||
snapcraftctl set-version "$(git describe --dirty --tags | cut -c 2-)"
|
||||
snapcraftctl build
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
||||
|
||||
organize:
|
||||
README: README.wekan
|
||||
prime:
|
||||
|
||||
Loaded 100 of 102 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user