This commit is contained in:
guillaume 2019-08-30 17:18:29 +02:00
commit 6183402754
24 changed files with 626 additions and 286 deletions

160
.devcontainer/Dockerfile Normal file
View file

@ -0,0 +1,160 @@
FROM ubuntu:disco
LABEL maintainer="sgr"
ENV BUILD_DEPS="gnupg gosu bsdtar wget curl bzip2 g++ build-essential python git ca-certificates iproute2"
ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=8.16.0 \
METEOR_RELEASE=1.8.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
NPM_VERSION=latest \
FIBERS_VERSION=4.0.1 \
ARCHITECTURE=linux-x64 \
SRC_PATH=./ \
WITH_API=true \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
RICHER_CARD_COMMENT_EDITOR=true \
MAX_IMAGE_PIXEL="" \
IMAGE_COMPRESS_RATIO="" \
BIGEVENTS_PATTERN="" \
NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \
NOTIFY_DUE_AT_HOUR_OF_DAY="" \
EMAIL_NOTIFICATION_TIMEOUT=30000 \
MATOMO_ADDRESS="" \
MATOMO_SITE_ID="" \
MATOMO_DO_NOT_TRACK=true \
MATOMO_WITH_USERNAME=false \
BROWSER_POLICY_ENABLED=true \
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
OAUTH2_SECRET="" \
OAUTH2_SERVER_URL="" \
OAUTH2_AUTH_ENDPOINT="" \
OAUTH2_USERINFO_ENDPOINT="" \
OAUTH2_TOKEN_ENDPOINT="" \
OAUTH2_ID_MAP="" \
OAUTH2_USERNAME_MAP="" \
OAUTH2_FULLNAME_MAP="" \
OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" \
OAUTH2_REQUEST_PERMISSIONS='openid profile email' \
OAUTH2_EMAIL_MAP="" \
LDAP_ENABLE=false \
LDAP_PORT=389 \
LDAP_HOST="" \
LDAP_BASEDN="" \
LDAP_LOGIN_FALLBACK=false \
LDAP_RECONNECT=true \
LDAP_TIMEOUT=10000 \
LDAP_IDLE_TIMEOUT=10000 \
LDAP_CONNECT_TIMEOUT=10000 \
LDAP_AUTHENTIFICATION=false \
LDAP_AUTHENTIFICATION_USERDN="" \
LDAP_AUTHENTIFICATION_PASSWORD="" \
LDAP_LOG_ENABLED=false \
LDAP_BACKGROUND_SYNC=false \
LDAP_BACKGROUND_SYNC_INTERVAL="" \
LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false \
LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false \
LDAP_ENCRYPTION=false \
LDAP_CA_CERT="" \
LDAP_REJECT_UNAUTHORIZED=false \
LDAP_USER_AUTHENTICATION=false \
LDAP_USER_AUTHENTICATION_FIELD=uid \
LDAP_USER_SEARCH_FILTER="" \
LDAP_USER_SEARCH_SCOPE="" \
LDAP_USER_SEARCH_FIELD="" \
LDAP_SEARCH_PAGE_SIZE=0 \
LDAP_SEARCH_SIZE_LIMIT=0 \
LDAP_GROUP_FILTER_ENABLE=false \
LDAP_GROUP_FILTER_OBJECTCLASS="" \
LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE="" \
LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT="" \
LDAP_GROUP_FILTER_GROUP_NAME="" \
LDAP_UNIQUE_IDENTIFIER_FIELD="" \
LDAP_UTF8_NAMES_SLUGIFY=true \
LDAP_USERNAME_FIELD="" \
LDAP_FULLNAME_FIELD="" \
LDAP_MERGE_EXISTING_USERS=false \
LDAP_EMAIL_FIELD="" \
LDAP_EMAIL_MATCH_ENABLE=false \
LDAP_EMAIL_MATCH_REQUIRE=false \
LDAP_EMAIL_MATCH_VERIFIED=false \
LDAP_SYNC_USER_DATA=false \
LDAP_SYNC_USER_DATA_FIELDMAP="" \
LDAP_SYNC_GROUP_ROLES="" \
LDAP_DEFAULT_DOMAIN="" \
LDAP_SYNC_ADMIN_STATUS="" \
LDAP_SYNC_ADMIN_GROUPS="" \
HEADER_LOGIN_ID="" \
HEADER_LOGIN_FIRSTNAME="" \
HEADER_LOGIN_LASTNAME="" \
HEADER_LOGIN_EMAIL="" \
LOGOUT_WITH_TIMER=false \
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
CORS="" \
CORS_ALLOW_HEADERS="" \
CORS_EXPOSE_HEADERS="" \
DEFAULT_AUTHENTICATION_METHOD=""
# Install OS
RUN set -o xtrace \
&& useradd --user-group -m --system --home-dir /home/wekan wekan \
&& apt-get update \
&& apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \
&& apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
# Install NodeJS
RUN set -o xtrace \
&& cd /tmp \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& grep " node-v$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt.asc \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
&& mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config \
&& npm install -g npm@${NPM_VERSION} \
&& chown wekan:wekan --recursive /home/wekan/.config
ENV DEBIAN_FRONTEND=dialog
USER wekan
# Install Meteor
RUN set -o xtrace \
&& cd /home/wekan \
&& curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \
# Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39
&& sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \
&& sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \
&& printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \
&& sh /home/wekan/install-meteor.sh
ENV PATH=$PATH:$HOME/.meteor/
# Copy source dir
USER root
RUN set -o xtrace \
&& mkdir /home/wekan/app
COPY ${SRC_PATH} /home/wekan/app/
RUN set -o xtrace \
&& chown -R wekan:wekan /home/wekan/app /home/wekan/.meteor
USER wekan

