Compare commits

...
59 Commits
Author SHA1 Message Date
Lauri Ojansivu e8722b56e3 v4.57 2020-12-08 21:49:56 +02:00
Lauri Ojansivu 052948f6eb Update ChangeLog. 2020-12-08 21:41:10 +02:00
Lauri Ojansivu cd03395e05 Merge pull request #3385 from mfilser/minicard_space_after_assignees
Minicard, reduce space after assignees label
2020-12-08 21:37:16 +02:00
Lauri Ojansivu 61caf18fd4 Update ChangeLog. 2020-12-08 20:40:22 +02:00
Lauri Ojansivu 015f4d671d Upgrade to Node 12.20.0
Thanks to Node developers!
2020-12-08 20:38:31 +02:00
Lauri Ojansivu c13e828c79 Update ChangeLog. 2020-12-08 20:30:42 +02:00
Lauri Ojansivu 7a6abaac44 Update to Meteor 1.12
Thanks to Meteor developers!
2020-12-08 20:27:58 +02:00
Lauri Ojansivu 58dffd0a33 Update ChangeLog. 2020-12-08 20:17:13 +02:00
Lauri Ojansivu fe0232a4e8 Update translations. 2020-12-08 20:11:08 +02:00
Lauri Ojansivu 8dff6c2e2a Merge branch 'mfilser-drag_handle_checklistitem' 2020-12-08 19:27:32 +02:00
Martin Filser 3a6e2813a6 Minicard, reduce space after assignees label 2020-12-08 17:45:57 +01:00
Martin Filser 8005640b77 Drag handles at checklist items on mobile view #3240 2020-12-08 17:44:36 +01:00
Lauri Ojansivu bc929fb7e0 Update translations. 2020-12-08 00:08:40 +02:00
Lauri Ojansivu 019874b6af Update ChangeLog. 2020-12-08 00:06:05 +02:00
Lauri Ojansivu a7977a8fc7 Hide duplicate create board button, because it did not show board templates correctly.
Thanks to xet7 !

Fixes #2728
2020-12-08 00:02:51 +02:00
Lauri Ojansivu 62f6cc7198 Update translations. 2020-12-03 07:18:00 +02:00
Lauri Ojansivu ad331ee122 Update ChangeLog. 2020-12-03 07:16:06 +02:00
Lauri Ojansivu 387f0600ce REST API: Fix typos, remove extra code.
Thanks to xet7 !
2020-12-03 07:14:06 +02:00
Lauri Ojansivu 0801e33f97 Update ChangeLog. 2020-12-03 07:03:18 +02:00
Lauri Ojansivu f576d2f356 Merge pull request #3382 from ThoreKr/helm-secretenv
Helm: Introduce secretEnv for secret value provisioning
2020-12-03 07:00:07 +02:00
Lauri Ojansivu 051f7b2769 REST API: Added Wekan REST API Python CLI, for adding card, downloading attachments etc.
Thanks to xet7 !

Related #1482
2020-12-03 06:54:25 +02:00
Lauri Ojansivu 1f207c493d Update ChangeLog. 2020-12-03 06:36:10 +02:00
Thore 03f565bf95 Introduce secretEnv for secret value provisioning 2020-12-03 05:35:11 +01:00
Lauri Ojansivu 36e29a405e REST API: Added file download URL to listing of attachments of a board. Part 2.
Thanks to xet7 !

Related #1482
2020-12-03 06:30:27 +02:00
Lauri Ojansivu 2ec53b27d1 REST API: Added file download URL to listing of attachments of a board.
Thanks to xet7 !

Related #1482
2020-12-03 06:21:46 +02:00
Lauri Ojansivu 152a0b50f2 Update ChangeLog. 2020-12-03 01:53:10 +02:00
Lauri Ojansivu c09758fb91 Try to fix Docker. 2020-12-03 01:40:56 +02:00
Lauri Ojansivu 2b2884d996 Try to fix Docker. 2020-12-03 01:00:10 +02:00
Lauri Ojansivu 4537971300 Try to fix Docker on Quay.
Thanks to xet7 !

Related #3380
2020-12-02 20:06:34 +02:00
Lauri Ojansivu 0b43e8b42a Remove old text. 2020-11-30 20:48:19 +02:00
Lauri Ojansivu bf94161f30 REST API: List attachments of a board.
For using this, Python code example:
https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API

Thanks to xet7 !

Related #1482
2020-11-30 20:41:54 +02:00
Lauri Ojansivu 573426899a v4.56 2020-11-30 00:05:41 +02:00
Lauri Ojansivu 3816227837 Update translations. 2020-11-29 23:34:24 +02:00
Lauri Ojansivu fe5e311673 Update translations. 2020-11-29 05:18:39 +02:00
Lauri Ojansivu bec0b7ec56 Update ChangeLog. Fix lint. 2020-11-29 04:24:53 +02:00
Lauri Ojansivu 9d2a9ee70b Fix lint. 2020-11-29 04:19:28 +02:00
Lauri Ojansivu baf652a569 Merge pull request #3374 from helioguardabaxo/master
Improvements in activities design
2020-11-29 04:17:38 +02:00
helioguardabaxo 9f340bcecd Improvements in activities design 2020-11-28 21:50:01 -03:00
Lauri Ojansivu cc0a866166 Update ChangeLog. 2020-11-28 01:42:35 +02:00
Lauri Ojansivu d39b62503f Merge pull request #3373 from helioguardabaxo/master
Fixed end date return
2020-11-28 01:40:55 +02:00
helioguardabaxo e9b9af4616 Fixed end date return 2020-11-27 20:02:49 -03:00
Lauri Ojansivu 7d88ef7ab2 Update translations. 2020-11-27 22:56:51 +02:00
Lauri Ojansivu 5a49bd6f8c Update ChangeLog. 2020-11-27 22:38:57 +02:00
Lauri Ojansivu a255fc8524 Merge pull request #3372 from helioguardabaxo/master
Attempt to implement date activities notification
2020-11-27 22:37:08 +02:00
Lauri Ojansivu d1b5c42d42 Update ChangeLog. 2020-11-27 21:33:56 +02:00
Lauri Ojansivu d957768a39 Merge pull request #3369 from jiangytcn/helm
fix: update helm mongodb dependency
2020-11-27 21:17:44 +02:00
Lauri Ojansivu 999630aed5 Update ChangeLog. 2020-11-27 19:15:39 +00:00
Lauri Ojansivu cf7efccde5 Merge branch 'progressify-master' 2020-11-27 19:11:03 +00:00
Lauri Ojansivu 7b82a80fb4 Fix typo. 2020-11-27 19:08:57 +00:00
helioguardabaxo cfe500794c Attempt to implement date activities notification 2020-11-27 14:41:20 -03:00
progressify a2d298f493 sticky swimlane again :) 2020-11-26 18:25:33 +01:00
progressify 4687a866f5 sticky swimlane 2020-11-25 22:54:17 +01:00
Jiang Yi Tao ff08aff131 fix: update helm mongodb dependency
1. removed unused test pod
2. update chart dependency with bitnami repo
3. removed unused configurations in default values

Signed-off-by: Jiang Yi Tao <jiangyt.cn@gmail.com>
2020-11-25 19:53:56 +08:00
Lauri Ojansivu 5510c2a37d 1) New default: sudo snap set wekan mongo-log-destination='devnull'. Other options: syslog/snapcommon.
This should lower amount of disk usage and logs.
2) Tried to fix command: sudo snap set wekan mongo-url='...'

Thanks to xet7 !

Fixes #3059,
fixes #2364,
fixes wekan/wekan-snap#138,
fixes wekan/wekan-snap#113
2020-11-23 20:40:37 +02:00
Lauri Ojansivu 608a084b94 Update ChangeLog. 2020-11-23 17:47:14 +02:00
Lauri Ojansivu 9e47abdaa3 Merge pull request #3366 from helioguardabaxo/master
Added date notification icons
2020-11-23 17:44:26 +02:00
Lauri Ojansivu 4d7bd455c9 Update ChangeLog. 2020-11-23 17:42:23 +02:00
Lauri Ojansivu 05a72f7c62 Fix typo on MONGO_URL on Snap.
Thanks to xet7 !
2020-11-23 17:40:26 +02:00
helioguardabaxo 4e23429cb8 Added date notification icons 2020-11-23 12:10:38 -03:00
105 changed files with 38922 additions and 37945 deletions

No files matched your search

