Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41eb47bc15 | ||
|
|
211f772447 | ||
|
|
6d6e3fd127 | ||
|
|
14ef0ab6d1 | ||
|
|
8434069539 | ||
|
|
c7621f251f | ||
|
|
a5122cc076 | ||
|
|
5993d6862b | ||
|
|
348b612f98 | ||
|
|
f714b59c88 | ||
|
|
b627499acd | ||
|
|
43beccc2eb | ||
|
|
b8275b3404 | ||
|
|
6e4da08164 | ||
|
|
f2ac52bcdf | ||
|
|
46e976513b | ||
|
|
816ccf6509 | ||
|
|
73e265d8fd | ||
|
|
6117097a93 | ||
|
|
fee732dba1 | ||
|
|
1138e8062f | ||
|
|
123cf0d7b8 | ||
|
|
bd14ee3b1f | ||
|
|
e63eee0c68 | ||
|
|
070feb4b66 | ||
|
|
308417852c | ||
|
|
9c3a976250 | ||
|
|
688973bae5 | ||
|
|
d93b0be0d4 | ||
|
|
773abbae13 | ||
|
|
0f3579fd7b | ||
|
|
db7b7158fa | ||
|
|
b5a61f2dd8 | ||
|
|
8347f15de2 | ||
|
|
26309fad10 | ||
|
|
ba4d8b0b35 | ||
|
|
dc11e0c79c | ||
|
|
a13d931cfd | ||
|
|
fea2ad3d7d | ||
|
|
b8c10def8e | ||
|
|
80afc28719 | ||
|
|
561cd77e68 | ||
|
|
d8554ec67e | ||
|
|
a43237d4f9 | ||
|
|
6af7d782d4 | ||
|
|
6d2b778ac5 | ||
|
|
eada773048 | ||
|
|
9bff4e061e | ||
|
|
753ce8e119 | ||
|
|
4be6719db4 | ||
|
|
a6e1dc4269 | ||
|
|
ad241b9f84 | ||
|
|
53e76288cb | ||
|
|
0f15b6d198 | ||
|
|
143e93f483 | ||
|
|
93a5bb2baa | ||
|
|
ebfc8e5a1b | ||
|
|
972b9b6e91 | ||
|
|
56cccc6781 | ||
|
|
b680bb5372 | ||
|
|
217b3ae488 | ||
|
|
959392f815 | ||
|
|
d1e13e48fe | ||
|
|
1c04502963 | ||
|
|
34da23783e | ||
|
|
2b603cfbb5 | ||
|
|
a1fe22c08c | ||
|
|
bc04ae24a7 | ||
|
|
48216e1653 | ||
|
|
8aca82a593 | ||
|
|
68d8cbe68a | ||
|
|
4bc3acb14d | ||
|
|
a974ec9dee | ||
|
|
e91c43466d | ||
|
|
dfc4ab6dd8 | ||
|
|
9f5ffde2dd | ||
|
|
678bef2360 | ||
|
|
3b12cdc179 | ||
|
|
261754f18b | ||
|
|
980db9cb0c | ||
|
|
a80cd455de | ||
|
|
289e3d6286 | ||
|
|
4b181620d8 | ||
|
|
088ec7fd94 | ||
|
|
289f1fe134 | ||
|
|
6b9ac52af6 | ||
|
|
0e422eb70d | ||
|
|
df32545b07 | ||
|
|
bab340a849 | ||
|
|
494d44f8bb | ||
|
|
ad1a81e8a0 | ||
|
|
b0d507c2dd | ||
|
|
619e5e944b | ||
|
|
e2d0faa539 | ||
|
|
cbb6c82113 | ||
|
|
00376b43f8 | ||
|
|
fb163a2493 | ||
|
|
14c493fc63 | ||
|
|
625682a4da | ||
|
|
eec8f45de5 | ||
|
|
0855e3e32f | ||
|
|
fab3ce46b8 | ||
|
|
08c8ebc100 | ||
|
|
0039fe09be | ||
|
|
97beed6fd1 | ||
|
|
994314cfa3 | ||
|
|
db6dbe34c3 | ||
|
|
fa7ef361e2 | ||
|
|
296349a83b | ||
|
|
563458e0b5 | ||
|
|
169301fa18 | ||
|
|
0363e6f122 | ||
|
|
c259324185 | ||
|
|
57767d9906 | ||
|
|
1a26f9fb82 | ||
|
|
19ab7db239 | ||
|
|
ded430c155 | ||
|
|
506acda70b | ||
|
|
d173844f98 | ||
|
|
7919ae3628 | ||
|
|
188d42dcd6 | ||
|
|
7735394373 | ||
|
|
30bf8a1724 | ||
|
|
0310560938 | ||
|
|
2969161afb | ||
|
|
a6213d4a6f | ||
|
|
12268bd065 | ||
|
|
35a66c3550 | ||
|
|
402a974a70 | ||
|
|
079cd95e0e | ||
|
|
e9f5aaa397 | ||
|
|
ca0236fdfd | ||
|
|
da3edb35cc | ||
|
|
ef6054b859 | ||
|
|
1046976c08 | ||
|
|
f8cbbfc2cd | ||
|
|
f083fc0d7b | ||
|
|
72cb820f1f | ||
|
|
d5d33247fb | ||
|
|
9f95a10591 | ||
|
|
5ca083105c | ||
|
|
6bc8d8dd56 | ||
|
|
dce89bcfa8 | ||
|
|
e5370ce859 | ||
|
|
6f35d73fe8 | ||
|
|
af2fb5f399 | ||
|
|
e976565550 | ||
|
|
7a6b4adcc1 | ||
|
|
ec30665bc4 | ||
|
|
9651d62b96 | ||
|
|
a6e3c8984d | ||
|
|
777d9ac353 | ||
|
|
d01fccd949 | ||
|
|
4cd0d1c397 | ||
|
|
bf3ec060f7 | ||
|
|
40a3267615 | ||
|
|
ff19d6744e | ||
|
|
c26af16688 | ||
|
|
216b3cfe01 | ||
|
|
fd70556c82 | ||
|
|
0fee20cc12 | ||
|
|
32f6de1eec | ||
|
|
8671f08a0e | ||
|
|
299484f7b2 | ||
|
|
d16086fcdb | ||
|
|
1968b7da31 | ||
|
|
95a40a45e5 | ||
|
|
0ad7f080b7 | ||
|
|
aca3048036 | ||
|
|
1158cd42cc | ||
|
|
0e2b7458d7 | ||
|
|
cf7d740004 | ||
|
|
dc4c4d9ade | ||
|
|
a347ae3676 | ||
|
|
7da2a8a15e | ||
|
|
0002559d6e | ||
|
|
afda0ed4da | ||
|
|
473f389bbe | ||
|
|
b7c000b78b | ||
|
|
4ac8247db0 | ||
|
|
0471d1ac97 | ||
|
|
c0221dafde | ||
|
|
8f337f17e4 | ||
|
|
de5a63f7b2 | ||
|
|
52a744b443 | ||
|
|
4be5fa598e | ||
|
|
d03a7e7a98 | ||
|
|
ebc4d6fdbd | ||
|
|
35ffd02814 | ||
|
|
4c72479d12 | ||
|
|
907c761f71 | ||
|
|
97206aa8f6 | ||
|
|
2ec1664408 | ||
|
|
97822f35fd | ||
|
|
c5e72d1a2b | ||
|
|
117c9e069e | ||
|
|
951a9f81d6 | ||
|
|
6f30c33f11 | ||
|
|
8050117adf | ||
|
|
98031aacce | ||
|
|
2781ce6fa0 | ||
|
|
08db39d76a | ||
|
|
da267e1488 | ||
|
|
ff825d6123 | ||
|
|
6d6bb8fc57 | ||
|
|
7836ab83d0 | ||
|
|
8568728152 | ||
|
|
8783983945 | ||
|
|
4055f451fd | ||
|
|
31777ce804 | ||
|
|
97a9e92969 | ||
|
|
c5ca414e8f | ||
|
|
2c5628b5fb | ||
|
|
a338e937e5 | ||
|
|
1089572d66 | ||
|
|
ddb2460187 | ||
|
|
745f39ed20 | ||
|
|
18cccd514f | ||
|
|
9c0eba4f00 | ||
|
|
f19625d835 | ||
|
|
c4754d9f85 | ||
|
|
acdc5dc1f4 | ||
|
|
4927609af0 | ||
|
|
e845fe3e71 | ||
|
|
d807efd4f8 | ||
|
|
5f76695298 | ||
|
|
aadb1f3109 | ||
|
|
cb986912c4 | ||
|
|
7e451d9033 | ||
|
|
a024b6d692 | ||
|
|
a45ccf1db7 | ||
|
|
30bf430a91 | ||
|
|
df00776e6c | ||
|
|
1dc0d0c12e | ||
|
|
002fd411ea | ||
|
|
6311cf0c5a | ||
|
|
d71543beb6 | ||
|
|
5a9837f676 | ||
|
|
77754cf32f | ||
|
|
43a74fb99b | ||
|
|
1bef3a3f8f | ||
|
|
b6b6be34f6 | ||
|
|
f1cde3e873 | ||
|
|
dcd6ae2e01 | ||
|
|
8984172ff6 | ||
|
|
87a5e7f030 | ||
|
|
115d07da5a | ||
|
|
e67ed023cd | ||
|
|
1f1d753791 | ||
|
|
34fcce60af | ||
|
|
e7a90d9a7c | ||
|
|
9d6d5e1a14 | ||
|
|
763cf81c97 | ||
|
|
0b64a46bdc | ||
|
|
d417bf058d | ||
|
|
46088bfbb5 | ||
|
|
a6ea622f78 | ||
|
|
847ed8570b | ||
|
|
3a9ab817a9 | ||
|
|
2a5c2ed192 | ||
|
|
8867bec8e6 | ||
|
|
262da85399 | ||
|
|
51a70f2164 | ||
|
|
0854a658d8 | ||
|
|
d99056ced5 | ||
|
|
4a5473b4e7 | ||
|
|
d3f368efd7 | ||
|
|
ca052566de | ||
|
|
c101e262d6 | ||
|
|
1f942301ad | ||
|
|
b6db1e12b7 | ||
|
|
3bfc6ea8d7 | ||
|
|
ec30dd4788 | ||
|
|
990ebbdbcb | ||
|
|
99a856be97 | ||
|
|
260d0641df | ||
|
|
16963859e1 | ||
|
|
010a201d0c | ||
|
|
95014e6348 | ||
|
|
724912ec48 | ||
|
|
46d8a11c51 | ||
|
|
065cd05c96 | ||
|
|
a4564bed3a | ||
|
|
4ef3e587cb | ||
|
|
d6259836e0 | ||
|
|
ef246cfef3 | ||
|
|
90dd0ddb94 | ||
|
|
bd2c54398b | ||
|
|
e65776f9f0 | ||
|
|
5cafdd9878 | ||
|
|
49882a05d1 | ||
|
|
8e36a2bc83 | ||
|
|
24e47195e5 | ||
|
|
4b37958140 | ||
|
|
3edff32bde | ||
|
|
78c5e0f7ef | ||
|
|
49229e1723 | ||
|
|
14e2bfd1bf | ||
|
|
3c49e2d0ed | ||
|
|
d5bc66c9a4 | ||
|
|
4f6977668b | ||
|
|
17826c28e5 | ||
|
|
a3d71dd694 | ||
|
|
a5c39342ba | ||
|
|
ad75c541cf | ||
|
|
cd46cbeb8f | ||
|
|
888e1ad5d3 | ||
|
|
abb7108321 | ||
|
|
da21a2a410 | ||
|
|
904b5bf0f5 | ||
|
|
d21aa97219 | ||
|
|
6ee75fbdba | ||
|
|
c3b2a0c955 | ||
|
|
0ac42c145e | ||
|
|
4a77bc930f | ||
|
|
29c3080eb6 | ||
|
|
57516177a0 | ||
|
|
34d8235551 | ||
|
|
8d51245161 | ||
|
|
55ad98ecc4 | ||
|
|
ed04181bb9 | ||
|
|
868fba55cd | ||
|
|
05351c0ac1 | ||
|
|
a707129146 | ||
|
|
2f3138207c | ||
|
|
dc7286a0ef | ||
|
|
5e66119bf0 | ||
|
|
b751fd11e4 | ||
|
|
5e238bfbfe | ||
|
|
7e20a3cac6 | ||
|
|
7c1d6e4d2e | ||
|
|
13c2157e36 | ||
|
|
7033315cd3 | ||
|
|
775476f97c | ||
|
|
eb62c9ce6a | ||
|
|
60be4df76e | ||
|
|
f888cfd565 | ||
|
|
044126188d | ||
|
|
0fec711545 | ||
|
|
7a6afb8aea | ||
|
|
1e72177991 | ||
|
|
cdf070189e | ||
|
|
64bf455b29 | ||
|
|
0a53ee87b9 | ||
|
|
ef85b71ee4 | ||
|
|
ac0133e8fa | ||
|
|
25ba6df007 | ||
|
|
6d750897a8 | ||
|
|
a7747c537b | ||
|
|
65b6a21938 | ||
|
|
4e6e78ccd2 | ||
|
|
fd5d6546b2 | ||
|
|
402d484182 | ||
|
|
4bf0914f1e | ||
|
|
96519296e1 | ||
|
|
03d06685b0 | ||
|
|
7d57c56b17 | ||
|
|
4ce766853c | ||
|
|
dc7bbd848c | ||
|
|
81744e6523 | ||
|
|
b66f471e53 | ||
|
|
202b8a92af | ||
|
|
1e98f6b781 | ||
|
|
f53e8fbd21 | ||
|
|
8e95871534 | ||
|
|
595a2d2baa | ||
|
|
227772bc33 | ||
|
|
2ca98e477d | ||
|
|
477d71e0b9 | ||
|
|
677bfc3f6b | ||
|
|
c7721b048d | ||
|
|
1417f091fe | ||
|
|
d22964bcfd | ||
|
|
59314ab17d | ||
|
|
5c083d99e2 | ||
|
|
d3abb0756e | ||
|
|
4de9848e34 | ||
|
|
bdbbb12f96 | ||
|
|
c1ea3f49ca | ||
|
|
905c45f225 | ||
|
|
352e5c6cb0 | ||
|
|
2d291c8f5e | ||
|
|
86630fa1e0 | ||
|
|
8e02170dd1 | ||
|
|
9edf95ec93 | ||
|
|
2add875a38 | ||
|
|
b20309f7aa | ||
|
|
8996df5c09 | ||
|
|
7b5f02b4c8 | ||
|
|
fc0287a829 | ||
|
|
ed8bca5394 | ||
|
|
9458f4011d | ||
|
|
f1bd36a3b8 | ||
|
|
f060e02fc0 | ||
|
|
0fa2e5d3a0 | ||
|
|
6d0055ecb5 | ||
|
|
2d3ce9c290 | ||
|
|
796b276d02 | ||
|
|
ed98b5c807 | ||
|
|
f1da7dcb0c | ||
|
|
35a539eee2 | ||
|
|
79ffb7d502 | ||
|
|
a2e6f621a2 | ||
|
|
96e97143f2 | ||
|
|
4126a1a808 | ||
|
|
3ce902123f | ||
|
|
7125357a44 | ||
|
|
ec453b89b8 | ||
|
|
303404acc6 | ||
|
|
f11d42e72d | ||
|
|
329c8d64a8 | ||
|
|
698ce8f0e6 | ||
|
|
b06e11ba09 | ||
|
|
d689a7408b | ||
|
|
c899218fb9 | ||
|
|
c42f2a05d2 | ||
|
|
70ed552e1a | ||
|
|
9a07649b8a | ||
|
|
9a6ac544dd | ||
|
|
06a1e26655 | ||
|
|
626e7c2c61 | ||
|
|
a7aeb491ba | ||
|
|
7ba8f72d7b | ||
|
|
d0f74d7a99 | ||
|
|
7f33fa5368 | ||
|
|
0ab97266f6 | ||
|
|
32f896f19d | ||
|
|
de9965213a | ||
|
|
c2118f4830 | ||
|
|
6f0e0748e1 | ||
|
|
8e5fc13ba4 | ||
|
|
7a35099fb9 | ||
|
|
d08bee6817 | ||
|
|
4fc96904d6 | ||
|
|
66bc1f28dd | ||
|
|
30d082e709 | ||
|
|
1b11123797 | ||
|
|
654c2add0d | ||
|
|
6d179d6d3d | ||
|
|
361faa6646 | ||
|
|
7fc22ba0b7 | ||
|
|
9c82e6ab68 | ||
|
|
78c18d4ffe | ||
|
|
978dafc62b | ||
|
|
8919d8fb7d | ||
|
|
cdb7dd9175 |
No files matched your search
+1
-1
@@ -6,7 +6,7 @@
|
||||
"browser": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"ecmaVersion": 2017,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
## Issue
|
||||
|
||||
Add these issues to elsewhere:
|
||||
- LDAP: https://github.com/wekan/wekan-ldap/issues
|
||||
- Snap: https://github.com/wekan/wekan-snap/issues
|
||||
|
||||
Other Wekan issues can be added here.
|
||||
|
||||
+13
-1
@@ -8,7 +8,6 @@ npm-debug.log
|
||||
.vscode/
|
||||
.idea/
|
||||
.build/*
|
||||
packages/
|
||||
package-lock.json
|
||||
**/parts/
|
||||
**/stage
|
||||
@@ -17,3 +16,16 @@ package-lock.json
|
||||
snap/.snapcraft/
|
||||
.idea
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
.build*
|
||||
*.browserify.js.cached
|
||||
*.browserify.js.map
|
||||
.build*
|
||||
versions.json
|
||||
.versions
|
||||
.npm
|
||||
.build*
|
||||
._*
|
||||
.Trashes
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
+7
-5
@@ -31,7 +31,9 @@ kenton:accounts-sandstorm
|
||||
service-configuration@1.0.11
|
||||
useraccounts:unstyled
|
||||
useraccounts:flow-routing
|
||||
salleman:accounts-oidc
|
||||
wekan-ldap
|
||||
wekan-accounts-cas
|
||||
wekan-accounts-oidc
|
||||
|
||||
# Utilities
|
||||
check@1.2.5
|
||||
@@ -64,7 +66,6 @@ mquandalle:jquery-textcomplete
|
||||
mquandalle:jquery-ui-drag-drop-sort
|
||||
mquandalle:mousetrap-bindglobal
|
||||
peerlibrary:blaze-components@=0.15.1
|
||||
perak:markdown
|
||||
templates:tabs
|
||||
verron:autosize
|
||||
simple:json-routes
|
||||
@@ -80,13 +81,14 @@ staringatlights:fast-render
|
||||
mixmax:smart-disconnect
|
||||
accounts-password@1.5.0
|
||||
cfs:gridfs
|
||||
eluck:accounts-lockout
|
||||
rzymek:fullcalendar
|
||||
momentjs:moment@2.22.2
|
||||
browser-policy-framing
|
||||
mquandalle:moment
|
||||
msavin:usercache
|
||||
wekan:wekan-ldap
|
||||
wekan:accounts-cas
|
||||
wekan-scrollbar
|
||||
mquandalle:perfect-scrollbar
|
||||
mdg:meteor-apm-agent
|
||||
meteorhacks:unblock
|
||||
lucasantoniassi:accounts-lockout
|
||||
wekan-markdown
|
||||
+8
-6
@@ -60,7 +60,6 @@ ecmascript-runtime@0.5.0
|
||||
ecmascript-runtime-client@0.5.0
|
||||
ecmascript-runtime-server@0.5.0
|
||||
ejson@1.1.0
|
||||
eluck:accounts-lockout@0.9.0
|
||||
email@1.2.3
|
||||
es5-shim@4.6.15
|
||||
fastclick@1.0.13
|
||||
@@ -82,8 +81,10 @@ launch-screen@1.1.1
|
||||
livedata@1.0.18
|
||||
localstorage@1.2.0
|
||||
logging@1.1.19
|
||||
lucasantoniassi:accounts-lockout@1.0.0
|
||||
matb33:collection-hooks@0.8.4
|
||||
matteodem:easy-search@1.6.4
|
||||
mdg:meteor-apm-agent@3.1.2
|
||||
mdg:validation-error@0.5.1
|
||||
meteor@1.8.2
|
||||
meteor-base@1.2.0
|
||||
@@ -93,6 +94,7 @@ meteorhacks:collection-utils@1.2.0
|
||||
meteorhacks:meteorx@1.4.1
|
||||
meteorhacks:picker@1.0.3
|
||||
meteorhacks:subs-manager@1.6.4
|
||||
meteorhacks:unblock@1.1.0
|
||||
meteorspark:util@0.2.0
|
||||
minifier-css@1.2.16
|
||||
minifier-js@2.2.2
|
||||
@@ -130,7 +132,6 @@ peerlibrary:base-component@0.16.0
|
||||
peerlibrary:blaze-components@0.15.1
|
||||
peerlibrary:computed-field@0.7.0
|
||||
peerlibrary:reactive-field@0.3.0
|
||||
perak:markdown@1.0.5
|
||||
promise@0.10.0
|
||||
raix:eventemitter@0.1.3
|
||||
raix:handlebar-helpers@0.2.5
|
||||
@@ -143,8 +144,6 @@ reload@1.1.11
|
||||
retry@1.0.9
|
||||
routepolicy@1.0.12
|
||||
rzymek:fullcalendar@3.8.0
|
||||
salleman:accounts-oidc@1.0.9
|
||||
salleman:oidc@1.0.9
|
||||
service-configuration@1.0.11
|
||||
session@1.1.7
|
||||
sha@1.0.9
|
||||
@@ -179,8 +178,11 @@ useraccounts:unstyled@1.14.2
|
||||
verron:autosize@3.0.8
|
||||
webapp@1.4.0
|
||||
webapp-hashing@1.0.9
|
||||
wekan-accounts-oidc@1.0.10
|
||||
wekan-markdown@1.0.7
|
||||
wekan-oidc@1.0.12
|
||||
wekan-scrollbar@3.1.3
|
||||
wekan:accounts-cas@0.1.0
|
||||
wekan:wekan-ldap@0.0.2
|
||||
wekan-accounts-cas@0.1.0
|
||||
wekan-ldap@0.0.2
|
||||
yasaricli:slugify@0.0.7
|
||||
zimme:active-route@2.3.2
|
||||
+678
-16
@@ -1,13 +1,675 @@
|
||||
# v2.62 2019-04-23 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Mobile UI: Center cards in list view](https://github.com/wekan/wekan/issues/2371).
|
||||
Thanks to hupptechnologies.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.61 2019-04-20 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Admin Panel/People: Can now search users by username, full name or email and using regex to find them.
|
||||
Display the number of users. All registered users by default else the number of users selected by the search.
|
||||
Thanks to Akuket.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Update to use newest GitHub flawored markdown](https://github.com/wekan/wekan/commit/fea2ad3d7d09b44c3de1dbcdd3f8750aaa6776d5),
|
||||
because [it was found old version was in use](https://github.com/wekan/wekan/issues/2334).
|
||||
Thanks to shaygover and xet7.
|
||||
- [Upgrade to Node 8.16.0](https://github.com/wekan/wekan/commit/6117097a93bfb11c8bd4c87a23c44a50e22ceb87).
|
||||
Thanks to Node developers and xet7.
|
||||
- [Upgrade Docker base image to ubuntu:disco](https://github.com/wekan/wekan/commit/bd14ee3b1f450ddc6dec26ccc8da702b839942e5).
|
||||
Thanks to Ubuntu developers and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Full width of lists and space before first list](https://github.com/wekan/wekan/pull/2343).
|
||||
Thanks to hupptehcnologies.
|
||||
- Remove [extra](https://github.com/wekan/wekan/pull/2332) [quotes](https://github.com/wekan/wekan/pull/2333) from docker-compose.yml.
|
||||
Thanks to hibare.
|
||||
- Fix Docker builds by moving all separately cloned wekan/packages/* repos like ldap, oidc, etc code to wekan repo code,
|
||||
so that in build scripts it's not needed to clone those. Also archived those wekan repos and moved issues
|
||||
to https://github.com/wekan/wekan/issues because changes and development to those packages now happends on wekan/wekan repo.
|
||||
There was also fixes to repo urls etc. Thanks to xet7.
|
||||
- [Additional updates](https://github.com/wekan/wekan/pull/2347) to meteor-1.8 branch, that contains
|
||||
Meteor 1.8.1 version that works in Docker but not yet at Snap and Sandstorm. Thanks to justinr1234.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.60 2019-04-08 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324).
|
||||
Thanks to sfahrenholz and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.59 2019-04-06 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Add variables for activity notifications, Fixes #2285](https://github.com/wekan/wekan/pull/2320).
|
||||
Thanks to rinnaz.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.58 2019-04-06 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Duplicate Board](https://github.com/wekan/wekan/issues/2257). Related #2225.
|
||||
Thanks to Angtrim.
|
||||
- [Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board](https://github.com/wekan/wekan/commit/0f15b6d1982c383f76e8411cb501ff27e8febd42).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313).
|
||||
Thanks to chotaire.
|
||||
- [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314).
|
||||
Thanks to hupptechnologies.
|
||||
- [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301).
|
||||
Thanks to folhabranca and xet7.
|
||||
- [Fix Swimlane Rules don't work](https://github.com/wekan/wekan/issues/2225).
|
||||
Thanks to Angtrim.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.57 2019-04-02 Wekan release
|
||||
|
||||
This release fixes the following bugs, thanks to justinr1234:
|
||||
|
||||
- [Add proper variables for join card](https://github.com/wekan/wekan/commit/289f1fe1340c85eb2af19825f4972e9057a86b7a),
|
||||
fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2285).
|
||||
|
||||
and fixes the following bugs with Apache I-CLA, thanks to bentiss:
|
||||
|
||||
- [List: Do not use IntersectionObserver to reduce CPU usage](https://github.com/wekan/wekan/pull/2302).
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.56 2019-03-27 Wekan release
|
||||
|
||||
This release [fixes the following bugs](https://github.com/wekan/wekan/pull/2287), thanks to bentiss with Apache I-CLA:
|
||||
|
||||
- [#2250 -> the spinner could be shown on startup and never goes away](https://github.com/wekan/wekan/issues/2250).
|
||||
- The code will now only load extra cards that will be in the current viewport.
|
||||
- When 2 users were interacting on the same board, there was a situation where the spinner could show up on the other user, without being able to load the extra cards.
|
||||
- The code is now much simpler, thanks to the IntersectionObserver, and all of this for fewer lines of code :)
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.55 2019-03-25 Wekan release
|
||||
|
||||
This release fixes the following bugs, thanks to bentiss with Apache I-CLA:
|
||||
|
||||
- [Use older api2html@0.3.0](https://github.com/wekan/wekan/commit/625682a4dab43c525494af10121edbfd547786d7)
|
||||
to fix [broken snap and docker build](https://github.com/wekan/wekan/issues/2286),
|
||||
because newer api2html caused
|
||||
[breaking change](https://github.com/tobilg/api2html/commit/a9a41bca18db3f9ec61395d7262eff071a995783)
|
||||
at api2html/bin/api2html.js:23 has error about "php": "PHP".
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.54 2019-03-25 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Fix typos.
|
||||
- [Fix Outgoing Webhook message about created new swimlane](https://github.com/wekan/wekan/issues/1969).
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.53 2019-03-23 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix filename and URLs](https://github.com/wekan/wekan/ccommit/994314cfa339e52a2ad124194af4e89f57ddd213).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.52 2019-03-22 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [More whitelabeling: Hide Wekan logo and title by default, and don't show separate option to hide logo at
|
||||
Admin Panel/Layout](https://github.com/wekan/wekan/commit/2969161afbe60a1aa2e7da6cedc3ab48941faf3e).
|
||||
Thanks to xet7.
|
||||
- Added and then reverted option to redirect OIDC OAuth2 login [part1](https://github.com/wekan/wekan-ldap/commit/82a894ac20ba9e7c6fdf053cff1721cab709bf8a),
|
||||
[part 2](https://github.com/wekan/wekan-ldap/commit/36900cc360d0d406f8fba5e43378f85c92747870) and
|
||||
[part3](https://github.com/wekan/wekan/commit/7919ae362866c0cacf2a486bf91b12e4d25807d7).
|
||||
This does not work yet. In Progress.
|
||||
Thanks to xet7.
|
||||
- [Add LDAP config example, remove extra text](https://github.com/wekan/wekan/commit/506acda70b5e78737c52455e5eee9c8758243196).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix IFTTT email sending](https://github.com/wekan/wekan/pull/2279).
|
||||
Thanks to justinr1234.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.51 2019-03-21 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix Unable to change board card title (=Board name) at Templates page](https://github.com/wekan/wekan/issues/2275).
|
||||
and [Unable to change card title in Template](https://github.com/wekan/wekan/issues/2268) part 2.
|
||||
Thanks to andresmanelli.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.50 2019-03-21 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix](https://github.com/wekan/wekan/pull/2269) [Unable to change card title in Template](https://github.com/wekan/wekan/issues/2268)
|
||||
and [Fix Unable to create a new board from a template](https://github.com/wekan/wekan/issues/2267).
|
||||
Thanks to andresmanelli.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.49 2019-03-21 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [The invitation code doesn't exist - case-sensitive eMail](https://github.com/wekan/wekan/issues/1384). Thanks to neurolabs.
|
||||
- [Don't swallow email errors](https://github.com/wekan/wekan/pull/2272). Thanks to justinr1234.
|
||||
- [Migrate customFields model](https://github.com/wekan/wekan/pull/2264).
|
||||
Modifies the customFields model to keep an array of boardIds where the customField can be used.
|
||||
Adds name matching for labels when copying/moving cards between boards.
|
||||
This way, customFields are not lost when copying/moving a card. Particularly useful when templates have customFields or labels with specific names (not tested for templates yet).
|
||||
Thanks to andresmanelli.
|
||||
- [Fix dissapearing subtasks](https://github.com/wekan/wekan/pull/2265). Thanks to andresmanelli.
|
||||
- [Cards disappear when rearranged on template board](https://github.com/wekan/wekan/issues/2266). Thanks to andresmanelli.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.48 2019-03-15 Wekan release
|
||||
|
||||
This release fixes the following bugs, thanks to GitHub user xet7:
|
||||
|
||||
- [Fix LDAP login](https://github.com/wekan/wekan/commit/216b3cfe0121aa026139536c383aa27db0353411).
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.47 2019-03-14 Wekan release
|
||||
|
||||
This release fixes the following bugs, thanks to GitHub user xet7:
|
||||
|
||||
- [Remove ordering of cards by starred/color/description, so that cards would not reorder all the time](https://github.com/wekan/wekan/issues/2241).
|
||||
- Try to fix [LDAP Login: "Login forbidden", ReferenceError: req is not defined](https://github.com/wekan/wekan-ldap/44).
|
||||
|
||||
# v2.46 2019-03-13 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix watchers undefined](https://github.com/wekan/wekan/pull/2253).
|
||||
Thanks to justinr1234.
|
||||
- [Revert hiding of Subtask boards](https://github.com/wekan/wekan/commit/1968b7da31d75757fd6383417d729ff6af6bbc5b)
|
||||
because of feedback from Wekan users, that need Subtask boards to be visible.
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.45 2019-03-11 Wekan release
|
||||
|
||||
This release fixes the following bugs, thanks to andresmanelli:
|
||||
|
||||
- [Rename circular card migration to re run the fix](https://github.com/wekan/wekan/commit/a347ae367654258b7768e7571831ed8f75fb5b84).
|
||||
|
||||
# v2.44 2019-03-11 Wekan release
|
||||
|
||||
This release adds the following new features and fixes with Apache I-CLA, thanks to bentiss:
|
||||
|
||||
- [Activities: register customFields changes in the activities](https://github.com/wekan/wekan/pull/2239).
|
||||
- [customFields: fix leftover from lint](https://github.com/wekan/wekan/commit/4c72479d1206850d436261dc5c6a4127f246f6da).
|
||||
Looks like I forgot to use the camelCase notation here, and this leads to an exception while updating a custom field.
|
||||
- [Fix imports](https://github.com/wekan/wekan/pull/2245).
|
||||
|
||||
and adds the following new features:
|
||||
|
||||
- Add language: Occitan. Thanks to translators.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix removed checklistItem activity => dangling activities created](https://github.com/wekan/wekan/commit/2ec1664408d9515b5ca77fbb46ef99208eb8cff0).
|
||||
Closes #2240. Thanks to andresmanelli.
|
||||
- [Avoid set self as parent card to cause circular reference, for real](https://github.com/wekan/commit/97822f35fd6365e5631c5488e8ee595f76ab4e34).
|
||||
Thanks to andresmanelli.
|
||||
- Try to fix [Order All Boards by starred, color, board name and board description. Part 2](https://github.com/wekan/wekan/commit/8f337f17e45f8af8d96b6043d54466e5878b7e0b).
|
||||
Works on new Wekan install. Could still have boards keeping reording happening all the time on old Wekan installs.
|
||||
Thanks to xet7. Note: Ordering by starred/color/description was removed at Wekan v2.47.
|
||||
- [Changed brute force protection package from eluck:accounts-lockout to lucasantoniassi:accounts-lockout that is maintained and works.
|
||||
Added Snap/Docker/Source settings](https://github.com/wekan/wekan/commit/b7c000b78b9af253fb115bbfa5ef0d4c0681abbb).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above Wekan contributors for their contributions.
|
||||
|
||||
# v2.43 2019-03-08 Wekan release
|
||||
|
||||
This release adds the following new features, thanks to xet7:
|
||||
|
||||
- [Hide Subtask boards from All Boards](https://github.com/wekan/wekan/issues/1990). This was reverted in Wekan v2.46 to make Subtask boards visible again.
|
||||
- [Order All Boards by Starred, Color, Title and Description](https://github.com/wekan/wekan/commit/856872815292590e0c4eff2848ea1b857a318dc4).
|
||||
This was removed at Wekan v2.47.
|
||||
- [HTTP header automatic login](https://github.com/wekan/wekan/commit/ff825d6123ecfd033ccb08ce97c11cefee676104)
|
||||
for [3rd party authentication server method](https://github.com/wekan/wekan/issues/2019) like siteminder, and any webserver that
|
||||
handles authentication and based on it adds HTTP headers to be used for login. Please test.
|
||||
|
||||
and adds the following partial fix, thanks to andresmanelli:
|
||||
|
||||
- [Add migration to fix circular references](https://github.com/wekan/wekan/commit/a338e937e508568d1f6a15c5464126d30ef69a7d).
|
||||
This [runs only once](https://github.com/wekan/wekan/issues/2209#issuecomment-470445989),
|
||||
so later there will be another fix to make it run every time.
|
||||
|
||||
and reverts the following change of v2.42, because they did not fix anything, thanks to xet7:
|
||||
|
||||
- [Revert: Tried to fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/4055f451fdadfbfdef9a10be29a0eb6aed91182c).
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.42 2019-03-07 Wekan release
|
||||
|
||||
This release tried to fix the following bugs:
|
||||
|
||||
- [Tried to fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/2c5628b5fbcc25427021d0b22e74577a71149c21).
|
||||
Reverted in v2.43, because it did not fix anything.
|
||||
|
||||
Thanks to xet7 and qurqar[m] at IRC #wekan.
|
||||
|
||||
# v2.41 2019-03-07 Wekan release
|
||||
|
||||
This release tried to fix the following bugs:
|
||||
|
||||
- [Partial Fix: Card was selected as parent card (circular reference) and now board can be not opened anymore](https://github.com/wekan/wekan/issues/2202)
|
||||
with [Avoid setting same card as parentCard. Avoid listing templates board in copy/move/more menus](https://github.com/wekan/wekan/commit/745f39ed20169f56b99c0339f2043f8c4ed43873).
|
||||
This does not fully work yet, it will be fixed later.
|
||||
Thanks to andresmanelli.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.40 2019-03-06 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Part 2: [Fix](https://github.com/wekan/wekan/commit/e845fe3e7130d111be4c3a73e2551738c980ff7b)
|
||||
[manifest](https://github.com/wekan/wekan/issues/2168) and
|
||||
[icon](https://github.com/wekan/wekan/issues/1692) paths. Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.39 2019-03-06 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix](https://github.com/wekan/wekan/commit/e845fe3e7130d111be4c3a73e2551738c980ff7b)
|
||||
[manifest](https://github.com/wekan/wekan/issues/2168) and
|
||||
[icon](https://github.com/wekan/wekan/issues/1692) paths. Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.38 2019-03-06 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Added a Helm Chart to the project](https://github.com/wekan/wekan/pull/2227), thanks to TechnoTaff.
|
||||
- [Added support for LDAP admin status sync](https://github.com/wekan/wekan-ldap/pull/40).
|
||||
Examples: [LDAP_SYNC_ADMIN_STATUS=true, LDAP_SYNC_ADMIN_GROUP=group1,group2](https://github.com/wekan/wekan/commit/7e451d9033eb6162cd37de3e5ffabdc22e272948).
|
||||
Thanks to JulianJacobi and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix card deletion from archive](https://github.com/wekan/wekan/commit/77754cf32f28498e550a46325d90eb41f08f8552). Thanks to andresmanelli.
|
||||
- [Fix card move with wrong swimlaneId](https://github.com/wekan/wekan/commit/1bef3a3f8ff4eac43bf97cc8b86d85e618b0e2ef). Thanks to andresmanelli.
|
||||
NOTE: This does not yet fix card move [with Custom Field](https://github.com/wekan/wekan/issues/2233), it will be fixed later.
|
||||
- [Fix: LDAP Authentication with Recursive Group Filtering Does Not Work on Snap](https://github.com/wekan/wekan/issues/2228). Thanks to apages2.
|
||||
- [Use ubuntu:cosmic base in Dockerfile](https://github.com/wekan/wekan/commit/df00776e6ca47080435eca9a31a16fd24c0770ed). Thanks to xet7.
|
||||
- [Remove phantomjs binary from Docker/Snap/Stackerfile to reduce size](https://github.com/wekan/wekan/issues/2229). Thanks to soohwa.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.37 2019-03-04 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix Adding Labels to cards is not possible anymore](https://github.com/wekan/wekan/issues/2223).
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.36 2019-03-03 Wekan release
|
||||
|
||||
This release adds the following UI changes:
|
||||
|
||||
- [Combine hamburger menus at right](https://github.com/wekan/wekan/issues/2219):
|
||||
- Hamburger button open sidebar;
|
||||
- Sidebar has at top right Cog icon that opens Board Settings;
|
||||
- Hide sidebar arrows.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Add more Webhook translations](https://github.com/wekan/wekan/issues/1969).
|
||||
In progress.
|
||||
|
||||
and moved the following code around:
|
||||
|
||||
- [Forked salleman-oidc](https://github.com/wekan/wekan/commit/8867bec8e65f1ef6be0c731918e8eefcacb7acb0)
|
||||
to https://github.com/wekan/meteor-accounts-oidc where salleman also has write access,
|
||||
xet7 can make changes directly and GitHub issues are enabled.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.35 2019-03-01 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Add Filter fix back](https://github.com/wekan/wekan/issues/2213),
|
||||
because there was no bug in filter fix.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.34 2019-03-01 Wekan release
|
||||
|
||||
This release tried to fix following bugs, but did not fix anything:
|
||||
|
||||
- Revert [Filter fix](https://github.com/wekan/wekan/issues/2213) because of
|
||||
[mongodb data tampered](https://github.com/wekan/wekan-snap/issues/83).
|
||||
This was added back at Wekan v2.35.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.33 2019-02-28 Wekan release
|
||||
|
||||
This release adds the following upgrades:
|
||||
|
||||
- [Upgrade Node.js to v8.15.1](https://github.com/wekan/wekan/commit/5cafdd9878ab4b6123024ec33279ccdae75f554f).
|
||||
|
||||
Thanks to Node.js developers and GitHub user xet7 for contributions.
|
||||
|
||||
# v2.32 2019-02-28 Wekan release
|
||||
|
||||
This release adds the following [performance improvements](https://github.com/wekan/wekan/pull/2214), thanks to justinr1234:
|
||||
|
||||
- New indexes for queries that were missing an index;
|
||||
- Bulk querying documents to reduce the number of mongo queries when loading a board;
|
||||
- Ensure oplog is being used to query the database by providing a `sort` key when `limit` is used querying the `boards` collection.
|
||||
|
||||
and fixes the following bugs related to [Template features](https://github.com/wekan/wekan/issues/2209), thanks to andresmanelli:
|
||||
|
||||
- [Fix filtering in swimlane view](https://github.com/wekan/wekan/commit/49229e1723de14cdc66dc6480624bba426d35e36) that was [broken since v2.29](https://github.com/wekan/wekan/issues/2213).
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.31 2019-02-28 Wekan release
|
||||
|
||||
This release fixes the following bugs related to [Template features](https://github.com/wekan/wekan/issues/2209), thanks to GitHub user andresmanelli:
|
||||
|
||||
- [Fix copy card](https://github.com/wekan/wekan/issues/2210).
|
||||
|
||||
# v2.30 2019-02-28 Wekan release
|
||||
|
||||
This release adds the following new [Template features](https://github.com/wekan/wekan/issues/2209), thanks to GitHub user andresmanelli:
|
||||
|
||||
- [Fix popup title. Add element title modification](https://github.com/wekan/wekan/commit/888e1ad5d3e32be53283aa32198057f669f3d706);
|
||||
- [Copy template attachments](https://github.com/wekan/wekan/commit/abb71083215462d91b084c4de13af0b130638e4d);
|
||||
- [Standarize copy functions. Match labels by name](https://github.com/wekan/wekan/commit/da21a2a410c9b905de89d66236748e0c8f5357ea).
|
||||
|
||||
# v2.29 2019-02-27 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Swimlane/List/Board/Card templates. In Progress, please test and [add comment if you find not listed bugs](https://github.com/wekan/wekan/issues/2165).
|
||||
Thanks to GitHub user andresmanelli.
|
||||
|
||||
# v2.28 2019-02-27 Wekan release
|
||||
|
||||
This release adds the following new Sandstorm features and fixes:
|
||||
|
||||
- All Boards page [so it's possible to go back from subtask board](https://github.com/wekan/wekan/issues/2082).
|
||||
- Board favorites.
|
||||
- New Sandstorm board first user is Admin and [has IFTTT Rules](https://github.com/wekan/wekan/issues/2125) and Standalone Wekan Admin Panel.
|
||||
Probably some Admin Panel features do not work yet. Please keep backup of your grains before testing Admin Panel.
|
||||
- Linked Cards and Linked Boards.
|
||||
- Some not needed options like Logout etc have been hidden from top bar right menu.
|
||||
- [Import board now works. "Board not found" is not problem anymore](https://github.com/wekan/wekan/issues/1430), because you can go to All Boards page to change to imported board.
|
||||
|
||||
and removes the following features:
|
||||
|
||||
- Remove Welcome Board from Standalone Wekan, [to fix Welcome board not translated](https://github.com/wekan/wekan/issues/1601).
|
||||
Sandstorm Wekan does not have Welcome Board.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.27 2019-02-27 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix OIDC error "a.join is not a function"](https://github.com/wekan/wekan/issues/2206)
|
||||
by reverting configurable OAUTH2_ID_TOKEN_WHITELIST_FIELDS and
|
||||
OAUTH2_REQUEST_PERMISSIONS from Wekan v2.22-2.26.
|
||||
Thanks to GitHub user xet7.
|
||||
|
||||
# v2.26 2019-02-25 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Add setting [EMAIL_NOTIFICATION_TIMEOUT](https://github.com/wekan/wekan/issues/2203).
|
||||
Defaut 30000 ms (30s). Thanks to GitHub users ngru and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- REVERTED in v2.27 ([Fix OAuth2 requestPermissions](https://github.com/wekan/wekan/commit/5e238bfbfea16940ae29647ae347bbdc0d78efb0).
|
||||
This makes [Auth0 login possible](https://github.com/wekan/wekan/issues/1722)
|
||||
with [OIDC](https://github.com/wekan/wekan/wiki/OAuth2#auth0). Needs testing.
|
||||
Thanks to GitHub user xet7.)
|
||||
|
||||
# v2.25 2019-02-23 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Revert file permission changes from v2.24 LDAP changes that
|
||||
caused snap version to not build.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.24 2019-02-23 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add LDAP email] matching support](https://github.com/wekan/wekan-ldap/pull/39) and
|
||||
[related env variables](https://github.com/wekan/wekan/pull/2198).
|
||||
Thanks to GitHub user stevenpwaters.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- REVERTED in v2.27 ([Add missing text .env to wekan/server/authentication.js](https://github.com/wekan/wekan/commit/4e6e78ccd216045e6ad41bcdab4e524f715a7eb5).
|
||||
Thanks to Vanila Chat user .gitignore.)
|
||||
|
||||
Thanks to above contributors, and translators for their translation.
|
||||
|
||||
# v2.23 2019-02-17 Wekan relase
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix authentication dropdown](https://github.com/wekan/wekan/pull/2191).
|
||||
Thanks to Akuket.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.22 2019-02-13 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Kadira integration](https://github.com/wekan/wekan/issues/2152). Thanks to GavinLilly.
|
||||
- REVERTED in v2.27 (Add [configurable](https://github.com/wekan/wekan/issues/1874#issuecomment-462759627)
|
||||
settings [OAUTH2_ID_TOKEN_WHITELIST_FIELDS and
|
||||
OAUTH2_REQUEST_PERMISSIONS](https://github.com/wekan/wekan/commit/b66f471e530d41a3f12e4bfc29548313e9a73c35).
|
||||
Thanks to xet7.)
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix: Remove overlap of side bar button with card/list menu button on
|
||||
mobile browser](https://github.com/wekan/wekan/issues/2183). Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions, and translators for their translations.
|
||||
|
||||
# v2.21 2019-02-12 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Bump salleman-oidc to 1.0.12](https://github.com/wekan/wekan/commit/352e5c6cb07b1a09ef692af6f6c49c3b1f3e91c1). Thanks to danpatdav.
|
||||
- [Added parameters for OIDC claim mapping](https://github.com/wekan/wekan/commit/bdbbb12f967f7e4f605e6c3310290180f6c8c6d1).
|
||||
These mapping parameters take advantage of new code in salleman-oidc 1.0.12 to override the default claim names provided by the userinfo endpoint.
|
||||
Thanks to danpatdav.
|
||||
- [Add OIDC claim mapping parameters to docker-compose.yml/Snap/Source](https://github.com/wekan/wekan/commit/59314ab17d65e9579d2f29b32685b7777f2a06a1).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.20 2019-02-11 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add OIDC / OAuth2 optional setting DEBUG=true to salleman-oidc and Dockerfile](https://github.com/wekan/wekan/pull/2181).
|
||||
Thanks to danpatdav.
|
||||
- [Add OIDC / OAuth2 optional setting DEBUG=true to docker-compose.yml/Snap/Source](https://github.com/wekan/wekan/commits/8e02170dd1d5a638ba47dcca910e6eecbfd03baf).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v2.19 2019-02-09 Wekan release
|
||||
|
||||
This release removes the following new features:
|
||||
|
||||
- [Remove oplog from snap](https://github.com/wekan/wekan/commit/f1bd36a3b87f97927dfe60572646a457e1f7ef66). Need to think how to do it properly.
|
||||
|
||||
Thanks to GitHub user xet7 for conrtibutions.
|
||||
|
||||
# v2.18 2019-02-08 Wekan release
|
||||
|
||||
This release adds the folloging new features:
|
||||
|
||||
- [Improve Authentication: Admin Panel / Layout / Set Default Authentication / Password/LDAP](https://github.com/wekan/wekan/pull/2172). Thanks to Akuket.
|
||||
- [Add oplog to snap mongodb](https://github.com/wekan/wekan/commit/79ffb7d50202471c7b7f297286f13e66ce30922e). Thanks to xet7.
|
||||
|
||||
and fixes the following bugs with Apache I-CLA, thanks to bentiss:
|
||||
|
||||
- [Fix swimlanes sorting](https://github.com/wekan/wekan/pull/2174)
|
||||
since "[Properly fix horizontal rendering on Chrome and Firefox](https://github.com/wekan/wekan/commit/7cc185ac)".
|
||||
The rendering of the new design of the swimlanes was correct, but this
|
||||
commit broke the reordering capability. Having the swimlane header at
|
||||
the same level than the lists of cards makes the whole sortable
|
||||
pattern fail.
|
||||
- 2 solutions:
|
||||
- revert to only have 1 div per swimlane. But this introduces [the firefox
|
||||
bug mentioned](https://github.com/wekan/wekan/commit/7cc185ac), so not ideal
|
||||
- force the sortable pattern to do what we want.
|
||||
- To force the sortable pattern, we need:
|
||||
- add in the helper a clone of the list of cards (to not just move the
|
||||
header)
|
||||
- make sure the placeholder never get placed between the header and the
|
||||
list of cards in a swimlane
|
||||
- fix the finding of the next and previous list of cards.
|
||||
For all of this to be successful, we need to resize the swimlanes to a
|
||||
known value. This can lead to some visual jumps with scrolling when you
|
||||
drag or drop the swimlanea. I tried to remedy that by computing the new
|
||||
scroll value. Still not ideal however, as there are still some jumps when
|
||||
dropping.
|
||||
Fixes [#2159](https://github.com/wekan/wekan/issues/2159).
|
||||
|
||||
Thanks to above GitHub users and translators for contributions.
|
||||
|
||||
# v2.17 2019-02-04 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [OIDC/OAuth2 BoardView Fix](https://github.com/wekan/wekan/issues/1874).
|
||||
|
||||
Thanks to GitHub gil0109 for contributions, and translator for their translations.
|
||||
|
||||
# v2.16 2019-02-03 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Part 2](https://github.com/ChronikEwok/wekan/commit/9a6ac544dd5618e58ce107352124fd9b495e5c30):
|
||||
[Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
|
||||
Link](https://github.com/wekan/wekan/issues/1623) with
|
||||
[code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).
|
||||
|
||||
Thanks to GitHub user ChronikEwok for contributions.
|
||||
|
||||
# v2.15 2019-02-03 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
|
||||
Link](https://github.com/wekan/wekan/issues/1623) with
|
||||
[code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).
|
||||
|
||||
Thanks to GitHub user ChronikEwok for contributions.
|
||||
|
||||
# v2.14 2019-02-02 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
|
||||
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
|
||||
Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
|
||||
`curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
|
||||
If later API key does not work, you need to remove it and make a new one.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v2.13 2019-02-01 Wekan release
|
||||
|
||||
This release adds the following new features with Apache I-CLA, thanks to bentiss:
|
||||
|
||||
- [Use infinite-scrolling on lists](https://github.com/wekan/wekan/pull/2144).
|
||||
This allows to reduce the loading time of a big board.
|
||||
Note that there is an infinite scroll implementation in the mixins,
|
||||
but this doesn't fit well as the cards in the list can have arbitrary
|
||||
height.
|
||||
The idea to rely on the visibility of a spinner is based on
|
||||
http://www.meteorpedia.com/read/Infinite_Scrolling
|
||||
- [When writing to minicard, press Shift-Enter on minicard to go to next line
|
||||
below](https://github.com/wekan/wekan/commit/7a35099fb9778d5f3656a57c74af426cfb20fba3),
|
||||
to continue writing on same minicard 2nd line.
|
||||
|
||||
Thanks to GitHub user bentiss for contributions.
|
||||
|
||||
# v2.12 2019-01-31 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Bumped the salleman oidc packages versions to include an upstream bug fix](https://github.com/wekan/wekan/commit/361faa6646556de68ad78dc90d9eb9f78956ce0f).
|
||||
|
||||
Thanks to GitHub user danpatdav for contributions.
|
||||
|
||||
# v2.11 2019-01-31 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix: Bug: Not logged in public board page has calendar](https://github.com/wekan/wekan/issues/2061). Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users and translators for contributions.
|
||||
|
||||
# v2.10 2019-01-30 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Translations: Add Macedonian. [Copied Bulgarian to Macedonian](https://github.com/wekan/wekan/commit/6e4a6515e00fe68b8615d850cfb3cb290418e176)
|
||||
so that required changes will be faster to add. Thanks to translators and therampagerado.
|
||||
so that required changes will be faster to add. Thanks to translators and therampagerado;
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- Revert [Sandstorm API changes](https://github.com/wekan/wekan/commit/be03a191c4321c2f80116c0ee1ae6c826d882535
|
||||
- Revert [Sandstorm API changes](https://github.com/wekan/wekan/commit/be03a191c4321c2f80116c0ee1ae6c826d882535)
|
||||
that were done at [Wekan v2.05](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md#v205-2019-01-27-wekan-release)
|
||||
to fix #2143. Thanks to pantraining and xet7.
|
||||
|
||||
@@ -104,7 +766,7 @@ and fixes the following bugs with Apache I-CLA, thanks to bentiss:
|
||||
- [Make sure Swimlanes and Lists have a populated sort field](https://github.com/wekan/wekan/commit/5c6a725712a443b4d03b4f86262033ddfb66bc3d).
|
||||
When moving around the swimlanes or the lists, if one element has a sort
|
||||
with a null value, the computation of the new sort value is aborted,
|
||||
meaning that there are glitches in the UI.
|
||||
meaning that there are glitches in the UI.
|
||||
This happens on the first swimlane created with the new board, or when
|
||||
a swimlane or a list gets added through the API;
|
||||
- UI: Lists: [Make sure all lists boxes are the same height](https://github.com/wekan/wekan/commit/97d95b4bcbcab86629e368ea41bb9f00450b21f6).
|
||||
@@ -174,7 +836,7 @@ and fixes the following bugs:
|
||||
- When clicking Move Card, go to correct page position. Currently it's at empty page position, and there is
|
||||
need to scroll page up to see Move Card options. It should work similarly like Copy Card, that is visible.
|
||||
- Also check that other buttons go to visible page.
|
||||
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v1.97 2018-12-26 Wekan release
|
||||
@@ -183,7 +845,7 @@ This release adds the following new features:
|
||||
|
||||
- Upgrade to Node 8.15.0 and MongoDB 3.2.22.
|
||||
- Stacksmith: back to Meteor 1.6.x based Wekan, because Meteor 1.8.x based is currently broken.
|
||||
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.96 2018-12-24 Wekan release
|
||||
@@ -345,7 +1007,7 @@ Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Remove extra commas `,` and add missing backslash `\`.
|
||||
- Remove extra commas `,` and add missing backslash `\`.
|
||||
Maybe after that login, logout and CORS works.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
@@ -500,7 +1162,7 @@ and hides the following features at Sandstorm:
|
||||
|
||||
- Hide Linked Card and Linked Board on Sandstorm, because they are only
|
||||
useful when having multiple boards, and at Sandstorm
|
||||
there is only one board per grain. Thanks to ocdtrekkie and xet7. Closes #1982
|
||||
there is only one board per grain. Thanks to ocdtrekkie and xet7. Closes #1982
|
||||
|
||||
Thanks to above mentioned GitHub users for their contributions.
|
||||
|
||||
@@ -662,7 +1324,7 @@ and tries to fix the following bugs:
|
||||
- Try to fix snap.
|
||||
|
||||
Thanks to GitHub users Akuket and xet7 for their contributions.
|
||||
|
||||
|
||||
# v1.53.5 2018-10-10 Wekan Edge relase
|
||||
|
||||
This release tries to fix the following bugs:
|
||||
@@ -686,7 +1348,7 @@ This release adds the following new features:
|
||||
- [Upgrade](https://github.com/wekan/wekan/issues/1522) to [Meteor](https://blog.meteor.com/meteor-1-8-erases-the-debts-of-1-7-77af4c931fe3) [1.8.1-beta.0](https://github.com/meteor/meteor/issues/10216).
|
||||
with [these](https://github.com/wekan/wekan/commit/079e45eb52a0f62ddb6051bf2ea80fac8860d3d5)
|
||||
[commits](https://github.com/wekan/wekan/commit/dd47d46f4341a8c4ced05749633f783e88623e1b). So now it's possible to use MongoDB 2.6 - 4.0.
|
||||
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.53.2 2018-10-10 Wekan Edge release
|
||||
@@ -714,7 +1376,7 @@ and fixes the following bugs:
|
||||
- [Feature rules: fixes and enhancements](https://github.com/wekan/wekan/pull/1936).
|
||||
|
||||
Thanks to GitHub users Akuket, Angtrim, dcmcand, lberk, maximest-pierre, InfoSec812, schulz and xet7 for their contributions.
|
||||
|
||||
|
||||
# v1.52.1 2018-10-02 Wekan Edge release
|
||||
|
||||
This release adds the following new features:
|
||||
@@ -729,7 +1391,7 @@ and reverts previous change:
|
||||
Oidc already works with [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper-provider-app).
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
|
||||
# v1.51.2 2018-09-30 Wekan Edge release
|
||||
|
||||
This release adds the following new features:
|
||||
@@ -788,7 +1450,7 @@ Thanks to GitHub users Angtrim, maurice-schleussinger, suprovsky and xet7 for th
|
||||
This release adds the following new features:
|
||||
|
||||
- Change from Node v8.12.0 prerelease to use official Node v8.12.0.
|
||||
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.49 2018-09-17 Wekan release
|
||||
@@ -946,10 +1608,10 @@ Thanks to GitHub users hever, salleman33, tlevine and xet7 for their contributio
|
||||
This release adds the following new features:
|
||||
|
||||
Add Caddy plugins:
|
||||
- [http.filter](https://caddyserver.com/docs/http.filter)
|
||||
- [http.filter](https://caddyserver.com/docs/http.filter)
|
||||
for changing Wekan UI on the fly, for example custom logo,
|
||||
or changing to all different CSS file to have custom theme;
|
||||
- [http.ipfilter](https://caddyserver.com/docs/http.ipfilter)
|
||||
- [http.ipfilter](https://caddyserver.com/docs/http.ipfilter)
|
||||
to block requests by ip address;
|
||||
- [http.realip](https://caddyserver.com/docs/http.realip)
|
||||
for showing real X-Forwarded-For IP to behind proxy;
|
||||
@@ -1245,7 +1907,7 @@ and fixes the following bugs:
|
||||
* To fix ["title is required"](https://github.com/wekan/wekan/issues/1576) fix only
|
||||
[add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734);
|
||||
* [Restore invitation code logic](https://github.com/wekan/wekan/pull/1732). Please test and add comment
|
||||
to those invitation code issues that this fixes.
|
||||
to those invitation code issues that this fixes.
|
||||
|
||||
Thanks to GitHub users TNick and xet7 for their contributions.
|
||||
|
||||
@@ -1416,7 +2078,7 @@ This release adds the following new features:
|
||||
and fixes the following bugs:
|
||||
|
||||
* [Error: title is required](https://github.com/wekan/wekan/issues/1576).
|
||||
|
||||
|
||||
Thanks to GitHub users Shahar-Y, thiagofernando and ThisNeko for their contributions.
|
||||
|
||||
# v0.94 2018-05-03 Wekan release
|
||||
|
||||
+42
-83
@@ -1,82 +1,12 @@
|
||||
FROM debian:buster-slim
|
||||
FROM ubuntu:disco
|
||||
LABEL maintainer="wekan"
|
||||
|
||||
# Declare Arguments
|
||||
ARG NODE_VERSION
|
||||
ARG METEOR_RELEASE
|
||||
ARG METEOR_EDGE
|
||||
ARG USE_EDGE
|
||||
ARG NPM_VERSION
|
||||
ARG FIBERS_VERSION
|
||||
ARG ARCHITECTURE
|
||||
ARG SRC_PATH
|
||||
ARG WITH_API
|
||||
ARG MATOMO_ADDRESS
|
||||
ARG MATOMO_SITE_ID
|
||||
ARG MATOMO_DO_NOT_TRACK
|
||||
ARG MATOMO_WITH_USERNAME
|
||||
ARG BROWSER_POLICY_ENABLED
|
||||
ARG TRUSTED_URL
|
||||
ARG WEBHOOKS_ATTRIBUTES
|
||||
ARG OAUTH2_ENABLED
|
||||
ARG OAUTH2_CLIENT_ID
|
||||
ARG OAUTH2_SECRET
|
||||
ARG OAUTH2_SERVER_URL
|
||||
ARG OAUTH2_AUTH_ENDPOINT
|
||||
ARG OAUTH2_USERINFO_ENDPOINT
|
||||
ARG OAUTH2_TOKEN_ENDPOINT
|
||||
ARG LDAP_ENABLE
|
||||
ARG LDAP_PORT
|
||||
ARG LDAP_HOST
|
||||
ARG LDAP_BASEDN
|
||||
ARG LDAP_LOGIN_FALLBACK
|
||||
ARG LDAP_RECONNECT
|
||||
ARG LDAP_TIMEOUT
|
||||
ARG LDAP_IDLE_TIMEOUT
|
||||
ARG LDAP_CONNECT_TIMEOUT
|
||||
ARG LDAP_AUTHENTIFICATION
|
||||
ARG LDAP_AUTHENTIFICATION_USERDN
|
||||
ARG LDAP_AUTHENTIFICATION_PASSWORD
|
||||
ARG LDAP_LOG_ENABLED
|
||||
ARG LDAP_BACKGROUND_SYNC
|
||||
ARG LDAP_BACKGROUND_SYNC_INTERVAL
|
||||
ARG LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED
|
||||
ARG LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS
|
||||
ARG LDAP_ENCRYPTION
|
||||
ARG LDAP_CA_CERT
|
||||
ARG LDAP_REJECT_UNAUTHORIZED
|
||||
ARG LDAP_USER_SEARCH_FILTER
|
||||
ARG LDAP_USER_SEARCH_SCOPE
|
||||
ARG LDAP_USER_SEARCH_FIELD
|
||||
ARG LDAP_SEARCH_PAGE_SIZE
|
||||
ARG LDAP_SEARCH_SIZE_LIMIT
|
||||
ARG LDAP_GROUP_FILTER_ENABLE
|
||||
ARG LDAP_GROUP_FILTER_OBJECTCLASS
|
||||
ARG LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE
|
||||
ARG LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE
|
||||
ARG LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT
|
||||
ARG LDAP_GROUP_FILTER_GROUP_NAME
|
||||
ARG LDAP_UNIQUE_IDENTIFIER_FIELD
|
||||
ARG LDAP_UTF8_NAMES_SLUGIFY
|
||||
ARG LDAP_USERNAME_FIELD
|
||||
ARG LDAP_FULLNAME_FIELD
|
||||
ARG LDAP_MERGE_EXISTING_USERS
|
||||
ARG LDAP_SYNC_USER_DATA
|
||||
ARG LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
ARG LDAP_SYNC_GROUP_ROLES
|
||||
ARG LDAP_DEFAULT_DOMAIN
|
||||
ARG LOGOUT_WITH_TIMER
|
||||
ARG LOGOUT_IN
|
||||
ARG LOGOUT_ON_HOURS
|
||||
ARG LOGOUT_ON_MINUTES
|
||||
ARG CORS
|
||||
ARG DEFAULT_AUTHENTICATION_METHOD
|
||||
|
||||
# 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"
|
||||
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python python3 python3-distutils git ca-certificates gcc-7" \
|
||||
NODE_VERSION=v8.15.0 \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v8.16.0 \
|
||||
METEOR_RELEASE=1.6.0.1 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
@@ -85,6 +15,13 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
WITH_API=true \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
|
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \
|
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
|
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
|
||||
EMAIL_NOTIFICATION_TIMEOUT=30000 \
|
||||
MATOMO_ADDRESS="" \
|
||||
MATOMO_SITE_ID="" \
|
||||
MATOMO_DO_NOT_TRACK=true \
|
||||
@@ -93,12 +30,17 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
|
||||
TRUSTED_URL="" \
|
||||
WEBHOOKS_ATTRIBUTES="" \
|
||||
OAUTH2_ENABLED=false \
|
||||
OAUTH2_LOGIN_STYLE=redirect \
|
||||
OAUTH2_CLIENT_ID="" \
|
||||
OAUTH2_SECRET="" \
|
||||
OAUTH2_SERVER_URL="" \
|
||||
OAUTH2_AUTH_ENDPOINT="" \
|
||||
OAUTH2_USERINFO_ENDPOINT="" \
|
||||
OAUTH2_TOKEN_ENDPOINT="" \
|
||||
OAUTH2_ID_MAP="" \
|
||||
OAUTH2_USERNAME_MAP="" \
|
||||
OAUTH2_FULLNAME_MAP="" \
|
||||
OAUTH2_EMAIL_MAP="" \
|
||||
LDAP_ENABLE=false \
|
||||
LDAP_PORT=389 \
|
||||
LDAP_HOST="" \
|
||||
@@ -135,10 +77,20 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
|
||||
LDAP_USERNAME_FIELD="" \
|
||||
LDAP_FULLNAME_FIELD="" \
|
||||
LDAP_MERGE_EXISTING_USERS=false \
|
||||
LDAP_EMAIL_FIELD="" \
|
||||
LDAP_EMAIL_MATCH_ENABLE=false \
|
||||
LDAP_EMAIL_MATCH_REQUIRE=false \
|
||||
LDAP_EMAIL_MATCH_VERIFIED=false \
|
||||
LDAP_SYNC_USER_DATA=false \
|
||||
LDAP_SYNC_USER_DATA_FIELDMAP="" \
|
||||
LDAP_SYNC_GROUP_ROLES="" \
|
||||
LDAP_DEFAULT_DOMAIN="" \
|
||||
LDAP_SYNC_ADMIN_STATUS="" \
|
||||
LDAP_SYNC_ADMIN_GROUPS="" \
|
||||
HEADER_LOGIN_ID="" \
|
||||
HEADER_LOGIN_FIRSTNAME="" \
|
||||
HEADER_LOGIN_LASTNAME="" \
|
||||
HEADER_LOGIN_EMAIL="" \
|
||||
LOGOUT_WITH_TIMER=false \
|
||||
LOGOUT_IN="" \
|
||||
LOGOUT_ON_HOURS="" \
|
||||
@@ -239,36 +191,43 @@ RUN \
|
||||
fi; \
|
||||
\
|
||||
# Get additional packages
|
||||
mkdir -p /home/wekan/app/packages && \
|
||||
#mkdir -p /home/wekan/app/packages && \
|
||||
chown wekan:wekan --recursive /home/wekan && \
|
||||
cd /home/wekan/app/packages && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/flow-router.git kadira-flow-router && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/meteor-accounts-cas.git && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/wekan-ldap.git && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/wekan-scrollbar.git && \
|
||||
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
|
||||
#cd /home/wekan/app/packages && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git && \
|
||||
#gosu wekan:wekan git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git && \
|
||||
#gosu wekan:wekan mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc && \
|
||||
#gosu wekan:wekan mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc && \
|
||||
#gosu wekan:wekan rm -rf meteor-accounts-oidc && \
|
||||
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js && \
|
||||
cd /home/wekan/.meteor && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
|
||||
\
|
||||
# extract the OpenAPI specification
|
||||
npm install -g api2html && \
|
||||
npm install -g api2html@0.3.0 && \
|
||||
mkdir -p /home/wekan/python && \
|
||||
chown wekan:wekan --recursive /home/wekan/python && \
|
||||
cd /home/wekan/python && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/Kronuz/esprima-python && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master https://github.com/Kronuz/esprima-python && \
|
||||
cd /home/wekan/python/esprima-python && \
|
||||
python3 setup.py install --record files.txt && \
|
||||
cd /home/wekan/app &&\
|
||||
mkdir -p ./public/api && \
|
||||
python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml && \
|
||||
/opt/nodejs/bin/api2html -c ./public/wekan-logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
|
||||
/opt/nodejs/bin/api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
|
||||
# Build app
|
||||
cd /home/wekan/app && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor npm install && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
|
||||
cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
||||
rm /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs && \
|
||||
chown wekan:wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
|
||||
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||||
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[](https://codeclimate.com/github/wekan/wekan)
|
||||
[](https://david-dm.org/wekan/wekan)
|
||||
[](https://www.openhub.net/p/wekan)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
|
||||
|
||||
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
|
||||
|
||||
@@ -22,9 +23,8 @@ It's better than at chat where details get lost when chat scrolls up.
|
||||
|
||||
## Chat
|
||||
|
||||
[![Wekan Vanila Chat][vanila_badge]][vanila_chat] - Most Wekan community and developers are here at #wekan chat channel.
|
||||
Use webbrowser to register, and after that you can also alternatively use mobile app Rocket.Chat by Rocket.Chat with
|
||||
address https://chat.vanila.io and same username and password.
|
||||
[![Wekan Chat][vanila_badge]][wekan_chat] - Most Wekan community and developers are here. Works on webbrowser
|
||||
and PWA app that can be added as icon on Android and bookmark on iOS, used like native app.
|
||||
|
||||
[Wekan IRC FAQ](https://github.com/wekan/wekan/wiki/IRC-FAQ)
|
||||
|
||||
@@ -39,33 +39,55 @@ address https://chat.vanila.io and same username and password.
|
||||
Wekan is an completely [Open Source][open_source] and [Free software][free_software]
|
||||
collaborative kanban board application with MIT license.
|
||||
|
||||
Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most.
|
||||
Whether you’re maintaining a personal todo list, planning your holidays with some friends,
|
||||
or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool
|
||||
to keep your things organized. They give you a visual overview of the current state of your project,
|
||||
and make you productive by allowing you to focus on the few items that matter the most.
|
||||
|
||||
Since Wekan is a free software, you don’t have to trust us with your data and can
|
||||
install Wekan on your own computer or server. In fact we encourage you to do
|
||||
that by providing one-click installation on various platforms.
|
||||
|
||||
- [Features][features]: Wekan has real-time user interface. Not all features are implemented, yet.
|
||||
- [Platforms][platforms]: Wekan supports many platforms and plan is to add more. This will be the first place to look if you want to **install** it, test out and learn more in depth.
|
||||
- Wekan is used in [most countries of the world](https://snapcraft.io/wekan).
|
||||
- Wekan largest user has 13k users using Wekan in their company.
|
||||
- Wekan has been [translated](https://transifex.com/wekan/wekan) to about 50 languages.
|
||||
- [Features][features]: Wekan has real-time user interface.
|
||||
- [Platforms][platforms]: Wekan supports many platforms.
|
||||
Wekan is critical part of new platforms Wekan is currently being integrated to.
|
||||
- [Integrations][integrations]: Current possible integrations and future plans.
|
||||
- [Team](https://github.com/wekan/wekan/wiki/Team): The people who spends their time and make Wekan into what it is right now.
|
||||
|
||||
## Requirements
|
||||
|
||||
- 64bit: Linux [Snap](https://github.com/wekan/wekan-snap/wiki/Install) or [Sandstorm](https://sandstorm.io) /
|
||||
[Mac](https://github.com/wekan/wekan/wiki/Mac) / [Windows](https://github.com/wekan/wekan/wiki/Install-Wekan-from-source-on-Windows).
|
||||
[More Platforms](https://github.com/wekan/wekan/wiki/Platforms). [ARM progress](https://github.com/wekan/wekan/issues/1053#issuecomment-410919264).
|
||||
- 1 GB RAM minimum free for Wekan. Production server should have miminum total 4 GB RAM.
|
||||
For thousands of users, for example with [Docker](https://github.com/wekan/wekan/blob/devel/docker-compose.yml): 3 frontend servers,
|
||||
each having 2 CPU and 2 wekan-app containers. One backend wekan-db server with many CPUs.
|
||||
- Enough disk space and alerts about low disk space. If you run out disk space, MongoDB database gets corrupted.
|
||||
- SECURITY: Updating to newest Wekan version very often. Please check you do not have automatic updates of Sandstorm or Snap turned off.
|
||||
Old versions have security issues because of old versions Node.js etc. Only newest Wekan is supported.
|
||||
Wekan on Sandstorm is not usually affected by any Standalone Wekan (Snap/Docker/Source) security issues.
|
||||
- [Reporting all new bugs immediately](https://github.com/wekan/wekan/issues).
|
||||
New features and fixes are added to Wekan [many times a day](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md).
|
||||
- [Backups](https://github.com/wekan/wekan/wiki/Backup) of Wekan database once a day miminum.
|
||||
Bugs, updates, users deleting list or card, harddrive full, harddrive crash etc can eat your data. There is no undo yet.
|
||||
Some bug can cause Wekan board to not load at all, requiring manual fixing of database content.
|
||||
|
||||
## Roadmap
|
||||
|
||||
[Roadmap](https://github.com/wekan/wekan/wiki/Roadmap)
|
||||
[Roadmap Milestones](https://github.com/wekan/wekan/milestones)
|
||||
|
||||
Upcoming Wekan App Development Platform will make possible many use cases. If you don't find your feature or integration in
|
||||
GitHub issues and [Features][features] or [Integrations][integrations] page at wiki, please add them.
|
||||
[Developer Documentation][dev_docs]
|
||||
|
||||
We are very welcoming to new developers and teams to submit new pull requests to devel branch to make this Wekan App Development Platform possible faster. Please see [Developer Documentation][dev_docs] to get started.
|
||||
- There is many companies and individuals contributing code to Wekan, to add features and bugfixes
|
||||
[many times a day](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md).
|
||||
- [Please add Add new Feature Requests and Bug Reports immediately](https://github.com/wekan/wekan/issues).
|
||||
- [Commercial Support](https://wekan.team).
|
||||
- [Bounties](https://wekan.team/bounties/index.html).
|
||||
|
||||
We also welcome sponsors for features and bugfixes. By working directly with Wekan you get the benefit of active maintenance and new features added by growing Wekan developer community.
|
||||
|
||||
Actual work happens at [Wekan GitHub issues][wekan_issues].
|
||||
|
||||
See [Development links on Wekan wiki](https://github.com/wekan/wekan/wiki#Development) bottom of the page for more info.
|
||||
|
||||
If you want to know what is going on exactly this moment, you can check out the [project page](https://github.com/wekan/wekan/projects/2).
|
||||
We also welcome sponsors for features and bugfixes.
|
||||
By working directly with Wekan you get the benefit of active maintenance and new features added by growing Wekan developer community.
|
||||
|
||||
## Demo
|
||||
|
||||
@@ -111,4 +133,7 @@ with [Meteor](https://www.meteor.com).
|
||||
[open_source]: https://en.wikipedia.org/wiki/Open-source_software
|
||||
[free_software]: https://en.wikipedia.org/wiki/Free_software
|
||||
[vanila_badge]: https://vanila.io/img/join-chat-button2.png
|
||||
[vanila_chat]: https://chat.vanila.io/channel/wekan
|
||||
[wekan_chat]: https://community.vanila.io/wekan
|
||||
|
||||
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_large)
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v2.10.0"
|
||||
appVersion: "v2.62.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -99,6 +99,9 @@ template(name="boardActivities")
|
||||
else
|
||||
| {{{_ 'activity-added' memberLink cardLink}}}.
|
||||
|
||||
if($eq activityType 'moveCardBoard')
|
||||
| {{{_ 'activity-moved' cardLink oldBoardName boardName}}}.
|
||||
|
||||
if($eq activityType 'moveCard')
|
||||
| {{{_ 'activity-moved' cardLink oldList.title list.title}}}.
|
||||
|
||||
@@ -114,6 +117,12 @@ template(name="boardActivities")
|
||||
if($eq activityType 'removedLabel')
|
||||
| {{{_ 'activity-removed-label' lastLabel cardLink}}}.
|
||||
|
||||
if($eq activityType 'setCustomField')
|
||||
| {{{_ 'activity-set-customfield' lastCustomField lastCustomFieldValue cardLink}}}.
|
||||
|
||||
if($eq activityType 'unsetCustomField')
|
||||
| {{{_ 'activity-unset-customfield' lastCustomField cardLink}}}.
|
||||
|
||||
if($eq activityType 'unjoinMember')
|
||||
if($eq user._id member._id)
|
||||
| {{{_ 'activity-unjoined' cardLink}}}.
|
||||
@@ -129,7 +138,7 @@ template(name="cardActivities")
|
||||
p.activity-desc
|
||||
+memberName(user=user)
|
||||
if($eq activityType 'createCard')
|
||||
| {{_ 'activity-added' cardLabel list.title}}.
|
||||
| {{_ 'activity-added' cardLabel listName}}.
|
||||
if($eq activityType 'importCard')
|
||||
| {{{_ 'activity-imported' cardLabel list.title sourceLink}}}.
|
||||
if($eq activityType 'joinMember')
|
||||
@@ -170,6 +179,10 @@ template(name="cardActivities")
|
||||
| {{_ 'activity-sent' cardLabel boardLabel}}.
|
||||
if($eq activityType 'moveCard')
|
||||
| {{_ 'activity-moved' cardLabel oldList.title list.title}}.
|
||||
|
||||
if($eq activityType 'moveCardBoard')
|
||||
| {{{_ 'activity-moved' cardLink oldBoardName boardName}}}.
|
||||
|
||||
if($eq activityType 'addAttachment')
|
||||
| {{{_ 'activity-attached' attachmentLink cardLabel}}}.
|
||||
if attachment.isImage
|
||||
|
||||
@@ -74,6 +74,8 @@ BlazeComponent.extendComponent({
|
||||
|
||||
lastLabel(){
|
||||
const lastLabelId = this.currentData().labelId;
|
||||
if (!lastLabelId)
|
||||
return null;
|
||||
const lastLabel = Boards.findOne(Session.get('currentBoard')).getLabelById(lastLabelId);
|
||||
if(lastLabel.name === undefined || lastLabel.name === ''){
|
||||
return lastLabel.color;
|
||||
@@ -82,6 +84,28 @@ BlazeComponent.extendComponent({
|
||||
}
|
||||
},
|
||||
|
||||
lastCustomField(){
|
||||
const lastCustomField = CustomFields.findOne(this.currentData().customFieldId);
|
||||
if (!lastCustomField)
|
||||
return null;
|
||||
return lastCustomField.name;
|
||||
},
|
||||
|
||||
lastCustomFieldValue(){
|
||||
const lastCustomField = CustomFields.findOne(this.currentData().customFieldId);
|
||||
if (!lastCustomField)
|
||||
return null;
|
||||
const value = this.currentData().value;
|
||||
if (lastCustomField.settings.dropdownItems && lastCustomField.settings.dropdownItems.length > 0) {
|
||||
const dropDownValue = _.find(lastCustomField.settings.dropdownItems, (item) => {
|
||||
return item._id === value;
|
||||
});
|
||||
if (dropDownValue)
|
||||
return dropDownValue.name;
|
||||
}
|
||||
return value;
|
||||
},
|
||||
|
||||
listLabel() {
|
||||
return this.currentData().list().title;
|
||||
},
|
||||
@@ -117,6 +141,8 @@ BlazeComponent.extendComponent({
|
||||
|
||||
customField() {
|
||||
const customField = this.currentData().customField();
|
||||
if (!customField)
|
||||
return null;
|
||||
return customField.name;
|
||||
},
|
||||
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
Template.boardListHeaderBar.events({
|
||||
'click .js-open-archived-board'() {
|
||||
Modal.open('archivedBoards');
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.subscribe('archivedBoards');
|
||||
|
||||
@@ -20,16 +20,20 @@ template(name="boardBody")
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
|
||||
if showOverlay.get
|
||||
.board-overlay
|
||||
if isViewSwimlanes
|
||||
if currentBoard.isTemplatesBoard
|
||||
each currentBoard.swimlanes
|
||||
+swimlane(this)
|
||||
if isViewLists
|
||||
+listsGroup
|
||||
if isViewCalendar
|
||||
else if isViewSwimlanes
|
||||
each currentBoard.swimlanes
|
||||
+swimlane(this)
|
||||
else if isViewLists
|
||||
+listsGroup(currentBoard)
|
||||
else if isViewCalendar
|
||||
+calendarView
|
||||
|
||||
template(name="calendarView")
|
||||
.calendar-view.swimlane
|
||||
if currentCard
|
||||
+cardDetails(currentCard)
|
||||
+fullcalendar(calendarOptions)
|
||||
if isViewCalendar
|
||||
.calendar-view.swimlane
|
||||
if currentCard
|
||||
+cardDetails(currentCard)
|
||||
+fullcalendar(calendarOptions)
|
||||
@@ -1,5 +1,6 @@
|
||||
const subManager = new SubsManager();
|
||||
const { calculateIndex, enableClickOnTouch } = Utils;
|
||||
const swimlaneWhileSortingHeight = 150;
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
@@ -74,21 +75,64 @@ BlazeComponent.extendComponent({
|
||||
$swimlanesDom.sortable({
|
||||
tolerance: 'pointer',
|
||||
appendTo: '.board-canvas',
|
||||
helper: 'clone',
|
||||
helper(evt, item) {
|
||||
const helper = $(`<div class="swimlane"
|
||||
style="flex-direction: column;
|
||||
height: ${swimlaneWhileSortingHeight}px;
|
||||
width: $(boardComponent.width)px;
|
||||
overflow: hidden;"/>`);
|
||||
helper.append(item.clone());
|
||||
// Also grab the list of lists of cards
|
||||
const list = item.next();
|
||||
helper.append(list.clone());
|
||||
return helper;
|
||||
},
|
||||
handle: '.js-swimlane-header',
|
||||
items: '.js-swimlane:not(.placeholder)',
|
||||
items: '.swimlane:not(.placeholder)',
|
||||
placeholder: 'swimlane placeholder',
|
||||
distance: 7,
|
||||
start(evt, ui) {
|
||||
const listDom = ui.placeholder.next('.js-swimlane');
|
||||
const parentOffset = ui.item.parent().offset();
|
||||
|
||||
ui.placeholder.height(ui.helper.height());
|
||||
EscapeActions.executeUpTo('popup-close');
|
||||
listDom.addClass('moving-swimlane');
|
||||
boardComponent.setIsDragging(true);
|
||||
|
||||
ui.placeholder.insertAfter(ui.placeholder.next());
|
||||
boardComponent.origPlaceholderIndex = ui.placeholder.index();
|
||||
|
||||
// resize all swimlanes + headers to be a total of 150 px per row
|
||||
// this could be achieved by setIsDragging(true) but we want immediate
|
||||
// result
|
||||
ui.item.siblings('.js-swimlane').css('height', `${swimlaneWhileSortingHeight - 26}px`);
|
||||
|
||||
// set the new scroll height after the resize and insertion of
|
||||
// the placeholder. We want the element under the cursor to stay
|
||||
// at the same place on the screen
|
||||
ui.item.parent().get(0).scrollTop = ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
|
||||
},
|
||||
beforeStop(evt, ui) {
|
||||
const parentOffset = ui.item.parent().offset();
|
||||
const siblings = ui.item.siblings('.js-swimlane');
|
||||
siblings.css('height', '');
|
||||
|
||||
// compute the new scroll height after the resize and removal of
|
||||
// the placeholder
|
||||
const scrollTop = ui.placeholder.get(0).offsetTop + parentOffset.top - evt.pageY;
|
||||
|
||||
// then reset the original view of the swimlane
|
||||
siblings.removeClass('moving-swimlane');
|
||||
|
||||
// and apply the computed scrollheight
|
||||
ui.item.parent().get(0).scrollTop = scrollTop;
|
||||
},
|
||||
stop(evt, ui) {
|
||||
// To attribute the new index number, we need to get the DOM element
|
||||
// of the previous and the following card -- if any.
|
||||
const prevSwimlaneDom = ui.item.prev('.js-swimlane').get(0);
|
||||
const nextSwimlaneDom = ui.item.next('.js-swimlane').get(0);
|
||||
const prevSwimlaneDom = ui.item.prevAll('.js-swimlane').get(0);
|
||||
const nextSwimlaneDom = ui.item.nextAll('.js-swimlane').get(0);
|
||||
const sortIndex = calculateIndex(prevSwimlaneDom, nextSwimlaneDom, 1);
|
||||
|
||||
$swimlanesDom.sortable('cancel');
|
||||
@@ -103,6 +147,30 @@ BlazeComponent.extendComponent({
|
||||
|
||||
boardComponent.setIsDragging(false);
|
||||
},
|
||||
sort(evt, ui) {
|
||||
// get the mouse position in the sortable
|
||||
const parentOffset = ui.item.parent().offset();
|
||||
const cursorY = evt.pageY - parentOffset.top + ui.item.parent().scrollTop();
|
||||
|
||||
// compute the intended index of the placeholder (we need to skip the
|
||||
// slots between the headers and the list of cards)
|
||||
const newplaceholderIndex = Math.floor(cursorY / swimlaneWhileSortingHeight);
|
||||
let destPlaceholderIndex = (newplaceholderIndex + 1) * 2;
|
||||
|
||||
// if we are scrolling far away from the bottom of the list
|
||||
if (destPlaceholderIndex >= ui.item.parent().get(0).childElementCount) {
|
||||
destPlaceholderIndex = ui.item.parent().get(0).childElementCount - 1;
|
||||
}
|
||||
|
||||
// update the placeholder position in the DOM tree
|
||||
if (destPlaceholderIndex !== ui.placeholder.index()) {
|
||||
if (destPlaceholderIndex < boardComponent.origPlaceholderIndex) {
|
||||
ui.placeholder.insertBefore(ui.placeholder.siblings().slice(destPlaceholderIndex - 2, destPlaceholderIndex - 1));
|
||||
} else {
|
||||
ui.placeholder.insertAfter(ui.placeholder.siblings().slice(destPlaceholderIndex - 1, destPlaceholderIndex));
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// ugly touch event hotfix
|
||||
@@ -134,7 +202,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
isViewCalendar() {
|
||||
const currentUser = Meteor.user();
|
||||
if (!currentUser) return true;
|
||||
if (!currentUser) return false;
|
||||
return (currentUser.profile.boardView === 'board-view-cal');
|
||||
},
|
||||
|
||||
@@ -264,4 +332,9 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
};
|
||||
},
|
||||
isViewCalendar() {
|
||||
const currentUser = Meteor.user();
|
||||
if (!currentUser) return false;
|
||||
return (currentUser.profile.boardView === 'board-view-cal');
|
||||
},
|
||||
}).register('calendarView');
|
||||
@@ -50,6 +50,6 @@ position()
|
||||
display: flex
|
||||
flex-direction: column
|
||||
margin: 0
|
||||
padding: 0 40px 0px 0
|
||||
padding: 0 0px 0px 0
|
||||
overflow-x: hidden
|
||||
overflow-y: auto
|
||||
@@ -7,71 +7,69 @@ template(name="boardHeaderBar")
|
||||
|
||||
.board-header-btns.left
|
||||
unless isMiniScreen
|
||||
unless isSandstorm
|
||||
if currentBoard
|
||||
if currentUser
|
||||
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
|
||||
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
|
||||
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
|
||||
if showStarCounter
|
||||
span
|
||||
= currentBoard.stars
|
||||
if currentBoard
|
||||
if currentUser
|
||||
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
|
||||
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
|
||||
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
|
||||
if showStarCounter
|
||||
span
|
||||
= currentBoard.stars
|
||||
|
||||
a.board-header-btn(
|
||||
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
|
||||
title="{{_ currentBoard.permission}}")
|
||||
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
|
||||
span {{_ currentBoard.permission}}
|
||||
a.board-header-btn(
|
||||
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
|
||||
title="{{_ currentBoard.permission}}")
|
||||
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
|
||||
span {{_ currentBoard.permission}}
|
||||
|
||||
a.board-header-btn.js-watch-board(
|
||||
title="{{_ watchLevel }}")
|
||||
if $eq watchLevel "watching"
|
||||
i.fa.fa-eye
|
||||
if $eq watchLevel "tracking"
|
||||
i.fa.fa-bell
|
||||
if $eq watchLevel "muted"
|
||||
i.fa.fa-bell-slash
|
||||
span {{_ watchLevel}}
|
||||
a.board-header-btn.js-watch-board(
|
||||
title="{{_ watchLevel }}")
|
||||
if $eq watchLevel "watching"
|
||||
i.fa.fa-eye
|
||||
if $eq watchLevel "tracking"
|
||||
i.fa.fa-bell
|
||||
if $eq watchLevel "muted"
|
||||
i.fa.fa-bell-slash
|
||||
span {{_ watchLevel}}
|
||||
|
||||
else
|
||||
a.board-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
else
|
||||
a.board-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
|
||||
.board-header-btns.right
|
||||
if currentBoard
|
||||
if isMiniScreen
|
||||
unless isSandstorm
|
||||
if currentUser
|
||||
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
|
||||
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
|
||||
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
|
||||
if showStarCounter
|
||||
span
|
||||
= currentBoard.stars
|
||||
if currentUser
|
||||
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
|
||||
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
|
||||
i.fa(class="fa-star{{#unless isStarred}}-o{{/unless}}")
|
||||
if showStarCounter
|
||||
span
|
||||
= currentBoard.stars
|
||||
|
||||
a.board-header-btn(
|
||||
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
|
||||
title="{{_ currentBoard.permission}}")
|
||||
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
|
||||
span {{_ currentBoard.permission}}
|
||||
a.board-header-btn(
|
||||
class="{{#if currentUser.isBoardAdmin}}js-change-visibility{{else}}is-disabled{{/if}}"
|
||||
title="{{_ currentBoard.permission}}")
|
||||
i.fa(class="{{#if currentBoard.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
|
||||
span {{_ currentBoard.permission}}
|
||||
|
||||
a.board-header-btn.js-watch-board(
|
||||
title="{{_ watchLevel }}")
|
||||
if $eq watchLevel "watching"
|
||||
i.fa.fa-eye
|
||||
if $eq watchLevel "tracking"
|
||||
i.fa.fa-bell
|
||||
if $eq watchLevel "muted"
|
||||
i.fa.fa-bell-slash
|
||||
span {{_ watchLevel}}
|
||||
a.board-header-btn.js-watch-board(
|
||||
title="{{_ watchLevel }}")
|
||||
if $eq watchLevel "watching"
|
||||
i.fa.fa-eye
|
||||
if $eq watchLevel "tracking"
|
||||
i.fa.fa-bell
|
||||
if $eq watchLevel "muted"
|
||||
i.fa.fa-bell-slash
|
||||
span {{_ watchLevel}}
|
||||
|
||||
else
|
||||
a.board-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
else
|
||||
a.board-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
|
||||
if isSandstorm
|
||||
if currentUser
|
||||
@@ -96,10 +94,11 @@ template(name="boardHeaderBar")
|
||||
i.fa.fa-search
|
||||
span {{_ 'search'}}
|
||||
|
||||
a.board-header-btn.js-toggle-board-view(
|
||||
title="{{_ 'board-view'}}")
|
||||
i.fa.fa-th-large
|
||||
span {{_ currentUser.profile.boardView}}
|
||||
unless currentBoard.isTemplatesBoard
|
||||
a.board-header-btn.js-toggle-board-view(
|
||||
title="{{_ 'board-view'}}")
|
||||
i.fa.fa-th-large
|
||||
span {{_ currentUser.profile.boardView}}
|
||||
|
||||
if canModifyBoard
|
||||
a.board-header-btn.js-multiselection-activate(
|
||||
@@ -112,40 +111,8 @@ template(name="boardHeaderBar")
|
||||
i.fa.fa-times-thin
|
||||
|
||||
.separator
|
||||
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}")
|
||||
i.board-header-btn-icon.fa.fa-navicon
|
||||
|
||||
template(name="boardMenuPopup")
|
||||
ul.pop-over-list
|
||||
li: a.js-custom-fields {{_ 'custom-fields'}}
|
||||
li: a.js-open-archives {{_ 'archived-items'}}
|
||||
if currentUser.isBoardAdmin
|
||||
li: a.js-change-board-color {{_ 'board-change-color'}}
|
||||
//-
|
||||
XXX Language should be handled by sandstorm, but for now display a
|
||||
language selection link in the board menu. This link is normally present
|
||||
in the header bar that is not displayed on sandstorm.
|
||||
if isSandstorm
|
||||
li: a.js-change-language {{_ 'language'}}
|
||||
unless isSandstorm
|
||||
if currentUser.isBoardAdmin
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
|
||||
li: a.js-archive-board {{_ 'archive-board'}}
|
||||
li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-subtask-settings {{_ 'subtask-settings'}}
|
||||
|
||||
if isSandstorm
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
|
||||
li: a.js-import-board {{_ 'import-board-c'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-subtask-settings {{_ 'subtask-settings'}}
|
||||
a.board-header-btn.js-toggle-sidebar
|
||||
i.fa.fa-navicon
|
||||
|
||||
template(name="boardVisibilityList")
|
||||
ul.pop-over-list
|
||||
@@ -196,64 +163,6 @@ template(name="boardChangeWatchPopup")
|
||||
i.fa.fa-check
|
||||
span.sub-name {{_ 'muted-info'}}
|
||||
|
||||
template(name="boardChangeColorPopup")
|
||||
.board-backgrounds-list.clearfix
|
||||
each backgroundColors
|
||||
.board-background-select.js-select-background
|
||||
span.background-box(class="board-color-{{this}}")
|
||||
if isSelected
|
||||
i.fa.fa-check
|
||||
|
||||
template(name="boardSubtaskSettingsPopup")
|
||||
form.board-subtask-settings
|
||||
h3 {{_ 'show-parent-in-minicard'}}
|
||||
a#prefix-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
||||
span {{_ 'prefix-with-full-path'}}
|
||||
a#prefix-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'prefix-with-parent'}}
|
||||
a#subtext-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
||||
span {{_ 'subtext-with-full-path'}}
|
||||
a#subtext-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'subtext-with-parent'}}
|
||||
a#no-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'no-parent'}}
|
||||
div
|
||||
hr
|
||||
|
||||
div.check-div
|
||||
a.flex.js-field-has-subtasks(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
||||
span {{_ 'show-subtasks-field'}}
|
||||
|
||||
label
|
||||
| {{_ 'deposit-subtasks-board'}}
|
||||
select.js-field-deposit-board(disabled="{{#unless allowsSubtasks}}disabled{{/unless}}")
|
||||
each boards
|
||||
if isBoardSelected
|
||||
option(value=_id selected="selected") {{title}}
|
||||
else
|
||||
option(value=_id) {{title}}
|
||||
if isNullBoardSelected
|
||||
option(value='null' selected="selected") {{_ 'custom-field-dropdown-none'}}
|
||||
else
|
||||
option(value='null') {{_ 'custom-field-dropdown-none'}}
|
||||
div
|
||||
hr
|
||||
|
||||
label
|
||||
| {{_ 'deposit-subtasks-list'}}
|
||||
select.js-field-deposit-list(disabled="{{#unless hasLists}}disabled{{/unless}}")
|
||||
each lists
|
||||
if isListSelected
|
||||
option(value=_id selected="selected") {{title}}
|
||||
else
|
||||
option(value=_id) {{title}}
|
||||
|
||||
template(name="createBoard")
|
||||
form
|
||||
label
|
||||
@@ -275,14 +184,10 @@ template(name="createBoard")
|
||||
input.primary.wide(type="submit" value="{{_ 'create'}}")
|
||||
span.quiet
|
||||
| {{_ 'or'}}
|
||||
a.js-import-board {{_ 'import-board'}}
|
||||
|
||||
template(name="chooseBoardSource")
|
||||
ul.pop-over-list
|
||||
li
|
||||
a(href="{{pathFor '/import/trello'}}") {{_ 'from-trello'}}
|
||||
li
|
||||
a(href="{{pathFor '/import/wekan'}}") {{_ 'from-wekan'}}
|
||||
a.js-import-board {{_ 'import'}}
|
||||
span.quiet
|
||||
| /
|
||||
a.js-board-template {{_ 'template'}}
|
||||
|
||||
template(name="boardChangeTitlePopup")
|
||||
form
|
||||
@@ -297,28 +202,3 @@ template(name="boardChangeTitlePopup")
|
||||
template(name="boardCreateRulePopup")
|
||||
p {{_ 'close-board-pop'}}
|
||||
button.js-confirm.negate.full(type="submit") {{_ 'archive'}}
|
||||
|
||||
|
||||
template(name="archiveBoardPopup")
|
||||
p {{_ 'close-board-pop'}}
|
||||
button.js-confirm.negate.full(type="submit") {{_ 'archive'}}
|
||||
|
||||
template(name="outgoingWebhooksPopup")
|
||||
each integrations
|
||||
form.integration-form
|
||||
if title
|
||||
h4 {{title}}
|
||||
else
|
||||
h4 {{_ 'no-name'}}
|
||||
label
|
||||
| URL
|
||||
input.js-outgoing-webhooks-url(type="text" name="url" value=url)
|
||||
input(type="hidden" value=_id name="id")
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
form.integration-form
|
||||
h4
|
||||
| {{_ 'new-outgoing-webhook'}}
|
||||
label
|
||||
| URL
|
||||
input.js-outgoing-webhooks-url(type="text" name="url" autofocus)
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
@@ -97,6 +97,9 @@ BlazeComponent.extendComponent({
|
||||
currentUser.setBoardView('board-view-lists');
|
||||
}
|
||||
},
|
||||
'click .js-toggle-sidebar'() {
|
||||
Sidebar.toggle();
|
||||
},
|
||||
'click .js-open-filter-view'() {
|
||||
Sidebar.setView('filter');
|
||||
},
|
||||
@@ -135,124 +138,6 @@ Template.boardHeaderBar.helpers({
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
backgroundColors() {
|
||||
return Boards.simpleSchema()._schema.color.allowedValues;
|
||||
},
|
||||
|
||||
isSelected() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
return currentBoard.color === this.currentData().toString();
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-select-background'(evt) {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
const newColor = this.currentData().toString();
|
||||
currentBoard.setColor(newColor);
|
||||
evt.preventDefault();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('boardChangeColorPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
},
|
||||
|
||||
allowsSubtasks() {
|
||||
return this.currentBoard.allowsSubtasks;
|
||||
},
|
||||
|
||||
isBoardSelected() {
|
||||
return this.currentBoard.subtasksDefaultBoardId === this.currentData()._id;
|
||||
},
|
||||
|
||||
isNullBoardSelected() {
|
||||
return (this.currentBoard.subtasksDefaultBoardId === null) || (this.currentBoard.subtasksDefaultBoardId === undefined);
|
||||
},
|
||||
|
||||
boards() {
|
||||
return Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
},
|
||||
|
||||
lists() {
|
||||
return Lists.find({
|
||||
boardId: this.currentBoard._id,
|
||||
archived: false,
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
},
|
||||
|
||||
hasLists() {
|
||||
return this.lists().count() > 0;
|
||||
},
|
||||
|
||||
isListSelected() {
|
||||
return this.currentBoard.subtasksDefaultBoardId === this.currentData()._id;
|
||||
},
|
||||
|
||||
presentParentTask() {
|
||||
let result = this.currentBoard.presentParentTask;
|
||||
if ((result === null) || (result === undefined)) {
|
||||
result = 'no-parent';
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-field-has-subtasks'(evt) {
|
||||
evt.preventDefault();
|
||||
this.currentBoard.allowsSubtasks = !this.currentBoard.allowsSubtasks;
|
||||
this.currentBoard.setAllowsSubtasks(this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-has-subtasks .materialCheckBox').toggleClass('is-checked', this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-has-subtasks').toggleClass('is-checked', this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-deposit-board').prop('disabled', !this.currentBoard.allowsSubtasks);
|
||||
},
|
||||
'change .js-field-deposit-board'(evt) {
|
||||
let value = evt.target.value;
|
||||
if (value === 'null') {
|
||||
value = null;
|
||||
}
|
||||
this.currentBoard.setSubtasksDefaultBoardId(value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'change .js-field-deposit-list'(evt) {
|
||||
this.currentBoard.setSubtasksDefaultListId(evt.target.value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'click .js-field-show-parent-in-minicard'(evt) {
|
||||
const value = evt.target.id || $(evt.target).parent()[0].id || $(evt.target).parent()[0].parent()[0].id;
|
||||
const options = [
|
||||
'prefix-with-full-path',
|
||||
'prefix-with-parent',
|
||||
'subtext-with-full-path',
|
||||
'subtext-with-parent',
|
||||
'no-parent'];
|
||||
options.forEach(function(element) {
|
||||
if (element !== value) {
|
||||
$(`#${element} .materialCheckBox`).toggleClass('is-checked', false);
|
||||
$(`#${element}`).toggleClass('is-checked', false);
|
||||
}
|
||||
});
|
||||
$(`#${value} .materialCheckBox`).toggleClass('is-checked', true);
|
||||
$(`#${value}`).toggleClass('is-checked', true);
|
||||
this.currentBoard.setPresentParentTask(value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('boardSubtaskSettingsPopup');
|
||||
|
||||
const CreateBoard = BlazeComponent.extendComponent({
|
||||
template() {
|
||||
return 'createBoard';
|
||||
@@ -304,16 +189,11 @@ const CreateBoard = BlazeComponent.extendComponent({
|
||||
'click .js-import': Popup.open('boardImportBoard'),
|
||||
submit: this.onSubmit,
|
||||
'click .js-import-board': Popup.open('chooseBoardSource'),
|
||||
'click .js-board-template': Popup.open('searchElement'),
|
||||
}];
|
||||
},
|
||||
}).register('createBoardPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
template() {
|
||||
return 'chooseBoardSource';
|
||||
},
|
||||
}).register('chooseBoardSourcePopup');
|
||||
|
||||
(class HeaderBarCreateBoard extends CreateBoard {
|
||||
onSubmit(evt) {
|
||||
super.onSubmit(evt);
|
||||
@@ -363,50 +243,3 @@ BlazeComponent.extendComponent({
|
||||
}];
|
||||
},
|
||||
}).register('boardChangeWatchPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
integrations() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
return Integrations.find({ boardId: `${boardId}` }).fetch();
|
||||
},
|
||||
|
||||
integration(id) {
|
||||
const boardId = Session.get('currentBoard');
|
||||
return Integrations.findOne({ _id: id, boardId: `${boardId}` });
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'submit'(evt) {
|
||||
evt.preventDefault();
|
||||
const url = evt.target.url.value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
let id = null;
|
||||
let integration = null;
|
||||
if (evt.target.id) {
|
||||
id = evt.target.id.value;
|
||||
integration = this.integration(id);
|
||||
if (url) {
|
||||
Integrations.update(integration._id, {
|
||||
$set: {
|
||||
url: `${url}`,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
Integrations.remove(integration._id);
|
||||
}
|
||||
} else if (url) {
|
||||
Integrations.insert({
|
||||
userId: Meteor.userId(),
|
||||
enabled: true,
|
||||
type: 'outgoing-webhooks',
|
||||
url: `${url}`,
|
||||
boardId: `${boardId}`,
|
||||
activities: ['all'],
|
||||
});
|
||||
}
|
||||
Popup.close();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('outgoingWebhooksPopup');
|
||||
@@ -22,13 +22,16 @@ template(name="boardList")
|
||||
i.fa.js-star-board(
|
||||
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
|
||||
title="{{_ 'star-board-title'}}")
|
||||
|
||||
p.board-list-item-desc= description
|
||||
if hasSpentTimeCards
|
||||
i.fa.js-has-spenttime-cards(
|
||||
class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}"
|
||||
title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
|
||||
i.fa.js-clone-board(
|
||||
class="fa-clone"
|
||||
title="{{_ 'duplicate-board'}}")
|
||||
|
||||
|
||||
p.board-list-item-desc= description
|
||||
|
||||
template(name="boardListHeaderBar")
|
||||
h1 {{_ 'my-boards'}}
|
||||
@@ -36,3 +39,6 @@ template(name="boardListHeaderBar")
|
||||
a.board-header-btn.js-open-archived-board
|
||||
i.fa.fa-archive
|
||||
span {{_ 'archives'}}
|
||||
a.board-header-btn(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
|
||||
i.fa.fa-clone
|
||||
span {{_ 'templates'}}
|
||||
@@ -1,5 +1,20 @@
|
||||
const subManager = new SubsManager();
|
||||
|
||||
Template.boardListHeaderBar.events({
|
||||
'click .js-open-archived-board'() {
|
||||
Modal.open('archivedBoards');
|
||||
},
|
||||
});
|
||||
|
||||
Template.boardListHeaderBar.helpers({
|
||||
templatesBoardId() {
|
||||
return Meteor.user().getTemplatesBoardId();
|
||||
},
|
||||
templatesBoardSlug() {
|
||||
return Meteor.user().getTemplatesBoardSlug();
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
Meteor.subscribe('setting');
|
||||
@@ -9,11 +24,9 @@ BlazeComponent.extendComponent({
|
||||
return Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
type: 'board',
|
||||
}, { sort: ['title'] });
|
||||
},
|
||||
|
||||
isStarred() {
|
||||
const user = Meteor.user();
|
||||
return user && user.hasStarred(this.currentData()._id);
|
||||
@@ -42,6 +55,21 @@ BlazeComponent.extendComponent({
|
||||
Meteor.user().toggleBoardStar(boardId);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'click .js-clone-board'(evt) {
|
||||
Meteor.call('cloneBoard',
|
||||
this.currentData()._id,
|
||||
Session.get('fromBoard'),
|
||||
(err, res) => {
|
||||
if (err) {
|
||||
this.setError(err.error);
|
||||
} else {
|
||||
Session.set('fromBoard', null);
|
||||
Utils.goBoardId(res);
|
||||
}
|
||||
}
|
||||
);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'click .js-accept-invite'() {
|
||||
const boardId = this.currentData()._id;
|
||||
Meteor.user().removeInvite(boardId);
|
||||
|
||||
@@ -94,13 +94,27 @@ $spaceBetweenTiles = 16px
|
||||
.is-star-active
|
||||
color: white
|
||||
|
||||
.fa-clone
|
||||
position: absolute;
|
||||
bottom: 0
|
||||
font-size: 14px
|
||||
height: 18px
|
||||
line-height: 18px
|
||||
opacity: 0
|
||||
right: 0
|
||||
padding: 9px 9px
|
||||
transition-duration: .15s
|
||||
transition-property: color, font-size, background
|
||||
|
||||
li:hover a
|
||||
&:hover
|
||||
.fa-star,
|
||||
.fa-clone,
|
||||
.fa-star-o
|
||||
color: white
|
||||
|
||||
.fa-star,
|
||||
.fa-clone,
|
||||
.fa-star-o
|
||||
color: white
|
||||
opacity: .75
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
template(name="miniboard")
|
||||
.minicard(
|
||||
class="minicard-{{colorClass}}")
|
||||
.minicard-title
|
||||
.handle
|
||||
.fa.fa-arrows
|
||||
+viewer
|
||||
= title
|
||||
@@ -19,16 +19,14 @@ template(name="cardDetails")
|
||||
a.js-parent-card(href=linkForCard) {{title}}
|
||||
// else
|
||||
{{_ 'top-level-card'}}
|
||||
unless isSandstorm
|
||||
if isLinkedCard
|
||||
h3.linked-card-location
|
||||
+viewer
|
||||
| {{getBoardTitle}} > {{getTitle}}
|
||||
if isLinkedCard
|
||||
h3.linked-card-location
|
||||
+viewer
|
||||
| {{getBoardTitle}} > {{getTitle}}
|
||||
|
||||
if getArchived
|
||||
if isLinkedBoard
|
||||
unless isSandstorm
|
||||
p.warning {{_ 'board-archived'}}
|
||||
p.warning {{_ 'board-archived'}}
|
||||
else
|
||||
p.warning {{_ 'card-archived'}}
|
||||
|
||||
@@ -192,11 +190,9 @@ template(name="cardDetails")
|
||||
unless currentUser.isNoComments
|
||||
if isLoaded.get
|
||||
if isLinkedCard
|
||||
unless isSandstorm
|
||||
+activities(card=this mode="linkedcard")
|
||||
+activities(card=this mode="linkedcard")
|
||||
else if isLinkedBoard
|
||||
unless isSandstorm
|
||||
+activities(card=this mode="linkedboard")
|
||||
+activities(card=this mode="linkedboard")
|
||||
else
|
||||
+activities(card=this mode="card")
|
||||
|
||||
@@ -310,27 +306,27 @@ template(name="cardMorePopup")
|
||||
h2 {{_ 'change-card-parent'}}
|
||||
label {{_ 'source-board'}}:
|
||||
select.js-field-parent-board
|
||||
if isTopLevel
|
||||
option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
|
||||
else
|
||||
option(value="none") {{_ 'custom-field-dropdown-none'}}
|
||||
each boards
|
||||
if isParentBoard
|
||||
option(value="{{_id}}" selected) {{title}}
|
||||
else
|
||||
option(value="{{_id}}") {{title}}
|
||||
if isTopLevel
|
||||
option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
|
||||
else
|
||||
option(value="none") {{_ 'custom-field-dropdown-none'}}
|
||||
|
||||
label {{_ 'parent-card'}}:
|
||||
select.js-field-parent-card
|
||||
if isTopLevel
|
||||
option(value="none" selected) {{_ 'custom-field-dropdown-none'}}
|
||||
else
|
||||
option(value="none") {{_ 'custom-field-dropdown-none'}}
|
||||
each cards
|
||||
if isParentCard
|
||||
option(value="{{_id}}" selected) {{title}}
|
||||
else
|
||||
option(value="{{_id}}") {{title}}
|
||||
option(value="none") {{_ 'custom-field-dropdown-none'}}
|
||||
br
|
||||
| {{_ 'added'}}
|
||||
span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
|
||||
|
||||
@@ -412,11 +412,13 @@ Template.moveCardPopup.events({
|
||||
// XXX We should *not* get the currentCard from the global state, but
|
||||
// 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;
|
||||
const lSelect = $('.js-select-lists')[0];
|
||||
const newListId = lSelect.options[lSelect.selectedIndex].value;
|
||||
const listId = lSelect.options[lSelect.selectedIndex].value;
|
||||
const slSelect = $('.js-select-swimlanes')[0];
|
||||
card.swimlaneId = slSelect.options[slSelect.selectedIndex].value;
|
||||
card.move(card.swimlaneId, newListId, 0);
|
||||
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
|
||||
card.move(boardId, swimlaneId, listId, 0);
|
||||
Popup.close();
|
||||
},
|
||||
});
|
||||
@@ -430,6 +432,7 @@ BlazeComponent.extendComponent({
|
||||
const boards = Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Meteor.user().getTemplatesBoardId()},
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
@@ -456,32 +459,15 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
}).register('boardsAndLists');
|
||||
|
||||
|
||||
function cloneCheckList(_id, checklist) {
|
||||
'use strict';
|
||||
const checklistId = checklist._id;
|
||||
checklist.cardId = _id;
|
||||
checklist._id = null;
|
||||
const newChecklistId = Checklists.insert(checklist);
|
||||
ChecklistItems.find({checklistId}).forEach(function(item) {
|
||||
item._id = null;
|
||||
item.checklistId = newChecklistId;
|
||||
item.cardId = _id;
|
||||
ChecklistItems.insert(item);
|
||||
});
|
||||
}
|
||||
|
||||
Template.copyCardPopup.events({
|
||||
'click .js-done'() {
|
||||
const card = Cards.findOne(Session.get('currentCard'));
|
||||
const oldId = card._id;
|
||||
card._id = null;
|
||||
const lSelect = $('.js-select-lists')[0];
|
||||
card.listId = lSelect.options[lSelect.selectedIndex].value;
|
||||
listId = lSelect.options[lSelect.selectedIndex].value;
|
||||
const slSelect = $('.js-select-swimlanes')[0];
|
||||
card.swimlaneId = slSelect.options[slSelect.selectedIndex].value;
|
||||
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
|
||||
const bSelect = $('.js-select-boards')[0];
|
||||
card.boardId = bSelect.options[bSelect.selectedIndex].value;
|
||||
const boardId = bSelect.options[bSelect.selectedIndex].value;
|
||||
const textarea = $('#copy-card-title');
|
||||
const title = textarea.val().trim();
|
||||
// insert new card to the bottom of new list
|
||||
@@ -490,38 +476,13 @@ Template.copyCardPopup.events({
|
||||
if (title) {
|
||||
card.title = title;
|
||||
card.coverId = '';
|
||||
const _id = Cards.insert(card);
|
||||
const _id = card.copy(boardId, swimlaneId, listId);
|
||||
// In case the filter is active we need to add the newly inserted card in
|
||||
// the list of exceptions -- cards that are not filtered. Otherwise the
|
||||
// card will disappear instantly.
|
||||
// See https://github.com/wekan/wekan/issues/80
|
||||
Filter.addException(_id);
|
||||
|
||||
// copy checklists
|
||||
let cursor = Checklists.find({cardId: oldId});
|
||||
cursor.forEach(function() {
|
||||
cloneCheckList(_id, arguments[0]);
|
||||
});
|
||||
|
||||
// copy subtasks
|
||||
cursor = Cards.find({parentId: oldId});
|
||||
cursor.forEach(function() {
|
||||
'use strict';
|
||||
const subtask = arguments[0];
|
||||
subtask.parentId = _id;
|
||||
subtask._id = null;
|
||||
/* const newSubtaskId = */ Cards.insert(subtask);
|
||||
});
|
||||
|
||||
// copy card comments
|
||||
cursor = CardComments.find({cardId: oldId});
|
||||
cursor.forEach(function () {
|
||||
'use strict';
|
||||
const comment = arguments[0];
|
||||
comment.cardId = _id;
|
||||
comment._id = null;
|
||||
CardComments.insert(comment);
|
||||
});
|
||||
Popup.close();
|
||||
}
|
||||
},
|
||||
@@ -558,9 +519,8 @@ Template.copyChecklistToManyCardsPopup.events({
|
||||
Filter.addException(_id);
|
||||
|
||||
// copy checklists
|
||||
let cursor = Checklists.find({cardId: oldId});
|
||||
cursor.forEach(function() {
|
||||
cloneCheckList(_id, arguments[0]);
|
||||
Checklists.find({cardId: oldId}).forEach((ch) => {
|
||||
ch.copy(_id);
|
||||
});
|
||||
|
||||
// copy subtasks
|
||||
@@ -574,13 +534,8 @@ Template.copyChecklistToManyCardsPopup.events({
|
||||
});
|
||||
|
||||
// copy card comments
|
||||
cursor = CardComments.find({cardId: oldId});
|
||||
cursor.forEach(function () {
|
||||
'use strict';
|
||||
const comment = arguments[0];
|
||||
comment.cardId = _id;
|
||||
comment._id = null;
|
||||
CardComments.insert(comment);
|
||||
CardComments.find({cardId: oldId}).forEach((cmt) => {
|
||||
cmt.copy(_id);
|
||||
});
|
||||
}
|
||||
Popup.close();
|
||||
@@ -625,11 +580,14 @@ BlazeComponent.extendComponent({
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentCard = this.currentData();
|
||||
this.parentBoard = new ReactiveVar(null);
|
||||
this.parentCard = this.currentCard.parentCard();
|
||||
if (this.parentCard) {
|
||||
this.parentBoard = this.parentCard.board();
|
||||
const list = $('.js-field-parent-card');
|
||||
list.val(this.parentCard._id);
|
||||
this.parentBoard.set(this.parentCard.board()._id);
|
||||
} else {
|
||||
this.parentBoard = null;
|
||||
this.parentBoard.set(null);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -637,6 +595,9 @@ BlazeComponent.extendComponent({
|
||||
const boards = Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {
|
||||
$ne: Meteor.user().getTemplatesBoardId(),
|
||||
},
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
@@ -644,8 +605,12 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
cards() {
|
||||
if (this.parentBoard) {
|
||||
return this.parentBoard.cards();
|
||||
const currentId = Session.get('currentCard');
|
||||
if (this.parentBoard.get()) {
|
||||
return Cards.find({
|
||||
boardId: this.parentBoard.get(),
|
||||
_id: {$ne: currentId},
|
||||
});
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
@@ -653,8 +618,8 @@ BlazeComponent.extendComponent({
|
||||
|
||||
isParentBoard() {
|
||||
const board = this.currentData();
|
||||
if (this.parentBoard) {
|
||||
return board._id === this.parentBoard;
|
||||
if (this.parentBoard.get()) {
|
||||
return board._id === this.parentBoard.get();
|
||||
}
|
||||
return false;
|
||||
},
|
||||
@@ -668,11 +633,10 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
setParentCardId(cardId) {
|
||||
if (cardId === 'null') {
|
||||
cardId = null;
|
||||
this.parentCard = null;
|
||||
} else {
|
||||
if (cardId) {
|
||||
this.parentCard = Cards.findOne(cardId);
|
||||
} else {
|
||||
this.parentCard = null;
|
||||
}
|
||||
this.currentCard.setParentId(cardId);
|
||||
},
|
||||
@@ -709,23 +673,14 @@ BlazeComponent.extendComponent({
|
||||
'change .js-field-parent-board'(evt) {
|
||||
const selection = $(evt.currentTarget).val();
|
||||
const list = $('.js-field-parent-card');
|
||||
list.empty();
|
||||
if (selection === 'none') {
|
||||
this.parentBoard = null;
|
||||
list.prop('disabled', true);
|
||||
this.parentBoard.set(null);
|
||||
} else {
|
||||
this.parentBoard = Boards.findOne(selection);
|
||||
this.parentBoard.cards().forEach(function(card) {
|
||||
list.append(
|
||||
$('<option></option>').val(card._id).html(card.title)
|
||||
);
|
||||
});
|
||||
subManager.subscribe('board', $(evt.currentTarget).val());
|
||||
this.parentBoard.set(selection);
|
||||
list.prop('disabled', false);
|
||||
}
|
||||
list.append(
|
||||
`<option value='none' selected='selected'>${TAPi18n.__('custom-field-dropdown-none')}</option>`
|
||||
);
|
||||
this.setParentCardId('null');
|
||||
this.setParentCardId(null);
|
||||
},
|
||||
'change .js-field-parent-card'(evt) {
|
||||
const selection = $(evt.currentTarget).val();
|
||||
|
||||
@@ -133,7 +133,8 @@ input[type="submit"].attachment-add-link-submit
|
||||
|
||||
.card-details-canvas
|
||||
width: 100%
|
||||
|
||||
padding-left: 0px;
|
||||
|
||||
.card-details-header
|
||||
.close-card-details
|
||||
margin-right: 0px
|
||||
|
||||
@@ -67,7 +67,13 @@ BlazeComponent.extendComponent({
|
||||
const nCards = MultiSelection.isActive() ? MultiSelection.count() : 1;
|
||||
const sortIndex = calculateIndex(prevCardDom, nextCardDom, nCards);
|
||||
const listId = Blaze.getData(ui.item.parents('.list').get(0))._id;
|
||||
const swimlaneId = Blaze.getData(ui.item.parents('.swimlane').get(0))._id;
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
let swimlaneId = '';
|
||||
const boardView = Meteor.user().profile.boardView;
|
||||
if (boardView === 'board-view-swimlanes' || currentBoard.isTemplatesBoard())
|
||||
swimlaneId = Blaze.getData(ui.item.parents('.swimlane').get(0))._id;
|
||||
else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal'))
|
||||
swimlaneId = currentBoard.getDefaultSwimline()._id;
|
||||
|
||||
// Normally the jquery-ui sortable library moves the dragged DOM element
|
||||
// to its new position, which disrupts Blaze reactive updates mechanism
|
||||
@@ -80,12 +86,12 @@ BlazeComponent.extendComponent({
|
||||
|
||||
if (MultiSelection.isActive()) {
|
||||
Cards.find(MultiSelection.getMongoSelector()).forEach((card, i) => {
|
||||
card.move(swimlaneId, listId, sortIndex.base + i * sortIndex.increment);
|
||||
card.move(currentBoard._id, swimlaneId, listId, sortIndex.base + i * sortIndex.increment);
|
||||
});
|
||||
} else {
|
||||
const cardDomElement = ui.item.get(0);
|
||||
const card = Blaze.getData(cardDomElement);
|
||||
card.move(swimlaneId, listId, sortIndex.base);
|
||||
card.move(currentBoard._id, swimlaneId, listId, sortIndex.base);
|
||||
}
|
||||
boardComponent.setIsDragging(false);
|
||||
},
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
padding-left: 10px
|
||||
color: #a6a6a6
|
||||
|
||||
|
||||
.list-header-menu
|
||||
position: absolute
|
||||
padding: 27px 19px
|
||||
@@ -155,9 +156,12 @@
|
||||
float: left
|
||||
|
||||
@media screen and (max-width: 800px)
|
||||
.list-header-menu
|
||||
margin-right: 30px
|
||||
|
||||
.mini-list
|
||||
flex: 0 0 60px
|
||||
height: 60px
|
||||
height: auto
|
||||
width: 100%
|
||||
border-left: 0px
|
||||
border-bottom: 1px solid darken(white, 20%)
|
||||
@@ -166,6 +170,8 @@
|
||||
display: block
|
||||
width: 100%
|
||||
border-left: 0px
|
||||
&:first-child
|
||||
margin-left: 0px
|
||||
|
||||
&.ui-sortable-helper
|
||||
flex: 0 0 60px
|
||||
@@ -184,8 +190,16 @@
|
||||
border-left: 0px
|
||||
border-bottom: 1px solid darken(white, 20%)
|
||||
|
||||
.list-header
|
||||
.list-body
|
||||
padding: 15px 19px;
|
||||
|
||||
.list-header
|
||||
padding: 0 12px 0px
|
||||
border-bottom: 0px solid #e4e4e4
|
||||
height: 60px
|
||||
margin-top: 10px
|
||||
display: flex
|
||||
align-items: center
|
||||
.list-header-left-icon
|
||||
display: inline
|
||||
padding: 7px
|
||||
@@ -197,8 +211,10 @@
|
||||
.list-header-menu-icon
|
||||
position: absolute
|
||||
padding: 7px
|
||||
top: -@padding
|
||||
top: 50%
|
||||
transform: translateY(-50%)
|
||||
right: 17px
|
||||
font-size: 20px
|
||||
|
||||
.link-board-wrapper
|
||||
display: flex
|
||||
@@ -211,6 +227,9 @@
|
||||
max-height: 250px
|
||||
overflow: hidden
|
||||
|
||||
.sk-spinner-list
|
||||
margin-top: unset !important
|
||||
|
||||
list-header-color(background, color...)
|
||||
border-bottom: 6px solid background
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ template(name="listBody")
|
||||
if cards.count
|
||||
+inlinedForm(autoclose=false position="top")
|
||||
+addCardForm(listId=_id position="top")
|
||||
each (cards (idOrNull ../../_id))
|
||||
each (cardsWithLimit (idOrNull ../../_id))
|
||||
a.minicard-wrapper.js-minicard(href=absoluteUrl
|
||||
class="{{#if cardIsSelected}}is-selected{{/if}}"
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
@@ -12,6 +12,9 @@ template(name="listBody")
|
||||
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
|
||||
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
|
||||
+minicard(this)
|
||||
if (showSpinner (idOrNull ../../_id))
|
||||
+spinnerList
|
||||
|
||||
if canSeeAddCard
|
||||
+inlinedForm(autoclose=false position="bottom")
|
||||
+addCardForm(listId=_id position="bottom")
|
||||
@@ -20,6 +23,16 @@ template(name="listBody")
|
||||
i.fa.fa-plus
|
||||
| {{_ 'add-card'}}
|
||||
|
||||
template(name="spinnerList")
|
||||
.sk-spinner.sk-spinner-wave.sk-spinner-list(
|
||||
class=currentBoard.colorClass
|
||||
id="showMoreResults")
|
||||
.sk-rect1
|
||||
.sk-rect2
|
||||
.sk-rect3
|
||||
.sk-rect4
|
||||
.sk-rect5
|
||||
|
||||
template(name="addCardForm")
|
||||
.minicard.minicard-composer.js-composer
|
||||
if getLabels
|
||||
@@ -34,14 +47,19 @@ template(name="addCardForm")
|
||||
|
||||
.add-controls.clearfix
|
||||
button.primary.confirm(type="submit") {{_ 'add'}}
|
||||
unless isSandstorm
|
||||
span.quiet
|
||||
| {{_ 'or'}}
|
||||
a.js-link {{_ 'link'}}
|
||||
span.quiet
|
||||
|
|
||||
| /
|
||||
a.js-search {{_ 'search'}}
|
||||
unless currentBoard.isTemplatesBoard
|
||||
unless currentBoard.isTemplateBoard
|
||||
span.quiet
|
||||
| {{_ 'or'}}
|
||||
a.js-link {{_ 'link'}}
|
||||
span.quiet
|
||||
|
|
||||
| /
|
||||
a.js-search {{_ 'search'}}
|
||||
span.quiet
|
||||
|
|
||||
| /
|
||||
a.js-card-template {{_ 'template'}}
|
||||
|
||||
template(name="autocompleteLabelLine")
|
||||
.minicard-label(class="card-label-{{colorName}}" title=labelName)
|
||||
@@ -51,11 +69,9 @@ template(name="linkCardPopup")
|
||||
label {{_ 'boards'}}:
|
||||
.link-board-wrapper
|
||||
select.js-select-boards
|
||||
option(value="")
|
||||
each boards
|
||||
if $eq _id currentBoard._id
|
||||
option(value="{{_id}}" selected) {{_ 'current'}}
|
||||
else
|
||||
option(value="{{_id}}") {{title}}
|
||||
option(value="{{_id}}") {{title}}
|
||||
input.primary.confirm.js-link-board(type="button" value="{{_ 'link'}}")
|
||||
|
||||
label {{_ 'swimlanes'}}:
|
||||
@@ -74,22 +90,41 @@ template(name="linkCardPopup")
|
||||
option(value="{{getId}}") {{getTitle}}
|
||||
|
||||
.edit-controls.clearfix
|
||||
unless isSandstorm
|
||||
input.primary.confirm.js-done(type="button" value="{{_ 'link'}}")
|
||||
input.primary.confirm.js-done(type="button" value="{{_ 'link'}}")
|
||||
|
||||
template(name="searchCardPopup")
|
||||
label {{_ 'boards'}}:
|
||||
.link-board-wrapper
|
||||
select.js-select-boards
|
||||
each boards
|
||||
if $eq _id currentBoard._id
|
||||
option(value="{{_id}}" selected) {{_ 'current'}}
|
||||
else
|
||||
template(name="searchElementPopup")
|
||||
form
|
||||
label
|
||||
| {{_ 'title'}}
|
||||
input.js-element-title(type="text" placeholder="{{_ 'title'}}" autofocus required)
|
||||
unless isTemplateSearch
|
||||
label {{_ 'boards'}}:
|
||||
.link-board-wrapper
|
||||
select.js-select-boards
|
||||
option(value="")
|
||||
each boards
|
||||
option(value="{{_id}}") {{title}}
|
||||
form.js-search-term-form
|
||||
input(type="text" name="searchTerm" placeholder="{{_ 'search-example'}}" autofocus)
|
||||
.list-body.js-perfect-scrollbar.search-card-results
|
||||
.minicards.clearfix.js-minicards
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+minicard(this)
|
||||
if isBoardTemplateSearch
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+miniboard(this)
|
||||
if isListTemplateSearch
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+minilist(this)
|
||||
if isSwimlaneTemplateSearch
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+miniswimlane(this)
|
||||
if isCardTemplateSearch
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+minicard(this)
|
||||
unless isTemplateSearch
|
||||
each results
|
||||
a.minicard-wrapper.js-minicard
|
||||
+minicard(this)
|
||||
@@ -1,6 +1,12 @@
|
||||
const subManager = new SubsManager();
|
||||
const InfiniteScrollIter = 10;
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
// for infinite scrolling
|
||||
this.cardlimit = new ReactiveVar(InfiniteScrollIter);
|
||||
},
|
||||
|
||||
mixins() {
|
||||
return [Mixins.PerfectScrollbar];
|
||||
},
|
||||
@@ -39,27 +45,56 @@ BlazeComponent.extendComponent({
|
||||
const labelIds = formComponent.labels.get();
|
||||
const customFields = formComponent.customFields.get();
|
||||
|
||||
const boardId = this.data().board();
|
||||
const board = this.data().board();
|
||||
let linkedId = '';
|
||||
let swimlaneId = '';
|
||||
const boardView = Meteor.user().profile.boardView;
|
||||
if (boardView === 'board-view-swimlanes')
|
||||
swimlaneId = this.parentComponent().parentComponent().data()._id;
|
||||
else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal'))
|
||||
swimlaneId = boardId.getDefaultSwimline()._id;
|
||||
|
||||
let cardType = 'cardType-card';
|
||||
if (title) {
|
||||
if (board.isTemplatesBoard()) {
|
||||
swimlaneId = this.parentComponent().parentComponent().data()._id; // Always swimlanes view
|
||||
const swimlane = Swimlanes.findOne(swimlaneId);
|
||||
// If this is the card templates swimlane, insert a card template
|
||||
if (swimlane.isCardTemplatesSwimlane())
|
||||
cardType = 'template-card';
|
||||
// If this is the board templates swimlane, insert a board template and a linked card
|
||||
else if (swimlane.isBoardTemplatesSwimlane()) {
|
||||
linkedId = Boards.insert({
|
||||
title,
|
||||
permission: 'private',
|
||||
type: 'template-board',
|
||||
});
|
||||
Swimlanes.insert({
|
||||
title: TAPi18n.__('default'),
|
||||
boardId: linkedId,
|
||||
});
|
||||
cardType = 'cardType-linkedBoard';
|
||||
}
|
||||
} else if (boardView === 'board-view-swimlanes')
|
||||
swimlaneId = this.parentComponent().parentComponent().data()._id;
|
||||
else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal'))
|
||||
swimlaneId = board.getDefaultSwimline()._id;
|
||||
|
||||
const _id = Cards.insert({
|
||||
title,
|
||||
members,
|
||||
labelIds,
|
||||
customFields,
|
||||
listId: this.data()._id,
|
||||
boardId: boardId._id,
|
||||
boardId: board._id,
|
||||
sort: sortIndex,
|
||||
swimlaneId,
|
||||
type: 'cardType-card',
|
||||
type: cardType,
|
||||
linkedId,
|
||||
});
|
||||
|
||||
// if the displayed card count is less than the total cards in the list,
|
||||
// we need to increment the displayed card count to prevent the spinner
|
||||
// to appear
|
||||
const cardCount = this.data().cards(this.idOrNull(swimlaneId)).count();
|
||||
if (this.cardlimit.get() < cardCount) {
|
||||
this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter);
|
||||
}
|
||||
|
||||
// In case the filter is active we need to add the newly inserted card in
|
||||
// the list of exceptions -- cards that are not filtered. Otherwise the
|
||||
@@ -92,9 +127,9 @@ BlazeComponent.extendComponent({
|
||||
const methodName = evt.shiftKey ? 'toggleRange' : 'toggle';
|
||||
MultiSelection[methodName](this.currentData()._id);
|
||||
|
||||
// If the card is already selected, we want to de-select it.
|
||||
// XXX We should probably modify the minicard href attribute instead of
|
||||
// overwriting the event in case the card is already selected.
|
||||
// If the card is already selected, we want to de-select it.
|
||||
// XXX We should probably modify the minicard href attribute instead of
|
||||
// overwriting the event in case the card is already selected.
|
||||
} else if (Session.equals('currentCard', this.currentData()._id)) {
|
||||
evt.stopImmediatePropagation();
|
||||
evt.preventDefault();
|
||||
@@ -114,11 +149,31 @@ BlazeComponent.extendComponent({
|
||||
|
||||
idOrNull(swimlaneId) {
|
||||
const currentUser = Meteor.user();
|
||||
if (currentUser.profile.boardView === 'board-view-swimlanes')
|
||||
if (currentUser.profile.boardView === 'board-view-swimlanes' ||
|
||||
this.data().board().isTemplatesBoard())
|
||||
return swimlaneId;
|
||||
return undefined;
|
||||
},
|
||||
|
||||
cardsWithLimit(swimlaneId) {
|
||||
const limit = this.cardlimit.get();
|
||||
const selector = {
|
||||
listId: this.currentData()._id,
|
||||
archived: false,
|
||||
};
|
||||
if (swimlaneId)
|
||||
selector.swimlaneId = swimlaneId;
|
||||
return Cards.find(Filter.mongoSelector(selector), {
|
||||
sort: ['sort'],
|
||||
limit,
|
||||
});
|
||||
},
|
||||
|
||||
showSpinner(swimlaneId) {
|
||||
const list = Template.currentData();
|
||||
return list.cards(swimlaneId).count() > this.cardlimit.get();
|
||||
},
|
||||
|
||||
canSeeAddCard() {
|
||||
return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
|
||||
},
|
||||
@@ -179,7 +234,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
pressKey(evt) {
|
||||
// Pressing Enter should submit the card
|
||||
if (evt.keyCode === 13) {
|
||||
if (evt.keyCode === 13 && !evt.shiftKey) {
|
||||
evt.preventDefault();
|
||||
const $form = $(evt.currentTarget).closest('form');
|
||||
// XXX For some reason $form.submit() does not work (it's probably a bug
|
||||
@@ -188,8 +243,8 @@ BlazeComponent.extendComponent({
|
||||
// work.
|
||||
$form.find('button[type=submit]').click();
|
||||
|
||||
// Pressing Tab should open the form of the next column, and Maj+Tab go
|
||||
// in the reverse order
|
||||
// Pressing Tab should open the form of the next column, and Maj+Tab go
|
||||
// in the reverse order
|
||||
} else if (evt.keyCode === 9) {
|
||||
evt.preventDefault();
|
||||
const isReverse = evt.shiftKey;
|
||||
@@ -211,7 +266,8 @@ BlazeComponent.extendComponent({
|
||||
return [{
|
||||
keydown: this.pressKey,
|
||||
'click .js-link': Popup.open('linkCard'),
|
||||
'click .js-search': Popup.open('searchCard'),
|
||||
'click .js-search': Popup.open('searchElement'),
|
||||
'click .js-card-template': Popup.open('searchElement'),
|
||||
}];
|
||||
},
|
||||
|
||||
@@ -249,7 +305,7 @@ BlazeComponent.extendComponent({
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
callback($.map(currentBoard.labels, (label) => {
|
||||
if (label.name.indexOf(term) > -1 ||
|
||||
label.color.indexOf(term) > -1) {
|
||||
label.color.indexOf(term) > -1) {
|
||||
return label;
|
||||
}
|
||||
return null;
|
||||
@@ -286,17 +342,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
// Prefetch first non-current board id
|
||||
const boardId = Boards.findOne({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Session.get('currentBoard')},
|
||||
}, {
|
||||
sort: ['title'],
|
||||
})._id;
|
||||
// Subscribe to this board
|
||||
subManager.subscribe('board', boardId);
|
||||
this.selectedBoardId = new ReactiveVar(boardId);
|
||||
this.selectedBoardId = new ReactiveVar('');
|
||||
this.selectedSwimlaneId = new ReactiveVar('');
|
||||
this.selectedListId = new ReactiveVar('');
|
||||
|
||||
@@ -322,6 +368,7 @@ BlazeComponent.extendComponent({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Session.get('currentBoard')},
|
||||
type: 'board',
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
@@ -329,7 +376,7 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
swimlanes() {
|
||||
if (!this.selectedBoardId) {
|
||||
if (!this.selectedBoardId.get()) {
|
||||
return [];
|
||||
}
|
||||
const swimlanes = Swimlanes.find({boardId: this.selectedBoardId.get()});
|
||||
@@ -339,7 +386,7 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
lists() {
|
||||
if (!this.selectedBoardId) {
|
||||
if (!this.selectedBoardId.get()) {
|
||||
return [];
|
||||
}
|
||||
const lists = Lists.find({boardId: this.selectedBoardId.get()});
|
||||
@@ -360,6 +407,7 @@ BlazeComponent.extendComponent({
|
||||
archived: false,
|
||||
linkedId: {$nin: ownCardsIds},
|
||||
_id: {$nin: ownCardsIds},
|
||||
type: {$nin: ['template-card']},
|
||||
});
|
||||
},
|
||||
|
||||
@@ -427,12 +475,25 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
onCreated() {
|
||||
// Prefetch first non-current board id
|
||||
let board = Boards.findOne({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Session.get('currentBoard')},
|
||||
});
|
||||
this.isCardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-card-template');
|
||||
this.isListTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-list-template');
|
||||
this.isSwimlaneTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-open-add-swimlane-menu');
|
||||
this.isBoardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-add-board');
|
||||
this.isTemplateSearch = this.isCardTemplateSearch ||
|
||||
this.isListTemplateSearch ||
|
||||
this.isSwimlaneTemplateSearch ||
|
||||
this.isBoardTemplateSearch;
|
||||
let board = {};
|
||||
if (this.isTemplateSearch) {
|
||||
board = Boards.findOne(Meteor.user().profile.templatesBoardId);
|
||||
} else {
|
||||
// Prefetch first non-current board id
|
||||
board = Boards.findOne({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$nin: [Session.get('currentBoard'), Meteor.user().profile.templatesBoardId]},
|
||||
});
|
||||
}
|
||||
if (!board) {
|
||||
Popup.close();
|
||||
return;
|
||||
@@ -442,20 +503,21 @@ BlazeComponent.extendComponent({
|
||||
subManager.subscribe('board', boardId);
|
||||
this.selectedBoardId = new ReactiveVar(boardId);
|
||||
|
||||
this.boardId = Session.get('currentBoard');
|
||||
// In order to get current board info
|
||||
subManager.subscribe('board', this.boardId);
|
||||
board = Boards.findOne(this.boardId);
|
||||
// List where to insert card
|
||||
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
|
||||
this.listId = Blaze.getData(list[0])._id;
|
||||
// Swimlane where to insert card
|
||||
const swimlane = $(Popup._getTopStack().openerElement).closest('.js-swimlane');
|
||||
this.swimlaneId = '';
|
||||
if (board.view === 'board-view-swimlanes')
|
||||
this.swimlaneId = Blaze.getData(swimlane[0])._id;
|
||||
else
|
||||
this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id;
|
||||
if (!this.isBoardTemplateSearch) {
|
||||
this.boardId = Session.get('currentBoard');
|
||||
// In order to get current board info
|
||||
subManager.subscribe('board', this.boardId);
|
||||
this.swimlaneId = '';
|
||||
// Swimlane where to insert card
|
||||
const swimlane = $(Popup._getTopStack().openerElement).parents('.js-swimlane');
|
||||
if (Meteor.user().profile.boardView === 'board-view-swimlanes')
|
||||
this.swimlaneId = Blaze.getData(swimlane[0])._id;
|
||||
else
|
||||
this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id;
|
||||
// List where to insert card
|
||||
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
|
||||
this.listId = Blaze.getData(list[0])._id;
|
||||
}
|
||||
this.term = new ReactiveVar('');
|
||||
},
|
||||
|
||||
@@ -464,6 +526,7 @@ BlazeComponent.extendComponent({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Session.get('currentBoard')},
|
||||
type: 'board',
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
@@ -475,7 +538,21 @@ BlazeComponent.extendComponent({
|
||||
return [];
|
||||
}
|
||||
const board = Boards.findOne(this.selectedBoardId.get());
|
||||
return board.searchCards(this.term.get(), false);
|
||||
if (!this.isTemplateSearch || this.isCardTemplateSearch) {
|
||||
return board.searchCards(this.term.get(), false);
|
||||
} else if (this.isListTemplateSearch) {
|
||||
return board.searchLists(this.term.get());
|
||||
} else if (this.isSwimlaneTemplateSearch) {
|
||||
return board.searchSwimlanes(this.term.get());
|
||||
} else if (this.isBoardTemplateSearch) {
|
||||
const boards = board.searchBoards(this.term.get());
|
||||
boards.forEach((board) => {
|
||||
subManager.subscribe('board', board.linkedId);
|
||||
});
|
||||
return boards;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
|
||||
events() {
|
||||
@@ -489,20 +566,99 @@ BlazeComponent.extendComponent({
|
||||
this.term.set(evt.target.searchTerm.value);
|
||||
},
|
||||
'click .js-minicard'(evt) {
|
||||
// LINK CARD
|
||||
const card = Blaze.getData(evt.currentTarget);
|
||||
const _id = Cards.insert({
|
||||
title: card.title, //dummy
|
||||
listId: this.listId,
|
||||
swimlaneId: this.swimlaneId,
|
||||
boardId: this.boardId,
|
||||
sort: Lists.findOne(this.listId).cards().count(),
|
||||
type: 'cardType-linkedCard',
|
||||
linkedId: card.linkedId || card._id,
|
||||
});
|
||||
Filter.addException(_id);
|
||||
// 0. Common
|
||||
const title = $('.js-element-title').val().trim();
|
||||
if (!title)
|
||||
return;
|
||||
const element = Blaze.getData(evt.currentTarget);
|
||||
element.title = title;
|
||||
let _id = '';
|
||||
if (!this.isTemplateSearch || this.isCardTemplateSearch) {
|
||||
// Card insertion
|
||||
// 1. Common
|
||||
element.sort = Lists.findOne(this.listId).cards().count();
|
||||
// 1.A From template
|
||||
if (this.isTemplateSearch) {
|
||||
element.type = 'cardType-card';
|
||||
element.linkedId = '';
|
||||
_id = element.copy(this.boardId, this.swimlaneId, this.listId);
|
||||
// 1.B Linked card
|
||||
} else {
|
||||
delete element._id;
|
||||
element.type = 'cardType-linkedCard';
|
||||
element.linkedId = element.linkedId || element._id;
|
||||
_id = Cards.insert(element);
|
||||
}
|
||||
Filter.addException(_id);
|
||||
// List insertion
|
||||
} else if (this.isListTemplateSearch) {
|
||||
element.sort = Swimlanes.findOne(this.swimlaneId).lists().count();
|
||||
element.type = 'list';
|
||||
_id = element.copy(this.boardId, this.swimlaneId);
|
||||
} else if (this.isSwimlaneTemplateSearch) {
|
||||
element.sort = Boards.findOne(this.boardId).swimlanes().count();
|
||||
element.type = 'swimlalne';
|
||||
_id = element.copy(this.boardId);
|
||||
} else if (this.isBoardTemplateSearch) {
|
||||
board = Boards.findOne(element.linkedId);
|
||||
board.sort = Boards.find({archived: false}).count();
|
||||
board.type = 'board';
|
||||
board.title = element.title;
|
||||
delete board.slug;
|
||||
_id = board.copy();
|
||||
}
|
||||
Popup.close();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('searchCardPopup');
|
||||
}).register('searchElementPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.cardlimit = this.parentComponent().cardlimit;
|
||||
|
||||
this.listId = this.parentComponent().data()._id;
|
||||
this.swimlaneId = '';
|
||||
|
||||
const boardView = Meteor.user().profile.boardView;
|
||||
if (boardView === 'board-view-swimlanes')
|
||||
this.swimlaneId = this.parentComponent().parentComponent().parentComponent().data()._id;
|
||||
},
|
||||
|
||||
onRendered() {
|
||||
this.spinner = this.find('.sk-spinner-list');
|
||||
this.container = this.$(this.spinner).parents('.js-perfect-scrollbar')[0];
|
||||
|
||||
$(this.container).on(`scroll.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList());
|
||||
$(window).on(`resize.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList());
|
||||
|
||||
this.updateList();
|
||||
},
|
||||
|
||||
onDestroyed() {
|
||||
$(this.container).off(`scroll.spinner_${this.swimlaneId}_${this.listId}`);
|
||||
$(window).off(`resize.spinner_${this.swimlaneId}_${this.listId}`);
|
||||
},
|
||||
|
||||
updateList() {
|
||||
if (this.spinnerInView()) {
|
||||
this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter);
|
||||
window.requestIdleCallback(() => this.updateList());
|
||||
}
|
||||
},
|
||||
|
||||
spinnerInView() {
|
||||
const parentViewHeight = this.container.clientHeight;
|
||||
const bottomViewPosition = this.container.scrollTop + parentViewHeight;
|
||||
|
||||
const threshold = this.spinner.offsetTop;
|
||||
|
||||
// spinner deleted
|
||||
if (!this.spinner.offsetTop) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return bottomViewPosition > threshold;
|
||||
},
|
||||
|
||||
}).register('spinnerList');
|
||||
@@ -0,0 +1,8 @@
|
||||
template(name="minilist")
|
||||
.minicard(
|
||||
class="minicard-{{colorClass}}")
|
||||
.minicard-title
|
||||
.handle
|
||||
.fa.fa-arrows
|
||||
+viewer
|
||||
= title
|
||||
@@ -36,7 +36,10 @@ import sanitizeXss from 'xss';
|
||||
const at = HTML.CharRef({html: '@', str: '@'});
|
||||
Blaze.Template.registerHelper('mentions', new Template('mentions', function() {
|
||||
const view = this;
|
||||
let content = Blaze.toHTML(view.templateContentBlock);
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
if (!currentBoard)
|
||||
return HTML.Raw(sanitizeXss(content));
|
||||
const knowedUsers = currentBoard.members.map((member) => {
|
||||
const u = Users.findOne(member.userId);
|
||||
if(u){
|
||||
@@ -45,7 +48,6 @@ Blaze.Template.registerHelper('mentions', new Template('mentions', function() {
|
||||
return member;
|
||||
});
|
||||
const mentionRegex = /\B@([\w.]*)/gi;
|
||||
let content = Blaze.toHTML(view.templateContentBlock);
|
||||
|
||||
let currentMention;
|
||||
while ((currentMention = mentionRegex.exec(content)) !== null) {
|
||||
|
||||
@@ -4,39 +4,38 @@ template(name="header")
|
||||
list all starred boards with a link to go there. This is inspired by the
|
||||
Reddit "subreddit" bar.
|
||||
The first link goes to the boards page.
|
||||
unless isSandstorm
|
||||
if currentUser
|
||||
#header-quick-access(class=currentBoard.colorClass)
|
||||
if isMiniScreen
|
||||
ul
|
||||
li
|
||||
a(href="{{pathFor 'home'}}")
|
||||
span.fa.fa-home
|
||||
if currentUser
|
||||
#header-quick-access(class=currentBoard.colorClass)
|
||||
if isMiniScreen
|
||||
ul
|
||||
li
|
||||
a(href="{{pathFor 'home'}}")
|
||||
span.fa.fa-home
|
||||
|
||||
if currentList
|
||||
each currentBoard.lists
|
||||
li(class="{{#if $.Session.equals 'currentList' _id}}current{{/if}}")
|
||||
a.js-select-list
|
||||
= title
|
||||
#header-new-board-icon
|
||||
else
|
||||
ul
|
||||
li
|
||||
a(href="{{pathFor 'home'}}")
|
||||
span.fa.fa-home
|
||||
| {{_ 'all-boards'}}
|
||||
each currentUser.starredBoards
|
||||
li.separator -
|
||||
li(class="{{#if $.Session.equals 'currentBoard' _id}}current{{/if}}")
|
||||
a(href="{{pathFor 'board' id=_id slug=slug}}")
|
||||
if currentList
|
||||
each currentBoard.lists
|
||||
li(class="{{#if $.Session.equals 'currentList' _id}}current{{/if}}")
|
||||
a.js-select-list
|
||||
= title
|
||||
else
|
||||
li.current {{_ 'quick-access-description'}}
|
||||
#header-new-board-icon
|
||||
else
|
||||
ul
|
||||
li
|
||||
a(href="{{pathFor 'home'}}")
|
||||
span.fa.fa-home
|
||||
| {{_ 'all-boards'}}
|
||||
each currentUser.starredBoards
|
||||
li.separator -
|
||||
li(class="{{#if $.Session.equals 'currentBoard' _id}}current{{/if}}")
|
||||
a(href="{{pathFor 'board' id=_id slug=slug}}")
|
||||
= title
|
||||
else
|
||||
li.current {{_ 'quick-access-description'}}
|
||||
|
||||
a#header-new-board-icon.js-create-board
|
||||
i.fa.fa-plus(title="Create a new board")
|
||||
a#header-new-board-icon.js-create-board
|
||||
i.fa.fa-plus(title="Create a new board")
|
||||
|
||||
+headerUserBar
|
||||
+headerUserBar
|
||||
|
||||
#header(class=currentBoard.colorClass)
|
||||
//-
|
||||
@@ -46,19 +45,16 @@ template(name="header")
|
||||
#header-main-bar(class="{{#if wrappedHeader}}wrapper{{/if}}")
|
||||
+Template.dynamic(template=headerBar)
|
||||
|
||||
unless hideLogo
|
||||
//unless hideLogo
|
||||
|
||||
//-
|
||||
On sandstorm, the logo shouldn't be clickable, because we only have one
|
||||
page/document on it, and we don't want to see the home page containing
|
||||
the list of all boards.
|
||||
if isSandstorm
|
||||
.wekan-logo
|
||||
img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan")
|
||||
else
|
||||
unless currentSetting.hideLogo
|
||||
a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}")
|
||||
img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan")
|
||||
|
||||
// unless currentSetting.hideLogo
|
||||
// a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}")
|
||||
// img(src="{{pathFor '/logo-header.png'}}" alt="")
|
||||
|
||||
if appIsOffline
|
||||
+offlineWarning
|
||||
|
||||
@@ -1,32 +1,25 @@
|
||||
head
|
||||
title Wekan
|
||||
meta(name="viewport"
|
||||
content="maximum-scale=1.0,width=device-width,initial-scale=1.0,user-scalable=0")
|
||||
title
|
||||
meta(name="viewport" content="maximum-scale=1.0,width=device-width,initial-scale=1.0,user-scalable=0")
|
||||
meta(http-equiv="X-UA-Compatible" content="IE=edge")
|
||||
//- XXX We should use pathFor in the following `href` to support the case
|
||||
where the application is deployed with a path prefix, but it seems to be
|
||||
difficult to do that cleanly with Blaze -- at least without adding extra
|
||||
packages.
|
||||
link(rel="shortcut icon" href="/public/wekan-favicon.png")
|
||||
link(rel="apple-touch-icon" href="/public/wekan-favicon.png")
|
||||
link(rel="mask-icon" href="/public/wekan-150.svg")
|
||||
link(rel="manifest" href="/public/wekan-manifest.json")
|
||||
link(rel="shortcut icon" href="/wekan-favicon.png")
|
||||
link(rel="apple-touch-icon" href="/wekan-favicon.png")
|
||||
link(rel="mask-icon" href="/wekan-logo-150.svg")
|
||||
link(rel="manifest" href="/wekan-manifest.json")
|
||||
|
||||
template(name="userFormsLayout")
|
||||
section.auth-layout
|
||||
unless currentSetting.hideLogo
|
||||
h1.at-form-landing-logo
|
||||
img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan")
|
||||
if currentSetting.hideLogo
|
||||
h1
|
||||
br
|
||||
br
|
||||
h1
|
||||
br
|
||||
br
|
||||
section.auth-dialog
|
||||
+Template.dynamic(template=content)
|
||||
+connectionMethod
|
||||
if isCas
|
||||
.at-form
|
||||
button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
|
||||
if currentSetting.displayAuthenticationMethod
|
||||
+connectionMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
|
||||
div.at-form-lang
|
||||
select.select-lang.js-userform-set-language
|
||||
each languages
|
||||
|
||||
@@ -20,13 +20,19 @@ const validator = {
|
||||
},
|
||||
};
|
||||
|
||||
Template.userFormsLayout.onCreated(() => {
|
||||
Meteor.subscribe('setting');
|
||||
Template.userFormsLayout.onCreated(function() {
|
||||
const instance = this;
|
||||
instance.currentSetting = new ReactiveVar();
|
||||
|
||||
Meteor.subscribe('setting', {
|
||||
onReady() {
|
||||
instance.currentSetting.set(Settings.findOne());
|
||||
return this.stop();
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
Template.userFormsLayout.onRendered(() => {
|
||||
|
||||
AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
|
||||
|
||||
const i18nTag = navigator.language;
|
||||
@@ -37,12 +43,10 @@ Template.userFormsLayout.onRendered(() => {
|
||||
});
|
||||
|
||||
Template.userFormsLayout.helpers({
|
||||
|
||||
currentSetting() {
|
||||
return Settings.findOne();
|
||||
return Template.instance().currentSetting.get();
|
||||
},
|
||||
|
||||
|
||||
afterBodyStart() {
|
||||
return currentSetting.customHTMLafterBodyStart;
|
||||
},
|
||||
@@ -75,17 +79,6 @@ Template.userFormsLayout.helpers({
|
||||
const curLang = T9n.getLanguage() || 'en';
|
||||
return t9nTag === curLang;
|
||||
},
|
||||
/*
|
||||
isCas() {
|
||||
return Meteor.settings.public &&
|
||||
Meteor.settings.public.cas &&
|
||||
Meteor.settings.public.cas.loginUrl;
|
||||
},
|
||||
|
||||
casSignInLabel() {
|
||||
return TAPi18n.__('casSignIn', {}, T9n.getLanguage() || 'en');
|
||||
},
|
||||
*/
|
||||
});
|
||||
|
||||
Template.userFormsLayout.events({
|
||||
@@ -94,49 +87,9 @@ Template.userFormsLayout.events({
|
||||
T9n.setLanguage(i18nTagToT9n(i18nTag));
|
||||
evt.preventDefault();
|
||||
},
|
||||
'click button#cas'() {
|
||||
Meteor.loginWithCas(function() {
|
||||
if (FlowRouter.getRouteName() === 'atSignIn') {
|
||||
FlowRouter.go('/');
|
||||
}
|
||||
});
|
||||
},
|
||||
'click #at-btn'(event) {
|
||||
/* All authentication method can be managed/called here.
|
||||
!! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
|
||||
*/
|
||||
const authenticationMethodSelected = $('.select-authentication').val();
|
||||
// Local account
|
||||
if (authenticationMethodSelected === 'password') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Stop submit #at-pwd-form
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
const email = $('#at-field-username_and_email').val();
|
||||
const password = $('#at-field-password').val();
|
||||
|
||||
// Ldap account
|
||||
if (authenticationMethodSelected === 'ldap') {
|
||||
// Check if the user can use the ldap connection
|
||||
Meteor.subscribe('user-authenticationMethod', email, {
|
||||
onReady() {
|
||||
const user = Users.findOne();
|
||||
if (user === undefined || user.authenticationMethod === 'ldap') {
|
||||
// Use the ldap connection package
|
||||
Meteor.loginWithLDAP(email, password, function(error) {
|
||||
if (!error) {
|
||||
// Connection
|
||||
return FlowRouter.go('/');
|
||||
}
|
||||
return error;
|
||||
});
|
||||
}
|
||||
return this.stop();
|
||||
},
|
||||
});
|
||||
'click #at-btn'(event, instance) {
|
||||
if (FlowRouter.getRouteName() === 'atSignIn') {
|
||||
authentication(event, instance);
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -146,3 +99,62 @@ Template.defaultLayout.events({
|
||||
Modal.close();
|
||||
},
|
||||
});
|
||||
|
||||
async function authentication(event, instance) {
|
||||
const match = $('#at-field-username_and_email').val();
|
||||
const password = $('#at-field-password').val();
|
||||
|
||||
if (!match || !password) return;
|
||||
|
||||
const result = await getAuthenticationMethod(instance.currentSetting.get(), match);
|
||||
|
||||
if (result === 'password') return;
|
||||
|
||||
// Stop submit #at-pwd-form
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
switch (result) {
|
||||
case 'ldap':
|
||||
Meteor.loginWithLDAP(match, password, function() {
|
||||
FlowRouter.go('/');
|
||||
});
|
||||
break;
|
||||
|
||||
case 'cas':
|
||||
Meteor.loginWithCas(function() {
|
||||
FlowRouter.go('/');
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function getAuthenticationMethod({displayAuthenticationMethod, defaultAuthenticationMethod}, match) {
|
||||
if (displayAuthenticationMethod) {
|
||||
return $('.select-authentication').val();
|
||||
}
|
||||
return getUserAuthenticationMethod(defaultAuthenticationMethod, match);
|
||||
}
|
||||
|
||||
function getUserAuthenticationMethod(defaultAuthenticationMethod, match) {
|
||||
return new Promise((resolve) => {
|
||||
try {
|
||||
Meteor.subscribe('user-authenticationMethod', match, {
|
||||
onReady() {
|
||||
const user = Users.findOne();
|
||||
|
||||
const authenticationMethod = user
|
||||
? user.authenticationMethod
|
||||
: defaultAuthenticationMethod;
|
||||
|
||||
resolve(authenticationMethod);
|
||||
},
|
||||
});
|
||||
} catch(error) {
|
||||
resolve(defaultAuthenticationMethod);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -64,8 +64,7 @@ template(name="boardTriggers")
|
||||
div.trigger-text
|
||||
| {{_'r-in-swimlane'}}
|
||||
div.trigger-dropdown
|
||||
input(id="create-swimlane-name",type=text,placeholder="{{_'r-swimlane-name'}}")
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
input(id="create-swimlane-name-2",type=text,placeholder="{{_'r-swimlane-name'}}")
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
|
||||
@@ -39,15 +39,18 @@ BlazeComponent.extendComponent({
|
||||
'click .js-add-moved-trigger' (event) {
|
||||
const datas = this.data();
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const swimlaneName = this.find('#create-swimlane-name').value;
|
||||
const swimlaneName = this.find('#create-swimlane-name-2').value;
|
||||
const actionSelected = this.find('#move-action').value;
|
||||
const listName = this.find('#move-list-name').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
const divId = $(event.currentTarget.parentNode).attr('id');
|
||||
const cardTitle = this.cardTitleFilters[divId];
|
||||
if (actionSelected === 'moved-to') {
|
||||
datas.triggerVar.set({
|
||||
activityType: 'moveCard',
|
||||
boardId,
|
||||
listName,
|
||||
cardTitle,
|
||||
swimlaneName,
|
||||
'oldListName': '*',
|
||||
desc,
|
||||
@@ -57,6 +60,7 @@ BlazeComponent.extendComponent({
|
||||
datas.triggerVar.set({
|
||||
activityType: 'moveCard',
|
||||
boardId,
|
||||
cardTitle,
|
||||
swimlaneName,
|
||||
'listName': '*',
|
||||
'oldListName': listName,
|
||||
|
||||
@@ -2,5 +2,8 @@ template(name='connectionMethod')
|
||||
div.at-form-authentication
|
||||
label {{_ 'authentication-method'}}
|
||||
select.select-authentication
|
||||
each authentications
|
||||
option(value="{{value}}") {{_ value}}
|
||||
each authentications
|
||||
if isSelected value
|
||||
option(value="{{value}}" selected) {{_ value}}
|
||||
else
|
||||
option(value="{{value}}") {{_ value}}
|
||||
@@ -31,4 +31,7 @@ Template.connectionMethod.helpers({
|
||||
authentications() {
|
||||
return Template.instance().authenticationMethods.get();
|
||||
},
|
||||
isSelected(match) {
|
||||
return Template.instance().data.authenticationMethod === match;
|
||||
},
|
||||
});
|
||||
@@ -3,8 +3,13 @@ template(name="people")
|
||||
unless currentUser.isAdmin
|
||||
| {{_ 'error-notAuthorized'}}
|
||||
else
|
||||
.content-title
|
||||
span {{_ 'people'}}
|
||||
.content-title.ext-box
|
||||
.ext-box-left
|
||||
span {{_ 'people'}}
|
||||
input#searchInput(placeholder="{{_ 'search'}}")
|
||||
button#searchButton {{_ 'search'}}
|
||||
.ext-box-right
|
||||
span {{_ 'people-number'}} #{peopleNumber}
|
||||
.content-body
|
||||
.side-menu
|
||||
ul
|
||||
@@ -103,4 +108,4 @@ template(name="editUserPopup")
|
||||
| {{_ 'password'}}
|
||||
input.js-profile-password(type="password")
|
||||
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
@@ -8,6 +8,8 @@ BlazeComponent.extendComponent({
|
||||
this.error = new ReactiveVar('');
|
||||
this.loading = new ReactiveVar(false);
|
||||
this.people = new ReactiveVar(true);
|
||||
this.findUsersOptions = new ReactiveVar({});
|
||||
this.number = new ReactiveVar(0);
|
||||
|
||||
this.page = new ReactiveVar(1);
|
||||
this.loadNextPageLocked = false;
|
||||
@@ -26,6 +28,33 @@ BlazeComponent.extendComponent({
|
||||
});
|
||||
});
|
||||
},
|
||||
events() {
|
||||
return [{
|
||||
'click #searchButton'() {
|
||||
this.filterPeople();
|
||||
},
|
||||
'keydown #searchInput'(event) {
|
||||
if (event.keyCode === 13 && !event.shiftKey) {
|
||||
this.filterPeople();
|
||||
}
|
||||
},
|
||||
}];
|
||||
},
|
||||
filterPeople() {
|
||||
const value = $('#searchInput').first().val();
|
||||
if (value === '') {
|
||||
this.findUsersOptions.set({});
|
||||
} else {
|
||||
const regex = new RegExp(value, 'i');
|
||||
this.findUsersOptions.set({
|
||||
$or: [
|
||||
{ username: regex },
|
||||
{ 'profile.fullname': regex },
|
||||
{ 'emails.address': regex },
|
||||
],
|
||||
});
|
||||
}
|
||||
},
|
||||
loadNextPage() {
|
||||
if (this.loadNextPageLocked === false) {
|
||||
this.page.set(this.page.get() + 1);
|
||||
@@ -49,9 +78,14 @@ BlazeComponent.extendComponent({
|
||||
this.loading.set(w);
|
||||
},
|
||||
peopleList() {
|
||||
return Users.find({}, {
|
||||
const users = Users.find(this.findUsersOptions.get(), {
|
||||
fields: {_id: true},
|
||||
});
|
||||
this.number.set(users.count());
|
||||
return users;
|
||||
},
|
||||
peopleNumber() {
|
||||
return this.number.get();
|
||||
},
|
||||
}).register('people');
|
||||
|
||||
|
||||
@@ -13,3 +13,24 @@ table
|
||||
|
||||
tr:nth-child(even)
|
||||
background-color: #dddddd;
|
||||
|
||||
.ext-box
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 34px;
|
||||
|
||||
.ext-box-left
|
||||
display: flex;
|
||||
width: 40%
|
||||
|
||||
span
|
||||
vertical-align: center;
|
||||
line-height: 34px;
|
||||
margin-right: 10px;
|
||||
|
||||
input, button
|
||||
margin: 0 10px 0 0;
|
||||
padding: 0;
|
||||
|
||||
button
|
||||
min-width: 60px;
|
||||
@@ -134,17 +134,27 @@ template(name='announcementSettings')
|
||||
|
||||
template(name='layoutSettings')
|
||||
ul#layout-setting.setting-detail
|
||||
li.layout-form
|
||||
//li.layout-form
|
||||
.title {{_ 'hide-logo'}}
|
||||
.form-group.flex
|
||||
input.form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
input.form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
li.layout-form
|
||||
.title {{_ 'display-authentication-method'}}
|
||||
.form-group.flex
|
||||
input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
input.form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
li.layout-form
|
||||
.title {{_ 'default-authentication-method'}}
|
||||
+selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
|
||||
li.layout-form
|
||||
.title {{_ 'custom-product-name'}}
|
||||
.form-group
|
||||
input.form-control#product-name(type="text", placeholder="Wekan" value="{{currentSetting.productName}}")
|
||||
input.form-control#product-name(type="text", placeholder="" value="{{currentSetting.productName}}")
|
||||
li.layout-form
|
||||
.title {{_ 'add-custom-html-after-body-start'}}
|
||||
textarea#customHTMLafterBodyStart.form-control= currentSetting.customHTMLafterBodyStart
|
||||
@@ -153,3 +163,12 @@ template(name='layoutSettings')
|
||||
textarea#customHTMLbeforeBodyEnd.form-control= currentSetting.customHTMLbeforeBodyEnd
|
||||
li
|
||||
button.js-save-layout.primary {{_ 'save'}}
|
||||
|
||||
|
||||
template(name='selectAuthenticationMethod')
|
||||
select#defaultAuthenticationMethod
|
||||
each authentications
|
||||
if isSelected value
|
||||
option(value="{{value}}" selected) {{_ value}}
|
||||
else
|
||||
option(value="{{value}}") {{_ value}}
|
||||
@@ -62,6 +62,9 @@ BlazeComponent.extendComponent({
|
||||
toggleHideLogo() {
|
||||
$('#hide-logo').toggleClass('is-checked');
|
||||
},
|
||||
toggleDisplayAuthenticationMethod() {
|
||||
$('#display-authentication-method').toggleClass('is-checked');
|
||||
},
|
||||
switchMenu(event) {
|
||||
const target = $(event.target);
|
||||
if (!target.hasClass('active')) {
|
||||
@@ -87,7 +90,7 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
inviteThroughEmail() {
|
||||
const emails = $('#email-to-invite').val().trim().split('\n').join(',').split(',');
|
||||
const emails = $('#email-to-invite').val().toLowerCase().trim().split('\n').join(',').split(',');
|
||||
const boardsToInvite = [];
|
||||
$('.js-toggle-board-choose .materialCheckBox.is-checked').each(function () {
|
||||
boardsToInvite.push($(this).data('id'));
|
||||
@@ -140,17 +143,20 @@ BlazeComponent.extendComponent({
|
||||
|
||||
const productName = $('#product-name').val().trim();
|
||||
const hideLogoChange = ($('input[name=hideLogo]:checked').val() === 'true');
|
||||
const displayAuthenticationMethod = ($('input[name=displayAuthenticationMethod]:checked').val() === 'true');
|
||||
const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val();
|
||||
const customHTMLafterBodyStart = $('#customHTMLafterBodyStart').val().trim();
|
||||
const customHTMLbeforeBodyEnd = $('#customHTMLbeforeBodyEnd').val().trim();
|
||||
|
||||
try {
|
||||
|
||||
Settings.update(Settings.findOne()._id, {
|
||||
$set: {
|
||||
productName,
|
||||
hideLogo: hideLogoChange,
|
||||
customHTMLafterBodyStart,
|
||||
customHTMLbeforeBodyEnd,
|
||||
displayAuthenticationMethod,
|
||||
defaultAuthenticationMethod,
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
@@ -165,17 +171,14 @@ BlazeComponent.extendComponent({
|
||||
|
||||
sendSMTPTestEmail() {
|
||||
Meteor.call('sendSMTPTestEmail', (err, ret) => {
|
||||
if (!err && ret) { /* eslint-disable no-console */
|
||||
if (!err && ret) {
|
||||
const message = `${TAPi18n.__(ret.message)}: ${ret.email}`;
|
||||
console.log(message);
|
||||
alert(message);
|
||||
} else {
|
||||
const reason = err.reason || '';
|
||||
const message = `${TAPi18n.__(err.error)}\n${reason}`;
|
||||
console.log(message, err);
|
||||
alert(message);
|
||||
}
|
||||
/* eslint-enable no-console */
|
||||
});
|
||||
},
|
||||
|
||||
@@ -190,6 +193,7 @@ BlazeComponent.extendComponent({
|
||||
'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
|
||||
'click a.js-toggle-hide-logo': this.toggleHideLogo,
|
||||
'click button.js-save-layout': this.saveLayout,
|
||||
'click a.js-toggle-display-authentication-method': this.toggleDisplayAuthenticationMethod,
|
||||
}];
|
||||
},
|
||||
}).register('setting');
|
||||
@@ -262,3 +266,29 @@ BlazeComponent.extendComponent({
|
||||
}];
|
||||
},
|
||||
}).register('announcementSettings');
|
||||
|
||||
|
||||
Template.selectAuthenticationMethod.onCreated(function() {
|
||||
this.authenticationMethods = new ReactiveVar([]);
|
||||
|
||||
Meteor.call('getAuthenticationsEnabled', (_, result) => {
|
||||
if (result) {
|
||||
// TODO : add a management of different languages
|
||||
// (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
|
||||
this.authenticationMethods.set([
|
||||
{value: 'password'},
|
||||
// Gets only the authentication methods availables
|
||||
...Object.entries(result).filter((e) => e[1]).map((e) => ({value: e[0]})),
|
||||
]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Template.selectAuthenticationMethod.helpers({
|
||||
authentications() {
|
||||
return Template.instance().authenticationMethods.get();
|
||||
},
|
||||
isSelected(match) {
|
||||
return Template.instance().data.authenticationMethod === match;
|
||||
},
|
||||
});
|
||||
@@ -52,6 +52,10 @@
|
||||
|
||||
.main-body
|
||||
padding: 0.1em 1em
|
||||
-webkit-user-select: auto // Safari 3.1+
|
||||
-moz-user-select: auto // Firefox 2+
|
||||
-ms-user-select: auto // IE 10+
|
||||
user-select: auto // Standard syntax
|
||||
|
||||
ul
|
||||
li
|
||||
|
||||
@@ -4,22 +4,21 @@ template(name="settingHeaderBar")
|
||||
|
||||
.setting-header-btns.left
|
||||
unless isMiniScreen
|
||||
unless isSandstorm
|
||||
if currentUser
|
||||
a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
|
||||
i.fa(class="fa-cog")
|
||||
span {{_ 'settings'}}
|
||||
if currentUser
|
||||
a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
|
||||
i.fa(class="fa-cog")
|
||||
span {{_ 'settings'}}
|
||||
|
||||
a.setting-header-btn.people(href="{{pathFor 'people'}}")
|
||||
i.fa(class="fa-users")
|
||||
span {{_ 'people'}}
|
||||
a.setting-header-btn.people(href="{{pathFor 'people'}}")
|
||||
i.fa(class="fa-users")
|
||||
span {{_ 'people'}}
|
||||
|
||||
a.setting-header-btn.informations(href="{{pathFor 'information'}}")
|
||||
i.fa(class="fa-info-circle")
|
||||
span {{_ 'info'}}
|
||||
a.setting-header-btn.informations(href="{{pathFor 'information'}}")
|
||||
i.fa(class="fa-info-circle")
|
||||
span {{_ 'info'}}
|
||||
|
||||
else
|
||||
a.setting-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
else
|
||||
a.setting-header-btn.js-log-in(
|
||||
title="{{_ 'log-in'}}")
|
||||
i.fa.fa-sign-in
|
||||
span {{_ 'log-in'}}
|
||||
@@ -1,9 +1,9 @@
|
||||
template(name="sidebar")
|
||||
.board-sidebar.sidebar(class="{{#if isOpen}}is-open{{/if}}")
|
||||
a.sidebar-tongue.js-toggle-sidebar(
|
||||
class="{{#if isTongueHidden}}is-hidden{{/if}}",
|
||||
title="{{showTongueTitle}}")
|
||||
i.fa.fa-angle-left
|
||||
//a.sidebar-tongue.js-toggle-sidebar(
|
||||
// class="{{#if isTongueHidden}}is-hidden{{/if}}",
|
||||
// title="{{showTongueTitle}}")
|
||||
// i.fa.fa-navicon
|
||||
.sidebar-shadow
|
||||
.sidebar-content.sidebar-shortcuts
|
||||
a.board-header-btn.js-shortcuts
|
||||
@@ -11,7 +11,7 @@ template(name="sidebar")
|
||||
span {{_ 'keyboard-shortcuts' }}
|
||||
.sidebar-content.js-board-sidebar-content.js-perfect-scrollbar
|
||||
a.hide-btn.js-hide-sidebar
|
||||
i.fa.fa-angle-right
|
||||
i.fa.fa-navicon
|
||||
unless isDefaultView
|
||||
h2
|
||||
a.fa.fa-chevron-left.js-back-home
|
||||
@@ -34,6 +34,9 @@ template(name="membersWidget")
|
||||
h3
|
||||
i.fa.fa-user
|
||||
| {{_ 'members'}}
|
||||
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}").right
|
||||
i.board-header-btn-icon.fa.fa-cog
|
||||
|
||||
.board-widget-content
|
||||
each currentBoard.activeMembers
|
||||
+userAvatar(userId=this.userId showStatus=true)
|
||||
@@ -53,6 +56,130 @@ template(name="membersWidget")
|
||||
button.js-member-invite-accept.primary {{_ 'accept'}}
|
||||
button.js-member-invite-decline {{_ 'decline'}}
|
||||
|
||||
template(name="boardChangeColorPopup")
|
||||
.board-backgrounds-list.clearfix
|
||||
each backgroundColors
|
||||
.board-background-select.js-select-background
|
||||
span.background-box(class="board-color-{{this}}")
|
||||
if isSelected
|
||||
i.fa.fa-check
|
||||
|
||||
template(name="boardSubtaskSettingsPopup")
|
||||
form.board-subtask-settings
|
||||
h3 {{_ 'show-parent-in-minicard'}}
|
||||
a#prefix-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-full-path'}}is-checked{{/if}}")
|
||||
span {{_ 'prefix-with-full-path'}}
|
||||
a#prefix-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'prefix-with-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'prefix-with-parent'}}
|
||||
a#subtext-with-full-path.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-full-path'}}is-checked{{/if}}")
|
||||
span {{_ 'subtext-with-full-path'}}
|
||||
a#subtext-with-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'subtext-with-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'subtext-with-parent'}}
|
||||
a#no-parent.flex.js-field-show-parent-in-minicard(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if $eq presentParentTask 'no-parent'}}is-checked{{/if}}")
|
||||
span {{_ 'no-parent'}}
|
||||
div
|
||||
hr
|
||||
|
||||
div.check-div
|
||||
a.flex.js-field-has-subtasks(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
||||
.materialCheckBox(class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
||||
span {{_ 'show-subtasks-field'}}
|
||||
|
||||
label
|
||||
| {{_ 'deposit-subtasks-board'}}
|
||||
select.js-field-deposit-board(disabled="{{#unless allowsSubtasks}}disabled{{/unless}}")
|
||||
each boards
|
||||
if isBoardSelected
|
||||
option(value=_id selected="selected") {{title}}
|
||||
else
|
||||
option(value=_id) {{title}}
|
||||
if isNullBoardSelected
|
||||
option(value='null' selected="selected") {{_ 'custom-field-dropdown-none'}}
|
||||
else
|
||||
option(value='null') {{_ 'custom-field-dropdown-none'}}
|
||||
div
|
||||
hr
|
||||
|
||||
label
|
||||
| {{_ 'deposit-subtasks-list'}}
|
||||
select.js-field-deposit-list(disabled="{{#unless hasLists}}disabled{{/unless}}")
|
||||
each lists
|
||||
if isListSelected
|
||||
option(value=_id selected="selected") {{title}}
|
||||
else
|
||||
option(value=_id) {{title}}
|
||||
|
||||
template(name="chooseBoardSource")
|
||||
ul.pop-over-list
|
||||
li
|
||||
a(href="{{pathFor '/import/trello'}}") {{_ 'from-trello'}}
|
||||
li
|
||||
a(href="{{pathFor '/import/wekan'}}") {{_ 'from-wekan'}}
|
||||
|
||||
template(name="archiveBoardPopup")
|
||||
p {{_ 'close-board-pop'}}
|
||||
button.js-confirm.negate.full(type="submit") {{_ 'archive'}}
|
||||
|
||||
template(name="outgoingWebhooksPopup")
|
||||
each integrations
|
||||
form.integration-form
|
||||
if title
|
||||
h4 {{title}}
|
||||
else
|
||||
h4 {{_ 'no-name'}}
|
||||
label
|
||||
| URL
|
||||
input.js-outgoing-webhooks-url(type="text" name="url" value=url)
|
||||
input(type="hidden" value=_id name="id")
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
form.integration-form
|
||||
h4
|
||||
| {{_ 'new-outgoing-webhook'}}
|
||||
label
|
||||
| URL
|
||||
input.js-outgoing-webhooks-url(type="text" name="url" autofocus)
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
|
||||
template(name="boardMenuPopup")
|
||||
ul.pop-over-list
|
||||
li: a.js-custom-fields {{_ 'custom-fields'}}
|
||||
li: a.js-open-archives {{_ 'archived-items'}}
|
||||
if currentUser.isBoardAdmin
|
||||
li: a.js-change-board-color {{_ 'board-change-color'}}
|
||||
//-
|
||||
XXX Language should be handled by sandstorm, but for now display a
|
||||
language selection link in the board menu. This link is normally present
|
||||
in the header bar that is not displayed on sandstorm.
|
||||
if isSandstorm
|
||||
li: a.js-change-language {{_ 'language'}}
|
||||
unless isSandstorm
|
||||
if currentUser.isBoardAdmin
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
|
||||
unless currentBoard.isTemplatesBoard
|
||||
li: a.js-archive-board {{_ 'archive-board'}}
|
||||
li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-subtask-settings {{_ 'subtask-settings'}}
|
||||
|
||||
if isSandstorm
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
|
||||
li: a.js-import-board {{_ 'import-board-c'}}
|
||||
li: a.js-archive-board {{_ 'archive-board'}}
|
||||
li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-subtask-settings {{_ 'subtask-settings'}}
|
||||
|
||||
template(name="labelsWidget")
|
||||
.board-widget.board-widget-labels
|
||||
h3
|
||||
@@ -83,17 +210,16 @@ template(name="memberPopup")
|
||||
ul.pop-over-list
|
||||
li
|
||||
a.js-filter-member {{_ 'filter-cards'}}
|
||||
unless isSandstorm
|
||||
if currentUser.isBoardAdmin
|
||||
li
|
||||
a.js-change-role
|
||||
| {{_ 'change-permissions'}}
|
||||
span.quiet (#{memberType})
|
||||
if currentUser.isBoardAdmin
|
||||
li
|
||||
if $eq currentUser._id userId
|
||||
a.js-leave-member {{_ 'leave-board'}}
|
||||
else if currentUser.isBoardAdmin
|
||||
a.js-remove-member {{_ 'remove-from-board'}}
|
||||
a.js-change-role
|
||||
| {{_ 'change-permissions'}}
|
||||
span.quiet (#{memberType})
|
||||
li
|
||||
if $eq currentUser._id userId
|
||||
a.js-leave-member {{_ 'leave-board'}}
|
||||
else if currentUser.isBoardAdmin
|
||||
a.js-remove-member {{_ 'remove-from-board'}}
|
||||
|
||||
|
||||
template(name="removeMemberPopup")
|
||||
|
||||
@@ -142,6 +142,52 @@ Template.memberPopup.helpers({
|
||||
},
|
||||
});
|
||||
|
||||
Template.boardMenuPopup.events({
|
||||
'click .js-rename-board': Popup.open('boardChangeTitle'),
|
||||
'click .js-custom-fields'() {
|
||||
Sidebar.setView('customFields');
|
||||
Popup.close();
|
||||
},
|
||||
'click .js-open-archives'() {
|
||||
Sidebar.setView('archives');
|
||||
Popup.close();
|
||||
},
|
||||
'click .js-change-board-color': Popup.open('boardChangeColor'),
|
||||
'click .js-change-language': Popup.open('changeLanguage'),
|
||||
'click .js-archive-board ': Popup.afterConfirm('archiveBoard', function() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
currentBoard.archive();
|
||||
// XXX We should have some kind of notification on top of the page to
|
||||
// confirm that the board was successfully archived.
|
||||
FlowRouter.go('home');
|
||||
}),
|
||||
'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
Popup.close();
|
||||
Boards.remove(currentBoard._id);
|
||||
FlowRouter.go('home');
|
||||
}),
|
||||
'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'),
|
||||
'click .js-import-board': Popup.open('chooseBoardSource'),
|
||||
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
|
||||
});
|
||||
|
||||
Template.boardMenuPopup.helpers({
|
||||
exportUrl() {
|
||||
const params = {
|
||||
boardId: Session.get('currentBoard'),
|
||||
};
|
||||
const queryParams = {
|
||||
authToken: Accounts._storedLoginToken(),
|
||||
};
|
||||
return FlowRouter.path('/api/boards/:boardId/export', params, queryParams);
|
||||
},
|
||||
exportFilename() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
return `wekan-export-board-${boardId}.json`;
|
||||
},
|
||||
});
|
||||
|
||||
Template.memberPopup.events({
|
||||
'click .js-filter-member'() {
|
||||
Filter.members.toggle(this.userId);
|
||||
@@ -190,7 +236,14 @@ Template.membersWidget.helpers({
|
||||
|
||||
Template.membersWidget.events({
|
||||
'click .js-member': Popup.open('member'),
|
||||
'click .js-open-board-menu': Popup.open('boardMenu'),
|
||||
'click .js-manage-board-members': Popup.open('addMember'),
|
||||
'click .js-import': Popup.open('boardImportBoard'),
|
||||
submit: this.onSubmit,
|
||||
'click .js-import-board': Popup.open('chooseBoardSource'),
|
||||
'click .js-open-archived-board'() {
|
||||
Modal.open('archivedBoards');
|
||||
},
|
||||
'click .sandstorm-powerbox-request-identity'() {
|
||||
window.sandstormRequestIdentity();
|
||||
},
|
||||
@@ -209,6 +262,59 @@ Template.membersWidget.events({
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
integrations() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
return Integrations.find({ boardId: `${boardId}` }).fetch();
|
||||
},
|
||||
|
||||
integration(id) {
|
||||
const boardId = Session.get('currentBoard');
|
||||
return Integrations.findOne({ _id: id, boardId: `${boardId}` });
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'submit'(evt) {
|
||||
evt.preventDefault();
|
||||
const url = evt.target.url.value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
let id = null;
|
||||
let integration = null;
|
||||
if (evt.target.id) {
|
||||
id = evt.target.id.value;
|
||||
integration = this.integration(id);
|
||||
if (url) {
|
||||
Integrations.update(integration._id, {
|
||||
$set: {
|
||||
url: `${url}`,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
Integrations.remove(integration._id);
|
||||
}
|
||||
} else if (url) {
|
||||
Integrations.insert({
|
||||
userId: Meteor.userId(),
|
||||
enabled: true,
|
||||
type: 'outgoing-webhooks',
|
||||
url: `${url}`,
|
||||
boardId: `${boardId}`,
|
||||
activities: ['all'],
|
||||
});
|
||||
}
|
||||
Popup.close();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('outgoingWebhooksPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
template() {
|
||||
return 'chooseBoardSource';
|
||||
},
|
||||
}).register('chooseBoardSourcePopup');
|
||||
|
||||
Template.labelsWidget.events({
|
||||
'click .js-label': Popup.open('editLabel'),
|
||||
'click .js-add-label': Popup.open('createLabel'),
|
||||
@@ -258,6 +364,124 @@ function draggableMembersLabelsWidgets() {
|
||||
Template.membersWidget.onRendered(draggableMembersLabelsWidgets);
|
||||
Template.labelsWidget.onRendered(draggableMembersLabelsWidgets);
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
backgroundColors() {
|
||||
return Boards.simpleSchema()._schema.color.allowedValues;
|
||||
},
|
||||
|
||||
isSelected() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
return currentBoard.color === this.currentData().toString();
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-select-background'(evt) {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
const newColor = this.currentData().toString();
|
||||
currentBoard.setColor(newColor);
|
||||
evt.preventDefault();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('boardChangeColorPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
},
|
||||
|
||||
allowsSubtasks() {
|
||||
return this.currentBoard.allowsSubtasks;
|
||||
},
|
||||
|
||||
isBoardSelected() {
|
||||
return this.currentBoard.subtasksDefaultBoardId === this.currentData()._id;
|
||||
},
|
||||
|
||||
isNullBoardSelected() {
|
||||
return (this.currentBoard.subtasksDefaultBoardId === null) || (this.currentBoard.subtasksDefaultBoardId === undefined);
|
||||
},
|
||||
|
||||
boards() {
|
||||
return Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
},
|
||||
|
||||
lists() {
|
||||
return Lists.find({
|
||||
boardId: this.currentBoard._id,
|
||||
archived: false,
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
},
|
||||
|
||||
hasLists() {
|
||||
return this.lists().count() > 0;
|
||||
},
|
||||
|
||||
isListSelected() {
|
||||
return this.currentBoard.subtasksDefaultBoardId === this.currentData()._id;
|
||||
},
|
||||
|
||||
presentParentTask() {
|
||||
let result = this.currentBoard.presentParentTask;
|
||||
if ((result === null) || (result === undefined)) {
|
||||
result = 'no-parent';
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-field-has-subtasks'(evt) {
|
||||
evt.preventDefault();
|
||||
this.currentBoard.allowsSubtasks = !this.currentBoard.allowsSubtasks;
|
||||
this.currentBoard.setAllowsSubtasks(this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-has-subtasks .materialCheckBox').toggleClass('is-checked', this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-has-subtasks').toggleClass('is-checked', this.currentBoard.allowsSubtasks);
|
||||
$('.js-field-deposit-board').prop('disabled', !this.currentBoard.allowsSubtasks);
|
||||
},
|
||||
'change .js-field-deposit-board'(evt) {
|
||||
let value = evt.target.value;
|
||||
if (value === 'null') {
|
||||
value = null;
|
||||
}
|
||||
this.currentBoard.setSubtasksDefaultBoardId(value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'change .js-field-deposit-list'(evt) {
|
||||
this.currentBoard.setSubtasksDefaultListId(evt.target.value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
'click .js-field-show-parent-in-minicard'(evt) {
|
||||
const value = evt.target.id || $(evt.target).parent()[0].id || $(evt.target).parent()[0].parent()[0].id;
|
||||
const options = [
|
||||
'prefix-with-full-path',
|
||||
'prefix-with-parent',
|
||||
'subtext-with-full-path',
|
||||
'subtext-with-parent',
|
||||
'no-parent'];
|
||||
options.forEach(function(element) {
|
||||
if (element !== value) {
|
||||
$(`#${element} .materialCheckBox`).toggleClass('is-checked', false);
|
||||
$(`#${element}`).toggleClass('is-checked', false);
|
||||
}
|
||||
});
|
||||
$(`#${value} .materialCheckBox`).toggleClass('is-checked', true);
|
||||
$(`#${value}`).toggleClass('is-checked', true);
|
||||
this.currentBoard.setPresentParentTask(value);
|
||||
evt.preventDefault();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('boardSubtaskSettingsPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.error = new ReactiveVar('');
|
||||
|
||||
@@ -2,7 +2,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
customFields() {
|
||||
return CustomFields.find({
|
||||
boardId: Session.get('currentBoard'),
|
||||
boardIds: {$in: [Session.get('currentBoard')]},
|
||||
});
|
||||
},
|
||||
|
||||
@@ -103,7 +103,6 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({
|
||||
evt.preventDefault();
|
||||
|
||||
const data = {
|
||||
boardId: Session.get('currentBoard'),
|
||||
name: this.find('.js-field-name').value.trim(),
|
||||
type: this.type.get(),
|
||||
settings: this.getSettings(),
|
||||
@@ -114,6 +113,7 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({
|
||||
|
||||
// insert or update
|
||||
if (!this.data()._id) {
|
||||
data.boardIds = [Session.get('currentBoard')];
|
||||
CustomFields.insert(data);
|
||||
} else {
|
||||
CustomFields.update(this.data()._id, {$set: data});
|
||||
@@ -122,8 +122,16 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({
|
||||
Popup.back();
|
||||
},
|
||||
'click .js-delete-custom-field': Popup.afterConfirm('deleteCustomField', function() {
|
||||
const customFieldId = this._id;
|
||||
CustomFields.remove(customFieldId);
|
||||
const customField = CustomFields.findOne(this._id);
|
||||
if (customField.boardIds.length > 1) {
|
||||
CustomFields.update(customField._id, {
|
||||
$pull: {
|
||||
boardIds: Session.get('currentBoard'),
|
||||
},
|
||||
});
|
||||
} else {
|
||||
CustomFields.remove(customField._id);
|
||||
}
|
||||
Popup.close();
|
||||
}),
|
||||
}];
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
template(name="miniswimlane")
|
||||
.minicard(
|
||||
class="minicard-{{colorClass}}")
|
||||
.minicard-title
|
||||
.handle
|
||||
.fa.fa-arrows
|
||||
+viewer
|
||||
= title
|
||||
@@ -1,15 +1,21 @@
|
||||
template(name="swimlaneHeader")
|
||||
.swimlane-header-wrap.js-swimlane-header(class='{{#if colorClass}}swimlane-{{colorClass}}{{/if}}')
|
||||
+inlinedForm
|
||||
+editSwimlaneTitleForm
|
||||
if this.isTemplateContainer
|
||||
+swimlaneFixedHeader(this)
|
||||
else
|
||||
.swimlane-header(
|
||||
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
|
||||
= title
|
||||
.swimlane-header-menu
|
||||
unless currentUser.isCommentOnly
|
||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
|
||||
a.fa.fa-navicon.js-open-swimlane-menu
|
||||
+inlinedForm
|
||||
+editSwimlaneTitleForm
|
||||
else
|
||||
+swimlaneFixedHeader(this)
|
||||
|
||||
template(name="swimlaneFixedHeader")
|
||||
.swimlane-header(
|
||||
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
|
||||
= title
|
||||
.swimlane-header-menu
|
||||
unless currentUser.isCommentOnly
|
||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
|
||||
a.fa.fa-navicon.js-open-swimlane-menu
|
||||
|
||||
template(name="editSwimlaneTitleForm")
|
||||
.list-composer
|
||||
@@ -22,9 +28,10 @@ template(name="swimlaneActionPopup")
|
||||
unless currentUser.isCommentOnly
|
||||
ul.pop-over-list
|
||||
li: a.js-set-swimlane-color {{_ 'select-color'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-close-swimlane {{_ 'archive-swimlane'}}
|
||||
unless this.isTemplateContainer
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-close-swimlane {{_ 'archive-swimlane'}}
|
||||
|
||||
template(name="swimlaneAddPopup")
|
||||
unless currentUser.isCommentOnly
|
||||
@@ -33,6 +40,11 @@ template(name="swimlaneAddPopup")
|
||||
autocomplete="off" autofocus)
|
||||
.edit-controls.clearfix
|
||||
button.primary.confirm(type="submit") {{_ 'add'}}
|
||||
unless currentBoard.isTemplatesBoard
|
||||
unless currentBoard.isTemplateBoard
|
||||
span.quiet
|
||||
| {{_ 'or'}}
|
||||
a.js-swimlane-template {{_ 'template'}}
|
||||
|
||||
template(name="setSwimlaneColorPopup")
|
||||
form.edit-label
|
||||
|
||||
@@ -47,12 +47,14 @@ BlazeComponent.extendComponent({
|
||||
const titleInput = this.find('.swimlane-name-input');
|
||||
const title = titleInput.value.trim();
|
||||
const sortValue = calculateIndexData(this.currentSwimlane, nextSwimlane, 1);
|
||||
const swimlaneType = (currentBoard.isTemplatesBoard())?'template-swimlane':'swimlane';
|
||||
|
||||
if (title) {
|
||||
Swimlanes.insert({
|
||||
title,
|
||||
boardId: Session.get('currentBoard'),
|
||||
sort: sortValue.base,
|
||||
type: swimlaneType,
|
||||
});
|
||||
|
||||
titleInput.value = '';
|
||||
@@ -63,6 +65,7 @@ BlazeComponent.extendComponent({
|
||||
// with a minimum of interactions
|
||||
Popup.close();
|
||||
},
|
||||
'click .js-swimlane-template': Popup.open('searchElement'),
|
||||
}];
|
||||
},
|
||||
}).register('swimlaneAddPopup');
|
||||
|
||||
@@ -3,15 +3,15 @@ template(name="swimlane")
|
||||
+swimlaneHeader
|
||||
.swimlane.js-lists.js-swimlane
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
if currentListIsInThisSwimlane _id
|
||||
+list(currentList)
|
||||
else
|
||||
each currentBoard.lists
|
||||
unless currentList
|
||||
each lists
|
||||
+miniList(this)
|
||||
if currentUser.isBoardMember
|
||||
+addListForm
|
||||
else
|
||||
each currentBoard.lists
|
||||
each lists
|
||||
+list(this)
|
||||
if currentCardIsInThisList _id ../_id
|
||||
+cardDetails(currentCard)
|
||||
@@ -24,12 +24,12 @@ template(name="listsGroup")
|
||||
if currentList
|
||||
+list(currentList)
|
||||
else
|
||||
each currentBoard.lists
|
||||
each lists
|
||||
+miniList(this)
|
||||
if currentUser.isBoardMember
|
||||
+addListForm
|
||||
else
|
||||
each currentBoard.lists
|
||||
each lists
|
||||
+list(this)
|
||||
if currentCardIsInThisList _id null
|
||||
+cardDetails(currentCard)
|
||||
@@ -44,7 +44,11 @@ template(name="addListForm")
|
||||
autocomplete="off" autofocus)
|
||||
.edit-controls.clearfix
|
||||
button.primary.confirm(type="submit") {{_ 'save'}}
|
||||
a.fa.fa-times-thin.js-close-inlined-form
|
||||
unless currentBoard.isTemplatesBoard
|
||||
unless currentBoard.isTemplateBoard
|
||||
span.quiet
|
||||
| {{_ 'or'}}
|
||||
a.js-list-template {{_ 'template'}}
|
||||
else
|
||||
a.open-list-composer.js-open-inlined-form
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
const { calculateIndex, enableClickOnTouch } = Utils;
|
||||
|
||||
function currentListIsInThisSwimlane(swimlaneId) {
|
||||
const currentList = Lists.findOne(Session.get('currentList'));
|
||||
return currentList && (currentList.swimlaneId === swimlaneId || currentList.swimlaneId === '');
|
||||
}
|
||||
|
||||
function currentCardIsInThisList(listId, swimlaneId) {
|
||||
const currentCard = Cards.findOne(Session.get('currentCard'));
|
||||
const currentUser = Meteor.user();
|
||||
if (currentUser.profile.boardView === 'board-view-lists')
|
||||
return currentCard && currentCard.listId === listId;
|
||||
else if (currentUser.profile.boardView === 'board-view-swimlanes')
|
||||
if (currentUser && currentUser.profile.boardView === 'board-view-swimlanes')
|
||||
return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId;
|
||||
else if (currentUser.profile.boardView === 'board-view-cal')
|
||||
return currentCard;
|
||||
else
|
||||
return false;
|
||||
else // Default view: board-view-lists
|
||||
return currentCard && currentCard.listId === listId;
|
||||
// https://github.com/wekan/wekan/issues/1623
|
||||
// https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de
|
||||
// TODO: In public board, if you would like to switch between List/Swimlane view, you could
|
||||
// 1) If there is no view cookie, save to cookie board-view-lists
|
||||
// board-view-lists / board-view-swimlanes / board-view-cal
|
||||
// 2) If public user changes clicks board-view-lists then change view and
|
||||
// then change view and save cookie with view value
|
||||
// without using currentuser above, because currentuser is null.
|
||||
}
|
||||
|
||||
function initSortable(boardComponent, $listsDom) {
|
||||
@@ -110,6 +119,10 @@ BlazeComponent.extendComponent({
|
||||
return currentCardIsInThisList(listId, swimlaneId);
|
||||
},
|
||||
|
||||
currentListIsInThisSwimlane(swimlaneId) {
|
||||
return currentListIsInThisSwimlane(swimlaneId);
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
// Click-and-drag action
|
||||
@@ -149,6 +162,12 @@ BlazeComponent.extendComponent({
|
||||
}).register('swimlane');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
this.isListTemplatesSwimlane = this.currentBoard.isTemplatesBoard() && this.currentData().isListTemplatesSwimlane();
|
||||
this.currentSwimlane = this.currentData();
|
||||
},
|
||||
|
||||
// Proxy
|
||||
open() {
|
||||
this.childComponents('inlinedForm')[0].open();
|
||||
@@ -165,12 +184,15 @@ BlazeComponent.extendComponent({
|
||||
title,
|
||||
boardId: Session.get('currentBoard'),
|
||||
sort: $('.list').length,
|
||||
type: (this.isListTemplatesSwimlane)?'template-list':'list',
|
||||
swimlaneId: (this.currentBoard.isTemplatesBoard())?this.currentSwimlane._id:'',
|
||||
});
|
||||
|
||||
titleInput.value = '';
|
||||
titleInput.focus();
|
||||
}
|
||||
},
|
||||
'click .js-list-template': Popup.open('searchElement'),
|
||||
}];
|
||||
},
|
||||
}).register('addListForm');
|
||||
|
||||
@@ -53,6 +53,9 @@
|
||||
.list-group
|
||||
height: 100%
|
||||
|
||||
.moving-swimlane
|
||||
display: none
|
||||
|
||||
swimlane-color(background, color...)
|
||||
background: background !important
|
||||
if color
|
||||
|
||||
@@ -4,10 +4,11 @@ template(name="headerUserBar")
|
||||
.header-user-bar-avatar
|
||||
+userAvatar(userId=currentUser._id)
|
||||
unless isMiniScreen
|
||||
if currentUser.profile.fullname
|
||||
= currentUser.profile.fullname
|
||||
else
|
||||
= currentUser.username
|
||||
unless isSandstorm
|
||||
if currentUser.profile.fullname
|
||||
= currentUser.profile.fullname
|
||||
else
|
||||
= currentUser.username
|
||||
|
||||
template(name="memberMenuPopup")
|
||||
ul.pop-over-list
|
||||
@@ -15,13 +16,18 @@ template(name="memberMenuPopup")
|
||||
li: a.js-edit-profile {{_ 'edit-profile'}}
|
||||
li: a.js-change-settings {{_ 'change-settings'}}
|
||||
li: a.js-change-avatar {{_ 'edit-avatar'}}
|
||||
li: a.js-change-password {{_ 'changePasswordPopup-title'}}
|
||||
li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
|
||||
unless isSandstorm
|
||||
li: a.js-change-password {{_ 'changePasswordPopup-title'}}
|
||||
li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
|
||||
if currentUser.isAdmin
|
||||
li: a.js-go-setting(href="{{pathFor 'setting'}}") {{_ 'admin-panel'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-logout {{_ 'log-out'}}
|
||||
li: a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}") {{_ 'templates'}}
|
||||
unless isSandstorm
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-logout {{_ 'log-out'}}
|
||||
|
||||
template(name="editProfilePopup")
|
||||
form
|
||||
|
||||
@@ -3,6 +3,15 @@ Template.headerUserBar.events({
|
||||
'click .js-change-avatar': Popup.open('changeAvatar'),
|
||||
});
|
||||
|
||||
Template.memberMenuPopup.helpers({
|
||||
templatesBoardId() {
|
||||
return Meteor.user().getTemplatesBoardId();
|
||||
},
|
||||
templatesBoardSlug() {
|
||||
return Meteor.user().getTemplatesBoardSlug();
|
||||
},
|
||||
});
|
||||
|
||||
Template.memberMenuPopup.events({
|
||||
'click .js-edit-profile': Popup.open('editProfile'),
|
||||
'click .js-change-settings': Popup.open('changeSettings'),
|
||||
|
||||
+1
-1
@@ -184,7 +184,7 @@ window.Popup = new class {
|
||||
// positives.
|
||||
const title = TAPi18n.__(translationKey);
|
||||
// when popup showed as full of small screen, we need a default header to clearly see [X] button
|
||||
const defaultTitle = Utils.isMiniScreen() ? 'Wekan' : false;
|
||||
const defaultTitle = Utils.isMiniScreen() ? '' : false;
|
||||
return title !== translationKey ? title : defaultTitle;
|
||||
};
|
||||
}
|
||||
|
||||
+180
-142
@@ -90,8 +90,8 @@ services:
|
||||
wekandb:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) CURRENTLY BROKEN: For Wekan Meteor 1.8.x version at meteor-1.8 branch, use mongo 4.x
|
||||
# image: mongo:4.0.4
|
||||
# a) For Wekan Meteor 1.8.x version at meteor-1.8 branch, use mongo 4.x
|
||||
#image: mongo:4.0.4
|
||||
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
image: mongo:3.2.21
|
||||
@@ -110,12 +110,12 @@ services:
|
||||
wekan:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) CURRENTLY BROKEN: For Wekan Meteor 1.8.x version at meteor-1.8 branch,
|
||||
# a) For Wekan Meteor 1.8.x version at meteor-1.8 branch,
|
||||
# using https://quay.io/wekan/wekan automatic builds
|
||||
# image: quay.io/wekan/wekan:meteor-1.8
|
||||
#image: quay.io/wekan/wekan:meteor-1.8
|
||||
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
image: quay.io/wekan/wekan
|
||||
image: quay.io/wekan/wekan:master
|
||||
# c) 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
|
||||
@@ -169,8 +169,9 @@ services:
|
||||
# For SSL in email, change smtp:// to smtps://
|
||||
# NOTE: Special characters need to be url-encoded in MAIL_URL.
|
||||
# You can encode those characters for example at: https://www.urlencoder.org
|
||||
- MAIL_URL=smtp://user:pass@mailserver.example.com:25/
|
||||
- MAIL_FROM='Example Wekan Support <support@example.com>'
|
||||
#- MAIL_URL=smtp://user:pass@mailserver.example.com:25/
|
||||
- MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
|
||||
- MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com>
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: MONGO OPLOG SETTINGS =====
|
||||
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-378343587
|
||||
@@ -191,9 +192,12 @@ services:
|
||||
# - MONGO_OPLOG_URL=mongodb://<username>:<password>@<mongoDbURL>/local?authSource=admin&replicaSet=rsWekan
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: KADIRA PERFORMANCE MONITORING FOR METEOR ====
|
||||
# https://github.com/smeijer/kadira
|
||||
# https://github.com/edemaine/kadira-compose
|
||||
# https://github.com/meteor/meteor-apm-agent
|
||||
# https://blog.meteor.com/kadira-apm-is-now-open-source-490469ffc85f
|
||||
# - export KADIRA_OPTIONS_ENDPOINT=http://127.0.0.1:11011
|
||||
#- APM_OPTIONS_ENDPOINT=http://<kadira-ip>:11011
|
||||
#- APM_APP_ID=
|
||||
#- APM_APP_SECRET=
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: LOGS AND STATS ====
|
||||
# https://github.com/wekan/wekan/wiki/Logs
|
||||
@@ -217,25 +221,35 @@ services:
|
||||
# https://github.com/wekan/wekan-gogs
|
||||
# If you disable Wekan API with false, Export Board does not work.
|
||||
- WITH_API=true
|
||||
#---------------------------------------------------------------
|
||||
# ==== PASSWORD BRUTE FORCE PROTECTION ====
|
||||
#https://atmospherejs.com/lucasantoniassi/accounts-lockout
|
||||
#Defaults below. Uncomment to change. wekan/server/accounts-lockout.js
|
||||
#- ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3
|
||||
#- ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60
|
||||
#- ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15
|
||||
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
|
||||
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
|
||||
#- ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
|
||||
#---------------------------------------------------------------
|
||||
# ==== EMAIL NOTIFICATION TIMEOUT, ms =====
|
||||
# Defaut: 30000 ms = 30s
|
||||
#- EMAIL_NOTIFICATION_TIMEOUT=30000
|
||||
#-----------------------------------------------------------------
|
||||
# ==== CORS =====
|
||||
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||
# CORS: Set Access-Control-Allow-Origin header.
|
||||
#- CORS=*
|
||||
#-----------------------------------------------------------------
|
||||
# ==== MATOMO INTEGRATION ====
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
#- MATOMO_ADDRESS=
|
||||
#- MATOMO_ADDRESS=https://example.com/matomo
|
||||
# The value of the site ID given in Matomo server for Wekan
|
||||
# example: - MATOMO_SITE_ID=12345
|
||||
#- MATOMO_SITE_ID=
|
||||
#- MATOMO_SITE_ID=1
|
||||
# The option do not track which enables users to not be tracked by matomo
|
||||
# example: - MATOMO_DO_NOT_TRACK=false
|
||||
#- MATOMO_DO_NOT_TRACK=
|
||||
#- MATOMO_DO_NOT_TRACK=true
|
||||
# The option that allows matomo to retrieve the username:
|
||||
# example: MATOMO_WITH_USERNAME=true
|
||||
#- MATOMO_WITH_USERNAME=false
|
||||
#- MATOMO_WITH_USERNAME=true
|
||||
#-----------------------------------------------------------------
|
||||
# ==== BROWSER POLICY AND TRUSTED IFRAME URL ====
|
||||
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||
@@ -243,208 +257,226 @@ services:
|
||||
# and allows all iframing etc. See wekan/server/policy.js
|
||||
- BROWSER_POLICY_ENABLED=true
|
||||
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||
#- TRUSTED_URL=
|
||||
#- TRUSTED_URL=https://intra.example.com
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OUTGOING WEBHOOKS ====
|
||||
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#- WEBHOOKS_ATTRIBUTES=
|
||||
#- WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 ONLY WITH OIDC AND DOORKEEPER AS INDENTITY PROVIDER
|
||||
# ==== Debug OIDC OAuth2 etc ====
|
||||
#- DEBUG=true
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 AZURE ====
|
||||
# https://github.com/wekan/wekan/wiki/Azure
|
||||
# 1) Register the application with Azure. Make sure you capture
|
||||
# the application ID as well as generate a secret key.
|
||||
# 2) Configure the environment variables. This differs slightly
|
||||
# by installation type, but make sure you have the following:
|
||||
#- OAUTH2_ENABLED=true
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#- OAUTH2_LOGIN_STYLE=redirect
|
||||
# Application GUID captured during app registration:
|
||||
#- OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
|
||||
# Secret key generated during app registration:
|
||||
#- OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
#- OAUTH2_SERVER_URL=https://login.microsoftonline.com/
|
||||
#- OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize
|
||||
#- OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo
|
||||
#- OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token
|
||||
# The claim name you want to map to the unique ID field:
|
||||
#- OAUTH2_ID_MAP=email
|
||||
# The claim name you want to map to the username field:
|
||||
#- OAUTH2_USERNAME_MAP=email
|
||||
# The claim name you want to map to the full name field:
|
||||
#- OAUTH2_FULLNAME_MAP=name
|
||||
# Tthe claim name you want to map to the email field:
|
||||
#- OAUTH2_EMAIL_MAP=email
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 KEYCLOAK ====
|
||||
# https://github.com/wekan/wekan/wiki/Keycloak <== MAPPING INFO, REQUIRED
|
||||
#- OAUTH2_ENABLED=true
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#- OAUTH2_LOGIN_STYLE=redirect
|
||||
#- OAUTH2_CLIENT_ID=<Keycloak create Client ID>
|
||||
#- OAUTH2_SERVER_URL=<Keycloak server name>/auth
|
||||
#- OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
|
||||
#- OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
|
||||
#- OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
|
||||
#- OAUTH2_SECRET=<keycloak client secret>
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 DOORKEEPER ====
|
||||
# https://github.com/wekan/wekan/issues/1874
|
||||
# https://github.com/wekan/wekan/wiki/OAuth2
|
||||
# Enable the OAuth2 connection
|
||||
# example: OAUTH2_ENABLED=true
|
||||
#- OAUTH2_ENABLED=false
|
||||
#- OAUTH2_ENABLED=true
|
||||
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
# OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
|
||||
# example: OAUTH2_CLIENT_ID=abcde12345
|
||||
#- OAUTH2_CLIENT_ID=
|
||||
# OAuth2 Secret, for example from Rocket.Chat: Example: 54321abcde
|
||||
# example: OAUTH2_SECRET=54321abcde
|
||||
#- OAUTH2_SECRET=
|
||||
# OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com
|
||||
# example: OAUTH2_SERVER_URL=https://chat.example.com
|
||||
#- OAUTH2_SERVER_URL=
|
||||
# OAuth2 Authorization Endpoint. Example: /oauth/authorize
|
||||
# example: OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||
#- OAUTH2_AUTH_ENDPOINT=
|
||||
# OAuth2 Userinfo Endpoint. Example: /oauth/userinfo
|
||||
# example: OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||
#- OAUTH2_USERINFO_ENDPOINT=
|
||||
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||
# example: OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
#- OAUTH2_TOKEN_ENDPOINT=
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#- OAUTH2_LOGIN_STYLE=redirect
|
||||
# OAuth2 Client ID.
|
||||
#- OAUTH2_CLIENT_ID=abcde12345
|
||||
# OAuth2 Secret.
|
||||
#- OAUTH2_SECRET=54321abcde
|
||||
# OAuth2 Server URL.
|
||||
#- OAUTH2_SERVER_URL=https://chat.example.com
|
||||
# OAuth2 Authorization Endpoint.
|
||||
#- OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||
# OAuth2 Userinfo Endpoint.
|
||||
#- OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||
# OAuth2 Token Endpoint.
|
||||
#- OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
# OAuth2 ID Mapping
|
||||
#- OAUTH2_ID_MAP=
|
||||
# OAuth2 Username Mapping
|
||||
#- OAUTH2_USERNAME_MAP=
|
||||
# OAuth2 Fullname Mapping
|
||||
#- OAUTH2_FULLNAME_MAP=
|
||||
# OAuth2 Email Mapping
|
||||
#- OAUTH2_EMAIL_MAP=
|
||||
#-----------------------------------------------------------------
|
||||
# ==== LDAP ====
|
||||
# ==== LDAP: UNCOMMENT ALL TO ENABLE LDAP ====
|
||||
# https://github.com/wekan/wekan/wiki/LDAP
|
||||
# For Snap settings see https://github.com/wekan/wekan-snap/wiki/Supported-settings-keys
|
||||
# Most settings work both on Snap and Docker below.
|
||||
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
#
|
||||
# DEFAULT_AUTHENTICATION_METHOD : The default authentication method used if a user does not exist to create and authenticate. Can be set as ldap.
|
||||
# example : DEFAULT_AUTHENTICATION_METHOD=ldap
|
||||
#- DEFAULT_AUTHENTICATION_METHOD=
|
||||
# The default authentication method used if a user does not exist to create and authenticate. Can be set as ldap.
|
||||
#- DEFAULT_AUTHENTICATION_METHOD=ldap
|
||||
#
|
||||
# LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||
# example : LDAP_ENABLE=true
|
||||
#- LDAP_ENABLE=false
|
||||
# Enable or not the connection by the LDAP
|
||||
#- LDAP_ENABLE=true
|
||||
#
|
||||
# LDAP_PORT : The port of the LDAP server
|
||||
# example : LDAP_PORT=389
|
||||
# The port of the LDAP server
|
||||
#- LDAP_PORT=389
|
||||
#
|
||||
# LDAP_HOST : The host server for the LDAP server
|
||||
# example : LDAP_HOST=localhost
|
||||
#- LDAP_HOST=
|
||||
# The host server for the LDAP server
|
||||
#- LDAP_HOST=localhost
|
||||
#
|
||||
# LDAP_BASEDN : The base DN for the LDAP Tree
|
||||
# example : LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||
#- LDAP_BASEDN=
|
||||
# The base DN for the LDAP Tree
|
||||
#- LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||
#
|
||||
# LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
|
||||
# example : LDAP_LOGIN_FALLBACK=true
|
||||
# Fallback on the default authentication method
|
||||
#- LDAP_LOGIN_FALLBACK=false
|
||||
#
|
||||
# LDAP_RECONNECT : Reconnect to the server if the connection is lost
|
||||
# example : LDAP_RECONNECT=false
|
||||
# Reconnect to the server if the connection is lost
|
||||
#- LDAP_RECONNECT=true
|
||||
#
|
||||
# LDAP_TIMEOUT : Overall timeout, in milliseconds
|
||||
# example : LDAP_TIMEOUT=12345
|
||||
# Overall timeout, in milliseconds
|
||||
#- LDAP_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
|
||||
# example : LDAP_IDLE_TIMEOUT=12345
|
||||
# Specifies the timeout for idle LDAP connections in milliseconds
|
||||
#- LDAP_IDLE_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
|
||||
# example : LDAP_CONNECT_TIMEOUT=12345
|
||||
# Connection timeout, in milliseconds
|
||||
#- LDAP_CONNECT_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
|
||||
# example : LDAP_AUTHENTIFICATION=true
|
||||
#- LDAP_AUTHENTIFICATION=false
|
||||
# If the LDAP needs a user account to search
|
||||
#- LDAP_AUTHENTIFICATION=true
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION_USERDN : The search user DN
|
||||
# example : LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
|
||||
#- LDAP_AUTHENTIFICATION_USERDN=
|
||||
# The search user DN
|
||||
#- LDAP_AUTHENTIFICATION_USERDN=cn=wekan_adm,ou=serviceaccounts,ou=admin,ou=prod,dc=mydomain,dc=com
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
|
||||
# example : AUTHENTIFICATION_PASSWORD=admin
|
||||
#- LDAP_AUTHENTIFICATION_PASSWORD=
|
||||
# The password for the search user
|
||||
#- LDAP_AUTHENTIFICATION_PASSWORD=pwd
|
||||
#
|
||||
# LDAP_LOG_ENABLED : Enable logs for the module
|
||||
# example : LDAP_LOG_ENABLED=true
|
||||
#- LDAP_LOG_ENABLED=false
|
||||
# Enable logs for the module
|
||||
#- LDAP_LOG_ENABLED=true
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||
# example : LDAP_BACKGROUND_SYNC=true
|
||||
# If the sync of the users should be done in the background
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
# At which interval does the background task sync in milliseconds
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
#- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
#
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
# example : LDAP_ENCRYPTION=ssl
|
||||
# If using LDAPS: LDAP_ENCRYPTION=ssl
|
||||
#- LDAP_ENCRYPTION=false
|
||||
#
|
||||
# LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
# example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#- LDAP_CA_CERT=
|
||||
# The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
#- LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#
|
||||
# LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
|
||||
# example : LDAP_REJECT_UNAUTHORIZED=true
|
||||
# Reject Unauthorized Certificate
|
||||
#- LDAP_REJECT_UNAUTHORIZED=false
|
||||
#
|
||||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
# Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
#- LDAP_USER_SEARCH_FILTER=
|
||||
#
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
#- LDAP_USER_SEARCH_SCOPE=
|
||||
# base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
#- LDAP_USER_SEARCH_SCOPE=one
|
||||
#
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
# example : LDAP_USER_SEARCH_FIELD=uid
|
||||
#- LDAP_USER_SEARCH_FIELD=
|
||||
# Which field is used to find the user, like uid / sAMAccountName
|
||||
#- LDAP_USER_SEARCH_FIELD=sAMAccountName
|
||||
#
|
||||
# LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
|
||||
# example : LDAP_SEARCH_PAGE_SIZE=12345
|
||||
# Used for pagination (0=unlimited)
|
||||
#- LDAP_SEARCH_PAGE_SIZE=0
|
||||
#
|
||||
# LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
|
||||
# example : LDAP_SEARCH_SIZE_LIMIT=12345
|
||||
# The limit number of entries (0=unlimited)
|
||||
#- LDAP_SEARCH_SIZE_LIMIT=0
|
||||
#
|
||||
# LDAP_GROUP_FILTER_ENABLE : Enable group filtering
|
||||
# example : LDAP_GROUP_FILTER_ENABLE=true
|
||||
# Enable group filtering
|
||||
#- LDAP_GROUP_FILTER_ENABLE=false
|
||||
#
|
||||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
# The object class for filtering. Example: group
|
||||
#- LDAP_GROUP_FILTER_OBJECTCLASS=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_NAME=
|
||||
#
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier). Example: guid
|
||||
#- LDAP_UNIQUE_IDENTIFIER_FIELD=
|
||||
#
|
||||
# LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
|
||||
# example : LDAP_UTF8_NAMES_SLUGIFY=false
|
||||
#- LDAP_UTF8_NAMES_SLUGIFY=true
|
||||
#
|
||||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
#- LDAP_USERNAME_FIELD=
|
||||
# LDAP_USERNAME_FIELD : Which field contains the ldap username. username / sAMAccountName
|
||||
#- LDAP_USERNAME_FIELD=sAMAccountName
|
||||
#
|
||||
# LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
|
||||
# example : LDAP_FULLNAME_FIELD=fullname
|
||||
#- LDAP_FULLNAME_FIELD=
|
||||
# LDAP_FULLNAME_FIELD : Which field contains the ldap fullname. fullname / sAMAccountName
|
||||
#- LDAP_FULLNAME_FIELD=fullname
|
||||
#
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
#- LDAP_MERGE_EXISTING_USERS=false
|
||||
#
|
||||
# Allow existing account matching by e-mail address when username does not match
|
||||
#- LDAP_EMAIL_MATCH_ENABLE=true
|
||||
#
|
||||
# LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
|
||||
#- LDAP_EMAIL_MATCH_REQUIRE=true
|
||||
#
|
||||
# LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
|
||||
#- LDAP_EMAIL_MATCH_VERIFIED=true
|
||||
#
|
||||
# LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
|
||||
#- LDAP_EMAIL_FIELD=mail
|
||||
#-----------------------------------------------------------------
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
#- LDAP_SYNC_USER_DATA=false
|
||||
#
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||
#- LDAP_SYNC_USER_DATA_FIELDMAP=
|
||||
#- LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||
#
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
#- LDAP_SYNC_GROUP_ROLES=
|
||||
#- LDAP_SYNC_GROUP_ROLES=''
|
||||
#
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
#- LDAP_DEFAULT_DOMAIN=
|
||||
#- LDAP_DEFAULT_DOMAIN=mydomain.com
|
||||
#
|
||||
# Enable/Disable syncing of admin status based on ldap groups:
|
||||
#- LDAP_SYNC_ADMIN_STATUS=true
|
||||
#
|
||||
# Comma separated list of admin group names to sync.
|
||||
#- LDAP_SYNC_ADMIN_GROUPS=group1,group2
|
||||
#---------------------------------------------------------------------
|
||||
# Login to LDAP automatically with HTTP header.
|
||||
# In below example for siteminder, at right side of = is header name.
|
||||
#- HEADER_LOGIN_ID=HEADERUID
|
||||
#- HEADER_LOGIN_FIRSTNAME=HEADERFIRSTNAME
|
||||
#- HEADER_LOGIN_LASTNAME=HEADERLASTNAME
|
||||
#- HEADER_LOGIN_EMAIL=HEADEREMAILADDRESS
|
||||
#---------------------------------------------------------------------
|
||||
# ==== LOGOUT TIMER, probably does not work yet ====
|
||||
# LOGOUT_WITH_TIMER : Enables or not the option logout with timer
|
||||
@@ -506,9 +538,15 @@ services:
|
||||
# - 80:80
|
||||
# - 443:443
|
||||
# volumes:
|
||||
# - ./nginx/ssl:/etc/nginx/ssl/
|
||||
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
||||
|
||||
# - ./nginx/ssl:/etc/nginx/ssl/:ro
|
||||
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
## Alternative volume config:
|
||||
## volumes:
|
||||
## - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
## - ./nginx/ssl/ssl.conf:/etc/nginx/conf.d/ssl/ssl.conf:ro
|
||||
## - ./nginx/ssl/testvm-ehu.crt:/etc/nginx/conf.d/ssl/certs/mycert.crt:ro
|
||||
## - ./nginx/ssl/testvm-ehu.key:/etc/nginx/conf.d/ssl/certs/mykey.key:ro
|
||||
## - ./nginx/ssl/pphrase:/etc/nginx/conf.d/ssl/pphrase:ro
|
||||
|
||||
volumes:
|
||||
wekan-db:
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
OWNERS
|
||||
@@ -0,0 +1,13 @@
|
||||
name: wekan
|
||||
version: 1.0.0
|
||||
appVersion: 2.x.x
|
||||
kubeVersion: "^1.8.0-0"
|
||||
description: Open Source kanban
|
||||
home: https://wekan.github.io/
|
||||
icon: https://wekan.github.io/wekan-logo.svg
|
||||
sources:
|
||||
- https://github.com/wekan/wekan
|
||||
maintainers:
|
||||
- name: technotaff
|
||||
email: github@randall.cc
|
||||
engine: gotpl
|
||||
@@ -0,0 +1,4 @@
|
||||
approvers:
|
||||
- technotaff
|
||||
reviewers:
|
||||
- technotaff
|
||||
@@ -0,0 +1,58 @@
|
||||
# Helm Chart for Wekan
|
||||
|
||||
## Features
|
||||
|
||||
o Uses a MongoDB replica set by default - this allows fault-tolerant
|
||||
and scalable MongoDB deployment (or just set the replicas to 1 for
|
||||
a single server install)
|
||||
|
||||
o Optional Horizontal Pod Autoscaler (HPA), so that your Wekan pods
|
||||
will scale automatically with increased CPU load.
|
||||
|
||||
## The configurable values (values.yaml)
|
||||
|
||||
Scaling Wekan:
|
||||
|
||||
```yaml
|
||||
## Configuration for wekan component
|
||||
##
|
||||
|
||||
replicaCount: 1
|
||||
```
|
||||
**replicaCount** Will set the initial number of replicas for the Wekan pod (and container)
|
||||
|
||||
```yaml
|
||||
## Configure an horizontal pod autoscaler
|
||||
##
|
||||
autoscaling:
|
||||
enabled: true
|
||||
config:
|
||||
minReplicas: 1
|
||||
maxReplicas: 16
|
||||
## Note: when setting this, a `resources.request.cpu` is required. You
|
||||
## likely want to set it to `1` or some lower value.
|
||||
##
|
||||
targetCPUUtilizationPercentage: 80
|
||||
```
|
||||
This section (if *enabled* is set to **true**) will enable the Kubernetes Horizontal Pod Autoscaler (HPA).
|
||||
|
||||
**minReplicas:** this is the minimum number of pods to scale down to (We recommend setting this to the same value as **replicaCount**).
|
||||
|
||||
**maxReplicas:** this is the maximum number of pods to scale up to.
|
||||
|
||||
**targetCPUUtilizationPercentage:** This is the CPU at which the HPA will scale-out the number of Wekan pods.
|
||||
|
||||
```yaml
|
||||
mongodb-replicaset:
|
||||
enabled: true
|
||||
replicas: 3
|
||||
replicaSetName: rs0
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
fsGroup: 1000
|
||||
runAsNonRoot: true
|
||||
```
|
||||
|
||||
This section controls the scale of the MongoDB redundant Replica Set.
|
||||
|
||||
**replicas:** This is the number of MongoDB instances to include in the set. You can set this to 1 for a single server - this will still allow you to scale-up later with a helm upgrade.
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
dependencies:
|
||||
- name: mongodb-replicaset
|
||||
version: 3.6.x
|
||||
repository: "https://kubernetes-charts.storage.googleapis.com/"
|
||||
condition: mongodb-replicaset.enabled
|
||||
@@ -0,0 +1,19 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "wekan.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "wekan.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "wekan.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "wekan.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:8080
|
||||
{{- end }}
|
||||
@@ -0,0 +1,82 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "wekan.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "wekan.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified name for the wekan data app.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "wekan.localdata.fullname" -}}
|
||||
{{- if .Values.localdata.fullnameOverride -}}
|
||||
{{- .Values.localdata.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- printf "%s-localdata" .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s-localdata" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "wekan.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use for the api component
|
||||
*/}}
|
||||
{{- define "wekan.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccounts.create -}}
|
||||
{{ default (include "wekan.fullname" .) .Values.serviceAccounts.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccounts.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
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") -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- 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")) -}}
|
||||
{{- $release := .Release.Name -}}
|
||||
mongodb://{{- range $v := until $count }}{{ $release }}-mongodb-replicaset-{{ $v }}.{{ $release }}-mongodb-replicaset:27017{{ if ne $v (sub $count 1) }},{{- end -}}{{- end -}}?replicaSet={{ index .Values "mongodb-replicaset" "replicaSetName" }}
|
||||
{{- else -}}
|
||||
{{- index .Values "mongodb-replicaset" "url" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,58 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "wekan.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
chart: {{ template "wekan.chart" . }}
|
||||
component: wekan
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
component: wekan
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
component: wekan
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "wekan.serviceAccountName" . }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
terminationMessagePolicy: FallbackToLogsOnError
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
env:
|
||||
- name: ROOT_URL
|
||||
value: {{ .Values.root_url | default "https://wekan.local" | quote }}
|
||||
- name: MONGO_URL
|
||||
value: "{{ template "mongodb-replicaset.url" . }}"
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 8080
|
||||
initialDelaySeconds: 60
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml .Values.affinity | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{- if .Values.autoscaling.enabled -}}
|
||||
apiVersion: autoscaling/v1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ template "wekan.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
chart: {{ template "wekan.chart" . }}
|
||||
component: wekan
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ template "wekan.fullname" . }}
|
||||
{{ toYaml .Values.autoscaling.config | indent 2 }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,40 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "wekan.fullname" . -}}
|
||||
{{- $servicePort := .Values.service.port -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
chart: {{ template "wekan.chart" . }}
|
||||
component: wekan
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
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 }}
|
||||
@@ -0,0 +1,25 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
{{- if .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
name: {{ template "wekan.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
chart: {{ template "wekan.chart" . }}
|
||||
component: wekan
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: {{ template "wekan.name" . }}
|
||||
component: wekan
|
||||
release: {{ .Release.Name }}
|
||||
@@ -0,0 +1,12 @@
|
||||
{{- if .Values.serviceAccounts.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "wekan.name" . }}
|
||||
chart: {{ template "wekan.chart" . }}
|
||||
component: wekan
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "wekan.serviceAccountName" . }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
@@ -0,0 +1,110 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Wekan:
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
## Define serviceAccount names to create or use. Defaults to component's fully
|
||||
## qualified name.
|
||||
##
|
||||
serviceAccounts:
|
||||
create: true
|
||||
name: ""
|
||||
|
||||
## Wekan image configuration
|
||||
##
|
||||
image:
|
||||
repository: quay.io/wekan/wekan
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## Configuration for wekan component
|
||||
##
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
## Specify wekan credentials
|
||||
##
|
||||
credentials:
|
||||
accessKey: access-key
|
||||
secretKey: secret-key
|
||||
|
||||
## Specify additional environmental variables for the Deployment
|
||||
##
|
||||
env: {}
|
||||
|
||||
service:
|
||||
type: NodePort
|
||||
port: 80
|
||||
annotations: {}
|
||||
# prometheus.io/scrape: "true"
|
||||
# prometheus.io/port: "8000"
|
||||
# prometheus.io/path: "/_/monitoring/metrics"
|
||||
|
||||
## Comma-separated string of allowed virtual hosts for external access.
|
||||
## This should match the ingress hosts
|
||||
##
|
||||
endpoint: wekan.local
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
path: /*
|
||||
# This must match 'endpoint', unless your client supports different
|
||||
# hostnames.
|
||||
hosts: [ wekan.local ]
|
||||
# - wekan.local
|
||||
tls: []
|
||||
# - secretName: wekan-example-tls
|
||||
# hosts:
|
||||
# - wekan-example.local
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 128Mi
|
||||
cpu: 300m
|
||||
limits:
|
||||
memory: 1Gi
|
||||
cpu: 500m
|
||||
|
||||
## Node labels for pod assignment
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
|
||||
## Tolerations for pod assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
|
||||
## Affinity for pod assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
## Configure an horizontal pod autoscaler
|
||||
##
|
||||
autoscaling:
|
||||
enabled: true
|
||||
config:
|
||||
minReplicas: 1
|
||||
maxReplicas: 16
|
||||
## Note: when setting this, a `resources.request.cpu` is required. You
|
||||
## likely want to set it to `1` or some lower value.
|
||||
##
|
||||
targetCPUUtilizationPercentage: 80
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# MongoDB:
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
mongodb-replicaset:
|
||||
enabled: true
|
||||
replicas: 3
|
||||
replicaSetName: rs0
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
fsGroup: 1000
|
||||
runAsNonRoot: true
|
||||
#image:
|
||||
# tag: 3.2.21
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "قبول",
|
||||
"act-activity-notify": "اشعارات النشاط",
|
||||
"act-addAttachment": "ربط __المرفق__ الى __بطاقة__",
|
||||
"act-addSubtask": "تمة اضافة فرع المهمة __ قائمة التدقيق __ الى __ بطاقة",
|
||||
"act-addChecklist": "تمة اضافة قائمة التدقيق __ قائمة التدقيق __ الى __ بطاقة",
|
||||
"act-addChecklistItem": "تمة اضافة عنصر قائمة التدقيق __الى قائمة التدقيق __ قائمة التدقيق __ في __ بطاقة",
|
||||
"act-addComment": "علق على __بطاقة__ : __تعليق__",
|
||||
"act-createBoard": "احدث __لوحة__",
|
||||
"act-createCard": "تمة اضافة __بطاقة__ الى __قائمة__",
|
||||
"act-createCustomField": "احدث حقل مخصص __ حقل مخصص__",
|
||||
"act-createList": "اضاف __قائمة__ الى __لوحة__",
|
||||
"act-addBoardMember": "اضاف __member__ الى __board__",
|
||||
"act-archivedBoard": "__ لوح __ انتقل إلى الأرشيف",
|
||||
"act-archivedCard": "__ بطاقة __ انتقلت إلى الأرشيف",
|
||||
"act-archivedList": "__ القائمة __ انتقلت إلى الأرشيف",
|
||||
"act-archivedSwimlane": "__خط السباحة__انتقل إلى الأرشيف",
|
||||
"act-importBoard": "إستورد __board__",
|
||||
"act-importCard": "إستورد __card__",
|
||||
"act-importList": "إستورد __list__",
|
||||
"act-joinMember": "اضاف __member__ الى __card__",
|
||||
"act-moveCard": "حوّل __card__ من __oldList__ إلى __list__",
|
||||
"act-removeBoardMember": "أزال __member__ من __board__",
|
||||
"act-restoredCard": "أعاد __card__ إلى __board__",
|
||||
"act-unjoinMember": "أزال __member__ من __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__لوح__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "الإجراءات",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "ازالة تحقق %s من قائمة التحقق %s من %s",
|
||||
"activity-checklist-added": "أضاف قائمة تحقق إلى %s",
|
||||
"activity-checklist-removed": "ازالة قائمة التحقق من %s",
|
||||
"activity-checklist-completed": "تم انجاز قائمة التحقق %s من %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "لم يتم انجاز قائمة التحقق %s من %s",
|
||||
"activity-checklist-item-added": "تم اضافة عنصر قائمة التحقق الى '%s' في %s",
|
||||
"activity-checklist-item-removed": "تم ازالة عنصر قائمة التحقق الى '%s' في %s",
|
||||
"add": "أضف",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "إضافة مرفق",
|
||||
"add-board": "إضافة لوحة",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "استعادة اللوحة",
|
||||
"no-archived-boards": "لا توجد لوحات في الأرشيف.",
|
||||
"archives": "أرشيف",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "تعيين عضو",
|
||||
"attached": "أُرفق)",
|
||||
"attachment": "مرفق",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "إعادة تسمية اللوحة",
|
||||
"boardChangeVisibilityPopup-title": "تعديل وضوح الرؤية",
|
||||
"boardChangeWatchPopup-title": "تغيير المتابعة",
|
||||
"boardMenuPopup-title": "قائمة اللوحة",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "لوحات",
|
||||
"board-view": "عرض اللوحات",
|
||||
"board-view-cal": "التقويم",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "علامات",
|
||||
"cardMembersPopup-title": "أعضاء",
|
||||
"cardMorePopup-title": "المزيد",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "بطاقات",
|
||||
"cards-count": "بطاقات",
|
||||
"casSignIn": "تسجيل الدخول مع CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "نسخ رابط البطاقة إلى الحافظة",
|
||||
"linkCardPopup-title": "ربط البطاقة",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "بحث",
|
||||
"copyCardPopup-title": "نسخ البطاقة",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "المبادئ",
|
||||
"welcome-list2": "متقدم",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "ماذا تريد أن تنجز?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Приемам",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "прикачи __attachment__ към __card__",
|
||||
"act-addSubtask": "добави задача __checklist__ към __card__",
|
||||
"act-addChecklist": "добави списък със задачи __checklist__ към __card__",
|
||||
"act-addChecklistItem": "добави __checklistItem__ към списък със задачи __checklist__ в __card__",
|
||||
"act-addComment": "Коментира в __card__: __comment__",
|
||||
"act-createBoard": "създаде __board__",
|
||||
"act-createCard": "добави __card__ към __list__",
|
||||
"act-createCustomField": "създаде собствено поле __customField__",
|
||||
"act-createList": "добави __list__ към __board__",
|
||||
"act-addBoardMember": "добави __member__ към __board__",
|
||||
"act-archivedBoard": "__board__ е преместен в Архива",
|
||||
"act-archivedCard": "__card__ е преместена в Архива",
|
||||
"act-archivedList": "__list__ е преместен в Архива",
|
||||
"act-archivedSwimlane": "__swimlane__ е преместен в Архива",
|
||||
"act-importBoard": "импортира __board__",
|
||||
"act-importCard": "импортира __card__",
|
||||
"act-importList": "импортира __list__",
|
||||
"act-joinMember": "добави __member__ към __card__",
|
||||
"act-moveCard": "премести __card__ от __oldList__ в __list__",
|
||||
"act-removeBoardMember": "премахна __member__ от __board__",
|
||||
"act-restoredCard": "възстанови __card__ в __board__",
|
||||
"act-unjoinMember": "премахна __member__ от __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__ ",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Действия",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "размаркира %s от списък със задачи %s на %s",
|
||||
"activity-checklist-added": "добави списък със задачи към %s",
|
||||
"activity-checklist-removed": "премахна списък със задачи от %s",
|
||||
"activity-checklist-completed": "завърши списък със задачи %s на %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "\"отзавърши\" чеклистта %s в %s",
|
||||
"activity-checklist-item-added": "добави точка към '%s' в/във %s",
|
||||
"activity-checklist-item-removed": "премахна точка от '%s' в %s",
|
||||
"add": "Добави",
|
||||
"activity-checked-item-card": "отбеляза %s в чеклист %s",
|
||||
"activity-unchecked-item-card": "размаркира %s в чеклист %s",
|
||||
"activity-checklist-completed-card": "завърши чеклиста %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "\"отзавърши\" чеклистта %s",
|
||||
"add-attachment": "Добави прикачен файл",
|
||||
"add-board": "Добави Табло",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Възстанови Таблото",
|
||||
"no-archived-boards": "Няма Табла в Архива.",
|
||||
"archives": "Архив",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Възложи на член от екипа",
|
||||
"attached": "прикачен",
|
||||
"attachment": "Прикаченн файл",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Промени името на Таблото",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Промени наблюдаването",
|
||||
"boardMenuPopup-title": "Меню на Таблото",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Табла",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Календар",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Етикети",
|
||||
"cardMembersPopup-title": "Членове",
|
||||
"cardMorePopup-title": "Още",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Карти",
|
||||
"cards-count": "Карти",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Сигурни ли сте, че искате да изтриете този чеклист?",
|
||||
"copy-card-link-to-clipboard": "Копирай връзката на картата в клипборда",
|
||||
"linkCardPopup-title": "Свържи картата",
|
||||
"searchCardPopup-title": "Търсене на карта",
|
||||
"searchElementPopup-title": "Търсене",
|
||||
"copyCardPopup-title": "Копирай картата",
|
||||
"copyChecklistToManyCardsPopup-title": "Копирай чеклисти в други карти",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Невалиден WIP лимит",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "добави етикет '%s'",
|
||||
"activity-removed-label-card": "премахна етикет '%s'",
|
||||
"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": "Правило",
|
||||
"r-add-trigger": "Добави спусък",
|
||||
"r-add-action": "Добави действие",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Asantiñ",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Oberoù",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Ouzhpenn",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Izili",
|
||||
"cardMorePopup-title": "Muioc’h",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Kartennoù",
|
||||
"cards-count": "Kartennoù",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accepta",
|
||||
"act-activity-notify": "Notificació d'activitat",
|
||||
"act-addAttachment": "afegit__adjunt__ a la __fitxa__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "afegida la checklist _checklist__ a __card__",
|
||||
"act-addChecklistItem": "afegit __checklistItem__ a la checklist __checklist__ on __card__",
|
||||
"act-addComment": "comentat a __card__: __comment__",
|
||||
"act-createBoard": "nou __tauler__",
|
||||
"act-createCard": "afegit/da __card__ a __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "llista __afegida__ al __tauler__",
|
||||
"act-addBoardMember": "usuari __afegit__ al __tauler__",
|
||||
"act-archivedBoard": "__tauler__ mogut al Arxiu",
|
||||
"act-archivedCard": "__fitxa__ moguda al Arxiu",
|
||||
"act-archivedList": "__llista__ mogud al Arxiu",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "tauler __importat__",
|
||||
"act-importCard": "__card__ importat",
|
||||
"act-importList": "__list__ importat",
|
||||
"act-joinMember": "afegit/da __member__ a __card__",
|
||||
"act-moveCard": "mou __card__ de __oldList__ a __list__",
|
||||
"act-removeBoardMember": "elimina __usuari__ del __tauler__",
|
||||
"act-restoredCard": "fitxa __restaurada__ al __tauler__",
|
||||
"act-unjoinMember": "elimina __member__ de __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__tauler__",
|
||||
"act-withCardTitle": "[__tauler__] __fitxa__",
|
||||
"actions": "Accions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "Checklist afegida a %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "afegida entrada de checklist de '%s' a %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Afegeix",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Afegeix adjunt",
|
||||
"add-board": "Afegeix Tauler",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restaura Tauler",
|
||||
"no-archived-boards": "No hi han Taulers al Arxiu.",
|
||||
"archives": "Desa",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assignar membre",
|
||||
"attached": "adjuntat",
|
||||
"attachment": "Adjunt",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Canvia el nom tauler",
|
||||
"boardChangeVisibilityPopup-title": "Canvia visibilitat",
|
||||
"boardChangeWatchPopup-title": "Canvia seguiment",
|
||||
"boardMenuPopup-title": "Menú del tauler",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Taulers",
|
||||
"board-view": "Visió del tauler",
|
||||
"board-view-cal": "Calendari",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etiquetes",
|
||||
"cardMembersPopup-title": "Membres",
|
||||
"cardMorePopup-title": "Més",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Fitxes",
|
||||
"cards-count": "Fitxes",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copia l'enllaç de la ftixa al porta-retalls",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Buscar Fitxa",
|
||||
"searchElementPopup-title": "Cerca",
|
||||
"copyCardPopup-title": "Copia la fitxa",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títols de fitxa i Descripcions de destí en aquest format JSON",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Objectiu 1",
|
||||
"welcome-list1": "Bàsics",
|
||||
"welcome-list2": "Avançades",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Què vols fer?",
|
||||
"wipLimitErrorPopup-title": "Límit de Treball en Progrès invàlid",
|
||||
"wipLimitErrorPopup-dialog-pt1": "El nombre de tasques en esta llista és superior al límit de Treball en Progrès que heu definit.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+85
-60
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Přijmout",
|
||||
"act-activity-notify": "Notifikace aktivit",
|
||||
"act-addAttachment": "přiložen __attachment__ do __card__",
|
||||
"act-addSubtask": "přidán podúkol __checklist__ do __card__",
|
||||
"act-addChecklist": "přidán checklist __checklist__ do __card__",
|
||||
"act-addChecklistItem": "přidán __checklistItem__ do checklistu __checklist__ v __card__",
|
||||
"act-addComment": "komentář k __card__: __comment__",
|
||||
"act-createBoard": "přidání __board__",
|
||||
"act-createCard": "přidání __card__ do __list__",
|
||||
"act-createCustomField": "vytvořeno vlastní pole __customField__",
|
||||
"act-createList": "přidání __list__ do __board__",
|
||||
"act-addBoardMember": "přidání __member__ do __board__",
|
||||
"act-archivedBoard": "__board__ byl přesunut do archivu",
|
||||
"act-archivedCard": "__card__ byla přesunuta do archivu",
|
||||
"act-archivedList": "__list__ byl přesunut do archivu",
|
||||
"act-archivedSwimlane": "__swimlane__ bylo přesunuto do archivu",
|
||||
"act-importBoard": "import __board__",
|
||||
"act-importCard": "import __card__",
|
||||
"act-importList": "import __list__",
|
||||
"act-joinMember": "přidání __member__ do __card__",
|
||||
"act-moveCard": "přesun __card__ z __oldList__ do __list__",
|
||||
"act-removeBoardMember": "odstranění __member__ z __board__",
|
||||
"act-restoredCard": "obnovení __card__ do __board__",
|
||||
"act-unjoinMember": "odstranění __member__ z __card__",
|
||||
"act-addAttachment": "přidal(a) přílohu __attachment__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-deleteAttachment": "smazal(a) přílohu __attachment__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addSubtask": "přidal(a) podúkol __subtask__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addLabel": "Přídán štítek __label__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addedLabel": "Přídán štítek __label__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-removeLabel": "Odstraněn štítek __label__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-removedLabel": "Odstraněn štítek __label__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addChecklist": "přidal(a) zaškrtávací seznam __checklist__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addChecklistItem": "přidal(a) položku zaškrtávacího seznamu __checklistItem__ do zaškrtávacího seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-removeChecklist": "smazal(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-removeChecklistItem": "smazal(a) položku zaškrtávacího seznamu __checklistItem__ ze zaškrtávacího seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-checkedItem": "zaškrtl(a) __checklistItem__ na zaškrtávacím seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-uncheckedItem": "zrušil(a) zaškrtnutí __checklistItem__ na zaškrtávacím seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-completeChecklist": "dokončil(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-uncompleteChecklist": "zrušil(a) dokončení zaškrtávacího seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-addComment": "přidal(a) komentář na kartě __card__: __comment__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-createBoard": "přidal(a) tablo __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "přidal(a) kartu __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-createCustomField": "vytvořil(a) vlastní pole __customField__ na kartu __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-createList": "přidal(a) sloupec __list__ do tabla __board__",
|
||||
"act-addBoardMember": "přidal(a) člena __member__ do tabla __board__",
|
||||
"act-archivedBoard": "Tablo __board__ přesunuto do Archivu",
|
||||
"act-archivedCard": "Karta __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__ přesunuta do Archivu",
|
||||
"act-archivedList": "Sloupec __list__ ve swimlane __swimlane__ na tablu __board__ přesunut do Archivu",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ na tablu __board__ přesunut do Archivu",
|
||||
"act-importBoard": "importoval(a) tablo __board__",
|
||||
"act-importCard": "importoval(a) karta __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-importList": "importoval(a) sloupec __list__ do swimlane __swimlane__ na tablu __board__",
|
||||
"act-joinMember": "přidal(a) člena __member__ na kartu __card__ v seznamu __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "přesunul(a) kartu __card__ ze sloupce __oldList__ ve swimlane __oldSwimlane__ na tablu __oldBoard__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-removeBoardMember": "odstranil(a) člena __member__ z tabla __board__",
|
||||
"act-restoredCard": "obnovil(a) kartu __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-unjoinMember": "odstranil(a) člena __member__ z karty __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Akce",
|
||||
@@ -43,19 +56,19 @@
|
||||
"activity-sent": "%s posláno na %s",
|
||||
"activity-unjoined": "odpojen %s",
|
||||
"activity-subtask-added": "podúkol přidán do %s",
|
||||
"activity-checked-item": "checked %s in checklist %s of %s",
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checked-item": "dokončen %s v seznamu %s z %s",
|
||||
"activity-unchecked-item": "nedokončen %s v seznamu %s z %s",
|
||||
"activity-checklist-added": "přidán checklist do %s",
|
||||
"activity-checklist-removed": "odstraněn checklist z %s",
|
||||
"activity-checklist-completed": "dokončen checklist %s z %s",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-completed": "dokončil(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"activity-checklist-uncompleted": "nedokončen seznam %s z %s",
|
||||
"activity-checklist-item-added": "přidána položka checklist do '%s' v %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"activity-checklist-item-removed": "odstraněna položka seznamu do '%s' v %s",
|
||||
"add": "Přidat",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "dokončen checklist %s",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"activity-checked-item-card": "dokončen %s v seznamu %s",
|
||||
"activity-unchecked-item-card": "nedokončen %s v seznamu %s",
|
||||
"activity-checklist-completed-card": "dokončil(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
|
||||
"activity-checklist-uncompleted-card": "nedokončený seznam %s",
|
||||
"add-attachment": "Přidat přílohu",
|
||||
"add-board": "Přidat tablo",
|
||||
"add-card": "Přidat kartu",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Obnovit tablo",
|
||||
"no-archived-boards": "V archivu nejsou žádná tabla.",
|
||||
"archives": "Archiv",
|
||||
"template": "Šablona",
|
||||
"templates": "Šablony",
|
||||
"assign-member": "Přiřadit člena",
|
||||
"attached": "přiloženo",
|
||||
"attachment": "Příloha",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Přejmenovat tablo",
|
||||
"boardChangeVisibilityPopup-title": "Upravit viditelnost",
|
||||
"boardChangeWatchPopup-title": "Změnit sledování",
|
||||
"boardMenuPopup-title": "Menu tabla",
|
||||
"boardMenuPopup-title": "Nastavení Tabla",
|
||||
"boards": "Tabla",
|
||||
"board-view": "Náhled tabla",
|
||||
"board-view-cal": "Kalendář",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Štítky",
|
||||
"cardMembersPopup-title": "Členové",
|
||||
"cardMorePopup-title": "Více",
|
||||
"cardTemplatePopup-title": "Vytvořit šablonu",
|
||||
"cards": "Karty",
|
||||
"cards-count": "Karty",
|
||||
"casSignIn": "Přihlásit pomocí CAS",
|
||||
@@ -166,33 +182,33 @@
|
||||
"clipboard": "Schránka nebo potáhnout a pustit",
|
||||
"close": "Zavřít",
|
||||
"close-board": "Zavřít tablo",
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"close-board-pop": "Budete moci obnovit tablo kliknutím na tlačítko \"Archiv\" v hlavním menu.",
|
||||
"color-black": "černá",
|
||||
"color-blue": "modrá",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-crimson": "karmínová",
|
||||
"color-darkgreen": "tmavě zelená",
|
||||
"color-gold": "zlatá",
|
||||
"color-gray": "šedá",
|
||||
"color-green": "zelená",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "světlezelená",
|
||||
"color-magenta": "magenta",
|
||||
"color-magenta": "purpurová",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-navy": "tmavě modrá",
|
||||
"color-orange": "oranžová",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "růžová",
|
||||
"color-plum": "plum",
|
||||
"color-plum": "švestková",
|
||||
"color-purple": "fialová",
|
||||
"color-red": "červená",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-silver": "stříbrná",
|
||||
"color-sky": "nebeská",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-white": "bílá",
|
||||
"color-yellow": "žlutá",
|
||||
"unset-color": "Unset",
|
||||
"unset-color": "Nenastaveno",
|
||||
"comment": "Komentář",
|
||||
"comment-placeholder": "Text komentáře",
|
||||
"comment-only": "Pouze komentáře",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Opravdu chcete smazat tento checklist?",
|
||||
"copy-card-link-to-clipboard": "Kopírovat adresu karty do mezipaměti",
|
||||
"linkCardPopup-title": "Propojit kartu",
|
||||
"searchCardPopup-title": "Hledat Kartu",
|
||||
"searchElementPopup-title": "Hledat",
|
||||
"copyCardPopup-title": "Kopírovat kartu",
|
||||
"copyChecklistToManyCardsPopup-title": "Kopírovat checklist do více karet",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Názvy a popisy cílové karty v tomto formátu JSON",
|
||||
@@ -332,13 +348,13 @@
|
||||
"leaveBoardPopup-title": "Opustit tablo?",
|
||||
"link-card": "Odkázat na tuto kartu",
|
||||
"list-archive-cards": "Přesunout všechny karty v tomto seznamu do archivu.",
|
||||
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
|
||||
"list-archive-cards-pop": "Toto odstraní z tabla všechny karty z tohoto seznamu. Pro zobrazení karet v Archivu a jejich opětovné obnovení, klikni v \"Menu\" > \"Archiv\".",
|
||||
"list-move-cards": "Přesunout všechny karty v tomto sloupci",
|
||||
"list-select-cards": "Vybrat všechny karty v tomto sloupci",
|
||||
"set-color-list": "Set Color",
|
||||
"set-color-list": "Nastavit barvu",
|
||||
"listActionPopup-title": "Vypsat akce",
|
||||
"swimlaneActionPopup-title": "Akce swimlane",
|
||||
"swimlaneAddPopup-title": "Add a Swimlane below",
|
||||
"swimlaneAddPopup-title": "Přidat swimlane dolů",
|
||||
"listImportCardPopup-title": "Importovat Trello kartu",
|
||||
"listMorePopup-title": "Více",
|
||||
"link-list": "Odkaz na tento sloupec",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milník 1",
|
||||
"welcome-list1": "Základní",
|
||||
"welcome-list2": "Pokročilé",
|
||||
"card-templates-swimlane": "Šablony Karty",
|
||||
"list-templates-swimlane": "Šablony Sloupce",
|
||||
"board-templates-swimlane": "Šablony Tabla",
|
||||
"what-to-do": "Co chcete dělat?",
|
||||
"wipLimitErrorPopup-title": "Neplatný WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Počet úkolů v tomto sloupci je vyšší než definovaný WIP limit.",
|
||||
@@ -498,7 +517,7 @@
|
||||
"OS_Totalmem": "OS Celková paměť",
|
||||
"OS_Type": "Typ OS",
|
||||
"OS_Uptime": "OS Doba běhu systému",
|
||||
"days": "days",
|
||||
"days": "dní",
|
||||
"hours": "hodin",
|
||||
"minutes": "minut",
|
||||
"seconds": "sekund",
|
||||
@@ -519,10 +538,10 @@
|
||||
"card-end-on": "Končí v",
|
||||
"editCardReceivedDatePopup-title": "Změnit datum přijetí",
|
||||
"editCardEndDatePopup-title": "Změnit datum konce",
|
||||
"setCardColorPopup-title": "Set color",
|
||||
"setCardActionsColorPopup-title": "Choose a color",
|
||||
"setSwimlaneColorPopup-title": "Choose a color",
|
||||
"setListColorPopup-title": "Choose a color",
|
||||
"setCardColorPopup-title": "Nastav barvu",
|
||||
"setCardActionsColorPopup-title": "Vyber barvu",
|
||||
"setSwimlaneColorPopup-title": "Vyber barvu",
|
||||
"setListColorPopup-title": "Vyber barvu",
|
||||
"assigned-by": "Přidělil(a)",
|
||||
"requested-by": "Vyžádal(a)",
|
||||
"board-delete-notice": "Smazání je trvalé. Přijdete o všechny sloupce, karty a akce spojené s tímto tablem.",
|
||||
@@ -535,7 +554,7 @@
|
||||
"subtask-settings": "Nastavení podúkolů",
|
||||
"boardSubtaskSettingsPopup-title": "Nastavení podúkolů tabla",
|
||||
"show-subtasks-field": "Karty mohou mít podúkoly",
|
||||
"deposit-subtasks-board": "Deposit subtasks to this board:",
|
||||
"deposit-subtasks-board": "Vložit podúkoly do tohoto tabla",
|
||||
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
|
||||
"show-parent-in-minicard": "Ukázat předka na minikartě",
|
||||
"prefix-with-full-path": "Prefix s celou cestou",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "přidán štítek '%s'",
|
||||
"activity-removed-label-card": "odstraněn štítek '%s'",
|
||||
"activity-delete-attach-card": "odstraněna příloha",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Pravidlo",
|
||||
"r-add-trigger": "Přidat spoštěč",
|
||||
"r-add-action": "Přidat akci",
|
||||
@@ -590,8 +611,8 @@
|
||||
"r-checked": "Zaškrtnuto",
|
||||
"r-unchecked": "Odškrtnuto",
|
||||
"r-move-card-to": "Přesunout kartu do",
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-top-of": "Začátek",
|
||||
"r-bottom-of": "Spodek",
|
||||
"r-its-list": "toho sloupce",
|
||||
"r-archive": "Přesunout do archivu",
|
||||
"r-unarchive": "Obnovit z archivu",
|
||||
@@ -601,7 +622,7 @@
|
||||
"r-label": "štítek",
|
||||
"r-member": "člen",
|
||||
"r-remove-all": "Odstranit všechny členy z této karty",
|
||||
"r-set-color": "Set color to",
|
||||
"r-set-color": "Nastav barvu na",
|
||||
"r-checklist": "zaškrtávací seznam",
|
||||
"r-check-all": "Zaškrtnout vše",
|
||||
"r-uncheck-all": "Odškrtnout vše",
|
||||
@@ -654,10 +675,14 @@
|
||||
"authentication-method": "Metoda autentizace",
|
||||
"authentication-type": "Typ autentizace",
|
||||
"custom-product-name": "Vlastní název produktu",
|
||||
"layout": "uspořádání",
|
||||
"layout": "Uspořádání",
|
||||
"hide-logo": "Skrýt logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"add-custom-html-after-body-start": "Přidej vlastní HTML za <body>",
|
||||
"add-custom-html-before-body-end": "Přidej vlastní HTML před </body>",
|
||||
"error-undefined": "Něco se pokazilo",
|
||||
"error-ldap-login": "Během přihlašování nastala chyba"
|
||||
"error-ldap-login": "Během přihlašování nastala chyba",
|
||||
"display-authentication-method": "Zobraz způsob ověřování",
|
||||
"default-authentication-method": "Zobraz způsob ověřování",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accepter",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "tilføjede__vedhæftet fil__ til __kort__",
|
||||
"act-addSubtask": "tilføjede delopgave __tjekliste__ til __kort__",
|
||||
"act-addChecklist": "tilføjede tjekliste__tjekliste__ til __kort__",
|
||||
"act-addChecklistItem": "tilføjede__tjeklistePunkt__ til tjekliste__tjekliste__ til__kort__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Add",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Members",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+75
-50
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Akzeptieren",
|
||||
"act-activity-notify": "Aktivitätsbenachrichtigung",
|
||||
"act-addAttachment": "hat __attachment__ an __card__ angehängt",
|
||||
"act-addSubtask": "hat die Teilaufgabe __checklist__ zu __card__ hinzugefügt",
|
||||
"act-addChecklist": "hat die Checkliste __checklist__ zu __card__ hinzugefügt",
|
||||
"act-addChecklistItem": "hat __checklistItem__ zur Checkliste __checklist__ in __card__ hinzugefügt",
|
||||
"act-addComment": "hat __card__ kommentiert: __comment__",
|
||||
"act-createBoard": "hat __board__ erstellt",
|
||||
"act-createCard": "hat __card__ zu __list__ hinzugefügt",
|
||||
"act-createCustomField": "benutzerdefiniertes Feld __customField__ angelegt",
|
||||
"act-createList": "hat __list__ zu __board__ hinzugefügt",
|
||||
"act-addBoardMember": "hat __member__ zu __board__ hinzugefügt",
|
||||
"act-archivedBoard": "__board__ ins Archiv verschoben",
|
||||
"act-archivedCard": "__card__ ins Archiv verschoben",
|
||||
"act-archivedList": "__list__ ins Archiv verschoben",
|
||||
"act-archivedSwimlane": "__swimlane__ ins Archiv verschoben",
|
||||
"act-importBoard": "hat __board__ importiert",
|
||||
"act-importCard": "hat __card__ importiert",
|
||||
"act-importList": "hat __list__ importiert",
|
||||
"act-joinMember": "hat __member__ zu __card__ hinzugefügt",
|
||||
"act-moveCard": "hat __card__ von __oldList__ nach __list__ verschoben",
|
||||
"act-removeBoardMember": "hat __member__ von __board__ entfernt",
|
||||
"act-restoredCard": "hat __card__ in __board__ wiederhergestellt",
|
||||
"act-unjoinMember": "hat __member__ von __card__ entfernt",
|
||||
"act-addAttachment": "hat Anhang __attachment__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-deleteAttachment": "hat Anhang __attachment__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ gelöscht",
|
||||
"act-addSubtask": "hat Teilaufgabe __subtask__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-addLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-addedLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-removeLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-removedLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-addChecklist": "hat Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-addChecklistItem": "hat Checklistenposition __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-removeChecklist": "hat Checkliste __checklist__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-removeChecklistItem": "hat Checklistenposition __checklistItem__ von Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ abgehakt",
|
||||
"act-uncheckedItem": "hat Haken von __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-completeChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
|
||||
"act-uncompleteChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ unvervollständigt",
|
||||
"act-addComment": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ kommentiert: __comment__",
|
||||
"act-createBoard": "hat Board __board__ erstellt",
|
||||
"act-createSwimlane": "hat Swimlane __swimlane__ in Board __board__ erstellt",
|
||||
"act-createCard": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erstellt",
|
||||
"act-createCustomField": "hat das benutzerdefinierte Feld __customField__ auf Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erstellt",
|
||||
"act-createList": "hat Liste __list__ zu Board __board__ hinzugefügt",
|
||||
"act-addBoardMember": "hat Mitglied __member__ zu Board __board__ hinzugefügt",
|
||||
"act-archivedBoard": "hat Board __board__ ins Archiv verschoben",
|
||||
"act-archivedCard": "hat Karte __card__ von der Liste __list__ in Swimlane __swimlane__ in Board __board__ ins Archiv verschoben",
|
||||
"act-archivedList": "hat Liste __list__ in Swimlane __swimlane__ in Board __board__ ins Archiv verschoben",
|
||||
"act-archivedSwimlane": "hat Swimlane __swimlane__ von Board __board__ ins Archiv verschoben",
|
||||
"act-importBoard": "hat Board __board__ importiert",
|
||||
"act-importCard": "hat Karte __card__ in Liste __list__ in Swimlane __swimlane__ in Board __board__ importiert",
|
||||
"act-importList": "hat Liste __list__ in Swimlane __swimlane__ in Board __board__ importiert",
|
||||
"act-joinMember": "hat Mitglied __member__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-moveCard": "hat Karte __card__ in Board __board__ von Liste __oldList__ in Swimlane __oldSwimlane__ zu Liste __list__ in Swimlane __swimlane__ verschoben",
|
||||
"act-moveCardToOtherBoard": "hat Karte __card__ von Liste __oldList__ in Swimlane __oldSwimlane__ in Board __oldBoard__ zu Liste __list__ in Swimlane __swimlane__ in Board __board__ verschoben",
|
||||
"act-removeBoardMember": "hat Mitglied __member__ von Board __board__ entfernt",
|
||||
"act-restoredCard": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ wiederhergestellt",
|
||||
"act-unjoinMember": "hat Mitglied __member__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Aktionen",
|
||||
@@ -43,18 +56,18 @@
|
||||
"activity-sent": "hat %s an %s gesendet",
|
||||
"activity-unjoined": "hat %s verlassen",
|
||||
"activity-subtask-added": "Teilaufgabe zu %s hinzugefügt",
|
||||
"activity-checked-item": "markierte %s in Checkliste %svon %s",
|
||||
"activity-checked-item": "markierte %s in Checkliste %s von %s",
|
||||
"activity-unchecked-item": "hat %s in Checkliste %s von %s abgewählt",
|
||||
"activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt",
|
||||
"activity-checklist-removed": "entfernte eine Checkliste von %s",
|
||||
"activity-checklist-completed": "vervollständigte die Checkliste %s von %s",
|
||||
"activity-checklist-completed": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
|
||||
"activity-checklist-uncompleted": "unvervollständigte die Checkliste %s von %s",
|
||||
"activity-checklist-item-added": "hat ein Checklistenelement zu '%s' in %s hinzugefügt",
|
||||
"activity-checklist-item-removed": "hat ein Checklistenelement von '%s' in %s entfernt",
|
||||
"add": "Hinzufügen",
|
||||
"activity-checked-item-card": "markiere %s in Checkliste %s",
|
||||
"activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt",
|
||||
"activity-checklist-completed-card": "vervollständigte die Checkliste %s",
|
||||
"activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
|
||||
"activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s",
|
||||
"add-attachment": "Datei anhängen",
|
||||
"add-board": "neues Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Board wiederherstellen",
|
||||
"no-archived-boards": "Keine Boards im Archiv.",
|
||||
"archives": "Archiv",
|
||||
"template": "Vorlage",
|
||||
"templates": "Vorlagen",
|
||||
"assign-member": "Mitglied zuweisen",
|
||||
"attached": "angehängt",
|
||||
"attachment": "Anhang",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Board umbenennen",
|
||||
"boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
|
||||
"boardChangeWatchPopup-title": "Beobachtung ändern",
|
||||
"boardMenuPopup-title": "Boardmenü",
|
||||
"boardMenuPopup-title": "Boardeinstellungen",
|
||||
"boards": "Boards",
|
||||
"board-view": "Boardansicht",
|
||||
"board-view-cal": "Kalender",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Mitglieder",
|
||||
"cardMorePopup-title": "Mehr",
|
||||
"cardTemplatePopup-title": "Vorlage erstellen",
|
||||
"cards": "Karten",
|
||||
"cards-count": "Karten",
|
||||
"casSignIn": "Mit CAS anmelden",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Wollen Sie die Checkliste wirklich löschen?",
|
||||
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
|
||||
"linkCardPopup-title": "Karte verknüpfen",
|
||||
"searchCardPopup-title": "Karte suchen",
|
||||
"searchElementPopup-title": "Suche",
|
||||
"copyCardPopup-title": "Karte kopieren",
|
||||
"copyChecklistToManyCardsPopup-title": "Checklistenvorlage in mehrere Karten kopieren",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Titel und Beschreibungen der Zielkarten im folgenden JSON-Format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Meilenstein 1",
|
||||
"welcome-list1": "Grundlagen",
|
||||
"welcome-list2": "Fortgeschritten",
|
||||
"card-templates-swimlane": "Kartenvorlagen",
|
||||
"list-templates-swimlane": "Listenvorlagen",
|
||||
"board-templates-swimlane": "Boardvorlagen",
|
||||
"what-to-do": "Was wollen Sie tun?",
|
||||
"wipLimitErrorPopup-title": "Ungültiges WIP-Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Die Anzahl von Aufgaben in dieser Liste ist größer als das von Ihnen definierte WIP-Limit.",
|
||||
@@ -552,47 +571,49 @@
|
||||
"activity-added-label-card": "Label hinzugefügt '%s'",
|
||||
"activity-removed-label-card": "Label entfernt '%s'",
|
||||
"activity-delete-attach-card": "hat einen Anhang gelöscht",
|
||||
"activity-set-customfield": "setze benutzerdefiniertes Feld '%s' zu '%s' in %s",
|
||||
"activity-unset-customfield": "entferne benutzerdefiniertes Feld '%s' in %s",
|
||||
"r-rule": "Regel",
|
||||
"r-add-trigger": "Auslöser hinzufügen",
|
||||
"r-add-action": "Aktion hinzufügen",
|
||||
"r-board-rules": "Board Regeln",
|
||||
"r-board-rules": "Boardregeln",
|
||||
"r-add-rule": "Regel hinzufügen",
|
||||
"r-view-rule": "Regel anzeigen",
|
||||
"r-delete-rule": "Regel löschen",
|
||||
"r-new-rule-name": "Neuer Regeltitel",
|
||||
"r-no-rules": "Keine Regeln",
|
||||
"r-when-a-card": "Wenn eine Karte",
|
||||
"r-is": "ist",
|
||||
"r-when-a-card": "Wenn Karte",
|
||||
"r-is": "wird",
|
||||
"r-is-moved": "verschoben wird",
|
||||
"r-added-to": "hinzugefügt wird zu",
|
||||
"r-removed-from": "Entfernt von",
|
||||
"r-added-to": "hinzugefügt zu",
|
||||
"r-removed-from": "entfernt von",
|
||||
"r-the-board": "das Board",
|
||||
"r-list": "Liste",
|
||||
"set-filter": "Setze Filter",
|
||||
"r-moved-to": "Verschieben nach",
|
||||
"r-moved-from": "Verschieben von",
|
||||
"r-archived": "Ins Archiv verschieben",
|
||||
"r-unarchived": "Aus dem Archiv wiederhergestellt",
|
||||
"r-a-card": "eine Karte",
|
||||
"r-when-a-label-is": "Wenn ein Label ist",
|
||||
"r-when-the-label-is": " Wenn das Label ist",
|
||||
"r-moved-to": "verschoben nach",
|
||||
"r-moved-from": "verschoben von",
|
||||
"r-archived": "ins Archiv verschoben",
|
||||
"r-unarchived": "aus dem Archiv wiederhergestellt",
|
||||
"r-a-card": "einer Karte",
|
||||
"r-when-a-label-is": "Wenn ein Label",
|
||||
"r-when-the-label-is": " Wenn das Label",
|
||||
"r-list-name": "Listenname",
|
||||
"r-when-a-member": "Wenn ein Mitglied ist",
|
||||
"r-when-a-member": "Wenn ein Mitglied",
|
||||
"r-when-the-member": "Wenn das Mitglied",
|
||||
"r-name": "Name",
|
||||
"r-when-a-attach": "Wenn ein Anhang",
|
||||
"r-when-a-checklist": "Wenn eine Checkliste ist",
|
||||
"r-when-a-checklist": "Wenn eine Checkliste wird",
|
||||
"r-when-the-checklist": "Wenn die Checkliste",
|
||||
"r-completed": "Abgeschlossen",
|
||||
"r-made-incomplete": "Unvollständig gemacht",
|
||||
"r-when-a-item": "Wenn ein Checklistenelement ist",
|
||||
"r-when-the-item": "Wenn das Checklistenelement",
|
||||
"r-checked": "Markiert",
|
||||
"r-unchecked": "Abgewählt",
|
||||
"r-move-card-to": "Verschiebe Karte nach",
|
||||
"r-completed": "abgeschlossen",
|
||||
"r-made-incomplete": "unvollständig gemacht",
|
||||
"r-when-a-item": "Wenn eine Checklistenposition",
|
||||
"r-when-the-item": "Wenn die Checklistenposition",
|
||||
"r-checked": "markiert wird",
|
||||
"r-unchecked": "abgewählt wird",
|
||||
"r-move-card-to": "Verschiebe Karte an",
|
||||
"r-top-of": "Anfang von",
|
||||
"r-bottom-of": "Ende von",
|
||||
"r-its-list": "seine Liste",
|
||||
"r-its-list": "seiner Liste",
|
||||
"r-archive": "Ins Archiv verschieben",
|
||||
"r-unarchive": "Aus dem Archiv wiederherstellen",
|
||||
"r-card": "Karte",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Füge benutzerdefiniertes HTML nach <body> Anfang hinzu",
|
||||
"add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu",
|
||||
"error-undefined": "Etwas ist schief gelaufen",
|
||||
"error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten"
|
||||
"error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten",
|
||||
"display-authentication-method": "Anzeige Authentifizierungsverfahren",
|
||||
"default-authentication-method": "Standardauthentifizierungsverfahren",
|
||||
"duplicate-board": "Board duplizieren",
|
||||
"people-number": "Anzahl der Personen:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accept",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Προσθήκη",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Ετικέτες",
|
||||
"cardMembersPopup-title": "Μέλοι",
|
||||
"cardMorePopup-title": "Περισσότερα",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Κάρτες",
|
||||
"cards-count": "Κάρτες",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Αναζήτηση",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accept",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached _ attachment _ to _ card _",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Add",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Members",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accept",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Add",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Members",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn" : "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -662,5 +683,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is: "
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Akcepti",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "Kreiis __board__",
|
||||
"act-createCard": "Aldonis __card__ al __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "Aldonis __card__ al __board__",
|
||||
"act-addBoardMember": "Aldonis __member__ al __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "Aldonis __member__ al __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Akcioj",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Aldoni",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Arkivi",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etikedoj",
|
||||
"cardMembersPopup-title": "Membroj",
|
||||
"cardMorePopup-title": "Pli",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Kartoj",
|
||||
"cards-count": "Kartoj",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Serĉi",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Kion vi volas fari?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Aceptar",
|
||||
"act-activity-notify": "Notificación de Actividad",
|
||||
"act-addAttachment": "adjunto __attachment__ a __card__",
|
||||
"act-addSubtask": "lista de ítems __checklist__ agregada a __card__",
|
||||
"act-addChecklist": "lista de ítems __checklist__ agregada a __card__",
|
||||
"act-addChecklistItem": " __checklistItem__ agregada a lista de ítems __checklist__ en __card__",
|
||||
"act-addComment": "comentado en __card__: __comment__",
|
||||
"act-createBoard": "__board__ creado",
|
||||
"act-createCard": "agregada __card__ a __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "agregada __list__ a __board__",
|
||||
"act-addBoardMember": "agregado __member__ a __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "__board__ importado",
|
||||
"act-importCard": "__card__ importada",
|
||||
"act-importList": "__list__ importada",
|
||||
"act-joinMember": "__member__ agregado a __card__",
|
||||
"act-moveCard": "__card__ movida de __oldList__ a __list__",
|
||||
"act-removeBoardMember": "__member__ removido de __board__",
|
||||
"act-restoredCard": "__card__ restaurada a __board__",
|
||||
"act-unjoinMember": "__member__ removido de __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "__card__ [__board__] ",
|
||||
"actions": "Acciones",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "agregada lista de tareas a %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "agregado item de lista de tareas a '%s' en %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Agregar",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Agregar Adjunto",
|
||||
"add-board": "Agregar Tablero",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restaurar Tablero",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archivar",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Asignar miembro",
|
||||
"attached": "adjunto(s)",
|
||||
"attachment": "Adjunto",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Renombrar Tablero",
|
||||
"boardChangeVisibilityPopup-title": "Cambiar Visibilidad",
|
||||
"boardChangeWatchPopup-title": "Alternar Seguimiento",
|
||||
"boardMenuPopup-title": "Menú del Tablero",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Tableros",
|
||||
"board-view": "Vista de Tablero",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etiquetas",
|
||||
"cardMembersPopup-title": "Miembros",
|
||||
"cardMorePopup-title": "Mas",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Tarjetas",
|
||||
"cards-count": "Tarjetas",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copiar enlace a tarjeta en el portapapeles",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Buscar",
|
||||
"copyCardPopup-title": "Copiar Tarjeta",
|
||||
"copyChecklistToManyCardsPopup-title": "Copiar Plantilla Checklist a Muchas Tarjetas",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títulos y Descripciones de la Tarjeta Destino en este formato JSON",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Hito 1",
|
||||
"welcome-list1": "Básicos",
|
||||
"welcome-list2": "Avanzado",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "¿Qué querés hacer?",
|
||||
"wipLimitErrorPopup-title": "Límite TEP Inválido",
|
||||
"wipLimitErrorPopup-dialog-pt1": " El número de tareas en esta lista es mayor que el límite TEP que definiste.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+67
-42
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Aceptar",
|
||||
"act-activity-notify": "Notificación de actividad",
|
||||
"act-addAttachment": "ha adjuntado __attachment__ a __card__",
|
||||
"act-addSubtask": "ha añadido la subtarea __checklist__ a __card__",
|
||||
"act-addChecklist": "ha añadido la lista de verificación __checklist__ a __card__",
|
||||
"act-addChecklistItem": "ha añadido __checklistItem__ a la lista de verificación __checklist__ en __card__",
|
||||
"act-addComment": "ha comentado en __card__: __comment__",
|
||||
"act-createBoard": "ha creado __board__",
|
||||
"act-createCard": "ha añadido __card__ a __list__",
|
||||
"act-createCustomField": "creado el campo personalizado __customField__",
|
||||
"act-createList": "ha añadido __list__ a __board__",
|
||||
"act-addBoardMember": "ha añadido a __member__ a __board__",
|
||||
"act-archivedBoard": "__board__ movido al Archivo",
|
||||
"act-archivedCard": "__card__ movida al Archivo",
|
||||
"act-archivedList": "__list__ movida a Archivo",
|
||||
"act-archivedSwimlane": "__swimlane__ movido a Archivo",
|
||||
"act-importBoard": "ha importado __board__",
|
||||
"act-importCard": "ha importado __card__",
|
||||
"act-importList": "ha importado __list__",
|
||||
"act-joinMember": "ha añadido a __member__ a __card__",
|
||||
"act-moveCard": "ha movido __card__ desde __oldList__ a __list__",
|
||||
"act-removeBoardMember": "ha eliminado a __member__ de __board__",
|
||||
"act-restoredCard": "ha restaurado __card__ en __board__",
|
||||
"act-unjoinMember": "ha eliminado a __member__ de __card__",
|
||||
"act-addAttachment": "añadido el adjunto __attachment__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-deleteAttachment": "eliminado el adjunto __attachment__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addSubtask": "añadida la subtarea __subtask__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addedLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-removeLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-removedLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addChecklist": "añadida la lista de verificación __checklist__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addChecklistItem": "añadido el elemento __checklistItem__ a la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-removeChecklist": "eliminada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-removeChecklistItem": "eliminado el elemento __checklistItem__ de la lista de verificación __checkList__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-checkedItem": "marcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-uncheckedItem": "desmarcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-createBoard": "creó el tablero __board__",
|
||||
"act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__",
|
||||
"act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-createCustomField": "creó el campo personalizado __customField__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-createList": "añadida la lista __list__ al tablero __board__",
|
||||
"act-addBoardMember": "añadido el mimbro __member__ al tablero __board__",
|
||||
"act-archivedBoard": "El tablero __board__ se ha movido a Archivo",
|
||||
"act-archivedCard": "La tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__ se ha movido a Archivo",
|
||||
"act-archivedList": "La lista __list__ del carril __swimlane__ del tablero __board__ se ha movido a Archivo",
|
||||
"act-archivedSwimlane": "El carril __swimlane__ del tablero __board__ se ha movido a Archivo",
|
||||
"act-importBoard": "importado el tablero __board__",
|
||||
"act-importCard": "importada la tarjeta __card__ a la lista __list__ del carrril __swimlane__ del tablero __board__",
|
||||
"act-importList": "importada la lista __list__ al carril __swimlane__ del tablero __board__",
|
||||
"act-joinMember": "añadido el miembro __member__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-moveCard": "movida la tarjeta __card__ del tablero __board__ de la lista __oldList__ del carril __oldSwimlane__ a la lista __list__ del carril __swimlane__",
|
||||
"act-moveCardToOtherBoard": "movida la tarjeta __card__ de la lista __oldList__ del carril __oldSwimlane__ del tablero __oldBoard__ a la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-removeBoardMember": "eliminado el miembro __member__ del tablero __board__",
|
||||
"act-restoredCard": "restaurada la tarjeta __card__ a la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-unjoinMember": "eliminado el miembro __member__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Acciones",
|
||||
@@ -32,7 +45,7 @@
|
||||
"activity-archived": "%s movido a Archivo",
|
||||
"activity-attached": "ha adjuntado %s a %s",
|
||||
"activity-created": "ha creado %s",
|
||||
"activity-customfield-created": "creado el campo personalizado %s",
|
||||
"activity-customfield-created": "creó el campo personalizado %s",
|
||||
"activity-excluded": "ha excluido %s de %s",
|
||||
"activity-imported": "ha importado %s a %s desde %s",
|
||||
"activity-imported-board": "ha importado %s desde %s",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "desmarcado %s en lista %s de %s",
|
||||
"activity-checklist-added": "ha añadido una lista de verificación a %s",
|
||||
"activity-checklist-removed": "eliminada una lista de verificación desde %s ",
|
||||
"activity-checklist-completed": "completada la lista %s de %s",
|
||||
"activity-checklist-completed": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"activity-checklist-uncompleted": "no completado la lista %s de %s",
|
||||
"activity-checklist-item-added": "ha añadido el elemento de la lista de verificación a '%s' en %s",
|
||||
"activity-checklist-item-removed": "eliminado un elemento de la lista de verificación desde '%s' en %s",
|
||||
"add": "Añadir",
|
||||
"activity-checked-item-card": "marcado %s en la lista de verificación %s",
|
||||
"activity-unchecked-item-card": "desmarcado %s en la lista de verificación %s",
|
||||
"activity-checklist-completed-card": "completó la lista de verificación %s",
|
||||
"activity-checklist-completed-card": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
|
||||
"activity-checklist-uncompleted-card": "no completó la lista de verificación %s",
|
||||
"add-attachment": "Añadir adjunto",
|
||||
"add-board": "Añadir tablero",
|
||||
@@ -70,7 +83,7 @@
|
||||
"added": "Añadida el",
|
||||
"addMemberPopup-title": "Miembros",
|
||||
"admin": "Administrador",
|
||||
"admin-desc": "Puedes ver y editar tarjetas, eliminar miembros, y cambiar los ajustes del tablero",
|
||||
"admin-desc": "Puedes ver y editar tarjetas, eliminar miembros, y cambiar las preferencias del tablero",
|
||||
"admin-announcement": "Aviso",
|
||||
"admin-announcement-active": "Activar el aviso para todo el sistema",
|
||||
"admin-announcement-title": "Aviso del administrador",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restaurar el tablero",
|
||||
"no-archived-boards": "No hay Tableros en el Archivo",
|
||||
"archives": "Archivar",
|
||||
"template": "Plantilla",
|
||||
"templates": "Plantillas",
|
||||
"assign-member": "Asignar miembros",
|
||||
"attached": "adjuntado",
|
||||
"attachment": "Adjunto",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Renombrar el tablero",
|
||||
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
|
||||
"boardChangeWatchPopup-title": "Cambiar vigilancia",
|
||||
"boardMenuPopup-title": "Menú del tablero",
|
||||
"boardMenuPopup-title": "Preferencias del tablero",
|
||||
"boards": "Tableros",
|
||||
"board-view": "Vista del tablero",
|
||||
"board-view-cal": "Calendario",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etiquetas",
|
||||
"cardMembersPopup-title": "Miembros",
|
||||
"cardMorePopup-title": "Más",
|
||||
"cardTemplatePopup-title": "Crear plantilla",
|
||||
"cards": "Tarjetas",
|
||||
"cards-count": "Tarjetas",
|
||||
"casSignIn": "Iniciar sesión con CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "¿Seguro que quieres eliminar la lista de verificación?",
|
||||
"copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles",
|
||||
"linkCardPopup-title": "Enlazar tarjeta",
|
||||
"searchCardPopup-title": "Buscar tarjeta",
|
||||
"searchElementPopup-title": "Buscar",
|
||||
"copyCardPopup-title": "Copiar la tarjeta",
|
||||
"copyChecklistToManyCardsPopup-title": "Copiar la plantilla de la lista de verificación en varias tarjetas",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títulos y descripciones de las tarjetas de destino en formato JSON",
|
||||
@@ -231,7 +247,7 @@
|
||||
"decline": "Declinar",
|
||||
"default-avatar": "Avatar por defecto",
|
||||
"delete": "Eliminar",
|
||||
"deleteCustomFieldPopup-title": "¿Borrar el campo personalizado?",
|
||||
"deleteCustomFieldPopup-title": "¿Eliminar el campo personalizado?",
|
||||
"deleteLabelPopup-title": "¿Eliminar la etiqueta?",
|
||||
"description": "Descripción",
|
||||
"disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta",
|
||||
@@ -363,9 +379,9 @@
|
||||
"muted-info": "No serás notificado de ningún cambio en este tablero",
|
||||
"my-boards": "Mis tableros",
|
||||
"name": "Nombre",
|
||||
"no-archived-cards": "No hay tarjetas en el Archivo",
|
||||
"no-archived-lists": "No hay listas en el Archivo",
|
||||
"no-archived-swimlanes": "No hay carriles en el Archivo",
|
||||
"no-archived-cards": "No hay tarjetas archivadas.",
|
||||
"no-archived-lists": "No hay listas archivadas.",
|
||||
"no-archived-swimlanes": "No hay carriles archivados.",
|
||||
"no-results": "Sin resultados",
|
||||
"normal": "Normal",
|
||||
"normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
|
||||
@@ -405,8 +421,8 @@
|
||||
"search-cards": "Buscar entre los títulos y las descripciones de las tarjetas en este tablero.",
|
||||
"search-example": "¿Texto a buscar?",
|
||||
"select-color": "Seleccionar el color",
|
||||
"set-wip-limit-value": "Fija un límite para el número máximo de tareas en esta lista.",
|
||||
"setWipLimitPopup-title": "Fija el límite del trabajo en proceso",
|
||||
"set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.",
|
||||
"setWipLimitPopup-title": "Cambiar el límite del trabajo en proceso",
|
||||
"shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual",
|
||||
"shortcut-autocomplete-emoji": "Autocompletar emoji",
|
||||
"shortcut-autocomplete-members": "Autocompletar miembros",
|
||||
@@ -453,12 +469,15 @@
|
||||
"welcome-swimlane": "Hito 1",
|
||||
"welcome-list1": "Básicos",
|
||||
"welcome-list2": "Avanzados",
|
||||
"card-templates-swimlane": "Plantilla de tarjeta",
|
||||
"list-templates-swimlane": "Listar plantillas",
|
||||
"board-templates-swimlane": "Plantilla de tablero",
|
||||
"what-to-do": "¿Qué deseas hacer?",
|
||||
"wipLimitErrorPopup-title": "El límite del trabajo en proceso no es válido.",
|
||||
"wipLimitErrorPopup-dialog-pt1": "El número de tareas en esta lista es mayor que el límite del trabajo en proceso que has definido.",
|
||||
"wipLimitErrorPopup-dialog-pt2": "Por favor, mueve algunas tareas fuera de esta lista, o fija un límite del trabajo en proceso más alto.",
|
||||
"admin-panel": "Panel del administrador",
|
||||
"settings": "Ajustes",
|
||||
"settings": "Preferencias",
|
||||
"people": "Personas",
|
||||
"registration": "Registro",
|
||||
"disable-self-registration": "Deshabilitar autoregistro",
|
||||
@@ -527,13 +546,13 @@
|
||||
"requested-by": "Solicitado por",
|
||||
"board-delete-notice": "Se eliminarán todas las listas, tarjetas y acciones asociadas a este tablero. Esta acción no puede deshacerse.",
|
||||
"delete-board-confirm-popup": "Se eliminarán todas las listas, tarjetas, etiquetas y actividades, y no podrás recuperar los contenidos del tablero. Esta acción no puede deshacerse.",
|
||||
"boardDeletePopup-title": "¿Borrar el tablero?",
|
||||
"delete-board": "Borrar el tablero",
|
||||
"boardDeletePopup-title": "¿Eliminar el tablero?",
|
||||
"delete-board": "Eliminar el tablero",
|
||||
"default-subtasks-board": "Subtareas para el tablero __board__",
|
||||
"default": "Por defecto",
|
||||
"queue": "Cola",
|
||||
"subtask-settings": "Subtareas del tablero",
|
||||
"boardSubtaskSettingsPopup-title": "Configuración de las subtareas del tablero",
|
||||
"subtask-settings": "Preferencias de las subtareas",
|
||||
"boardSubtaskSettingsPopup-title": "Preferencias de las subtareas del tablero",
|
||||
"show-subtasks-field": "Las tarjetas pueden tener subtareas",
|
||||
"deposit-subtasks-board": "Depositar subtareas en este tablero:",
|
||||
"deposit-subtasks-list": "Lista de destino para subtareas depositadas aquí:",
|
||||
@@ -548,10 +567,12 @@
|
||||
"no-parent": "No mostrar la tarjeta padre",
|
||||
"activity-added-label": "añadida etiqueta %s a %s",
|
||||
"activity-removed-label": "eliminada etiqueta '%s' desde %s",
|
||||
"activity-delete-attach": "borrado un adjunto desde %s",
|
||||
"activity-delete-attach": "eliminado un adjunto desde %s",
|
||||
"activity-added-label-card": "añadida etiqueta '%s'",
|
||||
"activity-removed-label-card": "eliminada etiqueta '%s'",
|
||||
"activity-delete-attach-card": "borrado un adjunto",
|
||||
"activity-delete-attach-card": "eliminado un adjunto",
|
||||
"activity-set-customfield": "Cambiar el campo personalizado '%s' a '%s' en %s",
|
||||
"activity-unset-customfield": "Desmarcar el campo personalizado '%s' en %s",
|
||||
"r-rule": "Regla",
|
||||
"r-add-trigger": "Añadir disparador",
|
||||
"r-add-action": "Añadir acción",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Añade HTML personalizado después de <body> ",
|
||||
"add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
|
||||
"error-undefined": "Algo no está bien",
|
||||
"error-ldap-login": "Ocurrió un error al intentar acceder"
|
||||
"error-ldap-login": "Ocurrió un error al intentar acceder",
|
||||
"display-authentication-method": "Mostrar el método de autenticación",
|
||||
"default-authentication-method": "Método de autenticación por defecto",
|
||||
"duplicate-board": "Duplicar tablero",
|
||||
"people-number": "El número de personas es:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Onartu",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "__attachment__ __card__ txartelera erantsita",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "gehituta checklist __checklist__ __card__ -ri",
|
||||
"act-addChecklistItem": "gehituta __checklistItem__ checklist __checklist__ on __card__ -ri",
|
||||
"act-addComment": "__card__ txartelean iruzkina: __comment__",
|
||||
"act-createBoard": "__board__ sortuta",
|
||||
"act-createCard": "__card__ __list__ zerrrendara gehituta",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "__list__ __board__ arbelera gehituta",
|
||||
"act-addBoardMember": "__member__ __board__ arbelera gehituta",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "__board__ inportatuta",
|
||||
"act-importCard": "__card__ inportatuta",
|
||||
"act-importList": "__list__ inportatuta",
|
||||
"act-joinMember": "__member__ __card__ txartelera gehituta",
|
||||
"act-moveCard": "__card__ __oldList__ zerrendartik __list__ zerrendara eraman da",
|
||||
"act-removeBoardMember": "__member__ __board__ arbeletik kendu da",
|
||||
"act-restoredCard": "__card__ __board__ arbelean berrezarri da",
|
||||
"act-unjoinMember": "__member__ __card__ txarteletik kendu da",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Ekintzak",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "egiaztaketa zerrenda %s(e)ra gehituta",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "egiaztaketa zerrendako elementuak '%s'(e)ra gehituta %s(e)n",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Gehitu",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Gehitu eranskina",
|
||||
"add-board": "Gehitu arbela",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Berreskuratu arbela",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Artxibatu",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Esleitu kidea",
|
||||
"attached": "erantsita",
|
||||
"attachment": "Eranskina",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Aldatu izena arbelari",
|
||||
"boardChangeVisibilityPopup-title": "Aldatu ikusgaitasuna",
|
||||
"boardChangeWatchPopup-title": "Aldatu ikuskatzea",
|
||||
"boardMenuPopup-title": "Arbelaren menua",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Arbelak",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etiketak",
|
||||
"cardMembersPopup-title": "Kideak",
|
||||
"cardMorePopup-title": "Gehiago",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Txartelak",
|
||||
"cards-count": "Txartelak",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Kopiatu txartela arbelera",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Bilatu",
|
||||
"copyCardPopup-title": "Kopiatu txartela",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Oinarrizkoa",
|
||||
"welcome-list2": "Aurreratua",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Zer egin nahi duzu?",
|
||||
"wipLimitErrorPopup-title": "Baliogabeko WIP muga",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Zerrenda honetako atazen muga, WIP-en ezarritakoa baina handiagoa da",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+92
-67
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "پذیرش",
|
||||
"act-activity-notify": "اعلان فعالیت",
|
||||
"act-addAttachment": "پیوست __attachment__ به __card__",
|
||||
"act-addSubtask": "زیر وظیفه __checklist__ به __card__ اضافه شد",
|
||||
"act-addChecklist": "سیاهه __checklist__ به __card__ افزوده شد",
|
||||
"act-addChecklistItem": "__checklistItem__ به سیاهه __checklist__ در __card__ افزوده شد",
|
||||
"act-addComment": "درج نظر برای __card__: __comment__",
|
||||
"act-createBoard": "__board__ ایجاد شد",
|
||||
"act-createCard": "__card__ به __list__ اضافه شد",
|
||||
"act-createCustomField": "فیلد __customField__ ایجاد شد",
|
||||
"act-createList": "__list__ به __board__ اضافه شد",
|
||||
"act-addBoardMember": "__member__ به __board__ اضافه شد",
|
||||
"act-archivedBoard": "__board__ به آرشیو انتقال یافت",
|
||||
"act-archivedCard": "__card__ به آرشیو انتقال یافت",
|
||||
"act-archivedList": "__list__ به آرشیو انتقال یافت",
|
||||
"act-archivedSwimlane": "__swimlane__ به آرشیو انتقال یافت",
|
||||
"act-importBoard": "__board__ وارد شده",
|
||||
"act-importCard": "__card__ وارد شده",
|
||||
"act-importList": "__list__ وارد شده",
|
||||
"act-joinMember": "__member__ به __card__اضافه شد",
|
||||
"act-moveCard": "انتقال __card__ از __oldList__ به __list__",
|
||||
"act-removeBoardMember": "__member__ از __board__ پاک شد",
|
||||
"act-restoredCard": "__card__ به __board__ بازآوری شد",
|
||||
"act-unjoinMember": "__member__ از __card__ پاک شد",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "اعمال",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "چک نشده %s در چک لیست %s از %s",
|
||||
"activity-checklist-added": "سیاهه به %s اضافه شد",
|
||||
"activity-checklist-removed": "از چک لیست حذف گردید",
|
||||
"activity-checklist-completed": "تمام شده ها در چک لیست %s از %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "تمام نشده ها در چک لیست %s از %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "حذف شده از چک لیست '%s' در %s",
|
||||
"add": "افزودن",
|
||||
"activity-checked-item-card": "چک شده %s در چک لیست %s",
|
||||
"activity-unchecked-item-card": "چک نشده %s در چک لیست %s",
|
||||
"activity-checklist-completed-card": "چک لیست تمام شده %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "چک لیست تمام نشده %s",
|
||||
"add-attachment": "افزودن ضمیمه",
|
||||
"add-board": "افزودن برد",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "بازیابی تخته",
|
||||
"no-archived-boards": "هیچ بردی داخل آرشیو نیست",
|
||||
"archives": "بایگانی",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "تعیین عضو",
|
||||
"attached": "ضمیمه شده",
|
||||
"attachment": "ضمیمه",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "تغییر نام تخته",
|
||||
"boardChangeVisibilityPopup-title": "تغییر وضعیت نمایش",
|
||||
"boardChangeWatchPopup-title": "تغییر دیده بانی",
|
||||
"boardMenuPopup-title": "منوی تخته",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "تختهها",
|
||||
"board-view": "نمایش تخته",
|
||||
"board-view-cal": "تقویم",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "برچسب ها",
|
||||
"cardMembersPopup-title": "اعضا",
|
||||
"cardMorePopup-title": "بیشتر",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "کارتها",
|
||||
"cards-count": "کارتها",
|
||||
"casSignIn": "ورود با استفاده از CAS",
|
||||
@@ -169,30 +185,30 @@
|
||||
"close-board-pop": "شما می توانید با کلیک کردن بر روی دکمه «بایگانی» از صفحه هدر، صفحه را بازگردانید.",
|
||||
"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",
|
||||
"unset-color": "بازنشانی",
|
||||
"comment": "نظر",
|
||||
"comment-placeholder": "درج نظر",
|
||||
"comment-only": "فقط نظر",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "مطمئنا چک لیست پاک شود؟",
|
||||
"copy-card-link-to-clipboard": "درج پیوند کارت در حافظه",
|
||||
"linkCardPopup-title": "ارتباط دادن کارت",
|
||||
"searchCardPopup-title": "جستجوی کارت",
|
||||
"searchElementPopup-title": "جستجو",
|
||||
"copyCardPopup-title": "کپی کارت",
|
||||
"copyChecklistToManyCardsPopup-title": "کپی قالب کارت به کارتهای متعدد",
|
||||
"copyChecklistToManyCardsPopup-instructions": "عنوان و توضیحات کارت مقصد در این قالب JSON",
|
||||
@@ -335,10 +351,10 @@
|
||||
"list-archive-cards-pop": "این کارتباعث حذف تمامی کارت های این لیست از برد می شود . برای مشاهده کارت ها در آرشیو و برگرداندن آنها به برد بر بروی \"Menu\">\"Archive\" کلیک نمایید",
|
||||
"list-move-cards": "انتقال تمام کارت های این لیست",
|
||||
"list-select-cards": "انتخاب تمام کارت های این لیست",
|
||||
"set-color-list": "Set Color",
|
||||
"set-color-list": "انتخاب رنگ",
|
||||
"listActionPopup-title": "لیست اقدامات",
|
||||
"swimlaneActionPopup-title": "Swimlane Actions",
|
||||
"swimlaneAddPopup-title": "Add a Swimlane below",
|
||||
"swimlaneAddPopup-title": "اضافه کردن مسیر شناور",
|
||||
"listImportCardPopup-title": "وارد کردن کارت Trello",
|
||||
"listMorePopup-title": "بیشتر",
|
||||
"link-list": "پیوند به این فهرست",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "پایه ای ها",
|
||||
"welcome-list2": "پیشرفته",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "چه کاری می خواهید انجام دهید؟",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -485,7 +504,7 @@
|
||||
"error-notAuthorized": "شما مجاز به دیدن این صفحه نیستید.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"boardCardTitlePopup-title": "فیلتر موضوع کارت",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(ناشناخته)",
|
||||
"Node_version": "نسخه Node ",
|
||||
@@ -498,7 +517,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"days": "روزهها",
|
||||
"hours": "ساعت",
|
||||
"minutes": "دقیقه",
|
||||
"seconds": "ثانیه",
|
||||
@@ -519,10 +538,10 @@
|
||||
"card-end-on": "پایان در",
|
||||
"editCardReceivedDatePopup-title": "تغییر تاریخ رسید",
|
||||
"editCardEndDatePopup-title": "تغییر تاریخ پایان",
|
||||
"setCardColorPopup-title": "Set color",
|
||||
"setCardActionsColorPopup-title": "Choose a color",
|
||||
"setSwimlaneColorPopup-title": "Choose a color",
|
||||
"setListColorPopup-title": "Choose a color",
|
||||
"setCardColorPopup-title": "انتخاب رنگ",
|
||||
"setCardActionsColorPopup-title": "انتخاب کردن رنگ",
|
||||
"setSwimlaneColorPopup-title": "انتخاب کردن رنگ",
|
||||
"setListColorPopup-title": "انتخاب کردن رنگ",
|
||||
"assigned-by": "محول شده توسط",
|
||||
"requested-by": "تقاضا شده توسط",
|
||||
"board-delete-notice": "حذف دائمی است شما تمام لیست ها، کارت ها و اقدامات مرتبط با این برد را از دست خواهید داد.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "افزودن لیبل '%s'",
|
||||
"activity-removed-label-card": "حذف لیبل '%s'",
|
||||
"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": "نقش",
|
||||
"r-add-trigger": "افزودن گیره",
|
||||
"r-add-action": "افزودن عملیات",
|
||||
@@ -561,14 +582,14 @@
|
||||
"r-delete-rule": "حذف قانون",
|
||||
"r-new-rule-name": "تیتر قانون جدید",
|
||||
"r-no-rules": "بدون قانون",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-when-a-card": "زمانی که کارت",
|
||||
"r-is": "هست",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-is-moved": "جابهجا شده",
|
||||
"r-added-to": "اضافه شد به",
|
||||
"r-removed-from": "حذف از",
|
||||
"r-the-board": "برد",
|
||||
"r-list": "لیست",
|
||||
"set-filter": "Set Filter",
|
||||
"set-filter": "اضافه کردن فیلتر",
|
||||
"r-moved-to": "انتقال به",
|
||||
"r-moved-from": "انتقال از",
|
||||
"r-archived": "انتقال به آرشیو",
|
||||
@@ -576,7 +597,7 @@
|
||||
"r-a-card": "کارت",
|
||||
"r-when-a-label-is": "زمانی که لیبل هست",
|
||||
"r-when-the-label-is": "زمانی که لیبل هست",
|
||||
"r-list-name": "list name",
|
||||
"r-list-name": "نام لیست",
|
||||
"r-when-a-member": "زمانی که کاربر هست",
|
||||
"r-when-the-member": "زمانی که کاربر",
|
||||
"r-name": "نام",
|
||||
@@ -601,7 +622,7 @@
|
||||
"r-label": "برچسب",
|
||||
"r-member": "عضو",
|
||||
"r-remove-all": "حذف همه کاربران از کارت",
|
||||
"r-set-color": "Set color to",
|
||||
"r-set-color": "انتخاب رنگ به",
|
||||
"r-checklist": "چک لیست",
|
||||
"r-check-all": "انتخاب همه",
|
||||
"r-uncheck-all": "لغو انتخاب همه",
|
||||
@@ -626,9 +647,9 @@
|
||||
"r-d-unarchive": "بازگردانی کارت از آرشیو",
|
||||
"r-d-add-label": "افزودن برچسب",
|
||||
"r-d-remove-label": "حذف برچسب",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-create-card": "ساخت کارت جدید",
|
||||
"r-in-list": "در لیست",
|
||||
"r-in-swimlane": "در مسیرِ شناور",
|
||||
"r-d-add-member": "افزودن عضو",
|
||||
"r-d-remove-member": "حذف عضو",
|
||||
"r-d-remove-all-member": "حذف تمامی کاربران",
|
||||
@@ -639,14 +660,14 @@
|
||||
"r-d-check-of-list": "از چک لیست",
|
||||
"r-d-add-checklist": "افزودن چک لیست",
|
||||
"r-d-remove-checklist": "حذف چک لیست",
|
||||
"r-by": "by",
|
||||
"r-by": "توسط",
|
||||
"r-add-checklist": "افزودن چک لیست",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-with-items": "با موارد",
|
||||
"r-items-list": "مورد۱،مورد۲،مورد۳",
|
||||
"r-add-swimlane": "اضافه کردن مسیر شناور",
|
||||
"r-swimlane-name": "نام مسیر شناور",
|
||||
"r-board-note": "نکته: برای نمایش موارد ممکن کادر را خالی بگذارید.",
|
||||
"r-checklist-note": "نکته: چکلیستها باید توسط کاما از یکدیگر جدا شوند.",
|
||||
"r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "افزودن کد های HTML بعد از <body> شروع",
|
||||
"add-custom-html-before-body-end": "افزودن کد های HTML قبل از </body> پایان",
|
||||
"error-undefined": "یک اشتباه رخ داده شده است",
|
||||
"error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد"
|
||||
"error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد",
|
||||
"display-authentication-method": "نمایش نوع اعتبارسنجی",
|
||||
"default-authentication-method": "نوع اعتبارسنجی پیشفرض",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Hyväksy",
|
||||
"act-activity-notify": "Toimintailmoitus",
|
||||
"act-addAttachment": "liitetty __attachment__ kortille __card__",
|
||||
"act-addSubtask": "lisätty alitehtävä __checklist__ kortille __card__",
|
||||
"act-addChecklist": "lisätty tarkistuslista __checklist__ kortille __card__",
|
||||
"act-addChecklistItem": "lisätty kohta __checklistItem__ tarkistuslistaan __checklist__ kortilla __card__",
|
||||
"act-addComment": "kommentoitu __card__: __comment__",
|
||||
"act-createBoard": "luotu __board__",
|
||||
"act-createCard": "lisätty __card__ listalle __list__",
|
||||
"act-createCustomField": "luotu mukautettu kenttä __customField__",
|
||||
"act-createList": "lisätty __list__ taululle __board__",
|
||||
"act-addBoardMember": "lisätty __member__ taululle __board__",
|
||||
"act-archivedBoard": "__board__ siirretty Arkistoon",
|
||||
"act-archivedCard": "__card__ siirretty Arkistoon",
|
||||
"act-archivedList": "__list__ siirretty Arkistoon",
|
||||
"act-archivedSwimlane": "__swimlane__ siirretty Arkistoon",
|
||||
"act-importBoard": "tuotu __board__",
|
||||
"act-importCard": "tuotu __card__",
|
||||
"act-importList": "tuotu __list__",
|
||||
"act-joinMember": "lisätty __member__ kortille __card__",
|
||||
"act-moveCard": "siirretty __card__ listalta __oldList__ listalle __list__",
|
||||
"act-removeBoardMember": "poistettu __member__ taululta __board__",
|
||||
"act-restoredCard": "palautettu __card__ taululle __board__",
|
||||
"act-unjoinMember": "poistettu __member__ kortilta __card__",
|
||||
"act-addAttachment": "lisätty liite __attachment__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-deleteAttachment": "poistettu liite __attachment__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addSubtask": "lisätty alitehtävä __subtask__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addLabel": "Lisätty tunniste __label__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addedLabel": "Lisätty tunniste __label__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-removeLabel": "Poistettu tunniste __label__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-removedLabel": "Poistettu tunniste __label__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addChecklist": "lisätty tarkistuslista __checklist__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addChecklistItem": "lisätty tarkistuslistan kohta __checklistItem__ tarkistuslistalle __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-removeChecklist": "poistettu tarkistuslista __checklist__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-removeChecklistItem": "poistettu tarkistuslistan kohta __checklistItem__ tarkistuslistalta __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-checkedItem": "ruksattu __checklistItem__ tarkistuslistalla __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-uncheckedItem": "poistettu ruksi __checklistItem__ tarkistuslistalta __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-completeChecklist": "valmistui tarkistuslista __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-uncompleteChecklist": "tehty ei valmistuneeksi tarkistuslista __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-addComment": "kommentoitu kortilla __card__: __comment__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-createBoard": "luotu taulu __board__",
|
||||
"act-createSwimlane": "loi swimlanen __swimlane__ taululle __board__",
|
||||
"act-createCard": "luotu kortti __card__ listalle __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-createCustomField": "luotu mukautettu kenttä __customField__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-createList": "lisätty lista __list__ taululle __board__",
|
||||
"act-addBoardMember": "lisätty jäsen __member__ taululle __board__",
|
||||
"act-archivedBoard": "Taulu __board__ siirretty Arkistoon",
|
||||
"act-archivedCard": "Kortti __card__ listalla __list__ swimlanella __swimlane__ taululla __board__ siirretty Arkistoon",
|
||||
"act-archivedList": "Lista __list__ swimlanella __swimlane__ taululla __board__ siirretty Arkistoon",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ taululla __board__ siirretty Arkistoon",
|
||||
"act-importBoard": "tuotu taulu __board__",
|
||||
"act-importCard": "tuotu kortti __card__ listalle __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-importList": "tuotu lista __list__ swimlanelle __swimlane__ taululla __board__",
|
||||
"act-joinMember": "lisätty jäsen __member__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-moveCard": "siirsi kortin __card__ taululla __board__ listasta __oldList__ swimlanelta __oldSwimlane__ listalle __list__ swimlanelle __swimlane__",
|
||||
"act-moveCardToOtherBoard": "siirretty kortti __card__ listasta __oldList__ swimlanella __oldSwimlane__ taululla __oldBoard__ listalle __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-removeBoardMember": "poistettu jäsen __member__ taululta __board__",
|
||||
"act-restoredCard": "palautettu kortti __card__ listalle __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-unjoinMember": "poistettu jäsen __member__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Toimet",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "poistettu ruksi %s tarkistuslistassa %s / %s",
|
||||
"activity-checklist-added": "lisätty tarkistuslista kortille %s",
|
||||
"activity-checklist-removed": "poistettu tarkistuslista kohteesta %s",
|
||||
"activity-checklist-completed": "saatu valmiíksi tarkistuslista %s / %s",
|
||||
"activity-checklist-completed": "valmistui tarkistuslista __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"activity-checklist-uncompleted": "ei saatu valmiiksi tarkistuslista %s / %s",
|
||||
"activity-checklist-item-added": "lisäsi kohdan tarkistuslistaan '%s' kortilla %s",
|
||||
"activity-checklist-item-removed": "poistettu tarkistuslistan kohta '%s' / %s",
|
||||
"add": "Lisää",
|
||||
"activity-checked-item-card": "ruksattu %s tarkistuslistassa %s",
|
||||
"activity-unchecked-item-card": "poistettu ruksi %s tarkistuslistassa %s",
|
||||
"activity-checklist-completed-card": "valmistui tarkistuslista %s",
|
||||
"activity-checklist-completed-card": "valmistui tarkistuslista __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__",
|
||||
"activity-checklist-uncompleted-card": "ei valmistunut tarkistuslista %s",
|
||||
"add-attachment": "Lisää liite",
|
||||
"add-board": "Lisää taulu",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Palauta taulu",
|
||||
"no-archived-boards": "Ei tauluja Arkistossa",
|
||||
"archives": "Arkisto",
|
||||
"template": "Malli",
|
||||
"templates": "Mallit",
|
||||
"assign-member": "Valitse jäsen",
|
||||
"attached": "liitetty",
|
||||
"attachment": "Liitetiedosto",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Nimeä taulu uudelleen",
|
||||
"boardChangeVisibilityPopup-title": "Muokkaa näkyvyyttä",
|
||||
"boardChangeWatchPopup-title": "Muokkaa seuraamista",
|
||||
"boardMenuPopup-title": "Taulu valikko",
|
||||
"boardMenuPopup-title": "Taulu asetukset",
|
||||
"boards": "Taulut",
|
||||
"board-view": "Taulu näkymä",
|
||||
"board-view-cal": "Kalenteri",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Tunnisteet",
|
||||
"cardMembersPopup-title": "Jäsenet",
|
||||
"cardMorePopup-title": "Lisää",
|
||||
"cardTemplatePopup-title": "Luo malli",
|
||||
"cards": "Kortit",
|
||||
"cards-count": "korttia",
|
||||
"casSignIn": "CAS kirjautuminen",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Oletko varma että haluat poistaa tarkistuslistan?",
|
||||
"copy-card-link-to-clipboard": "Kopioi kortin linkki leikepöydälle",
|
||||
"linkCardPopup-title": "Linkitä kortti",
|
||||
"searchCardPopup-title": "Etsi kortti",
|
||||
"searchElementPopup-title": "Etsi",
|
||||
"copyCardPopup-title": "Kopioi kortti",
|
||||
"copyChecklistToManyCardsPopup-title": "Kopioi tarkistuslistan malli monille korteille",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Kohde korttien otsikot ja kuvaukset JSON muodossa",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Merkkipaalu 1",
|
||||
"welcome-list1": "Perusasiat",
|
||||
"welcome-list2": "Edistynyt",
|
||||
"card-templates-swimlane": "Kortti mallit",
|
||||
"list-templates-swimlane": "Lista mallit",
|
||||
"board-templates-swimlane": "Taulu mallit",
|
||||
"what-to-do": "Mitä haluat tehdä?",
|
||||
"wipLimitErrorPopup-title": "Virheellinen WIP-raja",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Tässä listassa olevien tehtävien määrä on korkeampi kuin asettamasi WIP-raja.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "lisätty tunniste '%s'",
|
||||
"activity-removed-label-card": "poistettu tunniste '%s'",
|
||||
"activity-delete-attach-card": "poistettu liitetiedosto",
|
||||
"activity-set-customfield": "asetettu mukautettu kentän '%s' sisällöksi '%s' kortilla %s",
|
||||
"activity-unset-customfield": "poistettu mukautettu kenttä '%s' kortilla %s",
|
||||
"r-rule": "Sääntö",
|
||||
"r-add-trigger": "Lisää liipaisin",
|
||||
"r-add-action": "Lisää toimi",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Lisää HTML <body> alun jälkeen",
|
||||
"add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua",
|
||||
"error-undefined": "Jotain meni pieleen",
|
||||
"error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään"
|
||||
"error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään",
|
||||
"display-authentication-method": "Näytä kirjautumistapa",
|
||||
"default-authentication-method": "Oletus kirjautumistapa",
|
||||
"duplicate-board": "Tee kaksoiskappale taulusta",
|
||||
"people-number": "Ihmisten määrä on:"
|
||||
}
|
||||
+95
-70
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accepter",
|
||||
"act-activity-notify": "Notification d'activité",
|
||||
"act-addAttachment": "a joint __attachment__ à __card__",
|
||||
"act-addSubtask": "a ajouté une sous-tâche __checklist__ à __card__",
|
||||
"act-addChecklist": "a ajouté la checklist __checklist__ à __card__",
|
||||
"act-addChecklistItem": "a ajouté l'élément __checklistItem__ à la checklist __checklist__ de __card__",
|
||||
"act-addComment": "a commenté __card__ : __comment__",
|
||||
"act-createBoard": "a créé __board__",
|
||||
"act-createCard": "a ajouté __card__ à __list__",
|
||||
"act-createCustomField": "a créé le champ personnalisé __customField__",
|
||||
"act-createList": "a ajouté __list__ à __board__",
|
||||
"act-addBoardMember": "a ajouté __member__ à __board__",
|
||||
"act-archivedBoard": "__board__ a été archivé",
|
||||
"act-archivedCard": "__card__ a été archivé",
|
||||
"act-archivedList": "__list__ a été archivé",
|
||||
"act-archivedSwimlane": "__ swimlane__ a été archivé",
|
||||
"act-importBoard": "a importé __board__",
|
||||
"act-importCard": "a importé __card__",
|
||||
"act-importList": "a importé __list__",
|
||||
"act-joinMember": "a ajouté __member__ à __card__",
|
||||
"act-moveCard": "a déplacé __card__ de __oldList__ à __list__",
|
||||
"act-removeBoardMember": "a retiré __member__ de __board__",
|
||||
"act-restoredCard": "a restauré __card__ dans __board__",
|
||||
"act-unjoinMember": "a retiré __member__ de __card__",
|
||||
"act-addAttachment": "a ajouté la pièce jointe __attachment__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-deleteAttachment": "a supprimé la pièce jointe __attachment__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addSubtask": "a ajouté la sous-tâche __checklist__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addLabel": "a ajouté l'étiquette __label__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addedLabel": "a ajouté l'étiquette __label__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-removeLabel": "a enlevé l'étiquette __label__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-removedLabel": "a enlevé l'étiquette __label__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addChecklist": "a ajouté la checklist __checklist__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addChecklistItem": "a ajouté l'élément __checklistItem__ à la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-removeChecklist": "a supprimé la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-removeChecklistItem": "a supprimé l'élément __checklistItem__ de la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-checkedItem": "a coché __checklistItem__ de la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-uncheckedItem": "a décoché __checklistItem__ de la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-completeChecklist": "a complété la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-uncompleteChecklist": "a rendu incomplet la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-addComment": "a commenté la carte __card__ : __comment__ dans la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-createBoard": "a créé le tableau __board__",
|
||||
"act-createSwimlane": "a créé le couloir __swimlane__ dans le tableau __board__",
|
||||
"act-createCard": "a créé la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-createCustomField": "a créé le champ personnalisé __customField__ pour la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-createList": "a ajouté la liste __list__ au tableau __board__",
|
||||
"act-addBoardMember": "a ajouté le participant __member__ au tableau __board__",
|
||||
"act-archivedBoard": "Le tableau __board__ a été déplacé vers les archives",
|
||||
"act-archivedCard": "Carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__ archivée",
|
||||
"act-archivedList": "Liste __list__ du couloir __swimlane__ du tableau __board__ archivée",
|
||||
"act-archivedSwimlane": "Couloir __swimlane__ du tableau __board__ archivé",
|
||||
"act-importBoard": "a importé le tableau __board__",
|
||||
"act-importCard": "a importé la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-importList": "a importé la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-joinMember": "a ajouté le participant __member__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-moveCard": "a déplacé la carte __card__ du tableau __board__ de la liste __oldList__ du couloir __oldSwimlane__ vers la liste __list__ du couloir __swimlane__",
|
||||
"act-moveCardToOtherBoard": "a déplacé la carte __card__ de la liste __oldList__ du couloir __oldSwimlane__ du tableau __oldBoard__ vers la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-removeBoardMember": "a supprimé le participant __member__ du tableau __board__",
|
||||
"act-restoredCard": "a restauré la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-unjoinMember": "a supprimé le participant __member__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "a décoché %s dans la checklist %s de %s",
|
||||
"activity-checklist-added": "a ajouté une checklist à %s",
|
||||
"activity-checklist-removed": "a supprimé une checklist de %s",
|
||||
"activity-checklist-completed": "a complété la checklist %s de %s",
|
||||
"activity-checklist-completed": "a complété la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"activity-checklist-uncompleted": "a rendu incomplète la checklist %s de %s",
|
||||
"activity-checklist-item-added": "a ajouté un élément à la checklist '%s' dans %s",
|
||||
"activity-checklist-item-removed": "a supprimé une checklist de '%s' dans %s",
|
||||
"add": "Ajouter",
|
||||
"activity-checked-item-card": "a coché %s dans la checklist %s",
|
||||
"activity-unchecked-item-card": "a décoché %s dans la checklist %s",
|
||||
"activity-checklist-completed-card": "a complété la checklist %s",
|
||||
"activity-checklist-completed-card": "a complété la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__",
|
||||
"activity-checklist-uncompleted-card": "a rendu incomplète la checklist %s",
|
||||
"add-attachment": "Ajouter une pièce jointe",
|
||||
"add-board": "Ajouter un tableau",
|
||||
@@ -66,11 +79,11 @@
|
||||
"add-cover": "Ajouter la couverture",
|
||||
"add-label": "Ajouter une étiquette",
|
||||
"add-list": "Ajouter une liste",
|
||||
"add-members": "Assigner des membres",
|
||||
"add-members": "Assigner des participants",
|
||||
"added": "Ajouté le",
|
||||
"addMemberPopup-title": "Membres",
|
||||
"addMemberPopup-title": "Participants",
|
||||
"admin": "Admin",
|
||||
"admin-desc": "Peut voir et éditer les cartes, supprimer des membres et changer les paramètres du tableau.",
|
||||
"admin-desc": "Peut voir et éditer les cartes, supprimer des participants et changer les paramètres du tableau.",
|
||||
"admin-announcement": "Annonce",
|
||||
"admin-announcement-active": "Annonce destinée à tous",
|
||||
"admin-announcement-title": "Annonce de l'administrateur",
|
||||
@@ -92,7 +105,9 @@
|
||||
"restore-board": "Restaurer le tableau",
|
||||
"no-archived-boards": "Aucun tableau archivé.",
|
||||
"archives": "Archiver",
|
||||
"assign-member": "Affecter un membre",
|
||||
"template": "Modèle",
|
||||
"templates": "Modèles",
|
||||
"assign-member": "Affecter un participant",
|
||||
"attached": "joint",
|
||||
"attachment": "Pièce jointe",
|
||||
"attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Elle ne peut être annulée.",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Renommer le tableau",
|
||||
"boardChangeVisibilityPopup-title": "Changer la visibilité",
|
||||
"boardChangeWatchPopup-title": "Modifier le suivi",
|
||||
"boardMenuPopup-title": "Menu du tableau",
|
||||
"boardMenuPopup-title": "Paramètres du tableau",
|
||||
"boards": "Tableaux",
|
||||
"board-view": "Vue du tableau",
|
||||
"board-view-cal": "Calendrier",
|
||||
@@ -130,9 +145,9 @@
|
||||
"card-edit-attachments": "Modifier les pièces jointes",
|
||||
"card-edit-custom-fields": "Éditer les champs personnalisés",
|
||||
"card-edit-labels": "Gérer les étiquettes",
|
||||
"card-edit-members": "Gérer les membres",
|
||||
"card-edit-members": "Gérer les participants",
|
||||
"card-labels-title": "Modifier les étiquettes de la carte.",
|
||||
"card-members-title": "Ajouter ou supprimer des membres à la carte.",
|
||||
"card-members-title": "Assigner ou supprimer des participants à la carte.",
|
||||
"card-start": "Début",
|
||||
"card-start-on": "Commence le",
|
||||
"cardAttachmentsPopup-title": "Ajouter depuis",
|
||||
@@ -141,8 +156,9 @@
|
||||
"cardDeletePopup-title": "Supprimer la carte ?",
|
||||
"cardDetailsActionsPopup-title": "Actions sur la carte",
|
||||
"cardLabelsPopup-title": "Étiquettes",
|
||||
"cardMembersPopup-title": "Membres",
|
||||
"cardMembersPopup-title": "Participants",
|
||||
"cardMorePopup-title": "Plus",
|
||||
"cardTemplatePopup-title": "Créer un modèle",
|
||||
"cards": "Cartes",
|
||||
"cards-count": "Cartes",
|
||||
"casSignIn": "Se connecter avec CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Êtes-vous sûr de vouloir supprimer la checklist ?",
|
||||
"copy-card-link-to-clipboard": "Copier le lien vers la carte dans le presse-papier",
|
||||
"linkCardPopup-title": "Lier une Carte",
|
||||
"searchCardPopup-title": "Chercher une Carte",
|
||||
"searchElementPopup-title": "Chercher",
|
||||
"copyCardPopup-title": "Copier la carte",
|
||||
"copyChecklistToManyCardsPopup-title": "Copier le modèle de checklist vers plusieurs cartes",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Titres et descriptions des cartes de destination dans ce format JSON",
|
||||
@@ -235,7 +251,7 @@
|
||||
"deleteLabelPopup-title": "Supprimer l'étiquette ?",
|
||||
"description": "Description",
|
||||
"disambiguateMultiLabelPopup-title": "Préciser l'action sur l'étiquette",
|
||||
"disambiguateMultiMemberPopup-title": "Préciser l'action sur le membre",
|
||||
"disambiguateMultiMemberPopup-title": "Préciser l'action sur le participant",
|
||||
"discard": "Mettre à la corbeille",
|
||||
"done": "Fait",
|
||||
"download": "Télécharger",
|
||||
@@ -251,13 +267,13 @@
|
||||
"editLabelPopup-title": "Modifier l'étiquette",
|
||||
"editNotificationPopup-title": "Modifier la notification",
|
||||
"editProfilePopup-title": "Modifier le profil",
|
||||
"email": "Email",
|
||||
"email": "E-mail",
|
||||
"email-enrollAccount-subject": "Un compte a été créé pour vous sur __siteName__",
|
||||
"email-enrollAccount-text": "Bonjour __user__,\n\nPour commencer à utiliser ce service, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.",
|
||||
"email-fail": "Échec de l'envoi du courriel.",
|
||||
"email-fail-text": "Une erreur est survenue en tentant d'envoyer l'email",
|
||||
"email-invalid": "Adresse email incorrecte.",
|
||||
"email-invite": "Inviter par email",
|
||||
"email-invalid": "Adresse e-mail incorrecte.",
|
||||
"email-invite": "Inviter par e-mail",
|
||||
"email-invite-subject": "__inviter__ vous a envoyé une invitation",
|
||||
"email-invite-text": "Cher __user__,\n\n__inviter__ vous invite à rejoindre le tableau \"__board__\" pour collaborer.\n\nVeuillez suivre le lien ci-dessous :\n\n__url__\n\nMerci.",
|
||||
"email-resetPassword-subject": "Réinitialiser votre mot de passe sur __siteName__",
|
||||
@@ -268,7 +284,7 @@
|
||||
"enable-wip-limit": "Activer la limite WIP",
|
||||
"error-board-doesNotExist": "Ce tableau n'existe pas",
|
||||
"error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela",
|
||||
"error-board-notAMember": "Vous devez être membre de ce tableau pour faire cela",
|
||||
"error-board-notAMember": "Vous devez être participant de ce tableau pour faire cela",
|
||||
"error-json-malformed": "Votre texte JSON n'est pas valide",
|
||||
"error-json-schema": "Vos données JSON ne contiennent pas l'information appropriée dans un format correct",
|
||||
"error-list-doesNotExist": "Cette liste n'existe pas",
|
||||
@@ -282,7 +298,7 @@
|
||||
"filter-cards": "Filtrer les cartes",
|
||||
"filter-clear": "Supprimer les filtres",
|
||||
"filter-no-label": "Aucune étiquette",
|
||||
"filter-no-member": "Aucun membre",
|
||||
"filter-no-member": "Aucun participant",
|
||||
"filter-no-custom-fields": "Pas de champs personnalisés",
|
||||
"filter-on": "Le filtre est actif",
|
||||
"filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour modifier les filtres.",
|
||||
@@ -298,9 +314,9 @@
|
||||
"link": "Lien",
|
||||
"import-board": "importer un tableau",
|
||||
"import-board-c": "Importer un tableau",
|
||||
"import-board-title-trello": "Importer le tableau depuis Trello",
|
||||
"import-board-title-wekan": "Importer le tableau depuis l'export précédent",
|
||||
"import-sandstorm-backup-warning": "Ne supprimez pas les données que vous importez du tableau exporté d'origine ou de Trello avant de vérifier que la graine peut se fermer et s'ouvrir à nouveau, ou qu'une erreur \"Tableau introuvable\" survient, sinon vous perdrez vos données.",
|
||||
"import-board-title-trello": "Importer un tableau depuis Trello",
|
||||
"import-board-title-wekan": "Importer un tableau depuis un export précédent",
|
||||
"import-sandstorm-backup-warning": "Ne supprimez pas les données que vous importez d'un tableau exporté d'origine ou de Trello avant de vérifier que la graine peut se fermer et s'ouvrir à nouveau ou qu'une erreur \"Tableau introuvable\" survient, sinon vous perdrez vos données.",
|
||||
"import-sandstorm-warning": "Le tableau importé supprimera toutes les données du tableau et les remplacera avec celles du tableau importé.",
|
||||
"from-trello": "Depuis Trello",
|
||||
"from-wekan": "Depuis un export précédent",
|
||||
@@ -308,15 +324,15 @@
|
||||
"import-board-instruction-wekan": "Dans votre tableau, allez dans 'Menu', puis 'Exporter un tableau', et copier le texte du fichier téléchargé.",
|
||||
"import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".",
|
||||
"import-json-placeholder": "Collez ici les données JSON valides",
|
||||
"import-map-members": "Faire correspondre aux membres",
|
||||
"import-members-map": "Le tableau que vous venez d'importer contient des membres. Veuillez associer les membres que vous souhaitez importer à vos utilisateurs.",
|
||||
"import-show-user-mapping": "Contrôler l'association des membres",
|
||||
"import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce membre",
|
||||
"importMapMembersAddPopup-title": "Sélectionner le membre",
|
||||
"import-map-members": "Assigner des participants",
|
||||
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.",
|
||||
"import-show-user-mapping": "Contrôler l'assignation des participants",
|
||||
"import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce participant",
|
||||
"importMapMembersAddPopup-title": "Sélectionner le participant",
|
||||
"info": "Version",
|
||||
"initials": "Initiales",
|
||||
"invalid-date": "Date invalide",
|
||||
"invalid-time": "Temps invalide",
|
||||
"invalid-time": "Heure invalide",
|
||||
"invalid-user": "Utilisateur invalide",
|
||||
"joined": "a rejoint",
|
||||
"just-invited": "Vous venez d'être invité à ce tableau",
|
||||
@@ -342,15 +358,15 @@
|
||||
"listImportCardPopup-title": "Importer une carte Trello",
|
||||
"listMorePopup-title": "Plus",
|
||||
"link-list": "Lien vers cette liste",
|
||||
"list-delete-pop": "Toutes les actions seront supprimées du fil d'activité et il ne sera plus possible de les récupérer. Cette action ne peut pas être annulée.",
|
||||
"list-delete-pop": "Toutes les actions seront supprimées du fil d'activité et il ne sera plus possible de les récupérer. Cette action est irréversible.",
|
||||
"list-delete-suggest-archive": "Vous pouvez archiver une liste pour l'enlever du tableau tout en conservant son activité.",
|
||||
"lists": "Listes",
|
||||
"swimlanes": "Couloirs",
|
||||
"log-out": "Déconnexion",
|
||||
"log-in": "Connexion",
|
||||
"loginPopup-title": "Connexion",
|
||||
"memberMenuPopup-title": "Préférence de membre",
|
||||
"members": "Membres",
|
||||
"memberMenuPopup-title": "Préférence du participant",
|
||||
"members": "Participants",
|
||||
"menu": "Menu",
|
||||
"move-selection": "Déplacer la sélection",
|
||||
"moveCardPopup-title": "Déplacer la carte",
|
||||
@@ -370,7 +386,7 @@
|
||||
"normal": "Normal",
|
||||
"normal-desc": "Peut voir et modifier les cartes. Ne peut pas changer les paramètres.",
|
||||
"not-accepted-yet": "L'invitation n'a pas encore été acceptée",
|
||||
"notify-participate": "Recevoir les mises à jour de toutes les cartes auxquelles vous participez en tant que créateur ou que membre ",
|
||||
"notify-participate": "Recevoir les mises à jour de toutes les cartes auxquelles vous participez en tant que créateur ou que participant",
|
||||
"notify-watch": "Recevoir les mises à jour de tous les tableaux, listes ou cartes que vous suivez",
|
||||
"optional": "optionnel",
|
||||
"or": "ou",
|
||||
@@ -392,10 +408,10 @@
|
||||
"remove-from-board": "Retirer du tableau",
|
||||
"remove-label": "Retirer l'étiquette",
|
||||
"listDeletePopup-title": "Supprimer la liste ?",
|
||||
"remove-member": "Supprimer le membre",
|
||||
"remove-member": "Supprimer le participant",
|
||||
"remove-member-from-card": "Supprimer de la carte",
|
||||
"remove-member-pop": "Supprimer __name__ (__username__) de __boardTitle__ ? Ce membre sera supprimé de toutes les cartes du tableau et recevra une notification.",
|
||||
"removeMemberPopup-title": "Supprimer le membre ?",
|
||||
"remove-member-pop": "Supprimer __name__ (__username__) de __boardTitle__ ? Ce participant sera supprimé de toutes les cartes du tableau et recevra une notification.",
|
||||
"removeMemberPopup-title": "Supprimer le participant ?",
|
||||
"rename": "Renommer",
|
||||
"rename-board": "Renommer le tableau",
|
||||
"restore": "Restaurer",
|
||||
@@ -409,14 +425,14 @@
|
||||
"setWipLimitPopup-title": "Définir la limite WIP",
|
||||
"shortcut-assign-self": "Affecter cette carte à vous-même",
|
||||
"shortcut-autocomplete-emoji": "Auto-complétion des emoji",
|
||||
"shortcut-autocomplete-members": "Auto-complétion des membres",
|
||||
"shortcut-autocomplete-members": "Auto-complétion des participants",
|
||||
"shortcut-clear-filters": "Retirer tous les filtres",
|
||||
"shortcut-close-dialog": "Fermer la boîte de dialogue",
|
||||
"shortcut-filter-my-cards": "Filtrer mes cartes",
|
||||
"shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
|
||||
"shortcut-toggle-filterbar": "Afficher/Cacher la barre latérale des filtres",
|
||||
"shortcut-toggle-sidebar": "Afficher/Cacher la barre latérale du tableau",
|
||||
"show-cards-minimum-count": "Afficher le nombre de cartes si la liste en contient plus de ",
|
||||
"shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres",
|
||||
"shortcut-toggle-sidebar": "Afficher/Masquer la barre latérale du tableau",
|
||||
"show-cards-minimum-count": "Afficher le nombre de cartes si la liste en contient plus de",
|
||||
"sidebar-open": "Ouvrir le panneau",
|
||||
"sidebar-close": "Fermer le panneau",
|
||||
"signupPopup-title": "Créer un compte",
|
||||
@@ -435,9 +451,9 @@
|
||||
"time": "Temps",
|
||||
"title": "Titre",
|
||||
"tracking": "Suivi",
|
||||
"tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou membre.",
|
||||
"tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou participant.",
|
||||
"type": "Type",
|
||||
"unassign-member": "Retirer le membre",
|
||||
"unassign-member": "Retirer le participant",
|
||||
"unsaved-description": "Vous avez une description non sauvegardée",
|
||||
"unwatch": "Arrêter de suivre",
|
||||
"upload": "Télécharger",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Jalon 1",
|
||||
"welcome-list1": "Basiques",
|
||||
"welcome-list2": "Avancés",
|
||||
"card-templates-swimlane": "Modèles de cartes",
|
||||
"list-templates-swimlane": "Modèles de listes",
|
||||
"board-templates-swimlane": "Modèles de tableaux",
|
||||
"what-to-do": "Que voulez-vous faire ?",
|
||||
"wipLimitErrorPopup-title": "Limite WIP invalide",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Le nombre de cartes de cette liste est supérieur à la limite WIP que vous avez définie.",
|
||||
@@ -465,7 +484,7 @@
|
||||
"invite": "Inviter",
|
||||
"invite-people": "Inviter une personne",
|
||||
"to-boards": "Au(x) tableau(x)",
|
||||
"email-addresses": "Adresses email",
|
||||
"email-addresses": "Adresses mail",
|
||||
"smtp-host-description": "L'adresse du serveur SMTP qui gère vos mails.",
|
||||
"smtp-port-description": "Le port des mails sortants du serveur SMTP.",
|
||||
"smtp-tls-description": "Activer la gestion de TLS sur le serveur SMTP",
|
||||
@@ -479,7 +498,7 @@
|
||||
"invitation-code": "Code d'invitation",
|
||||
"email-invite-register-subject": "__inviter__ vous a envoyé une invitation",
|
||||
"email-invite-register-text": "Cher __user__,\n\n__inviter__ vous invite à le rejoindre sur le tableau kanban pour collaborer.\n\nVeuillez suivre le lien ci-dessous :\n__url__\n\nVotre code d'invitation est : __icode__\n\nMerci.",
|
||||
"email-smtp-test-subject": "Email de test SMTP",
|
||||
"email-smtp-test-subject": "E-mail de test SMTP",
|
||||
"email-smtp-test-text": "Vous avez envoyé un mail avec succès",
|
||||
"error-invitation-code-not-exist": "Ce code d'invitation n'existe pas.",
|
||||
"error-notAuthorized": "Vous n'êtes pas autorisé à accéder à cette page.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "a ajouté l'étiquette '%s'",
|
||||
"activity-removed-label-card": "a supprimé l'étiquette '%s'",
|
||||
"activity-delete-attach-card": "a supprimé une pièce jointe",
|
||||
"activity-set-customfield": "a défini le champ personnalisé '%s' à '%s' dans %s",
|
||||
"activity-unset-customfield": "a effacé le champ personnalisé '%s' dans %s",
|
||||
"r-rule": "Règle",
|
||||
"r-add-trigger": "Ajouter un déclencheur",
|
||||
"r-add-action": "Ajouter une action",
|
||||
@@ -577,8 +598,8 @@
|
||||
"r-when-a-label-is": "Quand une étiquette est",
|
||||
"r-when-the-label-is": "Quand l'étiquette est",
|
||||
"r-list-name": "Nom de la liste",
|
||||
"r-when-a-member": "Quand un membre est",
|
||||
"r-when-the-member": "Quand le membre",
|
||||
"r-when-a-member": "Quand un participant est",
|
||||
"r-when-the-member": "Quand le participant",
|
||||
"r-name": "nom",
|
||||
"r-when-a-attach": "Quand une pièce jointe",
|
||||
"r-when-a-checklist": "Quand une checklist est",
|
||||
@@ -599,7 +620,7 @@
|
||||
"r-add": "Ajouter",
|
||||
"r-remove": "Supprimer",
|
||||
"r-label": "étiquette",
|
||||
"r-member": "membre",
|
||||
"r-member": "participant",
|
||||
"r-remove-all": "Supprimer tous les membres de la carte",
|
||||
"r-set-color": "Définir la couleur à",
|
||||
"r-checklist": "checklist",
|
||||
@@ -629,9 +650,9 @@
|
||||
"r-create-card": "Créer une nouvelle carte",
|
||||
"r-in-list": "dans la liste",
|
||||
"r-in-swimlane": "Dans le couloir",
|
||||
"r-d-add-member": "Ajouter un membre",
|
||||
"r-d-remove-member": "Supprimer un membre",
|
||||
"r-d-remove-all-member": "Supprimer tous les membres",
|
||||
"r-d-add-member": "Ajouter un participant",
|
||||
"r-d-remove-member": "Supprimer un participant",
|
||||
"r-d-remove-all-member": "Supprimer tous les participants",
|
||||
"r-d-check-all": "Cocher tous les éléments d'une liste",
|
||||
"r-d-uncheck-all": "Décocher tous les éléments d'une liste",
|
||||
"r-d-check-one": "Cocher l'élément",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Ajouter le HTML personnalisé après le début du <body>",
|
||||
"add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du </body>",
|
||||
"error-undefined": "Une erreur inconnue s'est produite",
|
||||
"error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion"
|
||||
"error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion",
|
||||
"display-authentication-method": "Afficher la méthode d'authentification",
|
||||
"default-authentication-method": "Méthode d'authentification par défaut",
|
||||
"duplicate-board": "Dupliquer le tableau",
|
||||
"people-number": "Le nombre d'utilisateurs est de :"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Aceptar",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Accións",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Engadir",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Engadir anexo",
|
||||
"add-board": "Engadir taboleiro",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restaurar taboleiro",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Arquivar",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Anexo",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Taboleiros",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etiquetas",
|
||||
"cardMembersPopup-title": "Membros",
|
||||
"cardMorePopup-title": "Máis",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Tarxetas",
|
||||
"cards-count": "Tarxetas",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Fundamentos",
|
||||
"welcome-list2": "Avanzado",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Que desexa facer?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+62
-37
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "אישור",
|
||||
"act-activity-notify": "הודעת פעילות",
|
||||
"act-addAttachment": " __attachment__ צורף לכרטיס __card__",
|
||||
"act-addSubtask": "נוספה תת־משימה __checklist__ אל __card__",
|
||||
"act-addChecklist": "רשימת משימות __checklist__ נוספה ל __card__",
|
||||
"act-addChecklistItem": " __checklistItem__ נוסף לרשימת משימות __checklist__ בכרטיס __card__",
|
||||
"act-addComment": "התקבלה תגובה על הכרטיס __card__: __comment__",
|
||||
"act-addAttachment": "הקובץ __attachment__ צורף אל הכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__",
|
||||
"act-deleteAttachment": "הקובץ __attachment__ נמחק מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__",
|
||||
"act-addSubtask": "תת־משימה __attachment__ נוספה אל הכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__",
|
||||
"act-addLabel": "התווית __label__ נוספה לכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__",
|
||||
"act-addedLabel": "התווית __label__ נוספה לכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__",
|
||||
"act-removeLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__",
|
||||
"act-removedLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__",
|
||||
"act-addChecklist": "נוספה רשימת מטלות __checklist__ לכרטיס __card__ ברשימה __list__ שבמסלול __swimlane__ בלוח __board__",
|
||||
"act-addChecklistItem": "נוסף פריט סימון __checklistItem__ לרשימת המטלות __checklist__ לכרטיס __card__ ברשימה __list__ במסלול __swimlane__ בלוח __board__",
|
||||
"act-removeChecklist": "הוסרה רשימת מטלות __checklist__ מהכרטיס __card__ ברשימה __list__ שבמסלול __swimlane__ בלוח __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "הלוח __board__ נוצר",
|
||||
"act-createCard": "הכרטיס __card__ התווסף לרשימה __list__",
|
||||
"act-createCustomField": "נוצר שדה בהתאמה אישית __customField__",
|
||||
"act-createList": "הרשימה __list__ התווספה ללוח __board__",
|
||||
"act-addBoardMember": "המשתמש __member__ נוסף ללוח __board__",
|
||||
"act-archivedBoard": "__board__ הועבר לארכיון",
|
||||
"act-archivedCard": "__card__ הועבר לארכיון",
|
||||
"act-archivedList": "__list__ הועבר לארכיון",
|
||||
"act-archivedSwimlane": "__swimlane__ נשמר בארכיון",
|
||||
"act-importBoard": "הלוח __board__ יובא",
|
||||
"act-importCard": "הכרטיס __card__ יובא",
|
||||
"act-importList": "הרשימה __list__ יובאה",
|
||||
"act-joinMember": "המשתמש __member__ נוסף לכרטיס __card__",
|
||||
"act-moveCard": "הכרטיס __card__ הועבר מהרשימה __oldList__ לרשימה __list__",
|
||||
"act-removeBoardMember": "המשתמש __member__ הוסר מהלוח __board__",
|
||||
"act-restoredCard": "הכרטיס __card__ שוחזר ללוח __board__",
|
||||
"act-unjoinMember": "המשתמש __member__ הוסר מהכרטיס __card__",
|
||||
"act-createSwimlane": "נוצר מסלול __swimlane__ בלוח __board__",
|
||||
"act-createCard": "הכרטיס __card__ נוצר ברשימה __list__ במסלול __swimlane__ שבלוח __board__",
|
||||
"act-createCustomField": "נוצר שדה בהתאמה אישית __customField__ בכרטיס __card__ שברשימה __list__ במסלול __swimlane__ שבלוח __board__",
|
||||
"act-createList": "הרשימה __list__ נוספה ללוח __board__",
|
||||
"act-addBoardMember": "החבר __member__ נוסף אל __board__",
|
||||
"act-archivedBoard": "הלוח __board__ הועבר לארכיון",
|
||||
"act-archivedCard": "הכרטיס __card__ ברשימה __list__ במסלול __swimlane__ בלוח __board__ הועבר לארכיון",
|
||||
"act-archivedList": "הרשימה __list__ במסלול __swimlane__ בלוח __board__ הועברה לארכיון",
|
||||
"act-archivedSwimlane": "המסלול __swimlane__ בלוח __board__ הועבר לארכיון",
|
||||
"act-importBoard": "הייבוא של הלוח __board__ הושלם",
|
||||
"act-importCard": "הייבוא של הכרטיס __card__ לרשימה __list__ למסלול __swimlane__ ללוח __board__ הושלם",
|
||||
"act-importList": "הרשימה __list__ ייובאה למסלול __swimlane__ שבלוח __board__",
|
||||
"act-joinMember": "החבר __member__ נוסף לכרטיס __card__ לרשימה __list__ במסלול __swimlane__ בלוח __board__",
|
||||
"act-moveCard": "הועבר הכרטיס __card__ בלוח __board__ מהרשימה __oldList__ במסלול __oldSwimlane__ לרשימה __list__ במסלול __swimlane__.",
|
||||
"act-moveCardToOtherBoard": "הכרטיס __card__ הועבר מהרשימה __oldList__ במסלול __oldSwimlane__ בלוח __oldBoard__ לרשימה __list__ במסלול __swimlane__ בלוח __board__",
|
||||
"act-removeBoardMember": "החבר __member__ הוסר מהלוח __board__",
|
||||
"act-restoredCard": "הכרטיס __card__ שוחזר לרשימה __list__ למסלול __swimlane__ ללוח __board__",
|
||||
"act-unjoinMember": "החבר __member__ הוסר מהכרטיס __card__ ברשימה __list__ במסלול __swimlane__ בלוח __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "פעולות",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "בוטל הסימון של %s ברשימת המשימות %s מתוך %s",
|
||||
"activity-checklist-added": "נוספה רשימת משימות אל %s",
|
||||
"activity-checklist-removed": "הוסרה רשימת משימות מ־%s",
|
||||
"activity-checklist-completed": "רשימת המשימות %s מתוך %s הושלמה",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "רשימת המשימות %s מתוך %s סומנה כבלתי מושלמת",
|
||||
"activity-checklist-item-added": "נוסף פריט רשימת משימות אל ‚%s‘ תחת %s",
|
||||
"activity-checklist-item-removed": "הוסר פריט מרשימת המשימות ‚%s’ תחת %s",
|
||||
"add": "הוספה",
|
||||
"activity-checked-item-card": "סומן %s ברשימת המשימות %s",
|
||||
"activity-unchecked-item-card": "הסימון של %s בוטל ברשימת המשימות %s",
|
||||
"activity-checklist-completed-card": "רשימת המשימות %s הושלמה",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "רשימת המשימות %s סומנה כבלתי מושלמת",
|
||||
"add-attachment": "הוספת קובץ מצורף",
|
||||
"add-board": "הוספת לוח",
|
||||
@@ -84,7 +97,7 @@
|
||||
"archive-board": "העברת הלוח לארכיון",
|
||||
"archive-card": "העברת הכרטיס לארכיון",
|
||||
"archive-list": "העברת הרשימה לארכיון",
|
||||
"archive-swimlane": "שמור נתיב זרימה לארכיון",
|
||||
"archive-swimlane": "העברת מסלול לארכיון",
|
||||
"archive-selection": "העברת הבחירה לארכיון",
|
||||
"archiveBoardPopup-title": "להעביר לוח זה לארכיון?",
|
||||
"archived-items": "להעביר לארכיון",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "שחזור לוח",
|
||||
"no-archived-boards": "לא נשמרו לוחות בארכיון.",
|
||||
"archives": "להעביר לארכיון",
|
||||
"template": "תבנית",
|
||||
"templates": "תבניות",
|
||||
"assign-member": "הקצאת חבר",
|
||||
"attached": "מצורף",
|
||||
"attachment": "קובץ מצורף",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "שינוי שם הלוח",
|
||||
"boardChangeVisibilityPopup-title": "שינוי מצב הצגה",
|
||||
"boardChangeWatchPopup-title": "שינוי הגדרת המעקב",
|
||||
"boardMenuPopup-title": "תפריט לוח",
|
||||
"boardMenuPopup-title": "הגדרות לוח",
|
||||
"boards": "לוחות",
|
||||
"board-view": "תצוגת לוח",
|
||||
"board-view-cal": "לוח שנה",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "תוויות",
|
||||
"cardMembersPopup-title": "חברים",
|
||||
"cardMorePopup-title": "עוד",
|
||||
"cardTemplatePopup-title": "יצירת תבנית",
|
||||
"cards": "כרטיסים",
|
||||
"cards-count": "כרטיסים",
|
||||
"casSignIn": "כניסה עם CAS",
|
||||
@@ -195,17 +211,17 @@
|
||||
"unset-color": "בטל הגדרה",
|
||||
"comment": "לפרסם",
|
||||
"comment-placeholder": "כתיבת הערה",
|
||||
"comment-only": "תגובה בלבד",
|
||||
"comment-only": "הערה בלבד",
|
||||
"comment-only-desc": "ניתן להגיב על כרטיסים בלבד.",
|
||||
"no-comments": " אין תגובות",
|
||||
"no-comments": " אין הערות",
|
||||
"no-comments-desc": "לא ניתן לצפות בתגובות ובפעילויות.",
|
||||
"computer": "מחשב",
|
||||
"confirm-subtask-delete-dialog": "האם למחוק את תת המשימה?",
|
||||
"confirm-subtask-delete-dialog": "למחוק את תת המשימה?",
|
||||
"confirm-checklist-delete-dialog": "למחוק את רשימת המשימות?",
|
||||
"copy-card-link-to-clipboard": "העתקת קישור הכרטיס ללוח הגזירים",
|
||||
"linkCardPopup-title": "קישור כרטיס",
|
||||
"searchCardPopup-title": "חיפוש כרטיס",
|
||||
"copyCardPopup-title": "העתק כרטיס",
|
||||
"searchElementPopup-title": "חיפוש",
|
||||
"copyCardPopup-title": "העתקת כרטיס",
|
||||
"copyChecklistToManyCardsPopup-title": "העתקת תבנית רשימת מטלות למגוון כרטיסים",
|
||||
"copyChecklistToManyCardsPopup-instructions": "כותרות ותיאורים של כרטיסי יעד בתצורת JSON זו",
|
||||
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"כותרת כרטיס ראשון\", \"description\":\"תיאור כרטיס ראשון\"}, {\"title\":\"כותרת כרטיס שני\",\"description\":\"תיאור כרטיס שני\"},{\"title\":\"כותרת כרטיס אחרון\",\"description\":\"תיאור כרטיס אחרון\"} ]",
|
||||
@@ -335,10 +351,10 @@
|
||||
"list-archive-cards-pop": "כל הכרטיסים מרשימה זו יוסרו מהלוח. לצפייה בכרטיסים השמורים בארכיון ולהחזירם ללוח, ניתן ללחוץ על „תפריט” > „פריטים בארכיון”.",
|
||||
"list-move-cards": "העברת כל הכרטיסים שברשימה זו",
|
||||
"list-select-cards": "בחירת כל הכרטיסים שברשימה זו",
|
||||
"set-color-list": "Set Color",
|
||||
"set-color-list": "הגדרת צבע",
|
||||
"listActionPopup-title": "פעולות רשימה",
|
||||
"swimlaneActionPopup-title": "פעולות על מסלול",
|
||||
"swimlaneAddPopup-title": "Add a Swimlane below",
|
||||
"swimlaneAddPopup-title": "הוספת מסלול מתחת",
|
||||
"listImportCardPopup-title": "יבוא כרטיס מ־Trello",
|
||||
"listMorePopup-title": "עוד",
|
||||
"link-list": "קישור לרשימה זו",
|
||||
@@ -365,7 +381,7 @@
|
||||
"name": "שם",
|
||||
"no-archived-cards": "אין כרטיסים בארכיון",
|
||||
"no-archived-lists": "אין רשימות בארכיון",
|
||||
"no-archived-swimlanes": "לא שמורים מסלולים בארכיון",
|
||||
"no-archived-swimlanes": "אין מסלולים בארכיון.",
|
||||
"no-results": "אין תוצאות",
|
||||
"normal": "רגיל",
|
||||
"normal-desc": "הרשאה לצפות ולערוך כרטיסים. לא ניתן לשנות הגדרות.",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "ציון דרך 1",
|
||||
"welcome-list1": "יסודות",
|
||||
"welcome-list2": "מתקדם",
|
||||
"card-templates-swimlane": "תבניות כרטיסים",
|
||||
"list-templates-swimlane": "תבניות רשימות",
|
||||
"board-templates-swimlane": "תבניות לוחות",
|
||||
"what-to-do": "מה ברצונך לעשות?",
|
||||
"wipLimitErrorPopup-title": "מגבלת „בעבודה” שגויה",
|
||||
"wipLimitErrorPopup-dialog-pt1": "מספר המשימות ברשימה זו גדולה ממגבלת הפריטים „בעבודה” שהגדרת.",
|
||||
@@ -520,9 +539,9 @@
|
||||
"editCardReceivedDatePopup-title": "החלפת מועד הקבלה",
|
||||
"editCardEndDatePopup-title": "החלפת מועד הסיום",
|
||||
"setCardColorPopup-title": "הגדרת צבע",
|
||||
"setCardActionsColorPopup-title": "Choose a color",
|
||||
"setSwimlaneColorPopup-title": "Choose a color",
|
||||
"setListColorPopup-title": "Choose a color",
|
||||
"setCardActionsColorPopup-title": "בחירת צבע",
|
||||
"setSwimlaneColorPopup-title": "בחירת צבע",
|
||||
"setListColorPopup-title": "בחירת צבע",
|
||||
"assigned-by": "הוקצה על ידי",
|
||||
"requested-by": "התבקש על ידי",
|
||||
"board-delete-notice": "מחיקה היא לצמיתות. כל הרשימות, הכרטיבים והפעולות שקשורים בלוח הזה ילכו לאיבוד.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "התווית ‚%s’ נוספה",
|
||||
"activity-removed-label-card": "התווית ‚%s’ הוסרה",
|
||||
"activity-delete-attach-card": "קובץ מצורף נמחק",
|
||||
"activity-set-customfield": "הגדרת שדה בהתאמה אישית ‚%s’ לערך ‚%s’ תחת %s",
|
||||
"activity-unset-customfield": "ביטול הגדרת שדה בהתאמה אישית ‚%s’ תחת %s",
|
||||
"r-rule": "כלל",
|
||||
"r-add-trigger": "הוספת הקפצה",
|
||||
"r-add-action": "הוספת פעולה",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית לאחר ה־<body> הפותח.",
|
||||
"add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית לפני ה־</body> הסוגר.",
|
||||
"error-undefined": "מהו השתבש",
|
||||
"error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה"
|
||||
"error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה",
|
||||
"display-authentication-method": "הצגת שיטת אימות",
|
||||
"default-authentication-method": "שיטת אימות כבררת מחדל",
|
||||
"duplicate-board": "שכפול לוח",
|
||||
"people-number": "מספר האנשים הוא:"
|
||||
}
|
||||
+79
-54
@@ -1,35 +1,48 @@
|
||||
{
|
||||
"accept": "स्वीकार",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "जुड़ा __attachment__ से __card__",
|
||||
"act-addSubtask": "जोड़ा उप कार्य __checklist__ से __card__",
|
||||
"act-addChecklist": "जोड़ा चेक सूची __checklist__ से __card__",
|
||||
"act-addChecklistItem": "जोड़ा __checklistItem__ से चिह्नांकन-सूची __checklist__ पर __card__",
|
||||
"act-addComment": "समीक्षा की है __card__: __comment__",
|
||||
"act-createBoard": "बनाया __board__",
|
||||
"act-createCard": "जोड़ा __card__ से __list__",
|
||||
"act-createCustomField": "बनाया रिवाज क्षेत्र __customField__",
|
||||
"act-createList": "जोड़ा __list__ से __board__",
|
||||
"act-addBoardMember": "जोड़ा __member__ से __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "महत्त्व का __board__",
|
||||
"act-importCard": "महत्त्व का __card__",
|
||||
"act-importList": "महत्त्व का __list__",
|
||||
"act-joinMember": "जोड़ा __member__ से __card__",
|
||||
"act-moveCard": "प्रस्तावित __card__ से __oldList__ तक __list__",
|
||||
"act-removeBoardMember": "हटा कर __member__ से __board__",
|
||||
"act-restoredCard": "पुनर्स्थापित __card__ को __board__",
|
||||
"act-unjoinMember": "हटा दिया __member__ तक __card__",
|
||||
"act-activity-notify": "गतिविधि अधिसूचना",
|
||||
"act-addAttachment": "अनुलग्नक जोड़ा __attachment__ कार्ड के लिए __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__",
|
||||
"act-deleteAttachment": "हटाए गए अनुलग्नक __attachment__ कार्ड पर __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__",
|
||||
"act-addSubtask": "जोड़ा उपकार्य __checklist__ को __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__",
|
||||
"act-addLabel": "जोड़ा गया लेबल __label__ कार्ड के लिए __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__",
|
||||
"act-addedLabel": "जोड़ा गया लेबल __label__ कार्ड के लिए __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "कार्रवाई",
|
||||
"activities": "गतिविधि",
|
||||
"activity": "क्रियाएँ",
|
||||
"activity-added": "जोड़ा गया %s से %s",
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-archived": "%sसंग्रह में ले जाया गया",
|
||||
"activity-attached": "संलग्न %s से %s",
|
||||
"activity-created": "बनाया %s",
|
||||
"activity-customfield-created": "बनाया रिवाज क्षेत्र %s",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "अचिह्नित %s अंदर में चिह्नांकन-सूची %s of %s",
|
||||
"activity-checklist-added": "संकलित चिह्नांकन-सूची तक %s",
|
||||
"activity-checklist-removed": "हटा दिया एक चिह्नांकन-सूची से %s",
|
||||
"activity-checklist-completed": "पूर्ण चिह्नांकन-सूची %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "अपूर्ण चिह्नांकन-सूची %s of %s",
|
||||
"activity-checklist-item-added": "संकलित चिह्नांकन-सूची विषय तक '%s' अंदर में %s",
|
||||
"activity-checklist-item-removed": "हटा दिया एक चिह्नांकन-सूची विषय से '%s' अंदर में %s",
|
||||
"add": "जोड़ें",
|
||||
"activity-checked-item-card": "चिह्नित %s अंदर में चिह्नांकन-सूची %s",
|
||||
"activity-unchecked-item-card": "अचिह्नित %s अंदर में चिह्नांकन-सूची %s",
|
||||
"activity-checklist-completed-card": "पूर्ण चिह्नांकन-सूची %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "अपूर्ण चिह्नांकन-सूची %s",
|
||||
"add-attachment": "संलग्न करें",
|
||||
"add-board": "बोर्ड जोड़ें",
|
||||
@@ -78,20 +91,22 @@
|
||||
"and-n-other-card": "और __count__ other कार्ड",
|
||||
"and-n-other-card_plural": "और __count__ other कार्ड",
|
||||
"apply": "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-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"archived-items": "पुरालेख",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"restore-board": "Restore बोर्ड",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"app-is-offline": "लोड हो रहा है, कृपया प्रतीक्षा करें । पृष्ठ को ताज़ा करना डेटा की हानि का कारण होगा । यदि लोड करना कार्य नहीं करता है, तो कृपया जांचें कि सर्वर बंद नहीं हुआ है ।",
|
||||
"archive": "संग्रह में ले जाएं",
|
||||
"archive-all": "सभी को संग्रह में ले जाएं",
|
||||
"archive-board": "संग्रह करने के लिए बोर्ड ले जाएँ",
|
||||
"archive-card": "कार्ड को संग्रह में ले जाएं",
|
||||
"archive-list": "सूची को संग्रह में ले जाएं",
|
||||
"archive-swimlane": "संग्रह करने के लिए स्विमलेन ले जाएँ",
|
||||
"archive-selection": "चयन को संग्रह में ले जाएं",
|
||||
"archiveBoardPopup-title": "बोर्ड को संग्रह में स्थानांतरित करें?",
|
||||
"archived-items": "संग्रह",
|
||||
"archived-boards": "संग्रह में बोर्ड",
|
||||
"restore-board": "पुनर्स्थापना बोर्ड",
|
||||
"no-archived-boards": "संग्रह में कोई बोर्ड नहीं ।",
|
||||
"archives": "पुरालेख",
|
||||
"template": "खाका",
|
||||
"templates": "खाका",
|
||||
"assign-member": "आवंटित सदस्य",
|
||||
"attached": "संलग्न",
|
||||
"attachment": "संलग्नक",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "बोर्ड का नाम बदलें",
|
||||
"boardChangeVisibilityPopup-title": "दृश्यता बदलें",
|
||||
"boardChangeWatchPopup-title": "बदलें वॉच",
|
||||
"boardMenuPopup-title": "बोर्ड मेनू",
|
||||
"boardMenuPopup-title": "बोर्ड सेटिंग्स",
|
||||
"boards": "बोर्डों",
|
||||
"board-view": "बोर्ड दृष्टिकोण",
|
||||
"board-view-cal": "तिथि-पत्र",
|
||||
@@ -118,12 +133,12 @@
|
||||
"board-view-lists": "सूचियाँ",
|
||||
"bucket-example": "उदाहरण के लिए “बाल्टी सूची” की तरह",
|
||||
"cancel": "रद्द करें",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "यह कार्ड संग्रह करने के लिए ले जाया गया है ।",
|
||||
"board-archived": "यह बोर्ड संग्रह करने के लिए ले जाया जाता है ।",
|
||||
"card-comments-title": "इस कार्ड में %s टिप्पणी है।",
|
||||
"card-delete-notice": "हटाना स्थायी है। आप इस कार्ड से जुड़े सभी कार्यों को खो देंगे।",
|
||||
"card-delete-pop": "सभी कार्रवाइयां गतिविधि फ़ीड से निकाल दी जाएंगी और आप कार्ड को फिर से खोलने में सक्षम नहीं होंगे । कोई पूर्ववत् नहीं है ।",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-suggest-archive": "आप एक कार्ड को बोर्ड से हटाने और गतिविधि को संरक्षित करने के लिए संग्रह में ले जा सकते हैं ।",
|
||||
"card-due": "नियत",
|
||||
"card-due-on": "पर नियत",
|
||||
"card-spent": "समय बिताया",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "नामपत्र",
|
||||
"cardMembersPopup-title": "सदस्य",
|
||||
"cardMorePopup-title": "अतिरिक्त",
|
||||
"cardTemplatePopup-title": "खाका बनाएं",
|
||||
"cards": "कार्ड्स",
|
||||
"cards-count": "कार्ड्स",
|
||||
"casSignIn": "सीएएस के साथ साइन इन करें",
|
||||
@@ -166,18 +182,18 @@
|
||||
"clipboard": "क्लिपबोर्ड या खींचें और छोड़ें",
|
||||
"close": "बंद करे",
|
||||
"close-board": "बोर्ड बंद करे",
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"close-board-pop": "आप होम हेडर से \"संग्रह\" बटन पर क्लिक करके बोर्ड को पुनर्स्थापित करने में सक्षम होंगे।",
|
||||
"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-magenta": "मैजंटा",
|
||||
"color-mistyrose": "हल्का गुलाबी",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "नारंगी",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "क्या आप वाकई जांचसूची हटाना चाहते हैं?",
|
||||
"copy-card-link-to-clipboard": "कॉपी कार्ड क्लिपबोर्ड करने के लिए लिंक",
|
||||
"linkCardPopup-title": "कार्ड कड़ी",
|
||||
"searchCardPopup-title": "कार्ड खोज",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "कार्ड प्रतिलिपि",
|
||||
"copyChecklistToManyCardsPopup-title": "कई कार्ड के लिए जांचसूची खाके की प्रतिलिपि बनाएँ",
|
||||
"copyChecklistToManyCardsPopup-instructions": "इस JSON प्रारूप में गंतव्य कार्ड शीर्षक और विवरण",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "कार्ड का खाका",
|
||||
"list-templates-swimlane": "सूची का खाका",
|
||||
"board-templates-swimlane": "बोर्ड का खाका",
|
||||
"what-to-do": "What do you want तक do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks अंदर में यह सूची is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "संकलित label '%s'",
|
||||
"activity-removed-label-card": "हटा दिया label '%s'",
|
||||
"activity-delete-attach-card": "deleted an संलग्नक",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "जोड़ें trigger",
|
||||
"r-add-action": "जोड़ें action",
|
||||
@@ -593,7 +614,7 @@
|
||||
"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": "कार्ड",
|
||||
"r-add": "जोड़ें",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+82
-57
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Elfogadás",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "__attachment__ mellékletet csatolt a kártyához: __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "__checklist__ ellenőrzőlistát adott hozzá a kártyához: __card__",
|
||||
"act-addChecklistItem": "__checklistItem__ elemet adott hozzá a(z) __checklist__ ellenőrzőlistához ezen a kártyán: __card__",
|
||||
"act-addComment": "hozzászólt a(z) __card__ kártyán: __comment__",
|
||||
"act-createBoard": "létrehozta a táblát: __board__",
|
||||
"act-createCard": "__card__ kártyát adott hozzá a listához: __list__",
|
||||
"act-createCustomField": "létrehozta a(z) __customField__ egyéni listát",
|
||||
"act-createList": "__list__ listát adott hozzá a táblához: __board__",
|
||||
"act-addBoardMember": "__member__ tagot hozzáadta a táblához: __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "importálta a táblát: __board__",
|
||||
"act-importCard": "importálta a kártyát: __card__",
|
||||
"act-importList": "importálta a listát: __list__",
|
||||
"act-joinMember": "__member__ tagot hozzáadta a kártyához: __card__",
|
||||
"act-moveCard": "áthelyezte a(z) __card__ kártyát: __oldList__ → __list__",
|
||||
"act-removeBoardMember": "eltávolította __member__ tagot a tábláról: __board__",
|
||||
"act-restoredCard": "visszaállította a(z) __card__ kártyát ide: __board__",
|
||||
"act-unjoinMember": "eltávolította __member__ tagot a kártyáról: __card__",
|
||||
"act-activity-notify": "Tevékenység értesítés",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Műveletek",
|
||||
@@ -42,25 +55,25 @@
|
||||
"activity-removed": "%s eltávolítva innen: %s",
|
||||
"activity-sent": "%s elküldve ide: %s",
|
||||
"activity-unjoined": "%s kilépett a csoportból",
|
||||
"activity-subtask-added": "added subtask to %s",
|
||||
"activity-subtask-added": "Alfeladat hozzáadva ehhez: %s",
|
||||
"activity-checked-item": "checked %s in checklist %s of %s",
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "ellenőrzőlista hozzáadva ehhez: %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "ellenőrzőlista elem hozzáadva ehhez: „%s”, ebben: %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Hozzáadás",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Melléklet hozzáadása",
|
||||
"add-board": "Tábla hozzáadása",
|
||||
"add-card": "Kártya hozzáadása",
|
||||
"add-swimlane": "Add Swimlane",
|
||||
"add-subtask": "Add Subtask",
|
||||
"add-subtask": "Alfeladat hozzáadása",
|
||||
"add-checklist": "Ellenőrzőlista hozzáadása",
|
||||
"add-checklist-item": "Elem hozzáadása az ellenőrzőlistához",
|
||||
"add-cover": "Borító hozzáadása",
|
||||
@@ -79,7 +92,7 @@
|
||||
"and-n-other-card_plural": "És __count__ egyéb kártya",
|
||||
"apply": "Alkalmaz",
|
||||
"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": "Mozgatás az archívumba",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Tábla visszaállítása",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archiválás",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Tag hozzárendelése",
|
||||
"attached": "csatolva",
|
||||
"attachment": "Melléklet",
|
||||
@@ -110,10 +125,10 @@
|
||||
"boardChangeTitlePopup-title": "Tábla átnevezése",
|
||||
"boardChangeVisibilityPopup-title": "Láthatóság megváltoztatása",
|
||||
"boardChangeWatchPopup-title": "Megfigyelés megváltoztatása",
|
||||
"boardMenuPopup-title": "Tábla menü",
|
||||
"boardMenuPopup-title": "Tábla beállítások",
|
||||
"boards": "Táblák",
|
||||
"board-view": "Tábla nézet",
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-cal": "Naptár",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view-lists": "Listák",
|
||||
"bucket-example": "Mint például „Bakancslista”",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Címkék",
|
||||
"cardMembersPopup-title": "Tagok",
|
||||
"cardMorePopup-title": "Több",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Kártyák",
|
||||
"cards-count": "Kártyák",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -159,7 +175,7 @@
|
||||
"changePasswordPopup-title": "Jelszó megváltoztatása",
|
||||
"changePermissionsPopup-title": "Jogosultságok megváltoztatása",
|
||||
"changeSettingsPopup-title": "Beállítások megváltoztatása",
|
||||
"subtasks": "Subtasks",
|
||||
"subtasks": "Alfeladat",
|
||||
"checklists": "Ellenőrzőlisták",
|
||||
"click-to-star": "Kattintson a tábla csillagozásához.",
|
||||
"click-to-unstar": "Kattintson a tábla csillagának eltávolításához.",
|
||||
@@ -200,11 +216,11 @@
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Számítógép",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-subtask-delete-dialog": "Biztosan törölni szeretnél az alfeladatot?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Kártya hivatkozásának másolása a vágólapra",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Keresés",
|
||||
"copyCardPopup-title": "Kártya másolása",
|
||||
"copyChecklistToManyCardsPopup-title": "Ellenőrzőlista sablon másolása több kártyára",
|
||||
"copyChecklistToManyCardsPopup-instructions": "A célkártyák címe és a leírások ebben a JSON formátumban",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "1. mérföldkő",
|
||||
"welcome-list1": "Alapok",
|
||||
"welcome-list2": "Speciális",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Mit szeretne tenni?",
|
||||
"wipLimitErrorPopup-title": "Érvénytelen WIP korlát",
|
||||
"wipLimitErrorPopup-dialog-pt1": "A listán lévő feladatok száma magasabb a meghatározott WIP korlátnál.",
|
||||
@@ -532,8 +551,8 @@
|
||||
"default-subtasks-board": "Subtasks for __board__ board",
|
||||
"default": "Default",
|
||||
"queue": "Queue",
|
||||
"subtask-settings": "Subtasks Settings",
|
||||
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
|
||||
"subtask-settings": "Alfeladat beállítások",
|
||||
"boardSubtaskSettingsPopup-title": "Tábla alfeladat beállítások",
|
||||
"show-subtasks-field": "Cards can have subtasks",
|
||||
"deposit-subtasks-board": "Deposit subtasks to this board:",
|
||||
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -571,8 +592,8 @@
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
"r-unarchived": "Restored from Archive",
|
||||
"r-archived": "Archívumba helyezve",
|
||||
"r-unarchived": "Helyreállítva az archívumból",
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
@@ -593,8 +614,8 @@
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "its list",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-archive": "Mozgatás az archívumba",
|
||||
"r-unarchive": "Helyreállítás az archívumból",
|
||||
"r-card": "card",
|
||||
"r-add": "Hozzáadás",
|
||||
"r-remove": "Remove",
|
||||
@@ -609,7 +630,7 @@
|
||||
"r-check": "Check",
|
||||
"r-uncheck": "Uncheck",
|
||||
"r-item": "item",
|
||||
"r-of-checklist": "of checklist",
|
||||
"r-of-checklist": "ellenőrzőlistából",
|
||||
"r-send-email": "Send an email",
|
||||
"r-to": "to",
|
||||
"r-subject": "subject",
|
||||
@@ -634,30 +655,34 @@
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
"r-d-check-all": "Check all items of a list",
|
||||
"r-d-uncheck-all": "Uncheck all items of a list",
|
||||
"r-d-check-one": "Check item",
|
||||
"r-d-check-one": "Elem ellenőrzése",
|
||||
"r-d-uncheck-one": "Uncheck item",
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-d-check-of-list": "ellenőrzőlistából",
|
||||
"r-d-add-checklist": "Ellenőrzőlista hozzáadása",
|
||||
"r-d-remove-checklist": "Ellenőrzőlista eltávolítása",
|
||||
"r-by": "által",
|
||||
"r-add-checklist": "Ellenőrzőlista hozzáadása",
|
||||
"r-with-items": "elemekkel",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"r-when-a-card-is-moved": "Amikor egy kártya másik listába kerül",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Authentication method",
|
||||
"authentication-type": "Authentication type",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"authentication-method": "Hitelesítési mód",
|
||||
"authentication-type": "Hitelesítés típusa",
|
||||
"custom-product-name": "Saját terméknév",
|
||||
"layout": "Elrendezés",
|
||||
"hide-logo": "Logo elrejtése",
|
||||
"add-custom-html-after-body-start": "Egyedi HTML hozzáadása <body> után",
|
||||
"add-custom-html-before-body-end": "1",
|
||||
"error-undefined": "Valami hiba történt",
|
||||
"error-ldap-login": "Hiba történt bejelentkezés közben",
|
||||
"display-authentication-method": "Hitelelesítési mód mutatása",
|
||||
"default-authentication-method": "Alapértelmezett hitelesítési mód",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Ընդունել",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "ավելացրել է __checklistItem__ __checklist__ on __card__-ին",
|
||||
"act-addComment": "մեկնաբանել է __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Add",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Members",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Terima",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "Lampirkan__attachment__ke__kartu__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "Dikomentari di__kartu__:__comment__",
|
||||
"act-createBoard": "Panel__dibuat__",
|
||||
"act-createCard": "Kartu__dilampirkan__ke__Daftar",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "Daftar__ditambahkan__ke__Panel",
|
||||
"act-addBoardMember": "Partisipan__ditambahkan__ke__Kartu",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "Panel__diimpor",
|
||||
"act-importCard": "Kartu__diimpor__",
|
||||
"act-importList": "Daftar__diimpor__",
|
||||
"act-joinMember": "Partisipan__ditambahkan__ke__kartu",
|
||||
"act-moveCard": "Pindahkan__kartu__dari__daftarlama__ke__daftar",
|
||||
"act-removeBoardMember": "Hapus__partisipan__dari__panel",
|
||||
"act-restoredCard": "Kembalikan__kartu__ke__panel",
|
||||
"act-unjoinMember": "hapus__partisipan__dari__kartu__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "__kartu__[__Panel__]",
|
||||
"actions": "Daftar Tindakan",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "daftar periksa ditambahkan ke %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Tambah",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Arsip",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Tugaskan anggota",
|
||||
"attached": "terlampir",
|
||||
"attachment": "Lampiran",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Ganti Nama Panel",
|
||||
"boardChangeVisibilityPopup-title": "Ubah Penampakan",
|
||||
"boardChangeWatchPopup-title": "Ubah Pengamatan",
|
||||
"boardMenuPopup-title": "Menu Panel",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Panel",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Daftar Label",
|
||||
"cardMembersPopup-title": "Daftar Anggota",
|
||||
"cardMorePopup-title": "Lainnya",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Daftar Kartu",
|
||||
"cards-count": "Daftar Kartu",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Cari",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Tingkat dasar",
|
||||
"welcome-list2": "Tingkat lanjut",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "Apa yang mau Anda lakukan?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Kwere",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "attached __attachment__ to __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "commented on __card__: __comment__",
|
||||
"act-createBoard": "created __board__",
|
||||
"act-createCard": "added __card__ to __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "added __list__ to __board__",
|
||||
"act-addBoardMember": "added __member__ to __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "imported __board__",
|
||||
"act-importCard": "imported __card__",
|
||||
"act-importList": "imported __list__",
|
||||
"act-joinMember": "added __member__ to __card__",
|
||||
"act-moveCard": "moved __card__ from __oldList__ to __list__",
|
||||
"act-removeBoardMember": "removed __member__ from __board__",
|
||||
"act-restoredCard": "restored __card__ to __board__",
|
||||
"act-unjoinMember": "removed __member__ from __card__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Actions",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "added checklist to %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "Tinye",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "Rename Board",
|
||||
"boardChangeVisibilityPopup-title": "Change Visibility",
|
||||
"boardChangeWatchPopup-title": "Change Watch",
|
||||
"boardMenuPopup-title": "Board Menu",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "Boards",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Aha",
|
||||
"cardMembersPopup-title": "Ndị otu",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copy card link to clipboard",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "Search",
|
||||
"copyCardPopup-title": "Copy Card",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+196
-171
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "Accetta",
|
||||
"act-activity-notify": "Notifica attività ",
|
||||
"act-addAttachment": "ha allegato __attachment__ a __card__",
|
||||
"act-addSubtask": "ha aggiunto il sotto compito__checklist__in_card__",
|
||||
"act-addChecklist": "aggiunta checklist __checklist__ a __card__",
|
||||
"act-addChecklistItem": "aggiunto __checklistItem__ alla checklist __checklist__ di __card__",
|
||||
"act-addComment": "ha commentato su __card__: __comment__",
|
||||
"act-createBoard": "ha creato __board__",
|
||||
"act-createCard": "ha aggiunto __card__ a __list__",
|
||||
"act-createCustomField": "campo personalizzato __customField__ creato",
|
||||
"act-createList": "ha aggiunto __list__ a __board__",
|
||||
"act-addBoardMember": "ha aggiunto __member__ a __board__",
|
||||
"act-archivedBoard": "__board__ spostata nell'archivio ",
|
||||
"act-archivedCard": "__card__ spostata nell'archivio",
|
||||
"act-archivedList": "__list__ spostato nell'archivio",
|
||||
"act-archivedSwimlane": "__swimlane__ spostato nell'archivio",
|
||||
"act-importBoard": "ha importato __board__",
|
||||
"act-importCard": "ha importato __card__",
|
||||
"act-importList": "ha importato __list__",
|
||||
"act-joinMember": "ha aggiunto __member__ a __card__",
|
||||
"act-moveCard": "ha spostato __card__ da __oldList__ a __list__",
|
||||
"act-removeBoardMember": "ha rimosso __member__ a __board__",
|
||||
"act-restoredCard": "ha ripristinato __card__ su __board__",
|
||||
"act-unjoinMember": "ha rimosso __member__ da __card__",
|
||||
"act-activity-notify": "Notifica attività",
|
||||
"act-addAttachment": "aggiunto allegato __attachment__ alla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-deleteAttachment": "eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-addSubtask": "aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-addLabel": "aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-addedLabel": "aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-removeLabel": "rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-removedLabel": "rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-removeChecklistItem": "rimosso elemento __checklistitem__ dalla lista di controllo __checkList__ della scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-checkedItem": "attivato __checklistitem__ nella lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-uncheckedItem": "disattivato __checklistItem__ della lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-completeChecklist": "completata lista di controllo __checklist__ nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__",
|
||||
"act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della corsia __swimlane__ della bacheca __board__",
|
||||
"act-createBoard": "bacheca __board__ creata",
|
||||
"act-createSwimlane": "creata corsia __swimlane__ alla bacheca __board__",
|
||||
"act-createCard": "scheda __card__ creata nella lista __list__ della corsia __swimlane__ della bacheca __board__",
|
||||
"act-createCustomField": "campo personalizzato __customField__ creato nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__",
|
||||
"act-createList": "aggiunta lista __list__ alla bacheca __board__",
|
||||
"act-addBoardMember": "aggiunto membro __member__ alla bacheca __board__",
|
||||
"act-archivedBoard": "Bacheca __board__ archiviata",
|
||||
"act-archivedCard": "Scheda __card__ della lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata",
|
||||
"act-archivedList": "Lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata",
|
||||
"act-archivedSwimlane": "Corsia __swimlane__ della bacheca __board__ archiviata",
|
||||
"act-importBoard": "Bacheca __board__ importata",
|
||||
"act-importCard": "scheda importata __card__ nella lista __list__ della corsia __swimlane__ della bacheca __board__",
|
||||
"act-importList": "lista __list__ importata nella corsia __swimlane__ della bacheca __board__",
|
||||
"act-joinMember": "aggiunto membro __member__ alla scheda __card__ della list __list__ nella corsia __swimlane__ della bacheca __board__",
|
||||
"act-moveCard": "spostata scheda __card__ della bacheca __board__ dalla lista __oldList__ della corsia __oldSwimlane__ alla lista __list__ della corsia __swimlane__",
|
||||
"act-moveCardToOtherBoard": "postata scheda __card__ dalla lista __oldList__ della corsia __oldSwimlane__ della bacheca __oldBoard__ alla lista __list__ nella corsia __swimlane__ della bacheca __board__",
|
||||
"act-removeBoardMember": "rimosso membro __member__ dalla bacheca __board__",
|
||||
"act-restoredCard": "scheda ripristinata __card__ della lista __list__ nella corsia __swimlane__ della bacheca __board__",
|
||||
"act-unjoinMember": "rimosso membro __member__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Azioni",
|
||||
@@ -32,7 +45,7 @@
|
||||
"activity-archived": "%s spostato nell'archivio",
|
||||
"activity-attached": "allegato %s a %s",
|
||||
"activity-created": "creato %s",
|
||||
"activity-customfield-created": "Campo personalizzato creato",
|
||||
"activity-customfield-created": "%s creato come campo personalizzato",
|
||||
"activity-excluded": "escluso %s da %s",
|
||||
"activity-imported": "importato %s in %s da %s",
|
||||
"activity-imported-board": "importato %s da %s",
|
||||
@@ -47,19 +60,19 @@
|
||||
"activity-unchecked-item": "disattivato %s nella checklist %s di %s",
|
||||
"activity-checklist-added": "aggiunta checklist a %s",
|
||||
"activity-checklist-removed": "È stata rimossa una checklist da%s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-completed": "checklist __checklist__ completata nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"activity-checklist-uncompleted": "La checklist non è stata completata",
|
||||
"activity-checklist-item-added": "Aggiunto l'elemento checklist a '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"activity-checklist-item-removed": "è stato rimosso un elemento della checklist da '%s' in %s",
|
||||
"add": "Aggiungere",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"activity-checked-item-card": "%s è stato selezionato nella checklist %s",
|
||||
"activity-unchecked-item-card": "%s è stato deselezionato nella checklist %s",
|
||||
"activity-checklist-completed-card": "checklist __label__ completata nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
|
||||
"activity-checklist-uncompleted-card": "La checklist %s non è completa",
|
||||
"add-attachment": "Aggiungi Allegato",
|
||||
"add-board": "Aggiungi Bacheca",
|
||||
"add-card": "Aggiungi Scheda",
|
||||
"add-swimlane": "Aggiungi Corsia",
|
||||
"add-swimlane": "Aggiungi Diagramma Swimlane",
|
||||
"add-subtask": "Aggiungi sotto-compito",
|
||||
"add-checklist": "Aggiungi Checklist",
|
||||
"add-checklist-item": "Aggiungi un elemento alla checklist",
|
||||
@@ -78,20 +91,22 @@
|
||||
"and-n-other-card": "E __count__ altra scheda",
|
||||
"and-n-other-card_plural": "E __count__ altre schede",
|
||||
"apply": "Applica",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Move to Archive",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"app-is-offline": "Caricamento, attendere prego. Aggiornare la pagina porterà ad una perdita dei dati. Se il caricamento non dovesse funzionare, per favore controlla che il server non sia stato fermato.",
|
||||
"archive": "Sposta nell'Archivio",
|
||||
"archive-all": "Sposta tutto nell'Archivio",
|
||||
"archive-board": "Sposta la bacheca nell'Archivio",
|
||||
"archive-card": "Sposta la scheda nell'Archivio",
|
||||
"archive-list": "Sposta elenco nell'Archivio",
|
||||
"archive-swimlane": "Sposta diagramma nell'Archivio",
|
||||
"archive-selection": "Sposta la selezione nell'archivio",
|
||||
"archiveBoardPopup-title": "Spostare al bacheca nell'archivio?",
|
||||
"archived-items": "Archivia",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"archived-boards": "Bacheche nell'archivio",
|
||||
"restore-board": "Ripristina Bacheca",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"no-archived-boards": "Nessuna bacheca presente nell'archivio",
|
||||
"archives": "Archivia",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Aggiungi membro",
|
||||
"attached": "allegato",
|
||||
"attachment": "Allegato",
|
||||
@@ -110,20 +125,20 @@
|
||||
"boardChangeTitlePopup-title": "Rinomina bacheca",
|
||||
"boardChangeVisibilityPopup-title": "Cambia visibilità",
|
||||
"boardChangeWatchPopup-title": "Cambia faccia",
|
||||
"boardMenuPopup-title": "Menu bacheca",
|
||||
"boardMenuPopup-title": "Impostazioni bacheca",
|
||||
"boards": "Bacheche",
|
||||
"board-view": "Visualizza bacheca",
|
||||
"board-view-cal": "Calendario",
|
||||
"board-view-swimlanes": "Corsie",
|
||||
"board-view-swimlanes": "Diagramma Swimlane",
|
||||
"board-view-lists": "Liste",
|
||||
"bucket-example": "Per esempio come \"una lista di cose da fare\"",
|
||||
"cancel": "Cancella",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "Questa scheda è stata spostata nell'archivio",
|
||||
"board-archived": "Questa bacheca è stata spostata nell'archivio",
|
||||
"card-comments-title": "Questa scheda ha %s commenti.",
|
||||
"card-delete-notice": "L'eliminazione è permanente. Tutte le azioni associate a questa scheda andranno perse.",
|
||||
"card-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di riaprire la scheda. Non potrai tornare indietro.",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-suggest-archive": "Puoi spostare una scheda nell'archivio per rimuoverla dalla bacheca e mantenere la sua attività",
|
||||
"card-due": "Scadenza",
|
||||
"card-due-on": "Scade",
|
||||
"card-spent": "Tempo trascorso",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "Etichette",
|
||||
"cardMembersPopup-title": "Membri",
|
||||
"cardMorePopup-title": "Altro",
|
||||
"cardTemplatePopup-title": "Crea un template",
|
||||
"cards": "Schede",
|
||||
"cards-count": "Schede",
|
||||
"casSignIn": "Entra con CAS",
|
||||
@@ -166,33 +182,33 @@
|
||||
"clipboard": "Clipboard o drag & drop",
|
||||
"close": "Chiudi",
|
||||
"close-board": "Chiudi bacheca",
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"close-board-pop": "Potrai ripristinare la bacheca cliccando sul tasto \"Archivio\" presente nell'intestazione della home.",
|
||||
"color-black": "nero",
|
||||
"color-blue": "blu",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-crimson": "Rosso cremisi",
|
||||
"color-darkgreen": "Verde scuro",
|
||||
"color-gold": "Dorato",
|
||||
"color-gray": "Grigio",
|
||||
"color-green": "verde",
|
||||
"color-indigo": "indigo",
|
||||
"color-indigo": "Indaco",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-magenta": "Magenta",
|
||||
"color-mistyrose": "Mistyrose",
|
||||
"color-navy": "Navy",
|
||||
"color-orange": "arancione",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-paleturquoise": "Turchese chiaro",
|
||||
"color-peachpuff": "Pesca",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "plum",
|
||||
"color-plum": "Prugna",
|
||||
"color-purple": "viola",
|
||||
"color-red": "rosso",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-saddlebrown": "Saddlebrown",
|
||||
"color-silver": "Argento",
|
||||
"color-sky": "azzurro",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-slateblue": "Ardesia",
|
||||
"color-white": "Bianco",
|
||||
"color-yellow": "giallo",
|
||||
"unset-color": "Unset",
|
||||
"unset-color": "Non impostato",
|
||||
"comment": "Commento",
|
||||
"comment-placeholder": "Scrivi Commento",
|
||||
"comment-only": "Solo commenti",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Sei sicuro di voler eliminare la checklist?",
|
||||
"copy-card-link-to-clipboard": "Copia link della scheda sulla clipboard",
|
||||
"linkCardPopup-title": "Collega scheda",
|
||||
"searchCardPopup-title": "Cerca scheda",
|
||||
"searchElementPopup-title": "Cerca",
|
||||
"copyCardPopup-title": "Copia Scheda",
|
||||
"copyChecklistToManyCardsPopup-title": "Copia template checklist su più schede",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Titolo e la descrizione della scheda di destinazione in questo formato JSON",
|
||||
@@ -220,7 +236,7 @@
|
||||
"custom-field-checkbox": "Casella di scelta",
|
||||
"custom-field-date": "Data",
|
||||
"custom-field-dropdown": "Lista a discesa",
|
||||
"custom-field-dropdown-none": "(nessun)",
|
||||
"custom-field-dropdown-none": "(niente)",
|
||||
"custom-field-dropdown-options": "Lista opzioni",
|
||||
"custom-field-dropdown-options-placeholder": "Premi invio per aggiungere altre opzioni",
|
||||
"custom-field-dropdown-unknown": "(sconosciuto)",
|
||||
@@ -299,20 +315,20 @@
|
||||
"import-board": "Importa bacheca",
|
||||
"import-board-c": "Importa bacheca",
|
||||
"import-board-title-trello": "Importa una bacheca da Trello",
|
||||
"import-board-title-wekan": "Import board from previous export",
|
||||
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
|
||||
"import-board-title-wekan": "Importa bacheca dall'esportazione precedente",
|
||||
"import-sandstorm-backup-warning": "Non cancellare i dati che importi dalla bacheca esportata in origine o da Trello prima che il controllo finisca e si riapra ancora, altrimenti otterrai un messaggio di errore Bacheca non trovata, che significa che i dati sono perduti.",
|
||||
"import-sandstorm-warning": "La bacheca importata cancellerà tutti i dati esistenti su questa bacheca e li rimpiazzerà con quelli della bacheca importata.",
|
||||
"from-trello": "Da Trello",
|
||||
"from-wekan": "From previous export",
|
||||
"from-wekan": "Dall'esportazione precedente",
|
||||
"import-board-instruction-trello": "Nella tua bacheca Trello vai a 'Menu', poi 'Altro', 'Stampa ed esporta', 'Esporta JSON', e copia il testo che compare.",
|
||||
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
|
||||
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
|
||||
"import-board-instruction-wekan": "Nella tua bacheca vai su \"Menu\", poi \"Esporta la bacheca\", e copia il testo nel file scaricato",
|
||||
"import-board-instruction-about-errors": "Se hai degli errori quando importi una bacheca, qualche volta l'importazione funziona comunque, e la bacheca si trova nella pagina \"Tutte le bacheche\"",
|
||||
"import-json-placeholder": "Incolla un JSON valido qui",
|
||||
"import-map-members": "Mappatura dei membri",
|
||||
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
|
||||
"import-members-map": "La bacheca che hai importato contiene alcuni membri. Per favore scegli i membri che vuoi importare tra i tuoi utenti",
|
||||
"import-show-user-mapping": "Rivedi la mappatura dei membri",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"import-user-select": "Scegli l'utente che vuoi venga utilizzato come questo membro",
|
||||
"importMapMembersAddPopup-title": "Scegli membro",
|
||||
"info": "Versione",
|
||||
"initials": "Iniziali",
|
||||
"invalid-date": "Data non valida",
|
||||
@@ -331,21 +347,21 @@
|
||||
"leave-board-pop": "Sei sicuro di voler abbandonare __boardTitle__? Sarai rimosso da tutte le schede in questa bacheca.",
|
||||
"leaveBoardPopup-title": "Abbandona Bacheca?",
|
||||
"link-card": "Link a questa scheda",
|
||||
"list-archive-cards": "Move all cards in this list to Archive",
|
||||
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
|
||||
"list-archive-cards": "Sposta tutte le schede in questo elenco nell'Archivio",
|
||||
"list-archive-cards-pop": "Questo rimuoverà tutte le schede nell'elenco dalla bacheca. Per vedere le schede nell'archivio e portarle dov'erano nella bacheca, clicca su \"Menu\" > \"Archivio\". ",
|
||||
"list-move-cards": "Sposta tutte le schede in questa lista",
|
||||
"list-select-cards": "Selezione tutte le schede in questa lista",
|
||||
"set-color-list": "Set Color",
|
||||
"set-color-list": "Imposta un colore",
|
||||
"listActionPopup-title": "Azioni disponibili",
|
||||
"swimlaneActionPopup-title": "Azioni corsia",
|
||||
"swimlaneAddPopup-title": "Add a Swimlane below",
|
||||
"swimlaneActionPopup-title": "Azioni diagramma Swimlane",
|
||||
"swimlaneAddPopup-title": "Aggiungi un diagramma Swimlane di seguito",
|
||||
"listImportCardPopup-title": "Importa una scheda di Trello",
|
||||
"listMorePopup-title": "Altro",
|
||||
"link-list": "Link a questa lista",
|
||||
"list-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di recuperare la lista. Non potrai tornare indietro.",
|
||||
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
|
||||
"list-delete-suggest-archive": "Puoi spostare un elenco nell'archivio per rimuoverlo dalla bacheca e mantentere la sua attività.",
|
||||
"lists": "Liste",
|
||||
"swimlanes": "Corsie",
|
||||
"swimlanes": "Diagramma Swimlane",
|
||||
"log-out": "Log Out",
|
||||
"log-in": "Log In",
|
||||
"loginPopup-title": "Log In",
|
||||
@@ -363,9 +379,9 @@
|
||||
"muted-info": "Non sarai mai notificato delle modifiche in questa bacheca",
|
||||
"my-boards": "Le mie bacheche",
|
||||
"name": "Nome",
|
||||
"no-archived-cards": "No cards in Archive.",
|
||||
"no-archived-lists": "No lists in Archive.",
|
||||
"no-archived-swimlanes": "No swimlanes in Archive.",
|
||||
"no-archived-cards": "Non ci sono schede nell'archivio.",
|
||||
"no-archived-lists": "Non ci sono elenchi nell'archivio.",
|
||||
"no-archived-swimlanes": "Non ci sono diagrammi Swimlane nell'archivio.",
|
||||
"no-results": "Nessun risultato",
|
||||
"normal": "Normale",
|
||||
"normal-desc": "Può visionare e modificare le schede. Non può cambiare le impostazioni.",
|
||||
@@ -401,7 +417,7 @@
|
||||
"restore": "Ripristina",
|
||||
"save": "Salva",
|
||||
"search": "Cerca",
|
||||
"rules": "Rules",
|
||||
"rules": "Regole",
|
||||
"search-cards": "Ricerca per titolo e descrizione scheda su questa bacheca",
|
||||
"search-example": "Testo da ricercare?",
|
||||
"select-color": "Seleziona Colore",
|
||||
@@ -445,7 +461,7 @@
|
||||
"uploaded-avatar": "Avatar caricato",
|
||||
"username": "Username",
|
||||
"view-it": "Vedi",
|
||||
"warn-list-archived": "warning: this card is in an list at Archive",
|
||||
"warn-list-archived": "Attenzione:questa scheda si trova in un elenco dell'archivio",
|
||||
"watch": "Segui",
|
||||
"watching": "Stai seguendo",
|
||||
"watching-info": "Sarai notificato per tutte le modifiche in questa bacheca",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Pietra miliare 1",
|
||||
"welcome-list1": "Basi",
|
||||
"welcome-list2": "Avanzate",
|
||||
"card-templates-swimlane": "Template scheda",
|
||||
"list-templates-swimlane": "Elenca i template",
|
||||
"board-templates-swimlane": "Bacheca dei template",
|
||||
"what-to-do": "Cosa vuoi fare?",
|
||||
"wipLimitErrorPopup-title": "Limite work in progress non valido. ",
|
||||
"wipLimitErrorPopup-dialog-pt1": "Il numero di compiti in questa lista è maggiore del limite di work in progress che hai definito in precedenza. ",
|
||||
@@ -464,7 +483,7 @@
|
||||
"disable-self-registration": "Disabilita Auto-registrazione",
|
||||
"invite": "Invita",
|
||||
"invite-people": "Invita persone",
|
||||
"to-boards": "Alla(e) bacheche(a)",
|
||||
"to-boards": "Alla(e) bacheca",
|
||||
"email-addresses": "Indirizzi email",
|
||||
"smtp-host-description": "L'indirizzo del server SMTP che gestisce le tue email.",
|
||||
"smtp-port-description": "La porta che il tuo server SMTP utilizza per le email in uscita.",
|
||||
@@ -478,14 +497,14 @@
|
||||
"send-smtp-test": "Invia un'email di test a te stesso",
|
||||
"invitation-code": "Codice d'invito",
|
||||
"email-invite-register-subject": "__inviter__ ti ha inviato un invito",
|
||||
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
|
||||
"email-smtp-test-subject": "SMTP Test Email",
|
||||
"email-invite-register-text": "Gentile __user__,\n\n__inviter__ ti ha invitato a partecipare a questa bacheca kanban per collaborare.\n\nPer favore segui il collegamento qui sotto:\n__url__\n\nIl tuo codice di invito è: __icode__\n\nGrazie.",
|
||||
"email-smtp-test-subject": "E-Mail di prova SMTP",
|
||||
"email-smtp-test-text": "Hai inviato un'email con successo",
|
||||
"error-invitation-code-not-exist": "Il codice d'invito non esiste",
|
||||
"error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.",
|
||||
"outgoing-webhooks": "Server esterni",
|
||||
"outgoingWebhooksPopup-title": "Server esterni",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"boardCardTitlePopup-title": "Filtro per Titolo Scheda",
|
||||
"new-outgoing-webhook": "Nuovo webhook in uscita",
|
||||
"no-name": "(Sconosciuto)",
|
||||
"Node_version": "Versione di Node",
|
||||
@@ -498,13 +517,13 @@
|
||||
"OS_Totalmem": "Memoria totale del sistema operativo ",
|
||||
"OS_Type": "Tipo di sistema operativo ",
|
||||
"OS_Uptime": "Tempo di attività del sistema operativo. ",
|
||||
"days": "days",
|
||||
"days": "giorni",
|
||||
"hours": "ore",
|
||||
"minutes": "minuti",
|
||||
"seconds": "secondi",
|
||||
"show-field-on-card": "Visualizza questo campo sulla scheda",
|
||||
"automatically-field-on-card": "Auto create field to all cards",
|
||||
"showLabel-field-on-card": "Show field label on minicard",
|
||||
"automatically-field-on-card": "Crea automaticamente i campi per tutte le schede",
|
||||
"showLabel-field-on-card": "Mostra l'etichetta di campo su minischeda",
|
||||
"yes": "Sì",
|
||||
"no": "No",
|
||||
"accounts": "Profili",
|
||||
@@ -519,10 +538,10 @@
|
||||
"card-end-on": "Termina il",
|
||||
"editCardReceivedDatePopup-title": "Cambia data ricezione",
|
||||
"editCardEndDatePopup-title": "Cambia data finale",
|
||||
"setCardColorPopup-title": "Set color",
|
||||
"setCardActionsColorPopup-title": "Choose a color",
|
||||
"setSwimlaneColorPopup-title": "Choose a color",
|
||||
"setListColorPopup-title": "Choose a color",
|
||||
"setCardColorPopup-title": "Imposta il colore",
|
||||
"setCardActionsColorPopup-title": "Scegli un colore",
|
||||
"setSwimlaneColorPopup-title": "Scegli un colore",
|
||||
"setListColorPopup-title": "Scegli un colore",
|
||||
"assigned-by": "Assegnato da",
|
||||
"requested-by": "Richiesto da",
|
||||
"board-delete-notice": "L'eliminazione è permanente. Tutte le azioni, liste e schede associate a questa bacheca andranno perse.",
|
||||
@@ -546,89 +565,91 @@
|
||||
"parent-card": "Scheda genitore",
|
||||
"source-board": "Bacheca d'origine",
|
||||
"no-parent": "Non mostrare i genitori",
|
||||
"activity-added-label": "added label '%s' to %s",
|
||||
"activity-removed-label": "removed label '%s' from %s",
|
||||
"activity-delete-attach": "deleted an attachment from %s",
|
||||
"activity-added-label": "L' etichetta '%s' è stata aggiunta a %s",
|
||||
"activity-removed-label": "L'etichetta '%s' è stata rimossa da %s",
|
||||
"activity-delete-attach": "Rimosso un allegato da %s",
|
||||
"activity-added-label-card": "aggiunta etichetta '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-removed-label-card": "L' etichetta '%s' è stata rimossa.",
|
||||
"activity-delete-attach-card": "Cancella un allegato",
|
||||
"activity-set-customfield": "imposta campo personalizzato '%s' a '%s' in %s",
|
||||
"activity-unset-customfield": "campo personalizzato non impostato '%s' in %s",
|
||||
"r-rule": "Ruolo",
|
||||
"r-add-trigger": "Aggiungi trigger",
|
||||
"r-add-action": "Aggiungi azione",
|
||||
"r-board-rules": "Regole del cruscotto",
|
||||
"r-board-rules": "Regole della bacheca",
|
||||
"r-add-rule": "Aggiungi regola",
|
||||
"r-view-rule": "Visualizza regola",
|
||||
"r-delete-rule": "Cancella regola",
|
||||
"r-new-rule-name": "Titolo nuova regola",
|
||||
"r-no-rules": "Nessuna regola",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-when-a-card": "Quando una scheda",
|
||||
"r-is": "è",
|
||||
"r-is-moved": "viene spostata",
|
||||
"r-added-to": "Aggiunto/a a ",
|
||||
"r-removed-from": "Rimosso da",
|
||||
"r-the-board": "Il cruscotto",
|
||||
"r-the-board": "La bacheca",
|
||||
"r-list": "lista",
|
||||
"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-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "When a member is",
|
||||
"r-when-the-member": "When the member",
|
||||
"r-name": "name",
|
||||
"r-when-a-attach": "When an attachment",
|
||||
"r-when-a-checklist": "When a checklist is",
|
||||
"r-when-the-checklist": "When the checklist",
|
||||
"r-completed": "Completed",
|
||||
"r-made-incomplete": "Made incomplete",
|
||||
"r-when-a-item": "When a checklist item is",
|
||||
"r-when-the-item": "When the checklist item",
|
||||
"r-checked": "Checked",
|
||||
"r-unchecked": "Unchecked",
|
||||
"r-move-card-to": "Move card to",
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "its list",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-card": "card",
|
||||
"set-filter": "Imposta un filtro",
|
||||
"r-moved-to": "Spostato/a a ",
|
||||
"r-moved-from": "Spostato/a da",
|
||||
"r-archived": "Spostato/a nell'archivio",
|
||||
"r-unarchived": "Ripristinato/a dall'archivio",
|
||||
"r-a-card": "una scheda",
|
||||
"r-when-a-label-is": "Quando un'etichetta viene",
|
||||
"r-when-the-label-is": "Quando l'etichetta viene",
|
||||
"r-list-name": "Nome dell'elenco",
|
||||
"r-when-a-member": "Quando un membro viene",
|
||||
"r-when-the-member": "Quando un membro viene",
|
||||
"r-name": "nome",
|
||||
"r-when-a-attach": "Quando un allegato",
|
||||
"r-when-a-checklist": "Quando una checklist è",
|
||||
"r-when-the-checklist": "Quando la checklist",
|
||||
"r-completed": "Completato/a",
|
||||
"r-made-incomplete": "Rendi incompleto",
|
||||
"r-when-a-item": "Quando un elemento della checklist è",
|
||||
"r-when-the-item": "Quando un elemento della checklist",
|
||||
"r-checked": "Selezionato",
|
||||
"r-unchecked": "Deselezionato",
|
||||
"r-move-card-to": "Sposta scheda a",
|
||||
"r-top-of": "Al di sopra di",
|
||||
"r-bottom-of": "Al di sotto di",
|
||||
"r-its-list": "il suo elenco",
|
||||
"r-archive": "Sposta nell'Archivio",
|
||||
"r-unarchive": "Ripristina dall'archivio",
|
||||
"r-card": "scheda",
|
||||
"r-add": "Aggiungere",
|
||||
"r-remove": "Remove",
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-remove": "Rimuovi",
|
||||
"r-label": "etichetta",
|
||||
"r-member": "membro",
|
||||
"r-remove-all": "Rimuovi tutti i membri dalla scheda",
|
||||
"r-set-color": "Imposta il colore a",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
"r-items-check": "items of checklist",
|
||||
"r-check": "Check",
|
||||
"r-uncheck": "Uncheck",
|
||||
"r-item": "item",
|
||||
"r-check-all": "Spunta tutti",
|
||||
"r-uncheck-all": "Togli la spunta a tutti",
|
||||
"r-items-check": "Elementi della checklist",
|
||||
"r-check": "Spunta",
|
||||
"r-uncheck": "Togli la spunta",
|
||||
"r-item": "elemento",
|
||||
"r-of-checklist": "della lista di cose da fare",
|
||||
"r-send-email": "Send an email",
|
||||
"r-to": "to",
|
||||
"r-send-email": "Invia un e-mail",
|
||||
"r-to": "a",
|
||||
"r-subject": "soggetto",
|
||||
"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-rule-details": "Dettagli della regola",
|
||||
"r-d-move-to-top-gen": "Sposta la scheda al di sopra del suo elenco",
|
||||
"r-d-move-to-top-spec": "Sposta la scheda la di sopra dell'elenco",
|
||||
"r-d-move-to-bottom-gen": "Sposta la scheda in fondo alla sua lista",
|
||||
"r-d-move-to-bottom-spec": "Muovi la scheda in fondo alla lista",
|
||||
"r-d-send-email": "Spedisci email",
|
||||
"r-d-send-email-to": "to",
|
||||
"r-d-send-email-to": "a",
|
||||
"r-d-send-email-subject": "soggetto",
|
||||
"r-d-send-email-message": "Messaggio",
|
||||
"r-d-archive": "Move card to Archive",
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-archive": "Sposta la scheda nell'archivio",
|
||||
"r-d-unarchive": "Ripristina la scheda dall'archivio",
|
||||
"r-d-add-label": "Aggiungi etichetta",
|
||||
"r-d-remove-label": "Rimuovi Etichetta",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-create-card": "Crea una nuova scheda",
|
||||
"r-in-list": "in elenco",
|
||||
"r-in-swimlane": "nel diagramma swimlane",
|
||||
"r-d-add-member": "Aggiungi membro",
|
||||
"r-d-remove-member": "Rimuovi membro",
|
||||
"r-d-remove-all-member": "Rimouvi tutti i membri",
|
||||
@@ -639,25 +660,29 @@
|
||||
"r-d-check-of-list": "della lista di cose da fare",
|
||||
"r-d-add-checklist": "Aggiungi lista di cose da fare",
|
||||
"r-d-remove-checklist": "Rimuovi check list",
|
||||
"r-by": "by",
|
||||
"r-by": "da",
|
||||
"r-add-checklist": "Aggiungi lista di cose da fare",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-with-items": "con elementi",
|
||||
"r-items-list": "elemento1,elemento2,elemento3",
|
||||
"r-add-swimlane": "Aggiungi un diagramma swimlane",
|
||||
"r-swimlane-name": "Nome diagramma swimlane",
|
||||
"r-board-note": "Nota: Lascia un campo vuoto per abbinare ogni possibile valore",
|
||||
"r-checklist-note": "Nota: Gli elementi della checklist devono essere scritti come valori separati dalla virgola",
|
||||
"r-when-a-card-is-moved": "Quando una scheda viene spostata su un'altra lista",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "Oauth2",
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Metodo di Autenticazione",
|
||||
"authentication-type": "Tipo Autenticazione",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"custom-product-name": "Nome prodotto personalizzato",
|
||||
"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",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"hide-logo": "Nascondi il logo",
|
||||
"add-custom-html-after-body-start": "Aggiungi codice HTML personalizzato dopo <body> inzio",
|
||||
"add-custom-html-before-body-end": "Aggiunti il codice HTML prima di </body> fine",
|
||||
"error-undefined": "Qualcosa è andato storto",
|
||||
"error-ldap-login": "C'è stato un errore mentre provavi ad effettuare il login",
|
||||
"display-authentication-method": "Mostra il metodo di autenticazione",
|
||||
"default-authentication-method": "Metodo di autenticazione predefinito",
|
||||
"duplicate-board": "Duplica bacheca",
|
||||
"people-number": "Il numero di persone è:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "受け入れ",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "__card__ に __attachment__ を添付しました",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "__card__ に __checklist__ を追加しました",
|
||||
"act-addChecklistItem": "__checklist__ on __card__ に __checklistItem__ を追加しました",
|
||||
"act-addComment": "__card__: __comment__ をコメントしました",
|
||||
"act-createBoard": "__board__ を作成しました",
|
||||
"act-createCard": "__list__ に __card__ を追加しました",
|
||||
"act-createCustomField": "__customField__ を作成しました",
|
||||
"act-createList": "__board__ に __list__ を追加しました",
|
||||
"act-addBoardMember": "__board__ に __member__ を追加しました",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "__board__ をインポートしました",
|
||||
"act-importCard": "__card__ をインポートしました",
|
||||
"act-importList": "__list__ をインポートしました",
|
||||
"act-joinMember": "__card__ に __member__ を追加しました",
|
||||
"act-moveCard": "__card__ を __oldList__ から __list__ に 移動しました",
|
||||
"act-removeBoardMember": "__board__ から __member__ を削除しました",
|
||||
"act-restoredCard": "__card__ を __board__ にリストアしました",
|
||||
"act-unjoinMember": "__card__ から __member__ を削除しました",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "操作",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "%s にチェックリストを追加しました",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "追加",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "添付ファイルを追加",
|
||||
"add-board": "ボードを追加",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "ボードをリストア",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "アーカイブ",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "メンバーの割当",
|
||||
"attached": "添付されました",
|
||||
"attachment": "添付ファイル",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "ボード名の変更",
|
||||
"boardChangeVisibilityPopup-title": "公開範囲の変更",
|
||||
"boardChangeWatchPopup-title": "ウォッチの変更",
|
||||
"boardMenuPopup-title": "ボードメニュー",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "ボード",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "ラベル",
|
||||
"cardMembersPopup-title": "メンバー",
|
||||
"cardMorePopup-title": "さらに見る",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "カード",
|
||||
"cards-count": "カード",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "カードへのリンクをクリップボードにコピー",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "検索",
|
||||
"copyCardPopup-title": "カードをコピー",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "基本",
|
||||
"welcome-list2": "高度",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "何をしたいですか?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
+52
-27
@@ -1,28 +1,41 @@
|
||||
{
|
||||
"accept": "დათანხმება",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "მიბმულია__მიბმა __ბარათზე__",
|
||||
"act-addSubtask": "დამატებულია ქვესაქმიანობა__ჩამონათვალი__ ბარათზე__",
|
||||
"act-addChecklist": "დაამატა ჩამონათვალი__ჩამონათვალი__ ბარათზე__",
|
||||
"act-addChecklistItem": "დაამატა __ჩამონათვალის ელემენტი__ ჩამონათვალში __ჩამონათვალი __ბარათზე__",
|
||||
"act-addComment": "დააკომენტარა__ბარათზე__: __კომენტარი__",
|
||||
"act-createBoard": "შექმნილია __დაფა__",
|
||||
"act-createCard": "დაამატა __ბარათი__ ჩამონათვალში__",
|
||||
"act-createCustomField": "შექმნა სტანდარტული ველი __სტანდარტული ველი__",
|
||||
"act-createList": "დაამატა __ჩამონათვალი__ დაფაზე__",
|
||||
"act-addBoardMember": "დაამატა __წევრი__ დაფაზე__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "იმპორტირებულია__დაფა__",
|
||||
"act-importCard": "იმპორტირებულია __ბარათი__",
|
||||
"act-importList": "იმპორტირებულია __სია__",
|
||||
"act-joinMember": "დაამატა __წევრი__ ბარათზე__",
|
||||
"act-moveCard": "გადაიტანა __ბარათი __oldList__ დან__ ჩამონათვალ__ში__",
|
||||
"act-removeBoardMember": "წაშალა__წევრი__ დაფიდან__",
|
||||
"act-restoredCard": "აღადგინა __ბარათი __დაფა__ზე__",
|
||||
"act-unjoinMember": "წაშალა__წევრი__ ბარათი __დან__",
|
||||
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createBoard": "created board __board__",
|
||||
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
|
||||
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-createList": "added list __list__ to board __board__",
|
||||
"act-addBoardMember": "added member __member__ to board __board__",
|
||||
"act-archivedBoard": "Board __board__ moved to Archive",
|
||||
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
|
||||
"act-importBoard": "imported board __board__",
|
||||
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
|
||||
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
|
||||
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-removeBoardMember": "removed member __member__ from board __board__",
|
||||
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__დაფა__] __ბარათი__",
|
||||
"actions": "მოქმედებები",
|
||||
@@ -47,14 +60,14 @@
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "დაემატა ჩამონათვალი %s-ს",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "დამატებულია ჩამონათვალის ელემენტები '%s' %s-ში",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"add": "დამატება",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "მიბმული ფაილის დამატება",
|
||||
"add-board": "დაფის დამატება",
|
||||
@@ -92,6 +105,8 @@
|
||||
"restore-board": "ბარათის აღდგენა",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"template": "Template",
|
||||
"templates": "Templates",
|
||||
"assign-member": "უფლებამოსილი წევრი",
|
||||
"attached": "მიბმული",
|
||||
"attachment": "მიბმული ფიალი",
|
||||
@@ -110,7 +125,7 @@
|
||||
"boardChangeTitlePopup-title": "დაფის სახელის ცვლილება",
|
||||
"boardChangeVisibilityPopup-title": "ხილვადობის შეცვლა",
|
||||
"boardChangeWatchPopup-title": "საათის შეცვლა",
|
||||
"boardMenuPopup-title": "დაფის მენიუ",
|
||||
"boardMenuPopup-title": "Board Settings",
|
||||
"boards": "დაფები",
|
||||
"board-view": "დაფის ნახვა",
|
||||
"board-view-cal": "კალენდარი",
|
||||
@@ -143,6 +158,7 @@
|
||||
"cardLabelsPopup-title": "ნიშნები",
|
||||
"cardMembersPopup-title": "წევრები",
|
||||
"cardMorePopup-title": "მეტი",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "ბარათები",
|
||||
"cards-count": "ბარათები",
|
||||
"casSignIn": "შესვლა CAS-ით",
|
||||
@@ -204,7 +220,7 @@
|
||||
"confirm-checklist-delete-dialog": "დარწმუნებული ხართ, რომ გსურთ კატალოგის წაშლა ? ",
|
||||
"copy-card-link-to-clipboard": "დააკოპირეთ ბარათის ბმული clipboard-ზე",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchElementPopup-title": "ძებნა",
|
||||
"copyCardPopup-title": "ბარათის ასლი",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
|
||||
@@ -453,6 +469,9 @@
|
||||
"welcome-swimlane": "ეტაპი 1 ",
|
||||
"welcome-list1": "ბაზისური ",
|
||||
"welcome-list2": "დაწინაურებული",
|
||||
"card-templates-swimlane": "Card Templates",
|
||||
"list-templates-swimlane": "List Templates",
|
||||
"board-templates-swimlane": "Board Templates",
|
||||
"what-to-do": "რისი გაკეთება გსურთ? ",
|
||||
"wipLimitErrorPopup-title": "არასწორი WIP ლიმიტი",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
@@ -552,6 +571,8 @@
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
|
||||
"activity-unset-customfield": "unset custom field '%s' in %s",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
@@ -659,5 +680,9 @@
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
"error-ldap-login": "An error occurred while trying to login",
|
||||
"display-authentication-method": "Display Authentication Method",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplicate Board",
|
||||
"people-number": "The number of people is:"
|
||||
}
|
||||
Loaded 100 of 530 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user