12
.devcontainer/build.sh Normal file
View file

@ -0,0 +1,12 @@
#!/bin/bash
cd /home/wekan/app
rm -rf node_modules
/home/wekan/.meteor/meteor npm install
rm -rf .build
/home/wekan/.meteor/meteor build .build --directory
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
cd .build/bundle/programs/server
rm -rf node_modules
/home/wekan/.meteor/meteor npm install
cd /home/wekan/app

View file

@ -0,0 +1,17 @@
// See https://aka.ms/vscode-remote/devcontainer.json for format details.
{
"dockerComposeFile": "docker-compose.yml",
"service": "wekan-dev",
"workspaceFolder": "/home/wekan/app",
"extensions": [
"mutantdino.resourcemonitor",
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"codezombiech.gitignore",
"eamodio.gitlens",
"gruntfuggly.todo-tree",
"dotjoshjohnson.xml",
"redhat.vscode-yaml",
"vuhrmeister.vscode-meteor"
]
}

View file

@ -0,0 +1,53 @@
version: '3.7'
services:
wekandb-dev:
image: mongo:4.0.11
container_name: wekan-dev-db
restart: unless-stopped
command: mongod --smallfiles --oplogSize 128
networks:
- wekan-dev-tier
expose:
- 27017
volumes:
- wekan-dev-db:/data/db
- wekan-dev-db-dump:/dump
wekan-dev:
container_name: wekan-dev-app
restart: always
networks:
- wekan-dev-tier
build:
context: ..
dockerfile: .devcontainer/Dockerfile
ports:
- 3000:3000
- 9229:9229
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
depends_on:
- wekandb-dev
volumes:
- ..:/app:delegated
command:
sleep infinity
volumes:
wekan-dev-db:
driver: local
wekan-dev-db-dump:
driver: local
networks:
wekan-dev-tier:
driver: bridge

3
.gitattributes vendored Normal file
View file

@ -0,0 +1,3 @@
* text=auto eol=lf
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf

View file

@ -1,10 +1,10 @@
dist: trusty
dist: disco
sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.17.0
TRAVIS_NODE_VERSION: 8.9.3
TRAVIS_NPM_VERSION: 5.5.1
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 8.16.1
TRAVIS_NPM_VERSION: 6.4.1
before_install:
- sudo apt-get update -y

28
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,28 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Meteor: Chrome",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
},
{
"type": "node",
"request": "launch",
"name": "Meteor: Node",
"runtimeExecutable": "/home/wekan/.meteor/meteor",
"runtimeArgs": ["run", "--inspect-brk=9229"],
"outputCapture": "std",
"port": 9229,
"timeout": 60000
}
],
"compounds": [
{
"name": "Meteor: All",
"configurations": ["Meteor: Node", "Meteor: Chrome"]
}
]
}

View file