+6 -2
View File
@@ -1,12 +1,16 @@
FROM ubuntu:rolling
FROM quay.io/wekan/ubuntu:groovy-20201125.2
LABEL maintainer="sgr"
# 2020-12-03:
# - Above Ubuntu base image copied from Docker Hub ubuntu:groovy-20201125.2
# to Quay to avoid Docker Hub rate limits.
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=v12.19.1 \
NODE_VERSION=v12.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.19.1
node-engine: 12.20.0
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.19.1
node-engine: 12.20.0
node-packages:
- node-gyp
- node-pre-gyp
+5 -5
View File
@@ -6,8 +6,8 @@
meteor-base@1.4.0
# Build system
ecmascript@0.15.0-beta200.4
standard-minifier-css@1.7.0-beta200.4
ecmascript@0.14.4
standard-minifier-css@1.7.1
standard-minifier-js@2.6.0
mquandalle:jade
coffeescript@2.4.1!
@@ -23,7 +23,7 @@ dburles:collection-helpers
idmontie:migrations
matb33:collection-hooks
matteodem:easy-search
mongo@1.10.0
mongo@1.10.1
mquandalle:collection-mutations
# Account system
@@ -72,9 +72,9 @@ simple:rest-accounts-password
useraccounts:core
email@2.0.0
horka:swipebox
dynamic-import@0.6.0-beta200.4
dynamic-import@0.5.4
accounts-password@1.6.2
accounts-password@1.6.3
cfs:gridfs
rzymek:fullcalendar
momentjs:moment@2.22.2
+1 -1
View File
@@ -1 +1 @@
METEOR@2.0-beta.4
METEOR@1.12
+15 -15
View File
@@ -1,7 +1,7 @@
3stack:presence@1.1.2
accounts-base@1.7.0
accounts-base@1.7.1
accounts-oauth@1.2.0
accounts-password@1.6.2
accounts-password@1.6.3
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -10,8 +10,8 @@ aldeed:simple-schema@1.5.4
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.7.0-beta200.4
babel-compiler@7.6.0-beta200.4
autoupdate@1.6.0
babel-compiler@7.5.4
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
@@ -49,15 +49,15 @@ coffeescript-compiler@2.4.1
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.4.0-beta200.4
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.9
ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.6.0-beta200.4
dynamic-import@0.5.4
easylogic:summernote@0.8.8
ecmascript@0.15.0-beta200.4
ecmascript@0.14.4
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.11.0
ecmascript-runtime-server@0.10.0
@@ -103,14 +103,14 @@ meteorspark:util@0.2.0
minifier-css@1.5.3
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
minimongo@1.6.0
minimongo@1.6.1
mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.16.0-beta200.4
modules@0.15.0
modules-runtime@0.12.0
momentjs:moment@2.29.1
mongo@1.10.0
mongo-decimal@0.1.1
mongo@1.10.1
mongo-decimal@0.1.2
mongo-dev-server@1.1.0
mongo-id@1.0.7
mongo-livedata@1.0.12
@@ -193,7 +193,7 @@ random@1.2.0
rate-limit@1.0.9
reactive-dict@1.3.0
reactive-var@1.0.11
reload@1.3.0
reload@1.3.1
retry@1.1.0
routepolicy@1.1.0
rzymek:fullcalendar@3.8.0
@@ -212,7 +212,7 @@ softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-css@1.7.0-beta200.4
standard-minifier-css@1.7.1
standard-minifier-js@2.6.0
staringatlights:fast-render@3.3.0
staringatlights:inject-data@2.3.0
@@ -233,8 +233,8 @@ useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.10.0-beta200.4
webapp-hashing@1.1.0-beta200.4
webapp@1.9.1
webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.19.1
TRAVIS_NODE_VERSION: 12.20.0
TRAVIS_NPM_VERSION: latest
before_install:
+77
View File
@@ -1,3 +1,80 @@
# v4.57 2020-12-08 Wekan release
This release adds the following new features:
- [Helm: Introduce secretEnv for secret value provisioning](https://github.com/wekan/wekan/pull/3382).
Thanks to ThoreKr.
- REST API: List attachments of a board, with download URLs of attachments. In Progress.
[Part 1](https://github.com/wekan/wekan/commit/bf94161f30adf9dec6aa41af6946ba54c1573a44),
[Part 2](https://github.com/wekan/wekan/commit/2ec53b27d14049bc9622861492cac301512a1e33),
[Part 3](https://github.com/wekan/wekan/commit/36e29a405ee943d15e6e1bd9ac02ecefb7a7a06f).
For using this, Python code example:
https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API .
Thanks to xet7.
- REST API: Added Wekan REST API Python CLI, for adding card, etc. In Progress,
downloading attachments does not work yet.
[Part1](https://github.com/wekan/wekan/commit/051f7b2769c51404063e7f0ddf85fbd0f9508a88),
[Part2](https://github.com/wekan/wekan/commit/387f0600ce1389aab955cc125d331dcd5eeeafdd).
Thanks to xet7.
- [Drag handles at checklist items on mobile view](https://github.com/wekan/wekan/pull/3342).
Thanks to mfilser.
and adds the following updates:
- [Upgrade to Meteor 1.12](https://github.com/wekan/wekan/commit/7a6abaac44b1235021dc7cc25e3224515c64a068).
Thanks to Meteor developers.
- [Upgrade to Node 12.20.0](https://github.com/wekan/wekan/commit/015f4d671d136a4a344fe82e2a6bcbe0c2be6cfd).
Thanks to Node developers.
and fixes the following bugs:
- [Fixed Quay Docker builds that failed](https://github.com/wekan/wekan/issues/3380)
because of Docker Hub rate limits by copying base images from Docker Hub to Quay.
[Part1](https://github.com/wekan/wekan/commit/4537971300c6ffcc85b7dd930867eb942bd22f86),
[Part2](https://github.com/wekan/wekan/commit/2b2884d996b8fc6101eff50db058639631eb5945),
[Part3](https://github.com/wekan/wekan/commit/c09758fb913d73e9229f43d17663b3c4715a62b9).
Thanks to xet7.
- [Hide duplicate create board button, because it did not show board templates
correctly](https://github.com/wekan/wekan/commit/a7977a8fc7f171d046a228f81fb0cd481b0ccc41).
Thanks to xet7.
- [Minicard, reduce space after assignees label](https://github.com/wekan/wekan/pull/3385).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.56 2020-11-30 Wekan release
This release adds the following new features:
- [Added date notification icons](https://github.com/wekan/wekan/pull/3366).
This partially resolves [#3363](https://github.com/wekan/wekan/issues/3363).
Thanks to helioguardabaxo.
- Attempt to implement date activities notification [Part1](https://github.com/wekan/wekan/pull/3372)
and [Part2](https://github.com/wekan/wekan/pull/3373).
Thanks to helioguardabaxo.
- [Sticky swimlane](https://github.com/wekan/wekan/pull/3370).
Thanks to progressify and xet7.
- [1) New default: sudo snap set wekan mongo-log-destination='devnull'.
Other options: syslog/snapcommon.
This should lower amount of disk usage and logs.
2) Tried to fix command:
`sudo snap set wekan mongo-url='...'`](https://github.com/wekan/wekan/commit/5510c2a37dc6bcfa0ec588eceb8dc9f32cec9851).
Thanks to xet7.
and adds the following improvements:
- [Improvements in activities design](https://github.com/wekan/wekan/pull/3374).
Thanks to helioguardabaxo.
and fixes the following bugs:
- [Fix typo on MONGO_URL on Snap](https://github.com/wekan/wekan/commit/05a72f7c627e05ac4ce38cb9588f2aac45273ce8).
Thanks to xet7.
- [Fix: Update helm mongodb dependency](https://github.com/wekan/wekan/pull/3369).
Thanks to jiangytcn.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.55 2020-11-21 Wekan release
This release adds the following improvements:
+6 -2
View File
@@ -1,6 +1,10 @@
FROM ubuntu:rolling
FROM quay.io/wekan/ubuntu:groovy-20201125.2
LABEL maintainer="wekan"
# 2020-12-03:
# - Above Ubuntu base image copied from Docker Hub ubuntu:groovy-20201125.2
# to Quay to avoid Docker Hub rate limits.
# Set the environment variables (defaults where required)
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
@@ -8,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v4.55.0"
appVersion: "v4.57.0"
files:
userUploads:
- README.md
Executable
+251
View File
@@ -0,0 +1,251 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# vi:ts=4:et
# Wekan API Python CLI, originally from here, where is more details:
# https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API
try:
# python 3
from urllib.parse import urlencode
except ImportError:
# python 2
from urllib import urlencode
import json
import requests
import sys
arguments = len(sys.argv) - 1
if arguments == 0:
print("=== Wekan API Python CLI: Shows IDs for addcard ===")
print("AUTHORID is USERID that writes card.")
print("If *nix: chmod +x api.py => ./api.py users")
print("Syntax:")
print(" python3 api.py users # All users")
print(" python3 api.py boards USERID # Boards of USERID")
print(" python3 api.py board BOARDID # Info of BOARDID")
print(" python3 api.py swimlanes BOARDID # Swimlanes of BOARDID")
print(" python3 api.py lists BOARDID # Lists of BOARDID")
print(" python3 api.py createlist BOARDID LISTTITLE # Create list")
print(" python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION")
print(" python3 api.py listattachments BOARDID # List attachments")
# TODO:
# print(" python3 api.py attachmentdownload BOARDID ATTACHMENTID # One attachment as file")
# print(" python3 api.py attachmentsdownload BOARDID # All attachments as files")
exit
# ------- SETTINGS START -------------
# Username is your Wekan username or email address.
# OIDC/OAuth2 etc uses email address as username.
username = 'testtest'
password = 'testtest'
wekanurl = 'http://localhost:4000/'
# ------- SETTINGS END -------------
"""
EXAMPLE:
python3 api.py
OR:
chmod +x api.py
./api.py
=== Wekan API Python CLI: Shows IDs for addcard ===
AUTHORID is USERID that writes card.
Syntax:
python3 api.py users # All users
python3 api.py boards USERID # Boards of USERID
python3 api.py board BOARDID # Info of BOARDID
python3 api.py swimlanes BOARDID # Swimlanes of BOARDID
python3 api.py lists BOARDID # Lists of BOARDID
python3 api.py createlist BOARDID LISTTITLE # Create list
python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py listattachments BOARDID # List attachments
python3 api.py attachmentjson BOARDID ATTACHMENTID # One attachment as JSON base64
python3 api.py attachmentbinary BOARDID ATTACHMENTID # One attachment as binary file
=== USERS ===
python3 api.py users
=> abcd1234
=== BOARDS ===
python3 api.py boards abcd1234
=== SWIMLANES ===
python3 api.py swimlanes dYZ
[{"_id":"Jiv","title":"Default"}
]
=== LISTS ===
python3 api.py lists dYZ
[]
There is no lists, so create a list:
=== CREATE LIST ===
python3 api.py createlist dYZ 'Test'
{"_id":"7Kp"}
# python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py addcard ppg dYZ Jiv 7Kp 'Test card' 'Test description'
=== LIST ATTACHMENTS WITH DOWNLOAD URLs ====
python3 api.py listattachments BOARDID
"""
# ------- API URL GENERATION START -----------
loginurl = 'users/login'
wekanloginurl = wekanurl + loginurl
apiboards = 'api/boards/'
apiattachments = 'api/attachments/'
apiusers = 'api/users'
e = 'export'
s = '/'
l = 'lists'
sw = 'swimlane'
sws = 'swimlanes'
cs = 'cards'
bs = 'boards'
atl = 'attachmentslist'
at = 'attachment'
ats = 'attachments'
users = wekanurl + apiusers
# ------- API URL GENERATION END -----------
# ------- LOGIN TOKEN START -----------
data = {"username": username, "password": password}
body = requests.post(wekanloginurl, data=data)
d = body.json()
apikey = d['token']
# ------- LOGIN TOKEN END -----------
if arguments == 7:
if sys.argv[1] == 'addcard':
# ------- WRITE TO CARD START -----------
authorid = sys.argv[2]
boardid = sys.argv[3]
swimlaneid = sys.argv[4]
listid = sys.argv[5]
cardtitle = sys.argv[6]
carddescription = sys.argv[7]
cardtolist = wekanurl + apiboards + boardid + s + l + s + listid + s + cs
# Write to card
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'authorId': '{}'.format(authorid), 'title': '{}'.format(cardtitle), 'description': '{}'.format(carddescription), 'swimlaneId': '{}'.format(swimlaneid)}
body = requests.post(cardtolist, data=post_data, headers=headers)
print(body.text)
# ------- WRITE TO CARD END -----------
if arguments == 3:
if sys.argv[1] == 'createlist':
# ------- CREATE LIST START -----------
boardid = sys.argv[2]
listtitle = sys.argv[3]
list = wekanurl + apiboards + boardid + s + l
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'title': '{}'.format(listtitle)}
body = requests.post(list, data=post_data, headers=headers)
print("=== CREATE LIST ===\n")
print(body.text)
# ------- CREATE LIST END -----------
if arguments == 2:
# ------- BOARDS LIST START -----------
userid = sys.argv[2]
boards = users + s + userid + s + bs
if sys.argv[1] == 'boards':
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
#post_data = {'userId': '{}'.format(userid)}
body = requests.get(boards, headers=headers)
print("=== BOARDS ===\n")
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- BOARDS LIST END -----------
if sys.argv[1] == 'board':
# ------- BOARD INFO START -----------
boardid = sys.argv[2]
board = wekanurl + apiboards + boardid
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
body = requests.get(board, headers=headers)
print("=== BOARD ===\n")
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- BOARD INFO END -----------
if sys.argv[1] == 'swimlanes':
boardid = sys.argv[2]
swimlanes = wekanurl + apiboards + boardid + s + sws
# ------- SWIMLANES OF BOARD START -----------
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== SWIMLANES ===\n")
body = requests.get(swimlanes, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- SWIMLANES OF BOARD END -----------
if sys.argv[1] == 'lists':
# ------- LISTS OF BOARD START -----------
boardid = sys.argv[2]
attachments = wekanurl + apiboards + boardid
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== LISTS ===\n")
body = requests.get(lists, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LISTS OF BOARD END -----------
if sys.argv[1] == 'listattachments':
# ------- LISTS OF ATTACHMENTS START -----------
boardid = sys.argv[2]
listattachments = wekanurl + apiboards + boardid + s + ats
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== LIST OF ATTACHMENTS ===\n")
body = requests.get(listattachments, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LISTS OF ATTACHMENTS END -----------
if arguments == 1:
if sys.argv[1] == 'users':
# ------- LIST OF USERS START -----------
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print(users)
print("=== USERS ===\n")
body = requests.get(users, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LIST OF USERS END -----------
+29 -1
View File
@@ -25,7 +25,8 @@ template(name="activity")
.activity
+userAvatar(userId=activity.user._id)
p.activity-desc
+memberName(user=activity.user)
span.activity-member
+memberName(user=activity.user)
//- attachment activity -------------------------------------------------
if($eq activity.activityType 'deleteAttachment')
@@ -142,6 +143,33 @@ template(name="activity")
+viewer
= activity.comment.text
//- date activity ------------------------------------------------
if($eq mode 'card')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq mode 'board')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
//- customField activity ------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createCustomField')
@@ -81,6 +81,30 @@ BlazeComponent.extendComponent({
return createCardLink(this.currentData().activity.card());
},
receivedDate() {
const receivedDate = this.currentData().activity.card();
if (!receivedDate) return null;
return receivedDate.receivedAt;
},
startDate() {
const startDate = this.currentData().activity.card();
if (!startDate) return null;
return startDate.startAt;
},
dueDate() {
const dueDate = this.currentData().activity.card();
if (!dueDate) return null;
return dueDate.dueAt;
},
endDate() {
const endDate = this.currentData().activity.card();
if (!endDate) return null;
return endDate.endAt;
},
lastLabel() {
const lastLabelId = this.currentData().activity.labelId;
if (!lastLabelId) return null;
+5 -1
View File
@@ -10,12 +10,16 @@
.activity
margin: 0.5px 0
padding: 6px 0;
display: flex
.member
width: 24px
width: 32px
height: @width
.activity-member
font-weight: 700
.activity-desc
word-wrap: break-word
overflow: hidden
+1 -1
View File
@@ -257,7 +257,7 @@ BlazeComponent.extendComponent({
) {
$checklistsDom.sortable('option', 'disabled', disabled);
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
$checklistsDom.sortable({ handle: '.checklist-handle'});
$checklistsDom.sortable({ handle: '.checklist-handle' });
}
}
if ($subtasksDom.data('uiSortable') || $subtasksDom.data('sortable')) {
+2
View File
@@ -103,6 +103,8 @@ template(name='checklistItemDetail')
.check-box-container
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}")
if isMiniScreenOrShowDesktopDragHandles
span.fa.checklistitem-handle(class="fa-arrows" title="{{_ 'dragChecklistItem'}}")
+viewer
= item.title
else
+7 -1
View File
@@ -58,8 +58,14 @@ BlazeComponent.extendComponent({
$(self.itemsDom).sortable(
'option',
'disabled',
!userIsMember() || Utils.isMiniScreen(),
!userIsMember(),
);
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
$(self.itemsDom).sortable({
handle: 'span.fa.checklistitem-handle',
appendTo: 'parent',
});
}
}
});
},
+3
View File
@@ -156,6 +156,9 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
word-wrap: break-word
max-width: 420px
span.fa.checklistitem-handle
float: right
.js-delete-checklist-item
margin: 0 0 0.5em 1.33em
@extends .delete-text
-1
View File
@@ -85,7 +85,6 @@ template(name="minicard")
.minicard-assignees.js-minicard-assignees
each getAssignees
+userAvatar(userId=this)
hr
if getMembers
.minicard-members.js-minicard-members
+1 -1
View File
@@ -165,7 +165,7 @@
.minicard-members,
.minicard-assignees
float: right
margin: 2px -8px 12px 0
margin: 2px -8px 2px 0
.member
float: right
+9 -5
View File
@@ -272,10 +272,13 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
// then use your custom function
if (tag === 'a' && name === 'href') {
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
if (
/^thunderlink:/gi.test(value) ||
/^cbthunderlink:/gi.test(value) ||
/^aodroplink:/gi.test(value)
) {
return value;
}
else {
} else {
// use the default safeAttrValue function to process all non cbthunderlinks
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
@@ -283,7 +286,7 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
// use the default safeAttrValue function to process it
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
};
}
// XXX I believe we should compute a HTML rendered field on the server that
// would handle markdown and user mentions. We can simply have two
@@ -298,7 +301,8 @@ Blaze.Template.registerHelper(
const view = this;
let content = Blaze.toHTML(view.templateContentBlock);
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (!currentBoard) return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
if (!currentBoard)
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
const knowedUsers = currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
if (u) {
+7 -2
View File
@@ -50,8 +50,13 @@ template(name="header")
else
li.current {{_ 'quick-access-description'}}
a#header-new-board-icon.js-create-board
i.fa.fa-plus(title="Create a new board")
// Next line is used only for spacing at header,
// there is no visible clickable icon.
#header-new-board-icon
// Hide duplicate create board button,
// because it did not show board templates correctly.
//a#header-new-board-icon.js-create-board
// i.fa.fa-plus(title="Create a new board")
+notifications
@@ -26,6 +26,10 @@ template(name='notificationIcon')
i.fa.fa-code.activity-type(title="custom field")
else if($in activityType 'addedLabel' 'removedLabel')
i.fa.fa-tag.activity-type(title="label")
else if($in activityType 'a-startAt' 'a-receivedAt')
i.fa.fa-clock-o.activity-type(title="date")
else if($in activityType 'a-dueAt' 'a-endAt')
i.fa.fa-clock-o.activity-type(title="date")
else if($in activityType 'createList' 'removeList' 'archivedList')
+listNotificationIcon
@@ -36,6 +36,10 @@
// Minimize swimlanes end https://www.w3schools.com/howto/howto_js_accordion.asp
*/
[class=swimlane]
position: sticky
left: 0
.swimlane
// Even if this background color is the same as the body we can't leave it
// transparent, because that won't work during a swimlane drag.
+6 -2
View File
@@ -31,6 +31,10 @@ Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
Blaze.registerHelper('isShowDesktopDragHandles', () => Utils.isShowDesktopDragHandles());
Blaze.registerHelper('isShowDesktopDragHandles', () =>
Utils.isShowDesktopDragHandles(),
);
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () => Utils.isMiniScreenOrShowDesktopDragHandles());
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () =>
Utils.isMiniScreenOrShowDesktopDragHandles(),
);
+2 -2
View File
@@ -192,7 +192,7 @@ Utils = {
// returns if desktop drag handles are enabled
isShowDesktopDragHandles() {
let currentUser = Meteor.user();
const currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
@@ -204,7 +204,7 @@ Utils = {
// returns if mini screen or desktop drag handles
isMiniScreenOrShowDesktopDragHandles() {
return this.isMiniScreen() || this.isShowDesktopDragHandles()
return this.isMiniScreen() || this.isShowDesktopDragHandles();
},
calculateIndexData(prevData, nextData, nItems = 1) {
+8 -2
View File
@@ -92,11 +92,17 @@ services:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) mongodb latest, like 3.2 - 4.4 or newer https://hub.docker.com/_/mongo?tab=description
image: mongo:latest
# 2020-12-03:
# - Mongo image copied from Docker Hub mongo:4.4.2-bionic to Quay
# to avoid Docker Hub rate limits.
image: quay.io/wekan/mongo:4.4.2-bionic
#-------------------------------------------------------------------------------------
container_name: wekan-db
restart: always
command: mongod --oplogSize 128
# command: mongod --oplogSize 128
# Syslog: mongod --syslog --oplogSize 128 --quiet
# Disable MongoDB logs:
command: mongod --logpath /dev/null --oplogSize 128 --quiet
networks:
- wekan-tier
expose:
+4 -3
View File
@@ -1,7 +1,6 @@
name: wekan
version: 1.0.0
appVersion: 2.x.x
kubeVersion: "^1.8.0-0"
version: 1.0.2
apiVersion: v1
description: Open Source kanban
home: https://wekan.github.io/
icon: https://wekan.github.io/wekan-logo.svg
@@ -10,4 +9,6 @@ sources:
maintainers:
- name: technotaff
email: github@randall.cc
- name: jiangytcn
email: jiangyt.cn@gmail.com
engine: gotpl
+4 -4
View File
@@ -1,5 +1,5 @@
dependencies:
- name: mongodb-replicaset
version: 3.11.x
repository: "https://kubernetes-charts.storage.googleapis.com/"
condition: mongodb-replicaset.enabled
- name: mongodb
version: 10.0.x
repository: "https://charts.bitnami.com/bitnami"
condition: mongodb.enabled
+13 -7
View File
@@ -62,21 +62,27 @@ Create the name of the service account to use for the api component
Create a default fully qualified mongodb-replicaset name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "wekan.mongodb-replicaset.fullname" -}}
{{- $name := default "mongodb-replicaset" (index .Values "mongodb-replicaset" "nameOverride") -}}
{{- define "wekan.mongodb.svcname" -}}
{{- $name := default "mongodb" (index .Values "mongodb" "nameOverride") -}}
{{- if eq .Values.mongodb.architecture "replicaset" }}
{{- printf "%s-%s-headless" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{/*
Create the MongoDB URL. If MongoDB is installed as part of this chart, use k8s service discovery,
else use user-provided URL.
*/}}
{{- define "mongodb-replicaset.url" -}}
{{- if (index .Values "mongodb-replicaset" "enabled") -}}
{{- $count := (int (index .Values "mongodb-replicaset" "replicas")) -}}
{{- define "mongodb.url" -}}
{{- if (index .Values "mongodb" "enabled") -}}
{{- $count := (int (index .Values "mongodb" "replicaCount")) -}}
{{- $release := .Release.Name -}}
mongodb://{{ $release }}-mongodb-replicaset:27017/admin?replicaSet={{ index .Values "mongodb-replicaset" "replicaSetName" }}
{{- $replicaSetName := (index .Values "mongodb" "replicaSetName") -}}
{{- $mongodbSvcName := include "wekan.mongodb.svcname" . -}}
mongodb://{{- range $v := until $count }}{{ $release }}-mongodb-{{ $v }}.{{ $mongodbSvcName }}:27017{{ if ne $v (sub $count 1) }},{{- end -}}{{- end -}}?replicaSet={{ $replicaSetName }}
{{- else -}}
{{- index .Values "mongodb-replicaset" "url" -}}
{{- index .Values "mongodb" "url" -}}
{{- end -}}
{{- end -}}
+7 -1
View File
@@ -36,13 +36,19 @@ spec:
- name: ROOT_URL
value: {{ .Values.root_url | default "https://wekan.local" | quote }}
- name: MONGO_URL
value: "{{ template "mongodb-replicaset.url" . }}"
value: "{{ template "mongodb.url" . }}"
{{- range $key := .Values.env }}
{{- if .value }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
{{- end }}
{{- range $key := .Values.secretEnv }}
{{- if .value }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
{{- end }}
livenessProbe:
httpGet:
path: /
+5 -2
View File
@@ -2,7 +2,7 @@
{{- $fullName := include "wekan.fullname" . -}}
{{- $servicePort := .Values.service.port -}}
{{- $ingressPath := .Values.ingress.path -}}
apiVersion: extensions/v1beta1
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
@@ -27,6 +27,9 @@ spec:
secretName: {{ .secretName }}
{{- end }}
{{- end }}
backend:
serviceName: {{ $fullName }}
servicePort: 8080
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . }}
@@ -35,6 +38,6 @@ spec:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $fullName }}
servicePort: 80
servicePort: 8080
{{- end }}
{{- end }}
-14
View File
@@ -1,14 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "wekan.fullname" . }}
labels:
app: {{ template "wekan.name" . }}
chart: {{ template "wekan.chart" . }}
component: wekan
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
type: Opaque
data:
accessKey: {{ .Values.credentials.accessKey | b64enc }}
secretKey: {{ .Values.credentials.secretKey | b64enc }}
@@ -1,27 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: {{ template "wekan.fullname" . }}-test
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: {{ template "wekan.fullname" . }}-test
imagePullPolicy: IfNotPresent
image: "docker.io/mesosphere/aws-cli:1.14.5"
command:
- sh
- -c
- aws s3 --endpoint-url=http://{{ include "wekan.fullname" . }} --region=us-east-1 ls
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: {{ template "wekan.fullname" . }}
key: accessKey
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: {{ template "wekan.fullname" . }}
key: secretKey
restartPolicy: Never
+14 -15
View File
@@ -22,21 +22,23 @@ image:
replicaCount: 1
## Specify wekan credentials
##
credentials:
accessKey: access-key
secretKey: secret-key
## Specify additional environmental variables for the Deployment
##
env:
- name: ""
value: ""
## Specify additional secret environmental variables for the
## Deployment. These can e.g. be provided by a Secret and allow
## to store passwords separately
##
secretEnv:
- name: ""
value: ""
service:
type: NodePort
port: 80
port: 8080
annotations: {}
# prometheus.io/scrape: "true"
# prometheus.io/port: "8000"
@@ -104,13 +106,10 @@ autoscaling:
# MongoDB:
# ------------------------------------------------------------------------------
mongodb-replicaset:
mongodb:
enabled: true
replicas: 3
architecture: replicaset
replicaCount: 3
replicaSetName: rs0
securityContext:
runAsUser: 1000
fsGroup: 1000
runAsNonRoot: true
#image:
# tag: 3.2.21
auth:
enabled: false
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "nedokončený seznam %s",
"activity-editComment": "upravit komentář %s",
"activity-deleteComment": "smazat komentář %s",
"activity-receivedDate": "editoval(a) datum přijetí na %s z %s",
"activity-startDate": "editoval(a) datum zahájení na %s z %s",
"activity-dueDate": "editoval(a) termín dokončení na %s z %s",
"activity-endDate": "editoval(a) datum ukončení na %s z %s",
"add-attachment": "Přidat přílohu",
"add-board": "Přidat tablo",
"add-card": "Přidat kartu",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Smazat přílohu?",
"attachments": "Přílohy",
"auto-watch": "Automaticky sleduj tabla když jsou vytvořena",
"avatar-too-big": "The avatar is too large (520KB max)",
"avatar-too-big": "Avatar je příliš velký (520KB max)",
"back": "Zpět",
"board-change-color": "Změnit barvu",
"board-nb-stars": "%s hvězdiček",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+4
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "רשימת המשימות %s סומנה כבלתי מושלמת",
"activity-editComment": "התגובה %s נערכה",
"activity-deleteComment": "התגובה %s נמחקה",
"activity-receivedDate": "תאריך הקבלה השתנה מ־%s ל־%s",
"activity-startDate": "תאריך ההתחלה השתנה מ־%s ל־%s",
"activity-dueDate": "תאריך היעד השתנה מ־%s ל־%s",
"activity-endDate": "תאריך הסיום השתנה מ־%s ל־%s",
"add-attachment": "הוספת קובץ מצורף",
"add-board": "הוספת לוח",
"add-card": "הוספת כרטיס",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "למחוק קובץ מצורף?",
"attachments": "קבצים מצורפים",
"auto-watch": "הוספת לוחות למעקב כשהם נוצרים",
"avatar-too-big": "The avatar is too large (520KB max)",
"avatar-too-big": "תמונת המשתמש גדולה מדי (520 ק״ב לכל היותר)",
"back": "חזרה",
"board-change-color": "שינוי צבע",
"board-nb-stars": "%s כוכבים",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+112 -108
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "수정된 댓글",
"activity-deleteComment": "삭제된 댓글",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "첨부파일 추가",
"add-board": "보드 추가",
"add-card": "카드 추가",
@@ -98,7 +102,7 @@
"and-n-other-card_plural": "__count__ 개의 다른 카드들",
"apply": "적용",
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
"archive": "Move to Archive",
"archive": "보관으로 이동",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
@@ -107,11 +111,11 @@
"archive-selection": "Move selection to Archive",
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "보관",
"archived-boards": "Boards in Archive",
"archived-boards": "보관 중인 보드",
"restore-board": "보드 복구",
"no-archived-boards": "No Boards in Archive.",
"no-archived-boards": "보관 중인 보드 없음.",
"archives": "보관",
"template": "Template",
"template": "템플릿",
"templates": "Templates",
"assign-member": "멤버 지정",
"attached": "첨부됨",
@@ -131,11 +135,11 @@
"boardChangeTitlePopup-title": "보드 이름 바꾸기",
"boardChangeVisibilityPopup-title": "표시 여부 변경",
"boardChangeWatchPopup-title": "감시상태 변경",
"boardMenuPopup-title": "Board Settings",
"boardMenuPopup-title": "보드 메뉴",
"boardChangeViewPopup-title": "Board View",
"boards": "보드",
"board-view": "Board View",
"board-view-cal": "Calendar",
"board-view-cal": "달력",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-gantt": "Gantt",
@@ -160,30 +164,30 @@
"card-start": "시작일",
"card-start-on": "시작일",
"cardAttachmentsPopup-title": "첨부 파일",
"cardCustomField-datePopup-title": "Change date",
"cardCustomField-datePopup-title": "날짜 변경",
"cardCustomFieldsPopup-title": "Edit custom fields",
"cardStartVotingPopup-title": "Start a vote",
"cardStartVotingPopup-title": "투표 시작",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
"card-edit-voting": "Edit voting",
"card-edit-voting": "투표 수정",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-question": "투표 질문",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
"deleteVotePopup-title": "Delete vote?",
"deleteVotePopup-title": "투표를 삭제합니까?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "카드를 삭제합니까?",
"cardDetailsActionsPopup-title": "카드 액션",
"cardLabelsPopup-title": "라벨",
"cardMembersPopup-title": "멤버",
"cardMorePopup-title": "더보기",
"cardTemplatePopup-title": "Create template",
"cardTemplatePopup-title": "템플릿 생성",
"cards": "카드",
"cards-count": "카드",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-card": "카드",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"change": "변경",
@@ -206,28 +210,28 @@
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"color-black": "블랙",
"color-blue": "블루",
"color-crimson": "crimson",
"color-darkgreen": "darkgreen",
"color-gold": "gold",
"color-gray": "gray",
"color-crimson": "진홍색",
"color-darkgreen": "암녹색",
"color-gold": "금색",
"color-gray": "회색",
"color-green": "그린",
"color-indigo": "indigo",
"color-indigo": "인디고",
"color-lime": "라임",
"color-magenta": "magenta",
"color-mistyrose": "mistyrose",
"color-navy": "navy",
"color-magenta": "자홍색",
"color-mistyrose": "미스티로즈",
"color-navy": "남색",
"color-orange": "오렌지",
"color-paleturquoise": "paleturquoise",
"color-peachpuff": "peachpuff",
"color-paleturquoise": "청록색",
"color-peachpuff": "피치퍼프",
"color-pink": "핑크",
"color-plum": "plum",
"color-plum": "진자주색",
"color-purple": "퍼플",
"color-red": "레드",
"color-saddlebrown": "saddlebrown",
"color-silver": "silver",
"color-saddlebrown": "새들브라운",
"color-silver": "은",
"color-sky": "스카이",
"color-slateblue": "slateblue",
"color-white": "white",
"color-slateblue": "슬레이트블루",
"color-white": "흰색",
"color-yellow": "옐로우",
"unset-color": "Unset",
"comment": "댓글",
@@ -252,11 +256,11 @@
"createBoardPopup-title": "보드 생성",
"chooseBoardSourcePopup-title": "보드 가져오기",
"createLabelPopup-title": "라벨 생성",
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"createCustomField": "필드 생성",
"createCustomFieldPopup-title": "필드 생성",
"current": "경향",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"custom-field-checkbox": "Checkbox",
"custom-field-checkbox": "체크 박스",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-date": "날짜",
@@ -265,8 +269,8 @@
"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-number": "숫자",
"custom-field-text": "텍스트",
"custom-fields": "Custom Fields",
"date": "날짜",
"decline": "쇠퇴",
@@ -287,7 +291,7 @@
"soft-wip-limit": "원만한 WIP 제한",
"editCardStartDatePopup-title": "시작일 변경",
"editCardDueDatePopup-title": "종료일 변경",
"editCustomFieldPopup-title": "Edit Field",
"editCustomFieldPopup-title": "필드 수정",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "라벨 변경",
"editNotificationPopup-title": "알림 수정",
@@ -325,11 +329,11 @@
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"exportBoardPopup-title": "보드 내보내기",
"sort": "Sort",
"sort": "분류",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "Name of the List",
"list-label-title": "리스트 이름",
"list-label-sort": "Your Manual Order",
"list-label-short-modifiedAt": "(L)",
"list-label-short-title": "(N)",
@@ -379,8 +383,8 @@
"import-map-members": "보드 멤버들",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "멤버 매핑 미리보기",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"import-user-select": "이 멤버로 사용할 기존 사용자를 선택하십시오.",
"importMapMembersAddPopup-title": "멤버 선택",
"info": "Version",
"initials": "이니셜",
"invalid-date": "적절하지 않은 날짜",
@@ -403,9 +407,9 @@
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-move-cards": "목록에 있는 모든 카드를 이동",
"list-select-cards": "목록에 있는 모든 카드를 선택",
"set-color-list": "Set Color",
"set-color-list": "색 설정",
"listActionPopup-title": "동작 목록",
"settingsUserPopup-title": "User Settings",
"settingsUserPopup-title": "사용자 설정",
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Trello 카드 가져 오기",
@@ -435,8 +439,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": "표준",
@@ -473,11 +477,11 @@
"restore": "복구",
"save": "저장",
"search": "검색",
"rules": "Rules",
"rules": "규칙",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "색 선택",
"select-board": "Select Board",
"select-board": "보드 선택",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "현재 카드에 자신을 지정하세요.",
@@ -510,7 +514,7 @@
"title": "제목",
"tracking": "추적",
"tracking-info": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음",
"type": "Type",
"type": "타입",
"unassign-member": "멤버 할당 해제",
"unsaved-description": "저장되지 않은 설명이 있습니다.",
"unwatch": "감시 해제",
@@ -619,10 +623,10 @@
"requested-by": "Requested By",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"delete-board-confirm-popup": "모든 목록, 카드, 레이블 및 활동이 삭제되고 보드 내용을 복구할 수 없습니다. 실행 취소는 불가능합니다.",
"boardDeletePopup-title": "Delete Board?",
"boardDeletePopup-title": "보드 삭제?",
"delete-board": "보드 삭제",
"default-subtasks-board": "Subtasks for __board__ board",
"default": "Default",
"default": "기본",
"queue": "Queue",
"subtask-settings": "Subtasks Settings",
"card-settings": "카드 설정",
@@ -647,98 +651,98 @@
"activity-delete-attach-card": "첨부 파일 제거",
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"r-rule": "Rule",
"r-rule": "규칙",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",
"r-add-action": "동작 추가",
"r-board-rules": "Board rules",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
"r-add-rule": "규칙 추가",
"r-view-rule": "규칙 보기",
"r-delete-rule": "규칙 삭제",
"r-new-rule-name": "새로운 규칙 제목",
"r-no-rules": "규칙 없음",
"r-trigger": "Trigger",
"r-action": "Action",
"r-action": "동작",
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
"r-list": "목록",
"set-filter": "Set Filter",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-a-card": "카드",
"r-when-a-label-is": "When a label is",
"r-when-the-label": "When the label",
"r-list-name": "list name",
"r-list-name": "목록 이름",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-name": "이름",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
"r-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-checked": "선택",
"r-unchecked": "Unchecked",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-archive": "보관으로 이동",
"r-unarchive": "Restore from Archive",
"r-card": "card",
"r-card": "카드",
"r-add": "추가",
"r-remove": "Remove",
"r-label": "label",
"r-member": "member",
"r-remove": "제거",
"r-label": "라벨",
"r-member": "멤버",
"r-remove-all": "Remove all members from the card",
"r-set-color": "Set color to",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-check-all": "전체 선택",
"r-uncheck-all": "Uncheck all",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-check": "선택",
"r-uncheck": "선택되지 않은 항목",
"r-item": "항목",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-send-email": "이메일 전송",
"r-to": "to",
"r-of": "of",
"r-subject": "subject",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-top-spec": "카드를 목록의 맨 위로 이동",
"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-move-to-bottom-spec": "카드를 목록의 맨 아래로 이동",
"r-d-send-email": "이메일 전송",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-send-email-message": "메시지",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-create-card": "Create new card",
"r-d-add-label": "라벨 추가",
"r-d-remove-label": "라벨 삭제",
"r-create-card": "새 카드 생성",
"r-in-list": "목록에",
"r-in-swimlane": "in swimlane",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-add-member": "멤버 추가",
"r-d-remove-member": "멤버 제거",
"r-d-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-check-one": "항목 선택",
"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-d-add-checklist": "체크리스트 추가",
"r-d-remove-checklist": "체크리스트 삭제",
"r-by": "by",
"r-add-checklist": "Add checklist",
"r-add-checklist": "체크리스트 추가",
"r-with-items": "with items",
"r-items-list": "item1,item2,item3",
"r-add-swimlane": "Add swimlane",
@@ -747,21 +751,21 @@
"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-update": "업데이트",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-start-at": "시작",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-end-at": "종료",
"r-df-received-at": "received",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
"authentication-method": "Authentication method",
"authentication-type": "Authentication type",
"authentication-method": "인증 방법",
"authentication-type": "인증 유형",
"custom-product-name": "Custom Product Name",
"layout": "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",
@@ -769,13 +773,13 @@
"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",
"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.",
"restore-all": "모든항목 복구",
"delete-all": "모두 삭제",
"loading": "Loading, please wait.",
"loading": "로딩중, 기다려주십시오.",
"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__)",
@@ -800,7 +804,7 @@
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"addmore-detail": "Add a more detailed description",
"addmore-detail": "자세한 설명 추가",
"show-on-card": "Show on Card",
"new": "New",
"editUserPopup-title": "Edit User",
@@ -813,24 +817,24 @@
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"monday": "월요일",
"tuesday": "화요일",
"wednesday": "수요일",
"thursday": "목요일",
"friday": "금요일",
"saturday": "토요일",
"sunday": "일요일",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"last-activity": "마지막 활동",
"voting": "투표",
"archived": "보관된",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items",
"task": "Task",
"create-task": "Create Task",
"ok": "OK"
"hide-checked-items": "선택된 항목 숨기기",
"task": "과제",
"create-task": "과제 생성",
"ok": "확인"
}
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+4
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "checklist %s onafgewerkt",
"activity-editComment": "aantekening gewijzigd %s",
"activity-deleteComment": "aantekening verwijderd %s",
"activity-receivedDate": "ontvangst datum bijgewerkt naar %s van %s",
"activity-startDate": "start datum bijgewerkt naar %s van %s",
"activity-dueDate": "geplande datum bijgewerkt naar %s van %s",
"activity-endDate": "eind datum bijgewerkt naar %s van %s ",
"add-attachment": "Bijlage Toevoegen",
"add-board": "Bord Toevoegen",
"add-card": "Kaart Toevoegen",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+110 -106
View File
@@ -42,7 +42,7 @@
"act-unjoinMember": "usunął użytkownika __member__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Akcje",
"actions": "Reakcje",
"activities": "Ostatnia aktywność",
"activity": "Aktywność",
"activity-added": "dodał %s do %s",
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "wycofano ukończenie czeklisty %s",
"activity-editComment": "edytował(a) komentarz %s",
"activity-deleteComment": "usunął komentarz %s",
"activity-receivedDate": "zmienił datę otrzymania na %s z %s",
"activity-startDate": "zmienił datę rozpoczęcia na %s z %s",
"activity-dueDate": "zmienił datę wykonania na %s z %s",
"activity-endDate": "zmienił datę zakończenia na %s z %s",
"add-attachment": "Dodaj załącznik",
"add-board": "Dodaj tablicę",
"add-card": "Dodaj kartę",
@@ -120,9 +124,9 @@
"attachmentDeletePopup-title": "Usunąć załącznik?",
"attachments": "Załączniki",
"auto-watch": "Automatycznie obserwuj tablice gdy zostaną stworzone",
"avatar-too-big": "The avatar is too large (520KB max)",
"avatar-too-big": "Awatar jest za duży (maksymalnie 520KB)",
"back": "Wstecz",
"board-change-color": "Zmień kolor",
"board-change-color": "Zmień barwę",
"board-nb-stars": "%s odznaczeń",
"board-not-found": "Nie znaleziono tablicy",
"board-private-info": "Ta tablica będzie <strong>prywatna</strong>.",
@@ -145,11 +149,11 @@
"card-archived": "Ta karta została przeniesiona do Archiwum.",
"board-archived": "Ta tablica została przeniesiona do Archiwum.",
"card-comments-title": "Ta karta ma %s komentarzy.",
"card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
"card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.",
"card-delete-notice": "Usunięcie jest nieodwracalne. Stracisz wszystkie zdarzenia powiązane z tą kartą.",
"card-delete-pop": "Wszystkie zdarzenia zostaną usunięte z historii aktywności i nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.",
"card-delete-suggest-archive": "Możesz przenieść kartę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"card-due": "Termin",
"card-due-on": "Termin ukończenia",
"card-due": "Data wykonania",
"card-due-on": "Data wykonania",
"card-spent": "Czas pracy",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-custom-fields": "Edytuj niestandardowe pola",
@@ -173,9 +177,9 @@
"vote-for-it": "za",
"vote-against": "przeciwko",
"deleteVotePopup-title": "Usunąć głos?",
"vote-delete-pop": "Usuwanie jest nieodwracalne. Stracisz wszystkie czynności związane z tym głosem.",
"vote-delete-pop": "Usunięcie jest nieodwracalne. Stracisz wszystkie zdarzenia związane z tym głosowaniem.",
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Czynności kart",
"cardDetailsActionsPopup-title": "Działania na karcie",
"cardLabelsPopup-title": "Etykiety",
"cardMembersPopup-title": "Użytkownicy",
"cardMorePopup-title": "Więcej",
@@ -183,7 +187,7 @@
"cards": "Karty",
"cards-count": "kart",
"casSignIn": "Zaloguj się poprzez CAS",
"cardType-card": "Karta",
"cardType-card": "karty",
"cardType-linkedCard": "Podpięta karta",
"cardType-linkedBoard": "Podpięta tablica",
"change": "Zmień",
@@ -204,31 +208,31 @@
"close": "Zamknij",
"close-board": "Zamknij tablicę",
"close-board-pop": "Będziesz w stanie przywrócić tablicę poprzez kliknięcie przycisku \"Archiwizuj\" w nagłówku strony domowej.",
"color-black": "czarny",
"color-blue": "niebieski",
"color-crimson": "karmazynowy",
"color-darkgreen": "ciemnozielony",
"color-gold": "złoty",
"color-gray": "szary",
"color-green": "zielony",
"color-black": "czarna",
"color-blue": "niebieska",
"color-crimson": "karmazynowa",
"color-darkgreen": "ciemnozielona",
"color-gold": "złota",
"color-gray": "szara",
"color-green": "zielona",
"color-indigo": "indygo",
"color-lime": "limonkowy",
"color-magenta": "fuksjowy",
"color-mistyrose": "różowy",
"color-navy": "granatowy",
"color-orange": "pomarańczowy",
"color-lime": "limonkowa",
"color-magenta": "fuksjowa",
"color-mistyrose": "jasnoróżowa",
"color-navy": "granatowa",
"color-orange": "pomarańczowa",
"color-paleturquoise": "turkusowy",
"color-peachpuff": "brzoskwiniowy",
"color-pink": "różowy",
"color-plum": "śliwkowy",
"color-purple": "fioletowy",
"color-red": "czerwony",
"color-saddlebrown": "jasnobrązowy",
"color-silver": "srebrny",
"color-sky": "błękitny",
"color-slateblue": "szaroniebieski",
"color-white": "miały",
"color-yellow": "żółty",
"color-peachpuff": "brzoskwiniowa",
"color-pink": "różowa",
"color-plum": "śliwkowa",
"color-purple": "fioletowa",
"color-red": "czerwona",
"color-saddlebrown": "jasnobrązowa",
"color-silver": "srebrna",
"color-sky": "błękitna",
"color-slateblue": "szaroniebieska",
"color-white": "biała",
"color-yellow": "żółta",
"unset-color": "Nieustawiony",
"comment": "Komentarz",
"comment-placeholder": "Dodaj komentarz",
@@ -254,8 +258,8 @@
"createLabelPopup-title": "Utwórz etykietę",
"createCustomField": "Utwórz pole",
"createCustomFieldPopup-title": "Utwórz pole",
"current": "obecny",
"custom-field-delete-pop": "Nie ma możliwości wycofania tej operacji. To usunie te niestandardowe pole ze wszystkich kart oraz usunie ich całą historię.",
"current": "obecnie otwarta",
"custom-field-delete-pop": "Nie ma możliwości cofnięcia tej operacji. Usuniesz to niestandardowe pole ze wszystkich kart oraz całą jego historię.",
"custom-field-checkbox": "Pole wyboru",
"custom-field-currency": "Waluta",
"custom-field-currency-option": "Kod waluty",
@@ -275,8 +279,8 @@
"deleteCustomFieldPopup-title": "Usunąć niestandardowe pole?",
"deleteLabelPopup-title": "Usunąć etykietę?",
"description": "Opis",
"disambiguateMultiLabelPopup-title": "Ujednolić etykiety czynności",
"disambiguateMultiMemberPopup-title": "Doprecyzuj czynności użytkowników",
"disambiguateMultiLabelPopup-title": "Doprecyzuj działanie dotyczące etykiety",
"disambiguateMultiMemberPopup-title": "Doprecyzuj działanie dotyczące użytkownika",
"discard": "Odrzuć",
"done": "Zakończone",
"download": "Pobierz",
@@ -286,7 +290,7 @@
"edit-wip-limit": "Zmień limit kart na liście",
"soft-wip-limit": "Pozwól na nadmiarowe karty na liście",
"editCardStartDatePopup-title": "Zmień datę rozpoczęcia",
"editCardDueDatePopup-title": "Zmień termin ukończenia",
"editCardDueDatePopup-title": "Zmień datę wykonania",
"editCustomFieldPopup-title": "Edytuj pole",
"editCardSpentTimePopup-title": "Zmień ilość przepracowanego czasu",
"editLabelPopup-title": "Zmień etykietę",
@@ -344,7 +348,7 @@
"filter-no-member": "Brak użytkowników",
"filter-assignee-label": "Filtruj wg osoby przypisanej",
"filter-no-assignee": "Nieprzypisane ",
"filter-custom-fields-label": "Filtruj wg pól niestandardowych",
"filter-custom-fields-label": "Filtruj wg niestandardowych pól",
"filter-no-custom-fields": "Brak niestandardowych pól",
"filter-show-archive": "Pokaż zarchiwizowane listy",
"filter-hide-empty": "Ukryj puste listy",
@@ -353,7 +357,7 @@
"filter-to-selection": "Odfiltruj zaznaczenie",
"other-filters-label": "Inne filtry",
"advanced-filter-label": "Zaawansowane filtry",
"advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedyncze cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte należy użyć \\, na przykład Pole1 == I\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i",
"advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedynczym cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte, należy użyć \\, na przykład Pole1 == I\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i",
"fullname": "Pełna nazwa",
"header-logo-title": "Wróć do swojej strony z tablicami.",
"hide-system-messages": "Ukryj wiadomości systemowe",
@@ -403,16 +407,16 @@
"list-archive-cards-pop": "To usunie wszystkie karty z tej listy z tej tablicy. Aby przejrzeć karty w Archiwum i przywrócić na tablicę, kliknij \"Menu\" > \"Archiwizuj\".",
"list-move-cards": "Przenieś wszystkie karty z tej listy",
"list-select-cards": "Zaznacz wszystkie karty z tej listy",
"set-color-list": "Ustaw kolor",
"listActionPopup-title": "Lista akcji",
"set-color-list": "Ustaw barwę",
"listActionPopup-title": "Działania na liście",
"settingsUserPopup-title": "Ustawienia konta użytkownika",
"swimlaneActionPopup-title": "Opcje ścieżki",
"swimlaneActionPopup-title": "Działania na ścieżce",
"swimlaneAddPopup-title": "Dodaj ścieżkę poniżej",
"listImportCardPopup-title": "Zaimportuj kartę z Trello",
"listImportCardsTsvPopup-title": "Importuj CSV/TSV z Excela",
"listMorePopup-title": "Więcej",
"link-list": "Podepnij do tej listy",
"list-delete-pop": "Wszystkie czynności zostaną usunięte z Aktywności i nie będziesz w stanie przywrócić listy. Nie ma możliwości cofnięcia tej operacji.",
"list-delete-pop": "Wszystkie zdarzenia zostaną usunięte z historii aktywności i nie będziesz w stanie przywrócić tej listy. Nie ma możliwości cofnięcia tej operacji.",
"list-delete-suggest-archive": "Możesz przenieść listę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"lists": "Listy",
"swimlanes": "Ścieżki",
@@ -424,8 +428,8 @@
"menu": "Menu",
"move-selection": "Przenieś zaznaczone",
"moveCardPopup-title": "Przenieś kartę",
"moveCardToBottom-title": "Przenieś na dół",
"moveCardToTop-title": "Przenieś na górę",
"moveCardToBottom-title": "Przenieś na koniec",
"moveCardToTop-title": "Przenieś na początek",
"moveSelectionPopup-title": "Przenieś zaznaczone",
"multi-selection": "Wielokrotne zaznaczenie",
"multi-selection-label": "Dodaj etykietę do zaznaczenia",
@@ -476,7 +480,7 @@
"rules": "Reguły",
"search-cards": "Szukaj w tytułach kart/list oraz opisach i niestandardowych polach na tej tablicy",
"search-example": "Wpisz tekst do wyszukania i wciśnij Enter",
"select-color": "Wybierz kolor",
"select-color": "Wybierz barwę",
"select-board": "Wybierz tablicę",
"set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście",
"setWipLimitPopup-title": "Ustaw limit kart na liście",
@@ -610,14 +614,14 @@
"card-end": "Koniec",
"card-end-on": "Kończy się",
"editCardReceivedDatePopup-title": "Zmień datę przyjęcia",
"editCardEndDatePopup-title": "Zmień datę ukończenia",
"setCardColorPopup-title": "Ustaw kolor",
"setCardActionsColorPopup-title": "Wybierz kolor",
"setSwimlaneColorPopup-title": "Wybierz kolor",
"setListColorPopup-title": "Wybierz kolor",
"editCardEndDatePopup-title": "Zmień datę zakończenia",
"setCardColorPopup-title": "Ustaw barwę",
"setCardActionsColorPopup-title": "Wybierz barwę",
"setSwimlaneColorPopup-title": "Wybierz barwę",
"setListColorPopup-title": "Wybierz barwę",
"assigned-by": "Przypisane przez",
"requested-by": "Zlecone przez",
"board-delete-notice": "Usuwanie jest permanentne. Stracisz wszystkie listy, kart oraz czynności przypisane do tej tablicy.",
"board-delete-notice": "Usunięcie jest nieodwracalne. Stracisz wszystkie listy, karty oraz reguły przypisane do tej tablicy.",
"delete-board-confirm-popup": "Wszystkie listy, etykiety oraz aktywności zostaną usunięte i nie będziesz w stanie przywrócić zawartości tablicy. Tego nie da się cofnąć.",
"boardDeletePopup-title": "Usunąć tablicę?",
"delete-board": "Usuń tablicę",
@@ -648,58 +652,58 @@
"activity-set-customfield": "ustawił niestandardowe pole '%s' na '%s' w '%s'",
"activity-unset-customfield": "wyczyścił niestandardowe pole '%s' w '%s'",
"r-rule": "Reguła",
"r-add-trigger": "Dodaj przełącznik",
"r-add-action": "Dodaj czynność",
"r-add-trigger": "Dodaj aktywator",
"r-add-action": "Dodaj reakcję",
"r-board-rules": "Reguły tablicy",
"r-add-rule": "Dodaj regułę",
"r-view-rule": "Zobacz regułę",
"r-delete-rule": "Usuń regułę",
"r-new-rule-name": "Nowa nazwa reguły",
"r-no-rules": "Brak regułę",
"r-trigger": "Zdarzenie",
"r-trigger": "Aktywator",
"r-action": "Reakcja",
"r-when-a-card": "Gdy karta",
"r-is": "jest",
"r-is-moved": "jest przenoszona",
"r-added-to": "Dodany do",
"r-removed-from": "usunął z",
"r-the-board": "tablicy",
"r-list": "lista",
"r-added-to": "dodana do",
"r-removed-from": "usunięta z",
"r-the-board": "na tablicy",
"r-list": "listy",
"set-filter": "Ustaw filtr",
"r-moved-to": "Przeniesione do",
"r-moved-from": "Przeniesione z",
"r-archived": "Przeniesione z Archiwum",
"r-unarchived": "Przywrócone z Archiwum",
"r-moved-to": "przenoszona do",
"r-moved-from": "przenoszona z",
"r-archived": "zarchiwizowana",
"r-unarchived": "przywrócona z archiwum",
"r-a-card": "karta",
"r-when-a-label-is": "Gdy etykieta jest",
"r-when-the-label": "Gdy etykieta jest",
"r-when-the-label": "Gdy etykieta",
"r-list-name": "nazwa listy",
"r-when-a-member": "Gdy jakikolwiek użytkownik jest",
"r-when-the-member": "Gdy użytkownik",
"r-when-a-member": "Gdy osoba (użytkownik) jest",
"r-when-the-member": "Gdy osoba",
"r-name": "nazwa",
"r-when-a-attach": "Gdy załącznik",
"r-when-a-checklist": "Gdy jakaś czeklista jest",
"r-when-a-checklist": "Gdy czeklista jest",
"r-when-the-checklist": "Gdy czeklista",
"r-completed": "Ukończone",
"r-made-incomplete": "Niedokończone",
"r-when-a-item": "Gdy jakiś element czeklisty jest",
"r-completed": "ukończona",
"r-made-incomplete": "ponownie nieukończona",
"r-when-a-item": "Gdy element czeklisty jest",
"r-when-the-item": "Gdy element",
"r-checked": "Zaznaczony",
"r-unchecked": "Odznaczony",
"r-move-card-to": "Przenieś kartę do",
"r-top-of": "Góra od",
"r-bottom-of": "Dół od",
"r-checked": "zaznaczony",
"r-unchecked": "ponownie niezaznaczony",
"r-move-card-to": "Przenieś kartę na",
"r-top-of": "początek",
"r-bottom-of": "koniec",
"r-its-list": "tej listy",
"r-archive": "Przenieś do Archiwum",
"r-archive": "Zarchiwizuj",
"r-unarchive": "Przywróć z Archiwum",
"r-card": "karta",
"r-card": "kartę",
"r-add": "Dodaj",
"r-remove": "Usuń",
"r-label": "etykieta",
"r-member": "użytkownik",
"r-label": "etykietę",
"r-member": "użytkownika",
"r-remove-all": "Usuń wszystkich użytkowników tej karty",
"r-set-color": "Ustaw kolor na",
"r-checklist": "Tytuł czeklisty",
"r-set-color": "Ustaw barwę na",
"r-checklist": "czeklistę",
"r-check-all": "Zaznacz wszystkie",
"r-uncheck-all": "Odznacz wszystkie",
"r-items-check": "elementy czeklisty",
@@ -712,15 +716,15 @@
"r-of": "z",
"r-subject": "temat",
"r-rule-details": "Szczegóły reguł",
"r-d-move-to-top-gen": "Przenieś kartę na górę tej listy",
"r-d-move-to-top-spec": "Przenieś kartę na górę listy",
"r-d-move-to-bottom-gen": "Przenieś kartę na dół tej listy",
"r-d-move-to-bottom-spec": "Przenieś kartę na dół listy",
"r-d-move-to-top-gen": "Przenieś kartę na początek listy",
"r-d-move-to-top-spec": "Przenieś kartę na początek listy",
"r-d-move-to-bottom-gen": "Przenieś kartę na koniec listy",
"r-d-move-to-bottom-spec": "Przenieś kartę na koniec listy",
"r-d-send-email": "Wyślij wiadomość email",
"r-d-send-email-to": "do",
"r-d-send-email-subject": "temat",
"r-d-send-email-message": "wiadomość",
"r-d-archive": "Przenieś kartę z Archiwum",
"r-d-archive": "Zarchiwizuj kartę",
"r-d-unarchive": "Przywróć kartę z Archiwum",
"r-d-add-label": "Dodaj etykietę",
"r-d-remove-label": "Usuń etykietę",
@@ -745,16 +749,16 @@
"r-swimlane-name": "Nazwa ścieżki",
"r-board-note": "Uwaga: pozostaw pole puste, aby każda wartość była brana pod uwagę.",
"r-checklist-note": "Uwaga: elementy czeklisty muszą być oddzielone przecinkami.",
"r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy",
"r-when-a-card-is-moved": "Gdy karta jest przenoszona do innej listy",
"r-set": "Ustaw",
"r-update": "Aktualizuj",
"r-datefield": "pole daty",
"r-df-start-at": "start",
"r-df-due-at": "termin ukończenia jest",
"r-df-end-at": "zakończenie",
"r-df-received-at": "przyjęte",
"r-to-current-datetime": "o aktualnej dacie/godzinie",
"r-remove-value-from": "usunął wartość z",
"r-datefield": "datę",
"r-df-start-at": "rozpoczęcia",
"r-df-due-at": "wykonania",
"r-df-end-at": "zakończenia",
"r-df-received-at": "przyjęcia",
"r-to-current-datetime": "na aktualną datę i godzinę",
"r-remove-value-from": "Wyczyść",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -772,27 +776,27 @@
"duplicate-board": "Duplikuj tablicę",
"people-number": "Liczba użytkowników to:",
"swimlaneDeletePopup-title": "Usunąć ścieżkę?",
"swimlane-delete-pop": "Wszystkie czynności wykonane na tej ścieżce zostaną usunięte z historii aktywności. Tej operacji nie można cofnąć. Usunięcie jest nieodwracalne.",
"swimlane-delete-pop": "Wszystkie zdarzenia dotyczące tej ścieżki zostaną usunięte z historii aktywności. Tej operacji nie można cofnąć. Usunięcie jest nieodwracalne.",
"restore-all": "Przywróć wszystkie",
"delete-all": "Usuń wszystkie",
"loading": "Ładowanie, proszę czekać.",
"previous_as": "ostatni raz był",
"act-a-dueAt": "zmienił(a) termin ukończenia na: __timeValue__ w karcie __card__, poprzedni termin: __timeOldValue__",
"act-a-dueAt": "zmienił(a) datę wykonania na: __timeValue__ w karcie __card__, poprzednia data wykonania: __timeOldValue__",
"act-a-endAt": "zmienił czas zakończenia na __timeValue__ z __timeOldValue__",
"act-a-startAt": "zmienił czas rozpoczęcia na __timeValue__ z __timeOldValue__",
"act-a-receivedAt": "zmienił czas przyjęcia zadania na __timeValue__ z __timeOldValue__",
"a-dueAt": "zmienił termin ukończenia na",
"a-dueAt": "zmienił datę wykonania na",
"a-endAt": "zmienił czas zakończenia na",
"a-startAt": "zmienił czas rozpoczęcia na",
"a-receivedAt": "zmienił czas przyjęcia zadania na",
"almostdue": "termin ukończenia %s jest bliski",
"pastdue": "termin ukończenia %s minął",
"duenow": "termin ukończenia %s przypada dzisiaj",
"act-newDue": "__list__/__card__ pierwszy raz przypomina o terminie ukończenia [__board__]",
"act-withDue": "__list__/__card__ ma przypomnienia o terminie ukończenia [__board__]",
"act-almostdue": "przypominał o zbliżającym się terminie ukończenia (__timeValue__) karty __card__",
"act-pastdue": "przypominał o upłynięciu terminu ukończenia (__timeValue__) karty __card__",
"act-duenow": "przypominał o przypadającym właśnie terminie ukończenia (__timeValue__) karty __card__",
"almostdue": "data wykonania %s jest bliska",
"pastdue": "data wykonania %s minęła",
"duenow": "data wykonania %s przypada dzisiaj",
"act-newDue": "__list__/__card__ pierwszy raz przypomina o dacie wykonania [__board__]",
"act-withDue": "__list__/__card__ ma przypomnienia o dacie wykonania [__board__]",
"act-almostdue": "przypominał o zbliżającej się dacie wykonania (__timeValue__) karty __card__",
"act-pastdue": "przypominał o upłynięciu daty wykonania (__timeValue__) karty __card__",
"act-duenow": "przypominał o mijającej właśnie dacie wykonania (__timeValue__) karty __card__",
"act-atUserComment": "Zostałeś wspomniany w [__board] __list__/__card__",
"delete-user-confirm-popup": "Czy jesteś pewien, że chcesz usunąć te konto? Nie można tego wycofać.",
"accounts-allowUserDelete": "Pozwól użytkownikom na usuwanie własnych kont",
+4
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "não-completada a lista de verificação %s",
"activity-editComment": "comentário editado %s",
"activity-deleteComment": "comentário excluído %s",
"activity-receivedDate": "editou recebido para %s de %s",
"activity-startDate": "editou data início para %s de %s",
"activity-dueDate": "editou prazo final para %s de %s",
"activity-endDate": "editou concluído para %s de %s",
"add-attachment": "Adicionar Anexos",
"add-board": "Adicionar Quadro",
"add-card": "Adicionar Cartão",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+4
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "вновь открыл контрольный список %s",
"activity-editComment": "отредактировал комментарий %s",
"activity-deleteComment": "удалил комментарий %s",
"activity-receivedDate": "отредактировал дату получения на %sс %s",
"activity-startDate": "отредактировал дату начала на %sс %s",
"activity-dueDate": "отредактировал срок исполнения на %s с %s",
"activity-endDate": "отредактировал дату завершения на %s с %s",
"add-attachment": "Добавить вложение",
"add-board": "Добавить доску",
"add-card": "Добавить карточку",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "未完成清單 %s",
"activity-editComment": "評論已編輯",
"activity-deleteComment": "評論已刪除",
"activity-receivedDate": "已編輯收到日期為 %s %s",
"activity-startDate": "已編輯起始日期為 %s %s",
"activity-dueDate": "已編輯截止日期為 %s %s",
"activity-endDate": "已編輯結束日期為 %s %s ",
"add-attachment": "新增附件",
"add-board": "新增看板",
"add-card": "新增卡片",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "刪除附件?",
"attachments": "附件",
"auto-watch": "自動訂閱新建立的看板",
"avatar-too-big": "The avatar is too large (520KB max)",
"avatar-too-big": "頭貼過大(最大520kb)",
"back": "返回",
"board-change-color": "更改顏色",
"board-nb-stars": "%s 星星",
+35
View File
@@ -1753,6 +1753,41 @@ if (Meteor.isServer) {
});
}
});
//ATTACHMENTS REST API
/**
* @operation get_board_attachments
* @summary Get the list of attachments of a board
*
* @param {string} boardId the board ID
* @return_type [{attachmentId: string,
* attachmentName: string,
* attachmentType: string,
* cardId: string,
* listId: string,
* swimlaneId: string}]
*/
JsonRoutes.add('GET', '/api/boards/:boardId/attachments', function(req, res) {
const paramBoardId = req.params.boardId;
Authentication.checkBoardAccess(req.userId, paramBoardId);
JsonRoutes.sendResult(res, {
code: 200,
data: Attachments.files
.find({ boardId: paramBoardId }, { fields: { boardId: 0 } })
.map(function(doc) {
return {
attachmentId: doc._id,
attachmentName: doc.original.name,
attachmentType: doc.original.type,
url: FlowRouter.url(doc.url()),
urlDownload: `${FlowRouter.url(doc.url())}?download=true&token=`,
cardId: doc.cardId,
listId: doc.listId,
swimlaneId: doc.swimlaneId,
};
}),
});
});
}
export default Boards;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v4.55.0",
"version": "v4.57.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v4.55.0",
"version": "v4.57.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+251 -2
View File
@@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.55">Wekan REST API v4.55</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.57">Wekan REST API v4.57</a>
</li>
@@ -1582,6 +1582,11 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
<a href="#get_board_attachments" class="toc-h2 toc-link" data-title="get_board_attachments">get_board_attachments</a>
</li>
<li>
<a href="#exportjson" class="toc-h2 toc-link" data-title="exportJson">exportJson</a>
@@ -2027,7 +2032,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v4.55</h1>
<h1 id="wekan-rest-api">Wekan REST API v4.57</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>
@@ -3510,6 +3515,250 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h2 id="get_board_attachments">get_board_attachments</h2>
<p><a id="opIdget_board_attachments"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X GET /api/boards/{board}/attachments \
-H <span class="hljs-string">'Accept: application/json'</span> \
-H <span class="hljs-string">'Authorization: API_KEY'</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/boards/{board}/attachments</span> HTTP/1.1
<span class="http"><span class="hljs-attribute">Accept</span>: application/json
<span class="undefined"></span></span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">var</span> headers = {
<span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
$.ajax({
<span class="hljs-attr">url</span>: <span class="hljs-string">'/api/boards/{board}/attachments'</span>,
<span class="hljs-attr">method</span>: <span class="hljs-string">'get'</span>,
<span class="hljs-attr">headers</span>: headers,
<span class="hljs-attr">success</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">data</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">JSON</span>.stringify(data));
}
})
</code></pre>
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">'node-fetch'</span>);
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
};
fetch(<span class="hljs-string">'/api/boards/{board}/attachments'</span>,
{
<span class="hljs-attr">method</span>: <span class="hljs-string">'GET'</span>,
<span class="hljs-attr">headers</span>: headers
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-keyword">return</span> res.json();
}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{
<span class="hljs-built_in">console</span>.log(body);
});
</code></pre>
<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">'rest-client'</span>
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
headers = {
<span class="hljs-string">'Accept'</span> =&gt; <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span> =&gt; <span class="hljs-string">'API_KEY'</span>
}
result = RestClient.get <span class="hljs-string">'/api/boards/{board}/attachments'</span>,
<span class="hljs-symbol">params:</span> {
}, <span class="hljs-symbol">headers:</span> headers
p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
}
r = requests.get(<span class="hljs-string">'/api/boards/{board}/attachments'</span>, params={
}, headers = headers)
<span class="hljs-keyword">print</span> r.json()
</code></pre>
<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"/api/boards/{board}/attachments"</span>);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(<span class="hljs-string">"GET"</span>);
<span class="hljs-keyword">int</span> responseCode = con.getResponseCode();
BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader(
<span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer();
<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
</code></pre>
<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">"bytes"</span>
<span class="hljs-string">"net/http"</span>
)
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
}
data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq})
req, err := http.NewRequest(<span class="hljs-string">"GET"</span>, <span class="hljs-string">"/api/boards/{board}/attachments"</span>, data)
req.Header = headers
client := &amp;http.Client{}
resp, err := client.Do(req)
<span class="hljs-comment">// ...</span>
}
</code></pre>
<p><code>GET /api/boards/{board}/attachments</code></p>
<p><em>Get the list of attachments of a board</em></p>
<h3 id="get_board_attachments-parameters">Parameters</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>board</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the board ID</td>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
</blockquote>
<blockquote>
<p>200 Response</p>
</blockquote>
<pre class="highlight tab tab-json"><code>[
{
<span class="hljs-attr">"attachmentId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"attachmentName"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"attachmentType"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"cardId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"listId"</span>: <span class="hljs-string">"string"</span>,
<span class="hljs-attr">"swimlaneId"</span>: <span class="hljs-string">"string"</span>
}
]
</code></pre>
<h3 id="get_board_attachments-responses">Responses</h3>
<table>
<thead>
<tr>
<th>Status</th>
<th>Meaning</th>
<th>Description</th>
<th>Schema</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
<td>Inline</td>
</tr>
</tbody>
</table>
<h3 id="get_board_attachments-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required</th>
<th>Restrictions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>» attachmentId</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» attachmentName</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» attachmentType</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» cardId</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» listId</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» swimlaneId</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
</tbody>
</table>
<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h2 id="exportjson">exportJson</h2>
<p><a id="opIdexportJson"></a></p>
<blockquote>
+39 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v4.55
version: v4.57
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -288,6 +288,44 @@ paths:
'200':
description: |-
200 response
/api/boards/{board}/attachments:
get:
operationId: get_board_attachments
summary: Get the list of attachments of a board
tags:
- Boards
parameters:
- name: board
in: path
description: |
the board ID
type: string
required: true
produces:
- application/json
security:
- UserSecurity: []
responses:
'200':
description: |-
200 response
schema:
type: array
items:
type: object
properties:
attachmentId:
type: string
attachmentName:
type: string
attachmentType:
type: string
cardId:
type: string
listId:
type: string
swimlaneId:
type: string
/api/boards/{board}/cards/{card}/checklists:
get:
operationId: get_all_checklists
+2 -2
View File
@@ -18,8 +18,8 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
curl -O https://nodejs.org/dist/v12.19.0/node-v12.19.0-x64.msi
call node-v12.19.0-x64.msi
curl -O https://nodejs.org/dist/v12.20.0/node-v12.20.0-x64.msi
call node-v12.20.0-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
+1 -1
View File
@@ -28,7 +28,7 @@ do
#curl -0 -L https://npmjs.org/install.sh | sudo sh
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
sudo n 12.19.0
sudo n 12.20.0
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then
+1 -1
View File
@@ -18,7 +18,7 @@ cd $REPODIR
rm -rf $WEKANDIR
git clone git@github.com:wekan/wekan.git
cd $WEKANDIR
sudo n 12.19.1
sudo n 12.20.0
sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
# Build Wekan
./releases/rebuild-release.sh
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 455,
appVersion = 457,
# Increment this for every release.
appMarketingVersion = (defaultText = "4.55.0~2020-11-21"),
appMarketingVersion = (defaultText = "4.57.0~2020-12-08"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+6 -2
View File
@@ -3,14 +3,18 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
keys="DEBUG MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE 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_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE 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 LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD ATTACHMENTS_STORE_PATH PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED"
keys="DEBUG MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE 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_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE 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 LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD ATTACHMENTS_STORE_PATH PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED"
# default values
DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
DEFAULT_DEBUG="false"
KEY_DEBUG="debug"
DESCRIPTION_MONGOURL="MONGO_URL. Default: ''"
DESCRIPTION_MONGO_LOG_DESTINATION="MONGO_LOG_DESTINATION: devnull/snapcommon/syslog. Default: 'devnull'"
DEFAULT_MONGO_LOG_DESTINATION="devnull"
KEY_MONGO_LOG_DESTINATION='mongo-log-destination'
DESCRIPTION_MONGO_URL="MONGO_URL. Default: ''"
DEFAULT_MONGO_URL=""
KEY_MONGO_URL='mongo-url'
Loaded 100 of 105 files, more files were not shown because too many files have changed in this diff. Show more