Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe87b9928c | ||
|
|
fb36709047 | ||
|
|
73aaccb6dd | ||
|
|
1fe0059402 | ||
|
|
0c12c45080 | ||
|
|
a6c48329ef | ||
|
|
a3cd1b89ff | ||
|
|
7a08f42edb | ||
|
|
e8722b56e3 | ||
|
|
052948f6eb | ||
|
|
cd03395e05 | ||
|
|
61caf18fd4 | ||
|
|
015f4d671d | ||
|
|
c13e828c79 | ||
|
|
7a6abaac44 | ||
|
|
58dffd0a33 | ||
|
|
fe0232a4e8 | ||
|
|
8dff6c2e2a | ||
|
|
3a6e2813a6 | ||
|
|
8005640b77 | ||
|
|
bc929fb7e0 | ||
|
|
019874b6af | ||
|
|
a7977a8fc7 | ||
|
|
62f6cc7198 | ||
|
|
ad331ee122 | ||
|
|
387f0600ce | ||
|
|
0801e33f97 | ||
|
|
f576d2f356 | ||
|
|
051f7b2769 | ||
|
|
1f207c493d | ||
|
|
03f565bf95 | ||
|
|
36e29a405e | ||
|
|
2ec53b27d1 | ||
|
|
152a0b50f2 | ||
|
|
c09758fb91 | ||
|
|
2b2884d996 | ||
|
|
4537971300 | ||
|
|
0b43e8b42a | ||
|
|
bf94161f30 | ||
|
|
573426899a | ||
|
|
3816227837 | ||
|
|
fe5e311673 | ||
|
|
bec0b7ec56 | ||
|
|
9d2a9ee70b | ||
|
|
baf652a569 | ||
|
|
9f340bcecd | ||
|
|
cc0a866166 | ||
|
|
d39b62503f | ||
|
|
e9b9af4616 | ||
|
|
7d88ef7ab2 | ||
|
|
5a49bd6f8c | ||
|
|
a255fc8524 | ||
|
|
d1b5c42d42 | ||
|
|
d957768a39 | ||
|
|
999630aed5 | ||
|
|
cf7efccde5 | ||
|
|
7b82a80fb4 | ||
|
|
cfe500794c | ||
|
|
a2d298f493 | ||
|
|
4687a866f5 | ||
|
|
ff08aff131 | ||
|
|
5510c2a37d | ||
|
|
608a084b94 | ||
|
|
9e47abdaa3 | ||
|
|
4d7bd455c9 | ||
|
|
05a72f7c62 | ||
|
|
4e23429cb8 | ||
|
|
b67d3e91af | ||
|
|
636487502d | ||
|
|
3207f457d4 | ||
|
|
af0cb1d6e7 | ||
|
|
06c16b79e3 | ||
|
|
09617e17d9 | ||
|
|
94f50dd6b6 | ||
|
|
d667554686 | ||
|
|
cbf3bcfe1c | ||
|
|
3d82323eaa | ||
|
|
83cd5e7494 | ||
|
|
e1e5554b88 | ||
|
|
6193a0b64e | ||
|
|
d1c8917cd2 | ||
|
|
7e17db4feb | ||
|
|
c214510087 | ||
|
|
9bac5aa58e | ||
|
|
9dbb10c59b | ||
|
|
d5325cc830 | ||
|
|
1539da75ed | ||
|
|
f786afc4b9 | ||
|
|
37ae4d5302 | ||
|
|
37b0543ed6 | ||
|
|
69fc2cd8f8 | ||
|
|
5e03507eba | ||
|
|
01fea212ec | ||
|
|
81ff3ec5b1 | ||
|
|
393464f2d8 | ||
|
|
17867159ea | ||
|
|
7b064ce448 | ||
|
|
bf403cacf8 | ||
|
|
a08bc8bb81 | ||
|
|
554e01a172 | ||
|
|
ed4260dd38 | ||
|
|
9e56cd5ea3 | ||
|
|
8db8766a48 | ||
|
|
222fca3ad7 | ||
|
|
efc50aec07 | ||
|
|
21aebe845f | ||
|
|
345e2357c8 | ||
|
|
8250cbcf6e | ||
|
|
d0040754ea | ||
|
|
22501749da | ||
|
|
c30bc77eea | ||
|
|
f74bac4f6b | ||
|
|
f54036225d | ||
|
|
f1b680119f | ||
|
|
9ffdb83004 | ||
|
|
7080a0ce7d | ||
|
|
de4f1aa8c4 | ||
|
|
fa6182b979 | ||
|
|
a457e337ac | ||
|
|
ba2c280d56 | ||
|
|
c8ed4947e1 | ||
|
|
5b700a30d9 | ||
|
|
d62f9a716e | ||
|
|
949f22acf0 | ||
|
|
358c411255 | ||
|
|
cfec612704 | ||
|
|
1741808e53 | ||
|
|
fd41e8ba45 | ||
|
|
01285ba10d | ||
|
|
0180196d7e | ||
|
|
167d9d34eb | ||
|
|
ab288f1593 | ||
|
|
5813ad95cf | ||
|
|
6801c960b1 | ||
|
|
76d1148a98 | ||
|
|
f63ed78f5b | ||
|
|
0ef248574c | ||
|
|
415fac8a25 | ||
|
|
6cbb77b591 | ||
|
|
65ea8edea7 | ||
|
|
c87fbfd3f8 | ||
|
|
faad739f97 | ||
|
|
38bcb8a724 | ||
|
|
82237f2e79 | ||
|
|
fd363c69cc | ||
|
|
e7769ce467 | ||
|
|
76273300e7 | ||
|
|
cb6d74d7d9 | ||
|
|
cfe78471aa | ||
|
|
e79e0cfb66 | ||
|
|
a74bc81ff8 | ||
|
|
b10b7a713e | ||
|
|
c9a2120c54 | ||
|
|
4e2d337620 | ||
|
|
ec33cdcb29 | ||
|
|
4cfddf1d8d | ||
|
|
3f9b86d8e7 | ||
|
|
f4fdb94a3f | ||
|
|
02856877a6 | ||
|
|
0a5f9307d2 | ||
|
|
579968143c | ||
|
|
aa454a5542 | ||
|
|
ce563085b5 | ||
|
|
6f99b22dc6 | ||
|
|
b08f228191 | ||
|
|
55252300c6 | ||
|
|
f99934b994 | ||
|
|
cd16fa43a0 | ||
|
|
ae9d82430a | ||
|
|
d75ca0c8f0 | ||
|
|
66a4b1c2df | ||
|
|
6fe39d99ac | ||
|
|
388c249212 | ||
|
|
af583145ed | ||
|
|
9c8b7b324f | ||
|
|
a3f5ef1a54 | ||
|
|
305658da3a | ||
|
|
2b24ebf539 | ||
|
|
13d5015fc3 | ||
|
|
13cf1a687e | ||
|
|
d2f434879c | ||
|
|
c3ffaa7ce2 | ||
|
|
2955c167c2 | ||
|
|
81d1bf6d27 | ||
|
|
46ce345203 | ||
|
|
363e69f01c | ||
|
|
9b0875169b | ||
|
|
e616247254 | ||
|
|
cc5f22df79 | ||
|
|
3448467953 | ||
|
|
74dbb96d85 | ||
|
|
d2cfe76a28 | ||
|
|
045e9db7b8 | ||
|
|
460b1d3a66 | ||
|
|
a463f2a855 | ||
|
|
8b3399b8f6 | ||
|
|
ef59d6dcb9 | ||
|
|
1b429b3f99 | ||
|
|
5098f7dee1 | ||
|
|
c509aaf246 | ||
|
|
d7333dec84 | ||
|
|
9d97494cfc | ||
|
|
acf9e7caea | ||
|
|
f6d000b26a | ||
|
|
ba5b35d0cc | ||
|
|
1eae8222c4 | ||
|
|
9b5a519bc7 | ||
|
|
b8a209249e | ||
|
|
ecc1b69f5c | ||
|
|
6253bc6c14 | ||
|
|
7768a4c1ba | ||
|
|
cd1bc7a695 | ||
|
|
42f45f9a83 | ||
|
|
d081eb0a2e | ||
|
|
504533991b | ||
|
|
44a5976b85 | ||
|
|
ac65b93b43 | ||
|
|
e9d27c521e |
No files matched your search
@@ -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.18.4 \
|
||||
NODE_VERSION=v12.20.0 \
|
||||
METEOR_RELEASE=1.10.2 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
@@ -39,6 +43,7 @@ ENV \
|
||||
TRUSTED_URL="" \
|
||||
WEBHOOKS_ATTRIBUTES="" \
|
||||
OAUTH2_ENABLED=false \
|
||||
OAUTH2_CA_CERT="" \
|
||||
OAUTH2_ADFS_ENABLED=false \
|
||||
OAUTH2_LOGIN_STYLE=redirect \
|
||||
OAUTH2_CLIENT_ID="" \
|
||||
|
||||
@@ -81,7 +81,7 @@ parts:
|
||||
wekan:
|
||||
source: .
|
||||
plugin: nodejs
|
||||
node-engine: 12.18.4
|
||||
node-engine: 12.20.0
|
||||
node-packages:
|
||||
- node-gyp
|
||||
- node-pre-gyp
|
||||
|
||||
@@ -83,7 +83,7 @@ parts:
|
||||
wekan:
|
||||
source: .
|
||||
plugin: nodejs
|
||||
node-engine: 12.18.4
|
||||
node-engine: 12.20.0
|
||||
node-packages:
|
||||
- node-gyp
|
||||
- node-pre-gyp
|
||||
|
||||
+7
-8
@@ -6,8 +6,8 @@
|
||||
meteor-base@1.4.0
|
||||
|
||||
# Build system
|
||||
ecmascript@0.14.3
|
||||
standard-minifier-css@1.6.1
|
||||
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,17 +72,15 @@ simple:rest-accounts-password
|
||||
useraccounts:core
|
||||
email@2.0.0
|
||||
horka:swipebox
|
||||
dynamic-import@0.5.2
|
||||
staringatlights:fast-render
|
||||
dynamic-import@0.5.4
|
||||
|
||||
accounts-password@1.6.2
|
||||
accounts-password@1.6.3
|
||||
cfs:gridfs
|
||||
rzymek:fullcalendar
|
||||
momentjs:moment@2.22.2
|
||||
browser-policy-framing@1.1.0
|
||||
mquandalle:moment
|
||||
msavin:usercache
|
||||
mdg:meteor-apm-agent@3.2.0-rc.0!
|
||||
# Keep stylus in 1.1.0, because building v2 takes extra 52 minutes.
|
||||
coagmano:stylus@1.1.0!
|
||||
lucasantoniassi:accounts-lockout
|
||||
@@ -95,7 +93,6 @@ konecty:mongo-counter
|
||||
percolate:synced-cron
|
||||
easylogic:summernote
|
||||
cfs:filesystem
|
||||
ostrio:cookies
|
||||
tmeasday:check-npm-versions
|
||||
steffo:meteor-accounts-saml
|
||||
rajit:bootstrap3-datepicker-fi
|
||||
@@ -146,3 +143,5 @@ rajit:bootstrap3-datepicker-uk
|
||||
rajit:bootstrap3-datepicker-vi
|
||||
rajit:bootstrap3-datepicker-zh-cn
|
||||
rajit:bootstrap3-datepicker-zh-tw
|
||||
staringatlights:fast-render
|
||||
spacebars
|
||||
+1
-1
@@ -1 +1 @@
|
||||
METEOR@1.11.1
|
||||
METEOR@1.12
|
||||
+11
-13
@@ -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
|
||||
@@ -11,7 +11,7 @@ allow-deny@1.1.0
|
||||
arillo:flow-router-helpers@0.5.2
|
||||
audit-argument-checks@1.0.7
|
||||
autoupdate@1.6.0
|
||||
babel-compiler@7.5.3
|
||||
babel-compiler@7.5.4
|
||||
babel-runtime@1.5.0
|
||||
base64@1.0.12
|
||||
binary-heap@1.0.11
|
||||
@@ -55,9 +55,9 @@ ddp-rate-limiter@1.0.9
|
||||
ddp-server@2.3.2
|
||||
deps@1.0.12
|
||||
diff-sequence@1.1.1
|
||||
dynamic-import@0.5.3
|
||||
dynamic-import@0.5.4
|
||||
easylogic:summernote@0.8.8
|
||||
ecmascript@0.14.3
|
||||
ecmascript@0.14.4
|
||||
ecmascript-runtime@0.7.0
|
||||
ecmascript-runtime-client@0.11.0
|
||||
ecmascript-runtime-server@0.10.0
|
||||
@@ -91,7 +91,6 @@ logging@1.1.20
|
||||
lucasantoniassi:accounts-lockout@1.0.0
|
||||
matb33:collection-hooks@0.9.1
|
||||
matteodem:easy-search@1.6.4
|
||||
mdg:meteor-apm-agent@3.3.0
|
||||
mdg:validation-error@0.5.1
|
||||
meteor@1.9.3
|
||||
meteor-base@1.4.0
|
||||
@@ -104,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.15.0
|
||||
modules-runtime@0.12.0
|
||||
momentjs:moment@2.29.0
|
||||
mongo@1.10.0
|
||||
mongo-decimal@0.1.1
|
||||
momentjs:moment@2.29.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
|
||||
@@ -132,7 +131,6 @@ oauth2@1.3.0
|
||||
observe-sequence@1.0.16
|
||||
ongoworks:speakingurl@1.1.0
|
||||
ordered-dict@1.1.0
|
||||
ostrio:cookies@2.6.0
|
||||
peerlibrary:assert@0.3.0
|
||||
peerlibrary:base-component@0.16.0
|
||||
peerlibrary:blaze-components@0.15.1
|
||||
@@ -195,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
|
||||
@@ -214,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.6.1
|
||||
standard-minifier-css@1.7.1
|
||||
standard-minifier-js@2.6.0
|
||||
staringatlights:fast-render@3.3.0
|
||||
staringatlights:inject-data@2.3.0
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ sudo: required
|
||||
|
||||
env:
|
||||
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
|
||||
TRAVIS_NODE_VERSION: 12.18.4
|
||||
TRAVIS_NODE_VERSION: 12.20.0
|
||||
TRAVIS_NPM_VERSION: latest
|
||||
|
||||
before_install:
|
||||
|
||||
+323
@@ -1,3 +1,326 @@
|
||||
# v4.58 2020-12-09 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix issues when duplicating board](https://github.com/wekan/wekan/pull/3387).
|
||||
Thanks to daniel-eder.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# 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:
|
||||
|
||||
- [Set minimum height to icons at All Boards page](https://github.com/wekan/wekan/commit/6193a0b64e85df2f2353192e7efb16680b436622).
|
||||
Thanks to xet7.
|
||||
- [Increase avatar size](https://github.com/wekan/wekan/pull/3360).
|
||||
Thanks to centralhardware.
|
||||
- [Modern Dark theme: card details as lightbox](https://github.com/wekan/wekan/pull/3359).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.54 2020-11-17 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add keyboard shortcut / for search](https://github.com/wekan/wekan/pull/3354).
|
||||
Thanks to helioguardabaxo.
|
||||
- [Added back variable auto height of icons at All Boards page](https://github.com/wekan/wekan/commit/9dbb10c59b4bb1b16b7942cc0b60741a1fbe9110).
|
||||
Thanks to xet7.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Upgrade to Node.js 12.19.1](https://github.com/wekan/wekan/commit/f786afc4b9d0e5e4a057b5f3d7995377873022cf).
|
||||
Thanks to Node.js developers.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.53 2020-11-15 Wekan release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Use Quay for Docker builds, because Docker Hub builds show ENOMEM error](https://github.com/wekan/wekan/commit/22501749da708a51b89ef9ff0aee4ac6ba529ed9).
|
||||
Thanks to xet7.
|
||||
- [Update Docker upgrade info](https://github.com/wekan/wekan/commit/d0040754ea75a26926a187ce47dbe529a15e0926).
|
||||
Thanks to xet7.
|
||||
- [Use latest MongoDB on Docker](https://github.com/wekan/wekan/commit/8250cbcf6e417d21ffdc4f14495792768b0bc9ef).
|
||||
Thanks to xet7.
|
||||
- [In rebuild-wekan.sh install dependencies, Install npm](https://github.com/wekan/wekan/commit/345e2357c8fd030e943f9729f790db980d3a727c).
|
||||
Thanks to xet7.
|
||||
- [In rebuild-wekan.sh install dependencies, uncomment chown](https://github.com/wekan/wekan/commit/21aebe845f3f4911d9bb824f0f33bdb19a3a9af6).
|
||||
Thanks to xet7.
|
||||
- [Update markdown-it and markdown-it-emoji dependencies](https://github.com/wekan/wekan/commit/222fca3ad7aa2b67329dca64e84eb72899fd8137).
|
||||
Thanks to developers of markdown-it and markdown-it-emoji.
|
||||
|
||||
and adds the following improvements:
|
||||
|
||||
- [Minor improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3348).
|
||||
Thanks to jghaanstra.
|
||||
- [Added missing bottom padding to lists](https://github.com/wekan/wekan/pull/3351).
|
||||
Thanks to danger89.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.52 2020-11-12 Wekan release
|
||||
|
||||
This release adds the following improvements:
|
||||
|
||||
- [Some more small improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3346).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.51 2020-11-11 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Board admin can edit and delete comments as well](https://github.com/wekan/wekan/pull/3340).
|
||||
Thanks to mfilser.
|
||||
- [Drag handles for checklist](https://github.com/wekan/wekan/pull/3341).
|
||||
Thanks to mfilser.
|
||||
- [Custom URL Schemes autolinked](https://github.com/wekan/wekan/pull/3339).
|
||||
Thanks to brian-j.
|
||||
|
||||
and adds the following improvements:
|
||||
|
||||
- [Improvements to Modern Dark Theme](https://github.com/wekan/wekan/pull/3344).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.50 2020-11-10 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Add 'Modern Dark' theme [Part1](https://github.com/wekan/wekan/pulls/3335)
|
||||
and [Part2](https://github.com/wekan/wekan/commit/6801c960b115be4265bf18ba05c444ac79aef887).
|
||||
Thanks to jghaanstra, helioguardabaxo and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix edit description to require only one click](https://github.com/wekan/wekan/commit/0ef248574c2751be1245c5748a9cbbe5ba2969b5).
|
||||
Thanks to uusijani and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.49 2020-11-04 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [LDAP: Sync email address](https://github.com/wekan/wekan/pull/3329).
|
||||
Thanks to gramakri.
|
||||
|
||||
and adds the following changes:
|
||||
|
||||
- [Changed board icons bigger at All Boards page](https://github.com/wekan/wekan/commit/76273300e749ebe3b1d711dee84336d03b31ed49).
|
||||
Thanks to xet7.
|
||||
|
||||
and adds the following translations:
|
||||
|
||||
- [Translate some part of Gantt chart of Wekan Gantt GPL version](https://github.com/wekan/wekan/commit/fd363c69cc6e1cf3a283e3dbcc323edb1eae896e).
|
||||
This only adds translations to all Wekan versions, not any GPL code to MIT version.
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Trello import](https://github.com/wekan/wekan/commit/faad739f974a0392ca73e4db03e5267edcc5dec7).
|
||||
Thanks to elct9620 and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.48 2020-11-02 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Smaller board icons to All Boards Page, and use full page width, so more board icons fit visible at once.
|
||||
Removed variable height, because different heights made it look a little unbalanced](https://github.com/wekan/wekan/commit/0a5f9307d27a4b77aa7ff005701fea8ce0d50ec8).
|
||||
Thanks to xet7.
|
||||
- [Admin Panel / Settings / Layout / Custom Top Left Corner Logo Height](https://github.com/wekan/wekan/commit/4cfddf1d8d37bdbbb58c050333ee6ea2afc3e6f9).
|
||||
Thanks to xet7.
|
||||
- [When RICHER_CARD_COMMENT_EDITOR=true, use richer editor also when editing card description](https://github.com/wekan/wekan/commit/4e2d337620ac490b8e99ee968e6f92477e09b900).
|
||||
Thanks to xet7.
|
||||
|
||||
and removes the following dependencies:
|
||||
|
||||
- [Removed hot-module-replacement and mdg:meteor-apm-agent](https://github.com/wekan/wekan/commit/aa454a5542e5ab1d581eef50cdb5c96ac2ada940).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Clone Board](https://github.com/wekan/wekan/commit/f4fdb94a3fcd63432ef7ded4df970b3491700020).
|
||||
Thanks to e-gaulue and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.47 2020-11-01 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix: OAuth2 fails with self-signed server certificate](https://github.com/wekan/wekan/pull/3325) and
|
||||
[Added related settings for OAUTH2_CA_CERT that is optional OAuth2 CA Cert](https://github.com/wekan/wekan/commit/55252300c601ea40dc8adad1887397b31ceb0bb2).
|
||||
Thanks to faust64 and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.46 2020-10-30 Wekan release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Upgrade to Meteor 2.0-beta.4](https://github.com/wekan/wekan/commit/af583145ed2b36af8e6c72765fd35d70a292fad6).
|
||||
Thanks to Meteor developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix: Use current boardId when a worker moves a card](https://github.com/wekan/wekan/pull/3323).
|
||||
Thanks to jtbairdsr.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.45 2020-10-30 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix can not upload and download files, by changing back to Node.js 12.19.0 and adding
|
||||
fast-render](https://github.com/wekan/wekan/commit/d2f434879caa20d69651f23fa2124074f55c9893).
|
||||
Current file storing to MongoDB code was not yet compatible with newer Node.js.
|
||||
Thanks to eskogito and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.44 2020-10-28 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- For development, [add Meteor 2.0 Hot Module Replacement](https://github.com/wekan/wekan/commit/e6162472548d9dff497dd76e82d23044f779f757).
|
||||
More info at https://forums.meteor.com/t/meteor-2-0-beta-with-hot-module-replacement-hmr/54313/8 .
|
||||
Thanks to zodern.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Upgrade to Node.js 14.15.0](https://github.com/wekan/wekan/commit/045e9db7b8f0de852ef4486cb1ad200d6ca7296d).
|
||||
Thanks to Node.js and Meteor.js developers.
|
||||
- [Upgrade to Meteor 2.0-beta.3. Removed fast-render and ostrio:cookies](https://github.com/wekan/wekan/commit/a463f2a855498935db5b66e5fad446ce465adab1).
|
||||
Thanks to Meteor.js developers and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed: With ORACLE_OIM_ENABLED, allow setting OAUTH2_REQUEST_PERMISSIONS with environment variable](https://github.com/wekan/wekan/commit/1b429b3f99c32840ebb0ff9a29015aa8c28ec644).
|
||||
Thanks to xet7.
|
||||
- [Changed public board changing Swimlanes/Lists/Calendar view and changing Hide minicard label text
|
||||
from using cookies to using browser localStorage](https://github.com/wekan/wekan/commit/460b1d3a664b648bc03c40422b9d175401e229c1),
|
||||
to remove some errors from browser inspect console.
|
||||
Thanks to xet7.
|
||||
- [Fix Modern theme board canvas background](https://github.com/wekan/wekan/pull/3312).
|
||||
Thanks to helioguardabaxo.
|
||||
- [Fix: 1) Expose moving cards on mobile to workers. 2) Hide the move to another board functionality
|
||||
in the submenu (only from the worker) so that the worker is still constrained to a single
|
||||
board](https://github.com/wekan/wekan/pull/3315).
|
||||
Thanks to jtbairdsr.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.43 2020-10-20 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Allow more than one assignee](https://github.com/wekan/wekan/commit/acf9e7caeaf59e1030ae1014c0cb2fb7dae27147).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixed CSV/TSV export](https://github.com/wekan/wekan/commit/d7333dec84328ca191f430d96aaf9e550840631a).
|
||||
Please test and report any problems [at issue #3173](https://github.com/wekan/wekan/issues/3173).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.42 2020-10-14 Wekan release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Upgrade to Node.js 12.19.0](https://github.com/wekan/wekan/commit/b8a209249e968b90917af319adf24fedf2157396).
|
||||
Thanks to Node.js developers.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.41 2020-10-03 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+7
-2
@@ -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.18.4 \
|
||||
NODE_VERSION=v12.20.0 \
|
||||
METEOR_RELEASE=1.10.2 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
@@ -41,6 +45,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
|
||||
TRUSTED_URL="" \
|
||||
WEBHOOKS_ATTRIBUTES="" \
|
||||
OAUTH2_ENABLED=false \
|
||||
OAUTH2_CA_CERT="" \
|
||||
OAUTH2_ADFS_ENABLED=false \
|
||||
OAUTH2_LOGIN_STYLE=redirect \
|
||||
OAUTH2_CLIENT_ID="" \
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
|
||||
ENV QEMU_VERSION=v4.2.0-6 \
|
||||
QEMU_ARCHITECTURE=aarch64 \
|
||||
NODE_ARCHITECTURE=linux-arm64 \
|
||||
NODE_VERSION=v12.18.4 \
|
||||
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.18.4 \
|
||||
NODE_VERSION=v12.20.0 \
|
||||
NODE_ENV=production \
|
||||
NPM_VERSION=latest \
|
||||
WITH_API=true \
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
[](https://github.com/wekan/wekan/graphs/contributors)
|
||||
[](https://quay.io/repository/wekan/wekan)
|
||||
[](https://hub.docker.com/r/wekanteam/wekan)
|
||||
[](https://hub.docker.com/r/wekanteam/wekan)
|
||||
[![Wekan Build Status][travis_badge]][travis_status]
|
||||
[](https://www.codacy.com/app/xet7/wekan?utm_source=github.com&utm_medium=referral&utm_content=wekan/wekan&utm_campaign=Badge_Grade)
|
||||
[](https://codeclimate.com/github/wekan/wekan)
|
||||
@@ -13,6 +11,12 @@
|
||||
[](https://www.openhub.net/p/wekan)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
|
||||
|
||||
NOTE: Docker Hub builds are broken with error ENOMEM. Only Quay works, see docker-compose.yml .
|
||||
<!--
|
||||
[](https://hub.doc>
|
||||
-->
|
||||
|
||||
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
|
||||
|
||||
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v4.41.0"
|
||||
appVersion: "v4.58.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -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 -----------
|
||||
@@ -15,11 +15,18 @@ template(name="cardActivities")
|
||||
each activityData in currentCard.activities
|
||||
+activity(activity=activityData card=card mode=mode)
|
||||
|
||||
template(name="editOrDeleteComment")
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
|
||||
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')
|
||||
@@ -118,11 +125,10 @@ template(name="activity")
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
|
||||
if ($eq currentUser._id activity.comment.userId)
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
if($eq currentUser._id activity.comment.userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
|
||||
if($eq activity.activityType 'deleteComment')
|
||||
| {{{_ 'activity-deleteComment' currentData.commentId}}}.
|
||||
@@ -137,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;
|
||||
|
||||
@@ -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,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
const subManager = new SubsManager();
|
||||
const { calculateIndex } = Utils;
|
||||
const swimlaneWhileSortingHeight = 150;
|
||||
@@ -197,7 +195,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
showDesktopDragHandles = (currentUser.profile || {})
|
||||
.showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
showDesktopDragHandles = true;
|
||||
} else {
|
||||
showDesktopDragHandles = false;
|
||||
@@ -237,7 +235,9 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).boardView === 'board-view-swimlanes';
|
||||
} else {
|
||||
return cookies.get('boardView') === 'board-view-swimlanes';
|
||||
return (
|
||||
window.localStorage.getItem('boardView') === 'board-view-swimlanes'
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -246,7 +246,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).boardView === 'board-view-lists';
|
||||
} else {
|
||||
return cookies.get('boardView') === 'board-view-lists';
|
||||
return window.localStorage.getItem('boardView') === 'board-view-lists';
|
||||
}
|
||||
},
|
||||
|
||||
@@ -255,7 +255,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).boardView === 'board-view-cal';
|
||||
} else {
|
||||
return cookies.get('boardView') === 'board-view-cal';
|
||||
return window.localStorage.getItem('boardView') === 'board-view-cal';
|
||||
}
|
||||
},
|
||||
|
||||
@@ -417,7 +417,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).boardView === 'board-view-cal';
|
||||
} else {
|
||||
return cookies.get('boardView') === 'board-view-cal';
|
||||
return window.localStorage.getItem('boardView') === 'board-view-cal';
|
||||
}
|
||||
},
|
||||
}).register('calendarView');
|
||||
@@ -589,22 +589,25 @@ setBoardClear(color1,color2)
|
||||
position relative
|
||||
|
||||
&#header-quick-access #header-user-bar .header-user-bar-name
|
||||
margin: 5px 3px 0 0;
|
||||
margin: 5px 3px 0 0
|
||||
|
||||
section#notifications-drawer
|
||||
top: 46px;
|
||||
top: 46px
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,.1)
|
||||
max-width: 100%
|
||||
|
||||
section#notifications-drawer .header
|
||||
top: 46px;
|
||||
top: 46px
|
||||
border-radius: 0 3px
|
||||
height: 21px
|
||||
background: #f7f7f7
|
||||
|
||||
.board-canvas
|
||||
background: #f5f5f5
|
||||
|
||||
/* Swimlane */
|
||||
.swimlane
|
||||
background: #f5f5f5
|
||||
background: none
|
||||
|
||||
.swimlane .swimlane-header-wrap .swimlane-header
|
||||
font-family: Poppins
|
||||
@@ -739,3 +742,283 @@ setBoardClear(color1,color2)
|
||||
|
||||
section#notifications-drawer .header .toggle-read
|
||||
top: 18px
|
||||
|
||||
/*
|
||||
Alternate "Modern Dark" Styling
|
||||
*/
|
||||
.board-color-moderndark
|
||||
setBoardColor(#2a2a2a)
|
||||
|
||||
/* General */
|
||||
body
|
||||
background: #2a2a2a
|
||||
|
||||
.board-wrapper .board-canvas .board-overlay
|
||||
opacity: .6
|
||||
|
||||
/* Forms */
|
||||
button[type=submit].primary, .board-color-modern input[type=submit].primary
|
||||
background-color: #819C5D
|
||||
|
||||
.toggle-switch:checked~.toggle-label
|
||||
background-color: #D2E9B4
|
||||
|
||||
.toggle-label:after, .board-color-modern .toggle-switch:checked~.toggle-label:after
|
||||
background-color: #819C5D !important
|
||||
|
||||
/* Headers */
|
||||
&#header-quick-access, .background-box, #header
|
||||
background-color: #333333
|
||||
|
||||
&#header-quick-access
|
||||
padding: 4px
|
||||
font-size: 14px
|
||||
|
||||
&#header #header-main-bar
|
||||
height: 30px
|
||||
padding-top: 3px
|
||||
padding-bottom: 3px
|
||||
|
||||
&#header
|
||||
box-shadow: 0 6px 6px -6px rgba(0,0,0,0.8)
|
||||
|
||||
&#header-quick-access ul
|
||||
overflow: visible
|
||||
|
||||
&#header-quick-access ul li.current
|
||||
border: 0 !important
|
||||
font-weight: bold
|
||||
|
||||
&#header-quick-access ul li.separator
|
||||
display: none
|
||||
|
||||
&#header-quick-access ul li:nth-child(3)
|
||||
margin-right: 10px
|
||||
|
||||
&#header-quick-access ul li a
|
||||
padding: 5px 10px
|
||||
border-radius: 2px
|
||||
|
||||
&#header-quick-access ul li.current a
|
||||
border-radius: 2px
|
||||
background: rgba(255,255,255,.2)
|
||||
|
||||
&#header #header-main-bar h1
|
||||
font-family: Poppins
|
||||
font-weight: bold
|
||||
line-height: 0.8em
|
||||
padding-top: 10px
|
||||
|
||||
/* Content */
|
||||
.board-canvas
|
||||
background: #2a2a2a
|
||||
padding: 10px 10px 0
|
||||
|
||||
/* Swimlanes */
|
||||
.swimlane .swimlane-header-wrap
|
||||
background-color: #666666
|
||||
color: #cccccc
|
||||
padding: 4px 0
|
||||
margin-bottom: 10px
|
||||
|
||||
.swimlane .swimlane-header-wrap .swimlane-header
|
||||
font-family: Poppins
|
||||
|
||||
.swimlane
|
||||
background: #2a2a2a
|
||||
line-height: 15px
|
||||
max-height: 100%
|
||||
|
||||
/* Lists */
|
||||
.swimlane .list
|
||||
background: #666666
|
||||
border-radius: 0
|
||||
border: 0px solid #666666
|
||||
flex: 0 0 265px;
|
||||
|
||||
.swimlane .list:nth-child(even)
|
||||
background: #5f5f5f
|
||||
|
||||
.list-header
|
||||
background: #333333
|
||||
padding-top: 10px
|
||||
border-bottom: 6px solid #333333
|
||||
|
||||
.list-header .viewer
|
||||
padding-left: 10px
|
||||
|
||||
.list-header .list-header-name
|
||||
line-height: 14px
|
||||
color: #eeeeee
|
||||
|
||||
.list-header .list-header-menu
|
||||
padding-top: 17px
|
||||
|
||||
.list-body
|
||||
scrollbar-width: thin
|
||||
scrollbar-color: #343434 #999999
|
||||
|
||||
.list-body::-webkit-scrollbar
|
||||
width: 10px
|
||||
|
||||
.list-body::-webkit-scrollbar-track
|
||||
background: #343434
|
||||
border-radius: 3px
|
||||
margin: 4px 0
|
||||
|
||||
.list-body::-webkit-scrollbar-thumb
|
||||
background-color: #999999
|
||||
border-radius: 6px
|
||||
border: 3px solid #343434
|
||||
|
||||
.list-body .open-minicard-composer:hover
|
||||
background: none
|
||||
box-shadow: none
|
||||
border-bottom: 0
|
||||
|
||||
.list-body a.open-minicard-composer, .list-body a.open-minicard-composer i, .list .list-composer .open-list-composer i
|
||||
color: #bbbbbb
|
||||
|
||||
.list-body a.open-minicard-composer:hover, .list-body a.open-minicard-composer:hover i, .list .list-composer .open-list-composer:hover i
|
||||
color: #ffffff
|
||||
|
||||
/* Mini Card */
|
||||
.minicard
|
||||
background-color: #444444
|
||||
color: #cccccc
|
||||
border-radius: 2px
|
||||
font-size: 0.9em
|
||||
padding: 10px
|
||||
box-shadow: 0 4px 3px -3px rgba(0,0,0,0.8)
|
||||
border-bottom: 1px solid #666666
|
||||
|
||||
.minicard:hover
|
||||
background-color: #555555 !important
|
||||
|
||||
.minicard .card-label
|
||||
font-size: 11px
|
||||
font-weight: 400
|
||||
padding: 2px 6px 0
|
||||
|
||||
.minicard .badges
|
||||
color: #bbbbbb
|
||||
|
||||
.minicard .date
|
||||
margin-top: 7px
|
||||
font-size: 11px
|
||||
|
||||
.card-date
|
||||
color: #555555
|
||||
|
||||
.card-date.almost-due
|
||||
color: #666666
|
||||
|
||||
.minicard.minicard-composer textarea.minicard-composer-textarea:focus
|
||||
background-color: #eeeeee
|
||||
color: #333333
|
||||
padding: 6px
|
||||
|
||||
.is-selected .minicard
|
||||
background-color: #666666
|
||||
|
||||
/* Card Details */
|
||||
.card-details
|
||||
position: absolute
|
||||
top: 30px
|
||||
left: calc(50% - 384px)
|
||||
width: 768px
|
||||
max-height: calc(100% - 60px)
|
||||
background-color: #454545
|
||||
color: #cccccc
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
|
||||
border: 1px solid #111111
|
||||
z-index: 100 !important
|
||||
|
||||
.card-details
|
||||
scrollbar-width: thin
|
||||
scrollbar-color: #343434 #999999
|
||||
|
||||
.card-details::-webkit-scrollbar
|
||||
width: 16px
|
||||
|
||||
.card-details::-webkit-scrollbar-track
|
||||
background: #343434
|
||||
|
||||
.card-details::-webkit-scrollbar-thumb
|
||||
background-color: #999999
|
||||
border-radius: 6px
|
||||
border: 4px solid #343434
|
||||
|
||||
.card-details .card-details-header
|
||||
background: #333333
|
||||
color: #cccccc
|
||||
border-bottom: 2px solid #2d2d2d
|
||||
|
||||
.card-details hr
|
||||
background: #2d2d2d
|
||||
|
||||
.card-details .card-details-item-title
|
||||
color: #ffffff
|
||||
|
||||
.card-details .new-description textarea, .card-details .new-comment textarea
|
||||
background-color: #dddddd
|
||||
color: #111111
|
||||
|
||||
.card-details .checklist
|
||||
background-color: transparent
|
||||
margin-bottom: 10px
|
||||
|
||||
.card-details .checklist-item
|
||||
background-color: rgba(255,255,255,0.1)
|
||||
padding: 2px 8px
|
||||
border-radius: 3px
|
||||
font-size: 13px
|
||||
margin-top: 5px
|
||||
|
||||
.card-details .check-box.materialCheckBox
|
||||
border-color: #ffffff
|
||||
|
||||
.card-details .check-box.materialCheckBox.is-checked
|
||||
border-bottom: 2px solid #819C5D
|
||||
border-right: 2px solid #819C5D
|
||||
border-top: 0
|
||||
border-left: 0
|
||||
|
||||
.card-details .js-add-checklist-item
|
||||
margin-top: 4px
|
||||
|
||||
.checklist-items .add-checklist-item
|
||||
margin-top: .7em
|
||||
|
||||
.card-details .activities .activity .activity-desc .activity-comment
|
||||
background-color: #cccccc
|
||||
color: #222222
|
||||
|
||||
/* Sidebar */
|
||||
.sidebar .sidebar-shadow
|
||||
background-color: #222222
|
||||
box-shadow: -10px 0 5px -10px #444444
|
||||
border-left: 1px solid #333333
|
||||
color: #cccccc
|
||||
|
||||
.activities .activity .activity-desc .activity-comment
|
||||
background-color: #cccccc
|
||||
color: #222222
|
||||
|
||||
/* Pop-Ups for "Modern Dark" */
|
||||
.pop-over.board-color-moderndark
|
||||
background-color: #454545
|
||||
color: #cccccc
|
||||
border: 1px solid #111111
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
|
||||
|
||||
.pop-over.board-color-moderndark .header
|
||||
background-color: #333333
|
||||
|
||||
.pop-over.board-color-moderndark .header-title
|
||||
font-family: Poppins
|
||||
font-size: 16px
|
||||
color: #cccccc
|
||||
|
||||
.pop-over.board-color-moderndark .pop-over-list li:hover > a
|
||||
background-color: #819C5D !important
|
||||
@@ -7,7 +7,7 @@ $spaceBetweenTiles = 16px
|
||||
|
||||
li
|
||||
float: left
|
||||
width: 25%
|
||||
width: 20%
|
||||
box-sizing: border-box
|
||||
position: relative
|
||||
|
||||
@@ -33,13 +33,12 @@ $spaceBetweenTiles = 16px
|
||||
overflow: hidden;
|
||||
background-color: #999
|
||||
color: #f6f6f6
|
||||
height: auto
|
||||
min-height: 100px
|
||||
font-size: 16px
|
||||
line-height: 22px
|
||||
border-radius: 3px
|
||||
display: block
|
||||
font-weight: 700
|
||||
min-height: 18px
|
||||
padding: 8px
|
||||
margin: ($spaceBetweenTiles/2)
|
||||
position: relative
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
template(name="descriptionForm")
|
||||
.new-description.js-new-description(
|
||||
class="{{#if descriptionFormIsOpen}}is-open{{/if}}")
|
||||
form.js-new-description-form
|
||||
+editor(class="js-new-description-input" data-meteor-emoji-large="true" autofocus="autofocus")
|
||||
| {{getUnsavedValue 'cardDescription' _id getDescription}}
|
||||
@@ -0,0 +1,33 @@
|
||||
const descriptionFormIsOpen = new ReactiveVar(false);
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onDestroyed() {
|
||||
descriptionFormIsOpen.set(false);
|
||||
},
|
||||
|
||||
descriptionFormIsOpen() {
|
||||
return descriptionFormIsOpen.get();
|
||||
},
|
||||
|
||||
getInput() {
|
||||
return this.$('.js-new-description-input');
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'submit .js-card-description'(event) {
|
||||
event.preventDefault();
|
||||
const description = this.currentComponent().getValue();
|
||||
this.data().setDescription(description);
|
||||
},
|
||||
// Pressing Ctrl+Enter should submit the form
|
||||
'keydown form textarea'(evt) {
|
||||
if (evt.keyCode === 13 && (evt.metaKey || evt.ctrlKey)) {
|
||||
this.find('button[type=submit]').click();
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
}).register('descriptionForm');
|
||||
@@ -0,0 +1,60 @@
|
||||
@import 'nib'
|
||||
|
||||
.new-description
|
||||
position: relative
|
||||
margin: 0 0 20px 0
|
||||
|
||||
|
||||
&.is-open
|
||||
.helper
|
||||
display: inline-block
|
||||
|
||||
textarea
|
||||
min-height: 100px
|
||||
color: #4d4d4d
|
||||
cursor: auto
|
||||
overflow: hidden
|
||||
word-wrap: break-word
|
||||
|
||||
.too-long
|
||||
margin-top: 8px
|
||||
|
||||
textarea
|
||||
background-color: #fff
|
||||
border: 0
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .23)
|
||||
color: #8c8c8c
|
||||
height: 36px
|
||||
margin: 4px 4px 6px 0
|
||||
padding: 9px 11px
|
||||
width: 100%
|
||||
|
||||
&:hover,
|
||||
&:is-open
|
||||
background-color: #fff
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, .33)
|
||||
border: 0
|
||||
cursor: pointer
|
||||
|
||||
&:is-open
|
||||
cursor: auto
|
||||
|
||||
.description-item
|
||||
background-color: #fff
|
||||
border: 0
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .23)
|
||||
color: #8c8c8c
|
||||
height: 36px
|
||||
margin: 4px 4px 6px 0
|
||||
width: 92%
|
||||
|
||||
&:hover
|
||||
background: darken(white, 12%)
|
||||
|
||||
&.add-description
|
||||
display: flex
|
||||
margin: 5px
|
||||
|
||||
a
|
||||
display: block
|
||||
margin: auto
|
||||
@@ -42,12 +42,12 @@ template(name="cardDetails")
|
||||
else
|
||||
p.warning {{_ 'card-archived'}}
|
||||
|
||||
.card-details-items
|
||||
.card-details-items
|
||||
if currentBoard.allowsLabels
|
||||
.card-details-item.card-details-item-labels
|
||||
h3.card-details-item-title
|
||||
i.fa.fa-tags
|
||||
| {{_ 'labels'}}
|
||||
| {{_ 'labels'}}
|
||||
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
|
||||
each labels
|
||||
span.card-label(class="card-label-{{color}}" title=name)
|
||||
@@ -57,7 +57,7 @@ template(name="cardDetails")
|
||||
unless currentUser.isWorker
|
||||
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
|
||||
i.fa.fa-plus
|
||||
|
||||
|
||||
if currentBoard.allowsReceivedDate
|
||||
hr
|
||||
.card-details-item.card-details-item-received
|
||||
@@ -245,8 +245,7 @@ template(name="cardDetails")
|
||||
| {{_ 'description'}}
|
||||
if currentBoard.allowsDescriptionText
|
||||
+inlinedCardDescription(classNames="card-description js-card-description")
|
||||
+editor(autofocus=true)
|
||||
| {{getUnsavedValue 'cardDescription' _id getDescription}}
|
||||
+descriptionForm
|
||||
.edit-controls.clearfix
|
||||
button.primary(type="submit") {{_ 'save'}}
|
||||
a.fa.fa-times-thin.js-close-inlined-form
|
||||
@@ -381,17 +380,18 @@ template(name="cardDetailsActionsPopup")
|
||||
a.js-move-card-to-bottom
|
||||
i.fa.fa-arrow-down
|
||||
| {{_ 'moveCardToBottom-title'}}
|
||||
unless currentUser.isWorker
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li
|
||||
a.js-move-card
|
||||
i.fa.fa-arrow-right
|
||||
| {{_ 'moveCardPopup-title'}}
|
||||
ul.pop-over-list
|
||||
li
|
||||
a.js-move-card
|
||||
i.fa.fa-arrow-right
|
||||
| {{_ 'moveCardPopup-title'}}
|
||||
unless currentUser.isWorker
|
||||
li
|
||||
a.js-copy-card
|
||||
i.fa.fa-copy
|
||||
| {{_ 'copyCardPopup-title'}}
|
||||
unless currentUser.isWorker
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li
|
||||
@@ -430,13 +430,14 @@ template(name="copyChecklistToManyCardsPopup")
|
||||
+boardsAndLists
|
||||
|
||||
template(name="boardsAndLists")
|
||||
label {{_ 'boards'}}:
|
||||
select.js-select-boards(autofocus)
|
||||
each boards
|
||||
if $eq _id currentBoard._id
|
||||
option(value="{{_id}}" selected) {{_ 'current'}}
|
||||
else
|
||||
option(value="{{_id}}") {{title}}
|
||||
unless currentUser.isWorker
|
||||
label {{_ 'boards'}}:
|
||||
select.js-select-boards(autofocus)
|
||||
each boards
|
||||
if $eq _id currentBoard._id
|
||||
option(value="{{_id}}" selected) {{_ 'current'}}
|
||||
else
|
||||
option(value="{{_id}}") {{title}}
|
||||
|
||||
label {{_ 'swimlanes'}}:
|
||||
select.js-select-swimlanes
|
||||
|
||||
@@ -250,12 +250,15 @@ BlazeComponent.extendComponent({
|
||||
|
||||
// Disable sorting if the current user is not a board member
|
||||
this.autorun(() => {
|
||||
const disabled = !userIsMember() || Utils.isMiniScreen();
|
||||
const disabled = !userIsMember();
|
||||
if (
|
||||
$checklistsDom.data('uiSortable') ||
|
||||
$checklistsDom.data('sortable')
|
||||
) {
|
||||
$checklistsDom.sortable('option', 'disabled', disabled);
|
||||
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
|
||||
$checklistsDom.sortable({ handle: '.checklist-handle' });
|
||||
}
|
||||
}
|
||||
if ($subtasksDom.data('uiSortable') || $subtasksDom.data('sortable')) {
|
||||
$subtasksDom.sortable('option', 'disabled', disabled);
|
||||
@@ -668,7 +671,11 @@ Template.moveCardPopup.events({
|
||||
// instead from a “component” state.
|
||||
const card = Cards.findOne(Session.get('currentCard'));
|
||||
const bSelect = $('.js-select-boards')[0];
|
||||
const boardId = bSelect.options[bSelect.selectedIndex].value;
|
||||
let boardId;
|
||||
// if we are a worker, we won't have a board select so we just use the
|
||||
// current boardId of the card.
|
||||
if (bSelect) boardId = bSelect.options[bSelect.selectedIndex].value;
|
||||
else boardId = card.boardId;
|
||||
const lSelect = $('.js-select-lists')[0];
|
||||
const listId = lSelect.options[lSelect.selectedIndex].value;
|
||||
const slSelect = $('.js-select-swimlanes')[0];
|
||||
|
||||
@@ -41,6 +41,8 @@ template(name="checklistDetail")
|
||||
|
||||
if canModifyCard
|
||||
h2.title.js-open-inlined-form.is-editable
|
||||
if isMiniScreenOrShowDesktopDragHandles
|
||||
span.fa.checklist-handle(class="fa-arrows" title="{{_ 'dragChecklist'}}")
|
||||
+viewer
|
||||
= checklist.title
|
||||
else
|
||||
@@ -101,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
|
||||
|
||||
@@ -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',
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -42,6 +42,11 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
|
||||
.js-delete-checklist
|
||||
@extends .delete-text
|
||||
|
||||
span.fa.checklist-handle
|
||||
padding-right: 20px
|
||||
padding-top: 6px
|
||||
float: right
|
||||
|
||||
|
||||
.js-confirm-checklist-delete
|
||||
background-color: darken(white, 3%)
|
||||
@@ -151,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
|
||||
|
||||
@@ -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,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
// Template.cards.events({
|
||||
// 'click .member': Popup.open('cardMember')
|
||||
// });
|
||||
@@ -34,10 +32,10 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
{
|
||||
'click .js-toggle-minicard-label-text'() {
|
||||
if (cookies.has('hiddenMinicardLabelText')) {
|
||||
cookies.remove('hiddenMinicardLabelText'); //true
|
||||
if (window.localStorage.getItem('hiddenMinicardLabelText')) {
|
||||
window.localStorage.removeItem('hiddenMinicardLabelText'); //true
|
||||
} else {
|
||||
cookies.set('hiddenMinicardLabelText', 'true'); //true
|
||||
window.localStorage.setItem('hiddenMinicardLabelText', 'true'); //true
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -50,7 +48,7 @@ Template.minicard.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -60,7 +58,7 @@ Template.minicard.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).hiddenMinicardLabelText;
|
||||
} else if (cookies.has('hiddenMinicardLabelText')) {
|
||||
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
.minicard-members,
|
||||
.minicard-assignees
|
||||
float: right
|
||||
margin: 2px -8px 12px 0
|
||||
margin: 2px -8px 2px 0
|
||||
|
||||
.member
|
||||
float: right
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export function getMembersToMap(data) {
|
||||
export function csvGetMembersToMap(data) {
|
||||
// we will work on the list itself (an ordered array of objects) when a
|
||||
// mapping is done, we add a 'wekan' field to the object representing the
|
||||
// imported member
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import trelloMembersMapper from './trelloMembersMapper';
|
||||
import wekanMembersMapper from './wekanMembersMapper';
|
||||
import csvMembersMapper from './csvMembersMapper';
|
||||
import { trelloGetMembersToMap } from './trelloMembersMapper';
|
||||
import { wekanGetMembersToMap } from './wekanMembersMapper';
|
||||
import { csvGetMembersToMap } from './csvMembersMapper';
|
||||
|
||||
const Papa = require('papaparse');
|
||||
|
||||
@@ -99,13 +99,13 @@ BlazeComponent.extendComponent({
|
||||
let membersToMap;
|
||||
switch (importSource) {
|
||||
case 'trello':
|
||||
membersToMap = trelloMembersMapper.getMembersToMap(dataObject);
|
||||
membersToMap = trelloGetMembersToMap(dataObject);
|
||||
break;
|
||||
case 'wekan':
|
||||
membersToMap = wekanMembersMapper.getMembersToMap(dataObject);
|
||||
membersToMap = wekanGetMembersToMap(dataObject);
|
||||
break;
|
||||
case 'csv':
|
||||
membersToMap = csvMembersMapper.getMembersToMap(dataObject);
|
||||
membersToMap = csvGetMembersToMap(dataObject);
|
||||
break;
|
||||
}
|
||||
return membersToMap;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export function getMembersToMap(data) {
|
||||
export function trelloGetMembersToMap(data) {
|
||||
// we will work on the list itself (an ordered array of objects) when a
|
||||
// mapping is done, we add a 'wekan' field to the object representing the
|
||||
// imported member
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export function getMembersToMap(data) {
|
||||
export function wekanGetMembersToMap(data) {
|
||||
// we will work on the list itself (an ordered array of objects) when a
|
||||
// mapping is done, we add a 'wekan' field to the object representing the
|
||||
// imported member
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
const { calculateIndex } = Utils;
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
@@ -124,7 +122,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
showDesktopDragHandles = (currentUser.profile || {})
|
||||
.showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
showDesktopDragHandles = true;
|
||||
} else {
|
||||
showDesktopDragHandles = false;
|
||||
@@ -185,7 +183,7 @@ Template.list.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
let listsColors;
|
||||
Meteor.startup(() => {
|
||||
listsColors = Lists.simpleSchema()._schema.color.allowedValues;
|
||||
@@ -110,7 +108,7 @@ Template.listHeader.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -91,6 +91,7 @@ Template.editor.onRendered(() => {
|
||||
};
|
||||
const editor = '.editor';
|
||||
const selectors = [
|
||||
`.js-new-description-form ${editor}`,
|
||||
`.js-new-comment-form ${editor}`,
|
||||
`.js-edit-comment ${editor}`,
|
||||
].join(','); // only new comment and edit comment
|
||||
@@ -264,6 +265,29 @@ Template.editor.onRendered(() => {
|
||||
|
||||
import sanitizeXss from 'xss';
|
||||
|
||||
// Additional safeAttrValue function to allow for other specific protocols
|
||||
// See https://github.com/leizongmin/js-xss/issues/52#issuecomment-241354114
|
||||
function mySafeAttrValue(tag, name, value, cssFilter) {
|
||||
// only when the tag is 'a' and attribute is 'href'
|
||||
// then use your custom function
|
||||
if (tag === 'a' && name === 'href') {
|
||||
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
|
||||
if (
|
||||
/^thunderlink:/gi.test(value) ||
|
||||
/^cbthunderlink:/gi.test(value) ||
|
||||
/^aodroplink:/gi.test(value)
|
||||
) {
|
||||
return value;
|
||||
} else {
|
||||
// use the default safeAttrValue function to process all non cbthunderlinks
|
||||
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
|
||||
}
|
||||
} else {
|
||||
// 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
|
||||
// fields, one source, and one compiled version (in HTML) and send only the
|
||||
@@ -277,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));
|
||||
if (!currentBoard)
|
||||
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
|
||||
const knowedUsers = currentBoard.members.map(member => {
|
||||
const u = Users.findOne(member.userId);
|
||||
if (u) {
|
||||
@@ -321,7 +346,7 @@ Blaze.Template.registerHelper(
|
||||
content = content.replace(fullMention, Blaze.toHTML(link));
|
||||
}
|
||||
|
||||
return HTML.Raw(sanitizeXss(content));
|
||||
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
@@ -27,9 +27,9 @@ template(name="header")
|
||||
if currentSetting.customTopLeftCornerLogoImageUrl
|
||||
if currentSetting.customTopLeftCornerLogoLinkUrl
|
||||
a(href="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
|
||||
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="27" width="auto" margin="0" padding="0")
|
||||
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0")
|
||||
unless currentSetting.customTopLeftCornerLogoLinkUrl
|
||||
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="27" width="auto" margin="0" padding="0")
|
||||
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0")
|
||||
unless currentSetting.customTopLeftCornerLogoImageUrl
|
||||
img(src="{{pathFor '/logo-header.png'}}" alt="")
|
||||
ul
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ kbd
|
||||
padding-bottom: 0
|
||||
|
||||
.wrapper
|
||||
max-width: 1200px
|
||||
width: calc(100% - 20px)
|
||||
margin: 0 auto
|
||||
|
||||
.relative
|
||||
@@ -388,10 +388,12 @@ a
|
||||
ol
|
||||
list-style-type: decimal
|
||||
padding-left: 20px
|
||||
padding-bottom: 10px
|
||||
|
||||
ul
|
||||
list-style-type: initial
|
||||
padding-left: 20px
|
||||
padding-bottom: 10px
|
||||
|
||||
em
|
||||
font-style : italic
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -204,6 +204,10 @@ template(name='layoutSettings')
|
||||
.title {{_ 'custom-top-left-corner-logo-link-url'}}
|
||||
.form-group
|
||||
input.wekan-form-control#custom-top-left-corner-logo-link-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
|
||||
li.layout-form
|
||||
.title {{_ 'custom-top-left-corner-logo-height'}}
|
||||
.form-group
|
||||
input.wekan-form-control#custom-top-left-corner-logo-height(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoHeight}}")
|
||||
li
|
||||
button.js-save-layout.primary {{_ 'save'}}
|
||||
|
||||
|
||||
@@ -186,6 +186,11 @@ BlazeComponent.extendComponent({
|
||||
)
|
||||
.val()
|
||||
.trim();
|
||||
const customTopLeftCornerLogoHeight = $(
|
||||
'#custom-top-left-corner-logo-height',
|
||||
)
|
||||
.val()
|
||||
.trim();
|
||||
const hideLogoChange = $('input[name=hideLogo]:checked').val() === 'true';
|
||||
const displayAuthenticationMethod =
|
||||
$('input[name=displayAuthenticationMethod]:checked').val() === 'true';
|
||||
@@ -201,6 +206,7 @@ BlazeComponent.extendComponent({
|
||||
textBelowCustomLoginLogo,
|
||||
customTopLeftCornerLogoImageUrl,
|
||||
customTopLeftCornerLogoLinkUrl,
|
||||
customTopLeftCornerLogoHeight,
|
||||
displayAuthenticationMethod,
|
||||
defaultAuthenticationMethod,
|
||||
},
|
||||
|
||||
@@ -366,14 +366,14 @@ template(name="exportBoard")
|
||||
a.download-json-link(href="{{exportUrl}}", download="{{exportJsonFilename}}")
|
||||
i.fa.fa-share-alt
|
||||
| {{_ 'export-board-json'}}
|
||||
//li
|
||||
// a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
|
||||
// i.fa.fa-share-alt
|
||||
// | {{_ 'export-board-csv'}}
|
||||
//li
|
||||
// a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
|
||||
// i.fa.fa-share-alt
|
||||
// | {{_ 'export-board-tsv'}}
|
||||
li
|
||||
a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
|
||||
i.fa.fa-share-alt
|
||||
| {{_ 'export-board-csv'}}
|
||||
li
|
||||
a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
|
||||
i.fa.fa-share-alt
|
||||
| {{_ 'export-board-tsv'}}
|
||||
li
|
||||
a.html-export-board
|
||||
i.fa.fa-archive
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
Sidebar = null;
|
||||
|
||||
const defaultView = 'home';
|
||||
@@ -112,10 +110,12 @@ BlazeComponent.extendComponent({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
Meteor.call('toggleMinicardLabelText');
|
||||
} else if (cookies.has('hiddenMinicardLabelText')) {
|
||||
cookies.remove('hiddenMinicardLabelText');
|
||||
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
|
||||
window.localStorage.removeItem('hiddenMinicardLabelText');
|
||||
location.reload();
|
||||
} else {
|
||||
cookies.set('hiddenMinicardLabelText', 'true');
|
||||
window.localStorage.setItem('hiddenMinicardLabelText', 'true');
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
'click .js-shortcuts'() {
|
||||
@@ -133,7 +133,7 @@ Template.homeSidebar.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).hiddenMinicardLabelText;
|
||||
} else if (cookies.has('hiddenMinicardLabelText')) {
|
||||
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
const { calculateIndexData } = Utils;
|
||||
|
||||
let swimlaneColors;
|
||||
@@ -35,7 +33,7 @@ Template.swimlaneHeader.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
const { calculateIndex } = Utils;
|
||||
|
||||
function currentListIsInThisSwimlane(swimlaneId) {
|
||||
@@ -102,7 +100,7 @@ function initSortable(boardComponent, $listsDom) {
|
||||
if (currentUser) {
|
||||
showDesktopDragHandles = (currentUser.profile || {})
|
||||
.showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
showDesktopDragHandles = true;
|
||||
} else {
|
||||
showDesktopDragHandles = false;
|
||||
@@ -178,7 +176,7 @@ BlazeComponent.extendComponent({
|
||||
if (currentUser) {
|
||||
showDesktopDragHandles = (currentUser.profile || {})
|
||||
.showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
showDesktopDragHandles = true;
|
||||
} else {
|
||||
showDesktopDragHandles = false;
|
||||
@@ -269,7 +267,7 @@ Template.swimlane.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
|
||||
Template.headerUserBar.events({
|
||||
'click .js-open-header-member-menu': Popup.open('memberMenu'),
|
||||
'click .js-change-avatar': Popup.open('changeAvatar'),
|
||||
@@ -200,7 +197,7 @@ Template.changeSettingsPopup.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -210,7 +207,7 @@ Template.changeSettingsPopup.helpers({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).hasHiddenSystemMessages;
|
||||
} else if (cookies.has('hasHiddenSystemMessages')) {
|
||||
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -221,7 +218,7 @@ Template.changeSettingsPopup.helpers({
|
||||
if (currentUser) {
|
||||
return Meteor.user().getLimitToShowCardsCount();
|
||||
} else {
|
||||
return cookies.get('limitToShowCardsCount');
|
||||
return window.localStorage.getItem('limitToShowCardsCount');
|
||||
}
|
||||
},
|
||||
weekDays(startDay) {
|
||||
@@ -242,7 +239,7 @@ Template.changeSettingsPopup.helpers({
|
||||
if (currentUser) {
|
||||
return currentUser.getStartDayOfWeek();
|
||||
} else {
|
||||
return cookies.get('startDayOfWeek');
|
||||
return window.localStorage.getItem('startDayOfWeek');
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -252,20 +249,20 @@ Template.changeSettingsPopup.events({
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
Meteor.call('toggleDesktopDragHandles');
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
cookies.remove('showDesktopDragHandles');
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
window.localStorage.removeItem('showDesktopDragHandles');
|
||||
} else {
|
||||
cookies.set('showDesktopDragHandles', 'true');
|
||||
window.localStorage.setItem('showDesktopDragHandles', 'true');
|
||||
}
|
||||
},
|
||||
'click .js-toggle-system-messages'() {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
Meteor.call('toggleSystemMessages');
|
||||
} else if (cookies.has('hasHiddenSystemMessages')) {
|
||||
cookies.remove('hasHiddenSystemMessages');
|
||||
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
|
||||
window.localStorage.removeItem('hasHiddenSystemMessages');
|
||||
} else {
|
||||
cookies.set('hasHiddenSystemMessages', 'true');
|
||||
window.localStorage.setItem('hasHiddenSystemMessages', 'true');
|
||||
}
|
||||
},
|
||||
'click .js-apply-user-settings'(event, templateInstance) {
|
||||
@@ -283,14 +280,14 @@ Template.changeSettingsPopup.events({
|
||||
if (currentUser) {
|
||||
Meteor.call('changeLimitToShowCardsCount', minLimit);
|
||||
} else {
|
||||
cookies.set('limitToShowCardsCount', minLimit);
|
||||
window.localStorage.setItem('limitToShowCardsCount', minLimit);
|
||||
}
|
||||
}
|
||||
if (!isNaN(startDay)) {
|
||||
if (currentUser) {
|
||||
Meteor.call('changeStartDayOfWeek', startDay);
|
||||
} else {
|
||||
cookies.set('startDayOfWeek', startDay);
|
||||
window.localStorage.setItem('startDayOfWeek', startDay);
|
||||
}
|
||||
}
|
||||
Popup.back();
|
||||
|
||||
@@ -30,3 +30,11 @@ Blaze.registerHelper('getUser', userId => Users.findOne(userId));
|
||||
Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
|
||||
|
||||
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
|
||||
|
||||
Blaze.registerHelper('isShowDesktopDragHandles', () =>
|
||||
Utils.isShowDesktopDragHandles(),
|
||||
);
|
||||
|
||||
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () =>
|
||||
Utils.isMiniScreenOrShowDesktopDragHandles(),
|
||||
);
|
||||
@@ -45,6 +45,14 @@ Mousetrap.bind('f', () => {
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('/', () => {
|
||||
if (Sidebar.isOpen() && Sidebar.getView() === 'search') {
|
||||
Sidebar.toggle();
|
||||
} else {
|
||||
Sidebar.setView('search');
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind(['down', 'up'], (evt, key) => {
|
||||
if (!Session.get('currentCard')) {
|
||||
return;
|
||||
@@ -118,6 +126,10 @@ Template.keyboardShortcuts.helpers({
|
||||
keys: ['f'],
|
||||
action: 'shortcut-toggle-filterbar',
|
||||
},
|
||||
{
|
||||
keys: ['/'],
|
||||
action: 'shortcut-toggle-searchbar',
|
||||
},
|
||||
{
|
||||
keys: ['x'],
|
||||
action: 'shortcut-clear-filters',
|
||||
|
||||
+31
-13
@@ -1,43 +1,44 @@
|
||||
import { Cookies } from 'meteor/ostrio:cookies';
|
||||
const cookies = new Cookies();
|
||||
|
||||
Utils = {
|
||||
setBoardView(view) {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
Meteor.user().setBoardView(view);
|
||||
} else if (view === 'board-view-swimlanes') {
|
||||
cookies.set('boardView', 'board-view-swimlanes'); //true
|
||||
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
|
||||
location.reload();
|
||||
} else if (view === 'board-view-lists') {
|
||||
cookies.set('boardView', 'board-view-lists'); //true
|
||||
window.localStorage.setItem('boardView', 'board-view-lists'); //true
|
||||
location.reload();
|
||||
} else if (view === 'board-view-cal') {
|
||||
cookies.set('boardView', 'board-view-cal'); //true
|
||||
window.localStorage.setItem('boardView', 'board-view-cal'); //true
|
||||
location.reload();
|
||||
} else {
|
||||
cookies.set('boardView', 'board-view-swimlanes'); //true
|
||||
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
|
||||
unsetBoardView() {
|
||||
cookies.remove('boardView');
|
||||
cookies.remove('collapseSwimlane');
|
||||
window.localStorage.removeItem('boardView');
|
||||
window.localStorage.removeItem('collapseSwimlane');
|
||||
},
|
||||
|
||||
boardView() {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).boardView;
|
||||
} else if (cookies.get('boardView') === 'board-view-swimlanes') {
|
||||
} else if (
|
||||
window.localStorage.getItem('boardView') === 'board-view-swimlanes'
|
||||
) {
|
||||
return 'board-view-swimlanes';
|
||||
} else if (cookies.get('boardView') === 'board-view-lists') {
|
||||
} else if (
|
||||
window.localStorage.getItem('boardView') === 'board-view-lists'
|
||||
) {
|
||||
return 'board-view-lists';
|
||||
} else if (cookies.get('boardView') === 'board-view-cal') {
|
||||
} else if (window.localStorage.getItem('boardView') === 'board-view-cal') {
|
||||
return 'board-view-cal';
|
||||
} else {
|
||||
cookies.set('boardView', 'board-view-swimlanes'); //true
|
||||
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
|
||||
location.reload();
|
||||
return 'board-view-swimlanes';
|
||||
}
|
||||
@@ -189,6 +190,23 @@ Utils = {
|
||||
//return false;
|
||||
},
|
||||
|
||||
// returns if desktop drag handles are enabled
|
||||
isShowDesktopDragHandles() {
|
||||
const currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
// returns if mini screen or desktop drag handles
|
||||
isMiniScreenOrShowDesktopDragHandles() {
|
||||
return this.isMiniScreen() || this.isShowDesktopDragHandles();
|
||||
},
|
||||
|
||||
calculateIndexData(prevData, nextData, nItems = 1) {
|
||||
let base, increment;
|
||||
// If we drop the card to an empty column
|
||||
|
||||
+22
-23
@@ -13,13 +13,12 @@ version: '2'
|
||||
# see https://github.com/wekan/wekan/wiki/Backup
|
||||
# 1) Stop Wekan:
|
||||
# docker-compose stop
|
||||
# 2) Download new version:
|
||||
# docker-compose pull wekan
|
||||
# 3) If you have more networks for VPN etc as described at bottom of
|
||||
# this config, download for them too:
|
||||
# docker-compose pull wekan2
|
||||
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
|
||||
# docker rm wekan-app
|
||||
# 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image,
|
||||
# for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52"
|
||||
# 4) Start Wekan:
|
||||
# docker-compose start
|
||||
# docker-compose up -d
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: DEDICATED DOCKER USER ====
|
||||
# 1) Optionally create a dedicated user for Wekan, for example:
|
||||
@@ -92,17 +91,18 @@ services:
|
||||
wekandb:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) For Wekan Meteor 1.8.x version at master branch, use mongo 4.x
|
||||
# DOES NOT WORK: mongo 4.4, see https://github.com/wekan/wekan/issues/3247
|
||||
# WORKS: mongo 3.x and 4.2
|
||||
image: mongo:4.2
|
||||
# b) For Wekan Meteor 1.6.x version at devel branch.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
#image: mongo:3.2.21
|
||||
# a) mongodb latest, like 3.2 - 4.4 or newer https://hub.docker.com/_/mongo?tab=description
|
||||
# 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:
|
||||
@@ -114,15 +114,12 @@ services:
|
||||
wekan:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# NOTE: Quay is currently not updated, use Docker Hub image below c)
|
||||
# a) For Wekan Meteor 1.8.x version at master branch,
|
||||
# using https://quay.io/wekan/wekan automatic builds
|
||||
#image: quay.io/wekan/wekan
|
||||
# b) Using specific Meteor 1.6.x version tag:
|
||||
# image: quay.io/wekan/wekan:v1.95
|
||||
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
|
||||
image: wekanteam/wekan
|
||||
# image: wekanteam/wekan:v2.99
|
||||
# a) Quay automatic builds do work, https://quay.io/wekan7wekan
|
||||
image: quay.io/wekan/wekan
|
||||
# b) Using specific version tag:
|
||||
# image: quay.io/wekan/wekan:v4.52
|
||||
# c) Docker Hub builds are broken with error ENOMEM https://hub.docker.com/r/wekanteam/wekan
|
||||
# image: wekanteam/wekan
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
@@ -333,6 +330,8 @@ services:
|
||||
# 2) Configure the environment variables. This differs slightly
|
||||
# by installation type, but make sure you have the following:
|
||||
#- OAUTH2_ENABLED=true
|
||||
# Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299
|
||||
#- OAUTH2_CA_CERT=ABCD1234
|
||||
# Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
|
||||
#- OAUTH2_ADFS_ENABLED=false
|
||||
# OAuth2 login style: popup or redirect.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 -}}
|
||||
@@ -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: /
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
@@ -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
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+13
-2
@@ -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": "Avatar obrázek je příliš velký (70KB 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",
|
||||
@@ -138,6 +142,7 @@
|
||||
"board-view-cal": "Kalendář",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view-collapse": "Sbalit",
|
||||
"board-view-gantt": "Gannt",
|
||||
"board-view-lists": "Sloupce",
|
||||
"bucket-example": "Například \"O čem sním\"",
|
||||
"cancel": "Zrušit",
|
||||
@@ -476,6 +481,7 @@
|
||||
"search-cards": "Hledání napříč názvy karet/seznamů, popisy a vlasními poli tohoto tabla",
|
||||
"search-example": "Napište hledaný text a stiskněte Enter",
|
||||
"select-color": "Vybrat barvu",
|
||||
"select-board": "Vybrat tablo",
|
||||
"set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.",
|
||||
"setWipLimitPopup-title": "Nastavit WIP Limit",
|
||||
"shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "Filtrovat mé karty",
|
||||
"shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
|
||||
"shortcut-toggle-filterbar": "Přepnout lištu filtrování",
|
||||
"shortcut-toggle-searchbar": "Přepnout lištu vyhledávání",
|
||||
"shortcut-toggle-sidebar": "Přepnout lištu tabla",
|
||||
"show-cards-minimum-count": "Zobrazit počet karet pokud sloupec obsahuje více než",
|
||||
"sidebar-open": "Otevřít boční panel",
|
||||
@@ -516,6 +523,7 @@
|
||||
"uploaded-avatar": "Avatar nahrán",
|
||||
"custom-top-left-corner-logo-image-url": "URL obrázku vlastního loga v levém horním rohu",
|
||||
"custom-top-left-corner-logo-link-url": "URL odkazu vlastního loga v levém horním rohu",
|
||||
"custom-top-left-corner-logo-height": "Výška vlastního loga v horním levém rohu. Defaultně: 27",
|
||||
"custom-login-logo-image-url": "URL vlastního loga přihlášení",
|
||||
"custom-login-logo-link-url": "URL odkazu vlastního loga přihlášení",
|
||||
"text-below-custom-login-logo": "Text pod vlastním logem přihlášení",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "Archivováno",
|
||||
"delete-linked-card-before-this-card": "Tuto kratu nemůžete odstranit dokud nesmažete přiřazené karty",
|
||||
"delete-linked-cards-before-this-list": "Tento sloupec nemůžete smazat dokud nesmažete propojené karty, které jsou navázány na karty v tomto sloupci",
|
||||
"hide-checked-items": "Skrýt zvolené položky"
|
||||
"hide-checked-items": "Skrýt zvolené položky",
|
||||
"task": "Úkol",
|
||||
"create-task": "Vytvořit úkol",
|
||||
"ok": "OK"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+13
-2
@@ -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",
|
||||
@@ -120,7 +124,7 @@
|
||||
"attachmentDeletePopup-title": "Delete Attachment?",
|
||||
"attachments": "Attachments",
|
||||
"auto-watch": "Automatically watch boards when they are created",
|
||||
"avatar-too-big": "The avatar is too large (70KB max)",
|
||||
"avatar-too-big": "The avatar is too large (520KB max)",
|
||||
"back": "Back",
|
||||
"board-change-color": "Change color",
|
||||
"board-nb-stars": "%s stars",
|
||||
@@ -138,6 +142,7 @@
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view-collapse": "Collapse",
|
||||
"board-view-gantt": "Gantt",
|
||||
"board-view-lists": "Lists",
|
||||
"bucket-example": "Like “Bucket List” for example",
|
||||
"cancel": "Cancel",
|
||||
@@ -476,6 +481,7 @@
|
||||
"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 Color",
|
||||
"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": "Assign yourself to current card",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "Filter my cards",
|
||||
"shortcut-show-shortcuts": "Bring up this shortcuts list",
|
||||
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
|
||||
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
|
||||
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
|
||||
"show-cards-minimum-count": "Show cards count if list contains more than",
|
||||
"sidebar-open": "Open Sidebar",
|
||||
@@ -516,6 +523,7 @@
|
||||
"uploaded-avatar": "Uploaded an avatar",
|
||||
"custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
|
||||
"custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
|
||||
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
|
||||
"custom-login-logo-image-url": "Custom Login Logo Image URL",
|
||||
"custom-login-logo-link-url": "Custom Login Logo Link URL",
|
||||
"text-below-custom-login-logo": "Text below Custom Login Logo",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "Archived",
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items"
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+13
-2
@@ -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": "תמונת המשתמש גדולה מדי (70 ק״ב לכל היותר)",
|
||||
"avatar-too-big": "תמונת המשתמש גדולה מדי (520 ק״ב לכל היותר)",
|
||||
"back": "חזרה",
|
||||
"board-change-color": "שינוי צבע",
|
||||
"board-nb-stars": "%s כוכבים",
|
||||
@@ -138,6 +142,7 @@
|
||||
"board-view-cal": "לוח שנה",
|
||||
"board-view-swimlanes": "מסלולים",
|
||||
"board-view-collapse": "צמצום",
|
||||
"board-view-gantt": "גאנט",
|
||||
"board-view-lists": "רשימות",
|
||||
"bucket-example": "כמו למשל „רשימת המשימות“",
|
||||
"cancel": "ביטול",
|
||||
@@ -476,6 +481,7 @@
|
||||
"search-cards": "חיפוש מבין כותרות של כרטיסים/רשימות, תיאורים ושדות בהתאמה אישית בלוח זה",
|
||||
"search-example": "נא להקליד טקסט לחיפוש וללחוץ על Enter",
|
||||
"select-color": "בחירת צבע",
|
||||
"select-board": "בחירת לוח",
|
||||
"set-wip-limit-value": "הגדרת מגבלה למספר המרבי של משימות ברשימה זו",
|
||||
"setWipLimitPopup-title": "הגדרת מגבלת „בעבודה”",
|
||||
"shortcut-assign-self": "להקצות אותי לכרטיס הנוכחי",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "סינון הכרטיסים שלי",
|
||||
"shortcut-show-shortcuts": "העלאת רשימת קיצורים זו",
|
||||
"shortcut-toggle-filterbar": "הצגה או הסתרה של סרגל צד הסינון",
|
||||
"shortcut-toggle-searchbar": "הצגה או הסתרה של סרגל הצד",
|
||||
"shortcut-toggle-sidebar": "הצגה או הסתרה של סרגל צד הלוח",
|
||||
"show-cards-minimum-count": "הצגת ספירת כרטיסים אם רשימה מכילה למעלה מ־",
|
||||
"sidebar-open": "פתיחת סרגל צד",
|
||||
@@ -516,6 +523,7 @@
|
||||
"uploaded-avatar": "הועלתה תמונה משתמש",
|
||||
"custom-top-left-corner-logo-image-url": "כתובת תמונת לוגו משלך לפינה הימנית העליונה",
|
||||
"custom-top-left-corner-logo-link-url": "כתובת קישור לוגו משלך לפינה הימנית העליונה",
|
||||
"custom-top-left-corner-logo-height": "גובה לוגו מותאם אישית בפינה הימנית העליונה. בררת מחדל: 27",
|
||||
"custom-login-logo-image-url": "כתובת תמונת לוגו משלך לכניסה",
|
||||
"custom-login-logo-link-url": "כתובת קישור לוגו משלך לכניסה",
|
||||
"text-below-custom-login-logo": "טקסט מתחת לשיטת כניסה מותאמת",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "בארכיון",
|
||||
"delete-linked-card-before-this-card": "לא ניתן למחוק את הכרטיס הזה לפני שמוחקים את הכרטיס המקושר שיש לו",
|
||||
"delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו",
|
||||
"hide-checked-items": "הסתרת הפריטים שסומנו"
|
||||
"hide-checked-items": "הסתרת הפריטים שסומנו",
|
||||
"task": "משימה",
|
||||
"create-task": "צירת משימה",
|
||||
"ok": "אישור"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+116
-105
@@ -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": "첨부됨",
|
||||
@@ -120,7 +124,7 @@
|
||||
"attachmentDeletePopup-title": "첨부 파일을 삭제합니까?",
|
||||
"attachments": "첨부 파일",
|
||||
"auto-watch": "생성한 보드를 자동으로 감시합니다.",
|
||||
"avatar-too-big": "아바타 파일이 너무 큽니다. (최대 70KB)",
|
||||
"avatar-too-big": "The avatar is too large (520KB max)",
|
||||
"back": "뒤로",
|
||||
"board-change-color": "보드 색 변경",
|
||||
"board-nb-stars": "%s개의 별",
|
||||
@@ -131,13 +135,14 @@
|
||||
"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",
|
||||
"board-view-lists": "목록들",
|
||||
"bucket-example": "예: “프로젝트 이름“ 입력",
|
||||
"cancel": "취소",
|
||||
@@ -159,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": "변경",
|
||||
@@ -205,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": "댓글",
|
||||
@@ -251,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": "날짜",
|
||||
@@ -264,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": "쇠퇴",
|
||||
@@ -286,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": "알림 수정",
|
||||
@@ -324,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)",
|
||||
@@ -378,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": "적절하지 않은 날짜",
|
||||
@@ -402,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 카드 가져 오기",
|
||||
@@ -434,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": "표준",
|
||||
@@ -472,10 +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": "보드 선택",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-assign-self": "현재 카드에 자신을 지정하세요.",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "내 카드 필터링",
|
||||
"shortcut-show-shortcuts": "바로가기 목록을 가져오십시오.",
|
||||
"shortcut-toggle-filterbar": "토글 필터 사이드바",
|
||||
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
|
||||
"shortcut-toggle-sidebar": "보드 사이드바 토글",
|
||||
"show-cards-minimum-count": "목록에 카드 수량 표시(입력된 수량 넘을 경우 표시)",
|
||||
"sidebar-open": "사이드바 열기",
|
||||
@@ -507,7 +514,7 @@
|
||||
"title": "제목",
|
||||
"tracking": "추적",
|
||||
"tracking-info": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음",
|
||||
"type": "Type",
|
||||
"type": "타입",
|
||||
"unassign-member": "멤버 할당 해제",
|
||||
"unsaved-description": "저장되지 않은 설명이 있습니다.",
|
||||
"unwatch": "감시 해제",
|
||||
@@ -516,6 +523,7 @@
|
||||
"uploaded-avatar": "업로드한 아바타",
|
||||
"custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
|
||||
"custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
|
||||
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
|
||||
"custom-login-logo-image-url": "Custom Login Logo Image URL",
|
||||
"custom-login-logo-link-url": "Custom Login Logo Link URL",
|
||||
"text-below-custom-login-logo": "Text below Custom Login Logo",
|
||||
@@ -615,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": "카드 설정",
|
||||
@@ -643,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",
|
||||
@@ -743,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",
|
||||
@@ -765,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__)",
|
||||
@@ -796,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",
|
||||
@@ -809,21 +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"
|
||||
"hide-checked-items": "선택된 항목 숨기기",
|
||||
"task": "과제",
|
||||
"create-task": "과제 생성",
|
||||
"ok": "확인"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+839
-828
File diff suppressed because it is too large.
Load diff
+19
-8
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"accept": "Accepteren",
|
||||
"act-activity-notify": "Activiteiten Notificatie",
|
||||
"act-activity-notify": "Activiteit notificatie",
|
||||
"act-addAttachment": "heeft bijlage __attachment__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
|
||||
"act-deleteAttachment": "heeft bijlage __attachment__ verwijderd op kaart __card__ van lijst __list__ uit swimlane __swimlane__ op bord __board__",
|
||||
"act-addSubtask": "heeft subtaak __subtask__ toegevoegd aan kaart __card__ van lijst __list__ in swimlane __swimlane__ op bord __board__",
|
||||
@@ -75,12 +75,16 @@
|
||||
"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",
|
||||
"add-swimlane": "Swimlane Toevoegen",
|
||||
"add-subtask": "Subtaak Toevoegen",
|
||||
"add-checklist": "Checkcklist Toevoegen",
|
||||
"add-checklist": "Checklist toevoegen",
|
||||
"add-checklist-item": "Voeg item toe aan checklist",
|
||||
"add-cover": "Cover Toevoegen",
|
||||
"add-label": "Label Toevoegen",
|
||||
@@ -120,7 +124,7 @@
|
||||
"attachmentDeletePopup-title": "Bijlage verwijderen?",
|
||||
"attachments": "Bijlagen",
|
||||
"auto-watch": "Automatisch borden bekijken wanneer deze aangemaakt worden",
|
||||
"avatar-too-big": "De bestandsgrootte van je avatar is te groot (70KB max)",
|
||||
"avatar-too-big": "De avatar is te groot (520KB max)",
|
||||
"back": "Terug",
|
||||
"board-change-color": "Wijzig kleur",
|
||||
"board-nb-stars": "%s sterren",
|
||||
@@ -138,6 +142,7 @@
|
||||
"board-view-cal": "Kalender",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view-collapse": "Klap in",
|
||||
"board-view-gantt": "Gantt",
|
||||
"board-view-lists": "Lijsten",
|
||||
"bucket-example": "Zoals bijvoorbeeld een \"Bucket List\"",
|
||||
"cancel": "Annuleren",
|
||||
@@ -476,6 +481,7 @@
|
||||
"search-cards": "Zoek in kaart/lijst, titels, beschrijvingen en maatwerkvelden op dit bord",
|
||||
"search-example": "Schijf je zoektekst en toets Enter",
|
||||
"select-color": "Selecteer kleur",
|
||||
"select-board": "Selecteer Bord",
|
||||
"set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst",
|
||||
"setWipLimitPopup-title": "Zet een WIP limiet",
|
||||
"shortcut-assign-self": "Voeg jezelf toe aan huidige kaart",
|
||||
@@ -485,8 +491,9 @@
|
||||
"shortcut-close-dialog": "Sluit dialoog",
|
||||
"shortcut-filter-my-cards": "Filter mijn kaarten",
|
||||
"shortcut-show-shortcuts": "Haal lijst met snelkoppelingen tevoorschijn",
|
||||
"shortcut-toggle-filterbar": "Schakel Filter Zijbalk",
|
||||
"shortcut-toggle-sidebar": "Schakel Bord Zijbalk",
|
||||
"shortcut-toggle-filterbar": "Wissel Filter Zijbalk",
|
||||
"shortcut-toggle-searchbar": "Wissel Zoek Zijbalk",
|
||||
"shortcut-toggle-sidebar": "Wissel Bord Zijbalk",
|
||||
"show-cards-minimum-count": "Laat het aantal kaarten zien wanneer de lijst meer kaarten heeft dan",
|
||||
"sidebar-open": "Open Zijbalk",
|
||||
"sidebar-close": "Sluit Zijbalk",
|
||||
@@ -516,9 +523,10 @@
|
||||
"uploaded-avatar": "Avatar is geüpload",
|
||||
"custom-top-left-corner-logo-image-url": "URL Voor Maatwerk Logo Afbeelding In Linker Bovenhoek ",
|
||||
"custom-top-left-corner-logo-link-url": "URL Voor Maatwerk Logo Link In Linker Bovenhoek",
|
||||
"custom-top-left-corner-logo-height": "Hoogte Van Maatwerk Logo In Linker Bovenhoek. Default: 27",
|
||||
"custom-login-logo-image-url": "URL Voor Maatwerk Login Logo Afbeelding",
|
||||
"custom-login-logo-link-url": "URL Voor Maatwerk Login Logo Link",
|
||||
"text-below-custom-login-logo": "Text below Custom Login Logo",
|
||||
"text-below-custom-login-logo": "Tekst onder Maatwerk Login Logo",
|
||||
"username": "Gebruikersnaam",
|
||||
"view-it": "Bekijk het",
|
||||
"warn-list-archived": "Let op: deze kaart zit in gearchiveerde lijst",
|
||||
@@ -570,7 +578,7 @@
|
||||
"boardCardTitlePopup-title": "Kaarttitel Filter",
|
||||
"disable-webhook": "Schakel deze Webhook uit",
|
||||
"global-webhook": "Globale Webhooks",
|
||||
"new-outgoing-webhook": "Nieuwe webhook",
|
||||
"new-outgoing-webhook": "Nieuwe uitgaande webhook",
|
||||
"no-name": "(Onbekend)",
|
||||
"Node_version": "Node versie",
|
||||
"Meteor_version": "Meteor versie",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "Gearchiveerd",
|
||||
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd ",
|
||||
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
|
||||
"hide-checked-items": "Verberg aangevinkte items"
|
||||
"hide-checked-items": "Verberg aangevinkte items",
|
||||
"task": "Taak",
|
||||
"create-task": "Taak aanmaken",
|
||||
"ok": "OK"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
+119
-108
@@ -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": "Awatar jest za duży (maksymalnie 70KB)",
|
||||
"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>.",
|
||||
@@ -138,17 +142,18 @@
|
||||
"board-view-cal": "Kalendarz",
|
||||
"board-view-swimlanes": "Ścieżki",
|
||||
"board-view-collapse": "Zwiń",
|
||||
"board-view-gantt": "Wykres Gantta",
|
||||
"board-view-lists": "Listy",
|
||||
"bucket-example": "Tak jak na przykład \"lista kubełkowa\"",
|
||||
"cancel": "Anuluj",
|
||||
"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",
|
||||
@@ -172,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",
|
||||
@@ -182,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ń",
|
||||
@@ -203,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",
|
||||
@@ -253,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",
|
||||
@@ -274,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",
|
||||
@@ -285,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ę",
|
||||
@@ -343,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",
|
||||
@@ -352,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",
|
||||
@@ -402,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",
|
||||
@@ -423,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",
|
||||
@@ -475,7 +480,8 @@
|
||||
"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",
|
||||
"shortcut-assign-self": "Przypisz siebie do obecnej karty",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "Filtruj moje karty",
|
||||
"shortcut-show-shortcuts": "Przypnij do listy skrótów",
|
||||
"shortcut-toggle-filterbar": "Przełącz boczny pasek filtru",
|
||||
"shortcut-toggle-searchbar": "Pokaż/Ukryj panel wyszukiwania",
|
||||
"shortcut-toggle-sidebar": "Przełącz boczny pasek tablicy",
|
||||
"show-cards-minimum-count": "Pokaż licznik kart, jeśli lista zawiera więcej niż",
|
||||
"sidebar-open": "Otwórz pasek boczny",
|
||||
@@ -516,9 +523,10 @@
|
||||
"uploaded-avatar": "Wysłany avatar",
|
||||
"custom-top-left-corner-logo-image-url": "URL obrazu logo w lewym górnym rogu",
|
||||
"custom-top-left-corner-logo-link-url": "URL linku logo w lewym górnym rogu",
|
||||
"custom-top-left-corner-logo-height": "Wysokość logo w górnym lewym rogu (domyślnie: 27)",
|
||||
"custom-login-logo-image-url": "URL obrazu logo ekranu logowania",
|
||||
"custom-login-logo-link-url": "URL linku logo ekranu logowania",
|
||||
"text-below-custom-login-logo": "Text below Custom Login Logo",
|
||||
"text-below-custom-login-logo": "Tekst pod logo na ekranie logowania",
|
||||
"username": "Nazwa użytkownika",
|
||||
"view-it": "Zobacz",
|
||||
"warn-list-archived": "Ostrzeżenie: ta karta jest na liście będącej w Archiwum",
|
||||
@@ -606,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ę",
|
||||
@@ -644,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",
|
||||
@@ -708,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ę",
|
||||
@@ -741,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",
|
||||
@@ -768,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",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "Zarchiwizowany",
|
||||
"delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są",
|
||||
"delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście",
|
||||
"hide-checked-items": "Ukryj ukończone"
|
||||
"hide-checked-items": "Ukryj ukończone",
|
||||
"task": "Zadanie",
|
||||
"create-task": "Utwórz zadanie",
|
||||
"ok": "OK"
|
||||
}
|
||||
+13
-2
@@ -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",
|
||||
@@ -120,7 +124,7 @@
|
||||
"attachmentDeletePopup-title": "Excluir Anexo?",
|
||||
"attachments": "Anexos",
|
||||
"auto-watch": "Veja automaticamente os boards que são criados",
|
||||
"avatar-too-big": "O avatar é muito grande (70KB max)",
|
||||
"avatar-too-big": "O avatar é muito grande (máximo: 520KB)",
|
||||
"back": "Voltar",
|
||||
"board-change-color": "Alterar cor",
|
||||
"board-nb-stars": "%s estrelas",
|
||||
@@ -138,6 +142,7 @@
|
||||
"board-view-cal": "Calendário",
|
||||
"board-view-swimlanes": "Raias",
|
||||
"board-view-collapse": "Expandir",
|
||||
"board-view-gantt": "Gantt",
|
||||
"board-view-lists": "Listas",
|
||||
"bucket-example": "\"Bucket List\", por exemplo",
|
||||
"cancel": "Cancelar",
|
||||
@@ -476,6 +481,7 @@
|
||||
"search-cards": "Buscar por título, descrição e campos customizados de cartão/lista neste quadro",
|
||||
"search-example": "Digite o que você procura e pressione Enter",
|
||||
"select-color": "Selecionar Cor",
|
||||
"select-board": "Selecionar Quadro",
|
||||
"set-wip-limit-value": "Defina um limite máximo para o número de tarefas nesta lista",
|
||||
"setWipLimitPopup-title": "Definir Limite WIP",
|
||||
"shortcut-assign-self": "Atribuir a si o cartão atual",
|
||||
@@ -486,6 +492,7 @@
|
||||
"shortcut-filter-my-cards": "Filtrar meus cartões",
|
||||
"shortcut-show-shortcuts": "Mostrar lista de atalhos",
|
||||
"shortcut-toggle-filterbar": "Alternar barra de filtro",
|
||||
"shortcut-toggle-searchbar": "Alternar barra de busca",
|
||||
"shortcut-toggle-sidebar": "Fechar barra lateral.",
|
||||
"show-cards-minimum-count": "Mostrar contador de cards se a lista tiver mais de",
|
||||
"sidebar-open": "Abrir barra lateral",
|
||||
@@ -516,6 +523,7 @@
|
||||
"uploaded-avatar": "Avatar carregado",
|
||||
"custom-top-left-corner-logo-image-url": "URL da imagem do logo customizado do canto superior esquerdo",
|
||||
"custom-top-left-corner-logo-link-url": "URL do link do logo customizado do canto superior esquerdo",
|
||||
"custom-top-left-corner-logo-height": "Altura da imagem do logo customizado do canto superior esquerdo. Padrão: 27",
|
||||
"custom-login-logo-image-url": "URL da Imagem do logo customizado de login",
|
||||
"custom-login-logo-link-url": "URL do link do logo customizado de login",
|
||||
"text-below-custom-login-logo": "Texto abaixo do logo customizado de login",
|
||||
@@ -825,5 +833,8 @@
|
||||
"archived": "Arquivado",
|
||||
"delete-linked-card-before-this-card": "Você não pode excluir este cartão antes de excluir primeiro o cartão vinculado que possui",
|
||||
"delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista",
|
||||
"hide-checked-items": "Esconder itens marcados"
|
||||
"hide-checked-items": "Esconder itens marcados",
|
||||
"task": "Tarefa",
|
||||
"create-task": "Criar Tarefa",
|
||||
"ok": "OK"
|
||||
}
|
||||
+839
-828
File diff suppressed because it is too large.
Load diff
Loaded 100 of 144 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user