@ -1,7 +1,97 @@
# Upcoming Wekan release
# 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:
- [Snap: Delete all .swp files](https://github.com/wekan/wekan/commit/d5403bbfc53390aeaaf68eb452bc24d88f1e0942).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.33 2019-08-29 Wekan release
This release adds the following new features:
- [Add card color to calendar event. The color of the calendar event will match the card
color](https://github.com/wekan/wekan/pull/2664).
Thanks to grmpfhmbl.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.32 2019-08-29 Wekan release
This release fixes the following bugs:
- [Fix Snap adopt-info](https://github.com/wekan/wekan/commit/79d4cd83b1fa83bb814230683b7449ed7f3e1ede).
Thanks to [popey at Snapcraft forum](https://forum.snapcraft.io/t/dirty-snap-release/12975/12).
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.31 2019-08-29 Wekan release
This release fixes the following bugs:
- [Try](https://github.com/wekan/wekan/commit/be5f435bc5f500b24bc838ac1dc8bf3bb9a33a22) to
[fix adopt-info](https://forum.snapcraft.io/t/dirty-snap-release/12975/8).
Thanks to ogra at Snapcraft forum.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.30 2019-08-29 Wekan release
This release fixes the following bugs:
- Snap: [Change version-script to adopt-info](https://github.com/wekan/wekan/commit/0ff5ce8fde6cc9a05a3c8b93e18ebce7282d3a67)
to [fix dirty](https://forum.snapcraft.io/t/dirty-snap-release/12975/4).
Thanks to popey and daniel at Snapcraft forum.
- [Delete another phantomjs binary from Snap](https://github.com/wekan/wekan/commit/5084102e6e17fa2cb3bc8c1180745e15379fab5f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.29 2019-08-29 Wekan release
This release fixes the following bugs:
- [Fix Snap](https://github.com/wekan/wekan/commit/7761a22bb4e88ad9a5a39ed84e1ff244015c3a58).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.28 2019-08-29 Wekan release
This release fixes the following bugs:
- Fix broken Sandstorm release by reverting upgrading MongoDB.
Thanks to xet7
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.27 2019-08-29 Wekan release
This release adds the following upgrades:
- [Upgrade Node, Mongo, fibers and qs](https://github.com/wekan/wekan/commit/e21c47d3cfe0f228ce5ab394142c6ec6ee090d65).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.26 2019-08-28 Wekan release
This release adds the following new features:
- [Add devcontainer](https://github.com/wekan/wekan/pull/2659) and some [related fixes](https://github.com/wekan/wekan/pull/2660).
Thanks to road42.
and fixes the following bugs:
- [Add missing modules](https://github.com/wekan/wekan/pull/2653).
Thanks to GhassenRjab.
- [Add package-lock.json](https://github.com/wekan/wekan/commit/ad01526124216abcc8b3c8230599c4eda331a86d).

View file

@ -6,7 +6,7 @@ LABEL maintainer="wekan"
# ENV BUILD_DEPS="paxctl"
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates" \
DEBUG=false \
NODE_VERSION=v8.16.0 \
NODE_VERSION=v8.16.1 \
METEOR_RELEASE=1.8.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@ -178,7 +178,7 @@ RUN \
mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
ln -s /opt/nodejs/bin/node /usr/bin/node && \
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.0 /home/wekan/.config && \
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.1 /home/wekan/.config && \
chown wekan --recursive /home/wekan/.config && \
\
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303

View file

@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v3.25.0"
appVersion: "v3.35.0"
files:
userUploads:
- README.md

View file

@ -326,6 +326,7 @@ BlazeComponent.extendComponent({
slug: currentBoard.slug,
cardId: card._id,
}),
className: card.color ? `calendar-event-${card.color}` : null,
});
});
callback(events);

View file

@ -53,3 +53,81 @@ position()
padding: 0 0px 0px 0
overflow-x: hidden
overflow-y: auto
calendar-event-color(background, borderColor, color...)
background: background !important
border-color: borderColor
if color
color: color !important //overwrite text for better visibility
.calendar-event-green
calendar-event-color(#3cb500, #2a8000, #ffffff) //White text for better visibility
.calendar-event-yellow
calendar-event-color(#fad900, #c7ac00, #000) //Black text for better visibility
.calendar-event-orange
calendar-event-color(#ff9f19, #cc7c14, #000) //Black text for better visibility
.calendar-event-red
calendar-event-color(#eb4646, #b83737, #ffffff) //White text for better visibility
.calendar-event-purple
calendar-event-color(#a632db, #7d26a6, #ffffff) //White text for better visibility
.calendar-event-blue
calendar-event-color(#0079bf, #005a8a, #ffffff) //White text for better visibility
.calendar-event-pink
calendar-event-color(#ff78cb, #cc62a3, #000) //Black text for better visibility
.calendar-event-sky
calendar-event-color(#00c2e0, #0094ab, #ffffff) //White text for better visibility
.calendar-event-black
calendar-event-color(#4d4d4d, #1a1a1a, #ffffff) //White text for better visibility
.calendar-event-lime
calendar-event-color(#51e898, #3eb375, #000) //Black text for better visibility
.calendar-event-silver
calendar-event-color(#c0c0c0, #8c8c8c, #000) //Black text for better visibility
.calendar-event-peachpuff
calendar-event-color(#ffdab9, #ccaf95, #000) //Black text for better visibility
.calendar-event-crimson
calendar-event-color(#dc143c, #a8112f, #ffffff) //White text for better visibility
.calendar-event-plum
calendar-event-color(#dda0dd, #a87ba8, #000) //Black text for better visibility
.calendar-event-darkgreen
calendar-event-color(#006400, #003000, #ffffff) //White text for better visibility
.calendar-event-slateblue
calendar-event-color(#6a5acd, #4f4399, #ffffff) //White text for better visibility
.calendar-event-magenta
calendar-event-color(#ff00ff, #cc00cc, #ffffff) //White text for better visibility
.calendar-event-gold
calendar-event-color(#ffd700, #ccaa00, #000) //Black text for better visibility
.calendar-event-navy
calendar-event-color(#000080, #000033, #ffffff) //White text for better visibility
.calendar-event-gray
calendar-event-color(#808080, #333333, #ffffff) //White text for better visibility
.calendar-event-saddlebrown
calendar-event-color(#8b4513, #572b0c, #ffffff) //White text for better visibility
.calendar-event-paleturquoise
calendar-event-color(#afeeee, #8ababa, #000) //Black text for better visibility
.calendar-event-mistyrose
calendar-event-color(#ffe4e1, #ccb8b6, #000) //Black text for better visibility
.calendar-event-indigo
calendar-event-color(#4b0082, #2b004d, #ffffff) //White text for better visibility

View file

@ -93,7 +93,7 @@ services:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) For Wekan Meteor 1.8.x version at master branch, use mongo 4.x
image: mongo:4.0.11
image: mongo:4.0.12
# b) For Wekan Meteor 1.6.x version at devel branch.
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
#image: mongo:3.2.21

View file

@ -306,8 +306,8 @@
"filter-no-label": "Nessuna etichetta",
"filter-no-member": "Nessun membro",
"filter-no-custom-fields": "Nessun campo personalizzato",
"filter-show-archive": "Show archived lists",
"filter-hide-empty": "Hide empty lists",
"filter-show-archive": "Mostra le liste archiviate",
"filter-hide-empty": "Nascondi liste vuote",
"filter-on": "Il filtro è attivo",
"filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,",
"filter-to-selection": "Seleziona",
@ -516,10 +516,10 @@
"new-outgoing-webhook": "Nuovo webhook in uscita",
"no-name": "(Sconosciuto)",
"Node_version": "Versione di Node",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"Meteor_version": "Versione Meteor",
"MongoDB_version": "Versione MondoDB",
"MongoDB_storage_engine": "Versione motore dati MongoDB",
"MongoDB_Oplog_enabled": "MongoDB Oplog abilitato",
"OS_Arch": "Architettura del sistema operativo",
"OS_Cpus": "Conteggio della CPU del sistema operativo",
"OS_Freemem": "Memoria libera del sistema operativo",
@ -681,13 +681,13 @@
"r-board-note": "Nota: Lascia un campo vuoto per abbinare ogni possibile valore",
"r-checklist-note": "Nota: Gli elementi della checklist devono essere scritti come valori separati dalla virgola",
"r-when-a-card-is-moved": "Quando una scheda viene spostata su un'altra lista",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-set": "Imposta",
"r-update": "Aggiorna",
"r-datefield": "campo data",
"r-df-start-at": "inizio",
"r-df-due-at": "scadenza",
"r-df-end-at": "fine",
"r-df-received-at": "ricevuta",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
@ -728,7 +728,7 @@
"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__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
"delete-user-confirm-popup": "Sei sicuro di voler cancellare questo profilo? Non sarà possibile ripristinarlo.",
"accounts-allowUserDelete": "Permetti agli utenti di cancellare il loro profilo",
"hide-minicard-label-text": "Hide minicard label text"
}

View file

@ -1,36 +1,36 @@
{
"accept": "Accepteren",
"act-activity-notify": "Activity Notification",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createBoard": "created board __board__",
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-createCustomField": "created custom field __customField__ at board __board__",
"act-deleteCustomField": "deleted custom field __customField__ at board __board__",
"act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-activity-notify": "Activiteiten Notificatie",
"act-addAttachment": "bijlage __attachment__ toegevoegd op 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__",
"act-addedLabel": "Label __label__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-removeLabel": "Label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-removedLabel": "Label __label__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-addChecklist": "checklist __checklist__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-addChecklistItem": "checklist item __checklistItem__ toegevoegd aan checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-removeChecklist": "checklist __checklist__ verwijderd van kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-removeChecklistItem": "checklist item __checklistItem__ verwijderd van checklist __checkList__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-checkedItem": "__checklistItem__ aangevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-uncheckedItem": "__checklistItem__ uitgevinkt van checklist __checklist__ op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-completeChecklist": "checklist __checklist__ afgewerkt op kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-uncompleteChecklist": "checklist __checklist__ onafgewerkt op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"act-addComment": "aantekening toegevoegd aan kaart __card__: __comment__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-editComment": "aantekening gewijzigd op kaart __card__: __comment__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
"act-deleteComment": "aantekening verwijderd van kaart __card__: __comment__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
"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-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-archivedBoard": "Board __board__ moved to Archive",
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
"act-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__",
@ -46,10 +46,10 @@
"activities": "Activiteiten",
"activity": "Activiteit",
"activity-added": "%s toegevoegd aan %s",
"activity-archived": "%s moved to Archive",
"activity-archived": "%s verplaatst naar Archief",
"activity-attached": "%s bijgevoegd aan %s",
"activity-created": "%s aangemaakt",
"activity-customfield-created": "created custom field %s",
"activity-created": "%s gecreëerd",
"activity-customfield-created": "maatwerkveld gecreëerd %s",
"activity-excluded": "%s uitgesloten van %s",
"activity-imported": "%s geimporteerd in %s van %s",
"activity-imported-board": "%s geimporteerd van %s",
@ -64,17 +64,17 @@
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-checklist-added": "checklist toegevoegd aan %s",
"activity-checklist-removed": "removed a checklist from %s",
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"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",
"add": "Toevoegen",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"activity-checklist-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-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"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",
@ -98,22 +98,22 @@
"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.",
"archive": "Move to Archive",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
"archive-list": "Move List to Archive",
"archive-swimlane": "Move Swimlane to Archive",
"archive-selection": "Move selection to Archive",
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "Archiveren",
"archived-boards": "Boards in Archive",
"archive": "Verplaats naar Archief",
"archive-all": "Verplaats Alles naar Archief",
"archive-board": "Verplaats Bord naar Archief",
"archive-card": "Verplaats Kaart naar Archief",
"archive-list": "Verplaats Lijst naar Archief",
"archive-swimlane": "Verplaats Swimlane naar Archief",
"archive-selection": "Verplaats selectie naar Archief",
"archiveBoardPopup-title": "Bord naar Archief verplaatsen?",
"archived-items": "Archiefveren",
"archived-boards": "Borden in Archief",
"restore-board": "Herstel Bord",
"no-archived-boards": "No Boards in Archive.",
"no-archived-boards": "Geen Borden in Archief.",
"archives": "Archiveren",
"template": "Template",
"templates": "Templates",
"assign-member": "Wijs lid aan",
"assign-member": "Lid toevoegen",
"attached": "bijgevoegd",
"attachment": "Bijlage",
"attachment-delete-pop": "Een bijlage verwijderen is permanent. Er is geen herstelmogelijkheid.",
@ -122,7 +122,7 @@
"auto-watch": "Automatisch borden bekijken wanneer deze aangemaakt worden",
"avatar-too-big": "De bestandsgrootte van je avatar is te groot (70KB max)",
"back": "Terug",
"board-change-color": "Verander kleur",
"board-change-color": "Wijzig kleur",
"board-nb-stars": "%s sterren",
"board-not-found": "Bord is niet gevonden",
"board-private-info": "Dit bord is nu <strong>privé</strong>.",
@ -134,22 +134,22 @@
"boardMenuPopup-title": "Board Settings",
"boards": "Borden",
"board-view": "Bord overzicht",
"board-view-cal": "Calendar",
"board-view-cal": "Kalender",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Lijsten",
"bucket-example": "Zoals \"Bucket List\" bijvoorbeeld",
"cancel": "Annuleren",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-comments-title": "Deze kaart heeft %s reactie.",
"card-archived": "Deze kaart is verplaatst naar Archief.",
"board-archived": "Dit bord is verplaatst naar Archief.",
"card-comments-title": "Deze kaart heeft %s aantekening(en).",
"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. Deze actie kan je niet ongedaan maken.",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"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-edit-attachments": "Wijzig bijlagen",
"card-edit-custom-fields": "Edit custom fields",
"card-edit-custom-fields": "Wijzig maatwerkvelden",
"card-edit-labels": "Wijzig labels",
"card-edit-members": "Wijzig leden",
"card-labels-title": "Wijzig de labels vam de kaart.",
@ -158,7 +158,7 @@
"card-start-on": "Begint op",
"cardAttachmentsPopup-title": "Voeg bestand toe vanuit",
"cardCustomField-datePopup-title": "Change date",
"cardCustomFieldsPopup-title": "Edit custom fields",
"cardCustomFieldsPopup-title": "Wijzig maatwerkvelden",
"cardDeletePopup-title": "Kaart verwijderen?",
"cardDetailsActionsPopup-title": "Kaart actie ondernemen",
"cardLabelsPopup-title": "Labels",
@ -181,14 +181,14 @@
"changePasswordPopup-title": "Wijzig wachtwoord",
"changePermissionsPopup-title": "Wijzig permissies",
"changeSettingsPopup-title": "Wijzig instellingen",
"subtasks": "Subtasks",
"subtasks": "Subtaken",
"checklists": "Checklists",
"click-to-star": "Klik om het bord als favoriet in te stellen",
"click-to-unstar": "Klik om het bord uit favorieten weg te halen",
"clipboard": "Vanuit clipboard of sleep het bestand hierheen",
"close": "Sluiten",
"close-board": "Sluit bord",
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"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",
@ -215,12 +215,12 @@
"color-white": "white",
"color-yellow": "Geel",
"unset-color": "Unset",
"comment": "Reageer",
"comment-placeholder": "Schrijf reactie",
"comment-only": "Alleen reageren",
"comment-only-desc": "Kan alleen op kaarten reageren.",
"no-comments": "No comments",
"no-comments-desc": "Can not see comments and activities.",
"comment": "Aantekening",
"comment-placeholder": "Schrijf aantekening",
"comment-only": "Alleen aantekeningen maken",
"comment-only-desc": "Kan alleen op kaarten aantekenen.",
"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?",
@ -238,7 +238,7 @@
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"current": "Huidige",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"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",
@ -248,12 +248,12 @@
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-number": "Number",
"custom-field-text": "Text",
"custom-fields": "Custom Fields",
"custom-fields": "Maatwerkvelden",
"date": "Datum",
"decline": "Weigeren",
"default-avatar": "Standaard avatar",
"delete": "Verwijderen",
"deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteCustomFieldPopup-title": "Maatwerkveld verwijderen?",
"deleteLabelPopup-title": "Verwijder label?",
"description": "Beschrijving",
"disambiguateMultiLabelPopup-title": "Disambigueer Label Actie",
@ -286,7 +286,7 @@
"email-resetPassword-text": "Hallo __user__,\n\nKlik op de link hier beneden om je wachtwoord te resetten.\n\n__url__\n\nBedankt.",
"email-sent": "E-mail is verzonden",
"email-verifyEmail-subject": "Verifieer je e-mailadres op __siteName__",
"email-verifyEmail-text": "Hallo __user__,\n\nOm je e-mail te verifiëren vragen we je om op de link hieronder te drukken.\n\n__url__\n\nBedankt.",
"email-verifyEmail-text": "Hallo __user__,\n\nOm je e-mail te verifiëren vragen we je om op de link hieronder te klikken.\n\n__url__\n\nBedankt.",
"enable-wip-limit": "Activeer WIP limiet",
"error-board-doesNotExist": "Dit bord bestaat niet.",
"error-board-notAdmin": "Je moet een administrator zijn van dit bord om dat te doen.",
@ -305,8 +305,8 @@
"filter-clear": "Reset filter",
"filter-no-label": "Geen label",
"filter-no-member": "Geen lid",
"filter-no-custom-fields": "No Custom Fields",
"filter-show-archive": "Show archived lists",
"filter-no-custom-fields": "Geen maatwerkvelden",
"filter-show-archive": "Toon gearchiveerde lijsten",
"filter-hide-empty": "Hide empty lists",
"filter-on": "Filter staat aan",
"filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.",
@ -347,7 +347,7 @@
"keyboard-shortcuts": "Toetsenbord snelkoppelingen",
"label-create": "Label aanmaken",
"label-default": "%s label (standaard)",
"label-delete-pop": "Je kan het niet ongedaan maken. Deze actie zal de label van alle kaarten verwijderen, en de feed.",
"label-delete-pop": "Er is geen herstelmogelijkheid. Deze actie zal de label van alle kaarten verwijderen, en de feed.",
"labels": "Labels",
"language": "Taal",
"last-admin-desc": "Je kan de permissies niet veranderen omdat er maar een administrator is.",
@ -355,19 +355,19 @@
"leave-board-pop": "Weet u zeker dat u __boardTitle__ wilt verlaten? U wordt verwijderd van alle kaarten binnen dit bord",
"leaveBoardPopup-title": "Bord verlaten?",
"link-card": "Link naar deze kaart",
"list-archive-cards": "Move all cards in this list to Archive",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-archive-cards": "Verplaats alle kaarten in deze lijst naar Archief",
"list-archive-cards-pop": "Dit zal alle kaarten uit deze lijst op dit bord verwijderen. Om de kaarten in het Archief te tonen en terug te halen, klik \"Menu\" > \"Archief\".",
"list-move-cards": "Verplaats alle kaarten in deze lijst",
"list-select-cards": "Selecteer alle kaarten in deze lijst",
"set-color-list": "Set Color",
"set-color-list": "Wijzig kleur in",
"listActionPopup-title": "Lijst acties",
"swimlaneActionPopup-title": "Swimlane handelingen",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Importeer een Trello kaart",
"listMorePopup-title": "Meer",
"link-list": "Link naar deze lijst",
"list-delete-pop": "Alle acties zullen verwijderd worden van de activiteiten feed, en je zult deze niet meer kunnen herstellen. Je kan deze actie niet ongedaan maken.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"list-delete-pop": "Alle acties zullen verwijderd worden van de activiteiten feed, en je zult deze niet meer kunnen herstellen. Er is geen herstelmogelijkheid.",
"list-delete-suggest-archive": "Je kunt een lijst naar Archief verplaatsen om die van het bord te verwijderen waarbij de activiteiten behouden blijven.",
"lists": "Lijsten",
"swimlanes": "Swimlanes",
"log-out": "Uitloggen",
@ -387,9 +387,9 @@
"muted-info": "Je zal nooit meer geïnformeerd worden bij veranderingen in dit bord.",
"my-boards": "Mijn Borden",
"name": "Naam",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-archived-cards": "Geen kaarten in Archief.",
"no-archived-lists": "Geen lijsten in Archief..",
"no-archived-swimlanes": "Geen swimlanes in Archief.",
"no-results": "Geen resultaten",
"normal": "Normaal",
"normal-desc": "Kan de kaarten zien en wijzigen. Kan de instellingen niet wijzigen.",
@ -425,13 +425,13 @@
"restore": "Herstel",
"save": "Opslaan",
"search": "Zoek",
"rules": "Rules",
"rules": "Regels",
"search-cards": "Zoeken in kaart titels en omschrijvingen op dit bord",
"search-example": "Tekst om naar te zoeken?",
"select-color": "Selecteer kleur",
"set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst",
"setWipLimitPopup-title": "Zet een WIP limiet",
"shortcut-assign-self": "Wijs jezelf toe aan huidige kaart",
"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",
@ -461,7 +461,7 @@
"tracking": "Volgen",
"tracking-info": "Je wordt op de hoogte gesteld als er veranderingen zijn aan de kaarten waar je lid of maker van bent.",
"type": "Type",
"unassign-member": "Lid ontkennen",
"unassign-member": "Lid verwijderen",
"unsaved-description": "Je hebt een niet opgeslagen beschrijving.",
"unwatch": "Niet bekijken",
"upload": "Upload",
@ -469,7 +469,7 @@
"uploaded-avatar": "Avatar is geüpload",
"username": "Gebruikersnaam",
"view-it": "Bekijk het",
"warn-list-archived": "warning: this card is in an list at Archive",
"warn-list-archived": "Let op: deze kaart zit in gearchiveerde lijst",
"watch": "Bekijk",
"watching": "Bekijken",
"watching-info": "Je zal op de hoogte worden gesteld als er een verandering gebeurt op dit bord.",
@ -502,7 +502,7 @@
"smtp-password": "Wachtwoord",
"smtp-tls": "TLS ondersteuning",
"send-from": "Van",
"send-smtp-test": "Verzend een email naar uzelf",
"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.",
@ -544,30 +544,30 @@
"createdAt": "Gemaakt op",
"verified": "Geverifieerd",
"active": "Actief",
"card-received": "Received",
"card-received-on": "Received on",
"card-end": "End",
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
"setCardColorPopup-title": "Set color",
"setCardActionsColorPopup-title": "Choose a color",
"setSwimlaneColorPopup-title": "Choose a color",
"setListColorPopup-title": "Choose a color",
"assigned-by": "Assigned By",
"requested-by": "Requested By",
"card-received": "Ontvangen",
"card-received-on": "Ontvangen op",
"card-end": "Einde",
"card-end-on": "Eindigt op",
"editCardReceivedDatePopup-title": "Pas ontvangstdatum aan",
"editCardEndDatePopup-title": "Wijzig einddatum",
"setCardColorPopup-title": "Stel kleur in",
"setCardActionsColorPopup-title": "Kies een kleur",
"setSwimlaneColorPopup-title": "Kies een kleur",
"setListColorPopup-title": "Kies een kleur",
"assigned-by": "Toegewezen Door",
"requested-by": "Aangevraagd Door",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
"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",
"default-subtasks-board": "Subtasks for __board__ board",
"default-subtasks-board": "Subtaken voor __board__ bord",
"default": "Default",
"queue": "Queue",
"subtask-settings": "Subtasks Settings",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
"show-subtasks-field": "Cards can have subtasks",
"deposit-subtasks-board": "Deposit subtasks to this board:",
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
"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",
@ -579,21 +579,21 @@
"no-parent": "Don't show parent",
"activity-added-label": "added label '%s' to %s",
"activity-removed-label": "removed label '%s' from %s",
"activity-delete-attach": "deleted an attachment from %s",
"activity-delete-attach": "een bijlage verwijderd van %s",
"activity-added-label-card": "added label '%s'",
"activity-removed-label-card": "removed label '%s'",
"activity-delete-attach-card": "deleted an attachment",
"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",
"r-board-rules": "Board rules",
"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-no-rules": "No rules",
"r-no-rules": "Geen regels",
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
@ -604,8 +604,8 @@
"set-filter": "Set Filter",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-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",
@ -613,7 +613,7 @@
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-when-a-attach": "When an attachment",
"r-when-a-attach": "Als een bijlage",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
@ -626,15 +626,15 @@
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-unarchive": "Restore from Archive",
"r-archive": "Verplaats naar Archief",
"r-unarchive": "Terughalen uit Archief",
"r-card": "card",
"r-add": "Toevoegen",
"r-remove": "Remove",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Remove all members from the card",
"r-set-color": "Set color to",
"r-set-color": "Wijzig kleur naar",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-uncheck-all": "Uncheck all",
@ -643,7 +643,7 @@
"r-uncheck": "Uncheck",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-send-email": "Verzend een email",
"r-to": "to",
"r-subject": "subject",
"r-rule-details": "Rule details",
@ -651,12 +651,12 @@
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-send-email": "Verzend email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-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",
@ -686,8 +686,8 @@
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-df-end-at": "einde",
"r-df-received-at": "ontvangen",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
@ -698,8 +698,8 @@
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
"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",
@ -707,19 +707,19 @@
"duplicate-board": "Duplicate Board",
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"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__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-endAt": "einddatum gewijzigd naar __timeValue__ van (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
"act-a-receivedAt": "ontvangstdatum gewijzigd naar __timeValue__ van (__timeOldValue__)",
"a-dueAt": "modified due time to be",
"a-endAt": "modified ending time to be",
"a-endAt": "einddatum gewijzigd naar",
"a-startAt": "modified starting time to be",
"a-receivedAt": "modified received time to be",
"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",
@ -728,7 +728,7 @@
"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__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
"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"
}

8
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.25.0",
"version": "v3.35.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -4087,9 +4087,9 @@
"dev": true
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz",
"integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w=="
},
"rc": {
"version": "1.2.8",

View file

@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.25.0",
"version": "v3.35.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
@ -66,7 +66,7 @@
"mongodb": "^2.2.19",
"os": "^0.1.1",
"page": "^1.8.6",
"qs": "^6.5.2",
"qs": "^6.8.0",
"source-map-support": "^0.5.12",
"xss": "^1.0.6"
}

View file

@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.24">Wekan REST API v3.24</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.34">Wekan REST API v3.34</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.24</h1>
<h1 id="wekan-rest-api">Wekan REST API v3.34</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>

View file

@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v3.24
version: v3.34
description: |
The REST API allows you to control and extend Wekan with ease.

View file

@ -13,15 +13,15 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
curl -O https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi
call node-v8.12.0-x64.msi
curl -O https://nodejs.org/dist/v8.16.1/node-v8.16.1-x64.msi
call node-v8.16.1-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
call npm -g install npm
call npm -g install node-gyp
call npm -g install fibers@2.0.0
call npm -g install fibers
cd C:\repos
git clone https://github.com/wekan/wekan.git
cd wekan

View file

@ -79,7 +79,7 @@ do
curl -0 -L https://npmjs.org/install.sh | sudo sh
sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
sudo n 8.16.0
sudo n 8.16.1
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then

View file

@ -1,111 +0,0 @@
#!/bin/bash
echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8"
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
echo " You can still use any other locale as your main locale."
function pause(){
read -p "$*"
}
echo
PS3='Please enter your choice: '
options=("Install Wekan dependencies" "Build Wekan" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Install Wekan dependencies")
if [[ "$OSTYPE" == "linux-gnu" ]]; then
echo "Linux";
echo "Ubuntu, Mint, Debian, or Debian on Windows Subsystem for Linux";
sudo apt-get install -y build-essential git curl wget;
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -;
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "macOS";
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
elif [[ "$OSTYPE" == "cygwin" ]]; then
# POSIX compatibility layer and Linux environment emulation for Windows
echo "TODO: Add Cygwin";
exit;
elif [[ "$OSTYPE" == "msys" ]]; then
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
echo "TODO: Add msys on Windows";
exit;
elif [[ "$OSTYPE" == "win32" ]]; then
# I'm not sure this can happen.
echo "TODO: Add Windows";
exit;
elif [[ "$OSTYPE" == "freebsd"* ]]; then
echo "TODO: Add FreeBSD";
exit;
else
echo "Unknown"
echo ${OSTYPE}
exit;
fi
## Latest npm with Meteor 1.6
sudo npm -g install npm
sudo npm -g install node-gyp
# Latest fibers for Meteor 1.6
sudo npm -g install fibers@2.0.0
# Install Meteor, if it's not yet installed
curl https://install.meteor.com | bash
mkdir ~/repos
cd ~/repos
git clone https://github.com/wekan/wekan.git
cd wekan
git checkout devel
break
;;
"Build Wekan")
echo "Building Wekan."
cd ~/repos/wekan
## REPOS BELOW ARE INCLUDED TO WEKAN
#mkdir -p ~/repos/wekan/packages
#cd ~/repos/wekan/packages
#git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
#git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
#git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
#git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git
#git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
#mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan_accounts-oidc
#mv meteor-accounts-oidc/packages/switch_oidc wekan_oidc
#rm -rf meteor-accounts-oidc
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "sed at macOS";
sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
else
echo "sed at ${OSTYPE}"
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
fi
cd ~/repos/wekan
rm -rf node_modules
meteor 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
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
#rm -rf node_modules/bcrypt
#meteor npm install bcrypt
cd ~/repos/wekan/.build/bundle/programs/server
rm -rf node_modules
meteor npm install
#meteor npm install bcrypt
cd ~/repos
echo Done.
break
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done

View file

@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 327,
appVersion = 337,
# Increment this for every release.
appMarketingVersion = (defaultText = "3.25.0~2019-08-23"),
appMarketingVersion = (defaultText = "3.35.0~2019-08-29"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,

View file

@ -1,7 +1,6 @@
name: wekan
version: 0
version-script: git describe --dirty --tags | cut -c 2-
summary: The open-source kanban
adopt-info: wekan
summary: The Open-Source kanban
description: |
Wekan is an open-source and collaborative kanban board application.
@ -81,7 +80,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 8.16.0
node-engine: 8.16.1
node-packages:
- node-gyp
- node-pre-gyp
@ -190,7 +189,7 @@ parts:
# git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
# cd ..
#fi
rm -rf package-lock.json .build
rm -rf .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser
meteor npm install --allow-superuser --save babel-runtime
@ -213,14 +212,24 @@ parts:
cd ../../../..
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
# Delete phantomjs
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
# 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
# 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
organize:
README: README.wekan
prime: