Compare commits
743 Commits
backport/7
...
fix/autosa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50f35c7880 | ||
|
|
12b656dd8c | ||
|
|
661eea3018 | ||
|
|
ecd3cb42de | ||
|
|
f49c8f6ee4 | ||
|
|
96b56a2447 | ||
|
|
26badb58dd | ||
|
|
04d9433bdd | ||
|
|
a69eb654fd | ||
|
|
ab5ccb7bc1 | ||
|
|
f054cc2fbd | ||
|
|
1afc5cdbcc | ||
|
|
1a6e5929b2 | ||
|
|
74a3ab5008 | ||
|
|
0ebd05e649 | ||
|
|
3611c8f8ac | ||
|
|
da3b857ab0 | ||
|
|
199b698cb7 | ||
|
|
fb1132652a | ||
|
|
f78c3d42df | ||
|
|
4a879ab1fb | ||
|
|
b4e9dd39cc | ||
|
|
9035a23af8 | ||
|
|
bffa4d0925 | ||
|
|
516294ee23 | ||
|
|
5a39996357 | ||
|
|
569a0961fd | ||
|
|
376f46b7ba | ||
|
|
447dc60f37 | ||
|
|
480af39d56 | ||
|
|
7d18f3a48b | ||
|
|
51f5b8f023 | ||
|
|
1e68e1ff03 | ||
|
|
a13619690e | ||
|
|
3115363c28 | ||
|
|
6ace1867e1 | ||
|
|
af4a610a25 | ||
|
|
d40661a985 | ||
|
|
0a14a0dfd8 | ||
|
|
72d3cfa771 | ||
|
|
411c0d9d46 | ||
|
|
ec33c26fe4 | ||
|
|
8fcb4a47ae | ||
|
|
44d244f9aa | ||
|
|
3ed1fbcc40 | ||
|
|
7394cb2d48 | ||
|
|
4f39328d59 | ||
|
|
b877c58343 | ||
|
|
6334b36666 | ||
|
|
f08eeec3a8 | ||
|
|
eec2ccd9ed | ||
|
|
3c8728c9ee | ||
|
|
684cf519ce | ||
|
|
215a4637b0 | ||
|
|
cab45170e5 | ||
|
|
cd50becc49 | ||
|
|
d778a48afb | ||
|
|
0a1ed8e0c2 | ||
|
|
a200afa168 | ||
|
|
3277de5cb4 | ||
|
|
34effdc00e | ||
|
|
014372a21a | ||
|
|
7674a85f68 | ||
|
|
357c6c1c5a | ||
|
|
23be704099 | ||
|
|
2571d48290 | ||
|
|
c513b1d5b5 | ||
|
|
b80e0d9297 | ||
|
|
382c05ed8d | ||
|
|
1283b8d78a | ||
|
|
465f24f2f1 | ||
|
|
ba0d211720 | ||
|
|
23f56be988 | ||
|
|
87f2d65a96 | ||
|
|
c95b3b746d | ||
|
|
a3fa72341d | ||
|
|
da850b18ae | ||
|
|
771cf93cf6 | ||
|
|
0ed8b21b3c | ||
|
|
6f4f59a976 | ||
|
|
f80d7a5e79 | ||
|
|
e3843f9808 | ||
|
|
1ec7f1a971 | ||
|
|
152181ff67 | ||
|
|
18eea3584e | ||
|
|
844d492c8d | ||
|
|
840e9f309f | ||
|
|
fe53440ee4 | ||
|
|
162dbf25dd | ||
|
|
17de153ec8 | ||
|
|
58027c8294 | ||
|
|
79eba77b49 | ||
|
|
0efdfab232 | ||
|
|
ba9d2a4514 | ||
|
|
5744944957 | ||
|
|
1c1e3e944e | ||
|
|
85bb603103 | ||
|
|
90f10190ac | ||
|
|
ab3b2aa23c | ||
|
|
b9c0d454d5 | ||
|
|
438825530c | ||
|
|
c346c3cdf8 | ||
|
|
f1da8b30a4 | ||
|
|
8229d40981 | ||
|
|
244d61c783 | ||
|
|
879e59c003 | ||
|
|
10dc1fe9c1 | ||
|
|
4741817594 | ||
|
|
af99211d6b | ||
|
|
b120ce868d | ||
|
|
f0ea3f3ce5 | ||
|
|
2f0caac403 | ||
|
|
cc93386da6 | ||
|
|
5573a8bb1a | ||
|
|
c2e2e73b88 | ||
|
|
e509ac77d4 | ||
|
|
909af7e1bb | ||
|
|
6828144815 | ||
|
|
1d9382429e | ||
|
|
f68f7b54d6 | ||
|
|
dd4da2dd34 | ||
|
|
327bfff315 | ||
|
|
0b6c492c75 | ||
|
|
bbe1b37dfe | ||
|
|
3b5bf56049 | ||
|
|
97ab42ad5c | ||
|
|
42d3e54841 | ||
|
|
8dd62dd8d9 | ||
|
|
160900f2bb | ||
|
|
020107d3f4 | ||
|
|
68fb689df9 | ||
|
|
97d8018cd1 | ||
|
|
d666cba097 | ||
|
|
a8c337eb07 | ||
|
|
a3a46012a4 | ||
|
|
1aa7105ceb | ||
|
|
a042a4b076 | ||
|
|
d0f992ecbb | ||
|
|
fc245759a3 | ||
|
|
60bba3332b | ||
|
|
c93e07e0bd | ||
|
|
9e6975b22b | ||
|
|
979f9b2c53 | ||
|
|
307bdf5e68 | ||
|
|
4380533a66 | ||
|
|
3a1fbb90c3 | ||
|
|
dd64e0c73d | ||
|
|
8a9751ac6b | ||
|
|
c16f26d8d2 | ||
|
|
c7edec8f6e | ||
|
|
a6de59fe9c | ||
|
|
81e2c4768b | ||
|
|
3c917f3b2d | ||
|
|
6fd24ffa45 | ||
|
|
8c891c7f57 | ||
|
|
b73c2becda | ||
|
|
a9235e00c7 | ||
|
|
f8ad05b55b | ||
|
|
be497a741c | ||
|
|
62a9ce3131 | ||
|
|
7799854df4 | ||
|
|
bf961c3de4 | ||
|
|
5f73d97e4e | ||
|
|
32f0852a23 | ||
|
|
d80c9b3eec | ||
|
|
002bac60b1 | ||
|
|
08756b6c5d | ||
|
|
71bb838964 | ||
|
|
6c55e3cd70 | ||
|
|
8391d843d5 | ||
|
|
7cb9f8b966 | ||
|
|
1dfbec4278 | ||
|
|
26861c890d | ||
|
|
6841d4c068 | ||
|
|
4e70286629 | ||
|
|
54a5a1ecb2 | ||
|
|
4139f8b94a | ||
|
|
5c21cd2cf5 | ||
|
|
af253270aa | ||
|
|
6a64b4fc75 | ||
|
|
4b260a047c | ||
|
|
8d41f9730f | ||
|
|
2adacaa39e | ||
|
|
69fcd9bfdf | ||
|
|
c0b3775232 | ||
|
|
df0e909be4 | ||
|
|
96905c891c | ||
|
|
58c8dd5221 | ||
|
|
e21c82b38e | ||
|
|
02afc218ff | ||
|
|
50d199dd08 | ||
|
|
ff74bfbf13 | ||
|
|
a64bec0ecd | ||
|
|
d66e6408b1 | ||
|
|
324eb05598 | ||
|
|
9938a6d57f | ||
|
|
c2e4165bf7 | ||
|
|
7de0d6f1c4 | ||
|
|
5631741b6b | ||
|
|
724ad74c47 | ||
|
|
c8897477a7 | ||
|
|
7ac93d311c | ||
|
|
be8806102a | ||
|
|
f6a5877b85 | ||
|
|
9360a49d50 | ||
|
|
3aee848221 | ||
|
|
2f53f8a1d6 | ||
|
|
d63764fa78 | ||
|
|
d06ec0ad98 | ||
|
|
4bf086b55e | ||
|
|
99e2912d7c | ||
|
|
10aed3660c | ||
|
|
6628c42eca | ||
|
|
dbe1ced6b0 | ||
|
|
04b4da39c9 | ||
|
|
530a695e6f | ||
|
|
02d7dd469e | ||
|
|
71340b1217 | ||
|
|
153a9d2b7d | ||
|
|
e18f73a333 | ||
|
|
127f1b2d40 | ||
|
|
fe4c8df97e | ||
|
|
d5582535d6 | ||
|
|
7ec112ae1d | ||
|
|
aa747d7d62 | ||
|
|
d97f6c1a5f | ||
|
|
8e0b585662 | ||
|
|
c0f7e16463 | ||
|
|
71b4700a07 | ||
|
|
688649f5a8 | ||
|
|
03cdc47540 | ||
|
|
9f06a43d4b | ||
|
|
d31e31735d | ||
|
|
4a05762c0a | ||
|
|
a72f48f9ce | ||
|
|
7e6f23fa82 | ||
|
|
a72f4e3aa3 | ||
|
|
ec8945bb54 | ||
|
|
760f771e11 | ||
|
|
f0a443cbb6 | ||
|
|
69b9c09a14 | ||
|
|
7c93108172 | ||
|
|
899d8a6531 | ||
|
|
60b34d190a | ||
|
|
438a149304 | ||
|
|
9a2fcf6925 | ||
|
|
e3c802c0f3 | ||
|
|
ea84743864 | ||
|
|
abd38e0c15 | ||
|
|
0ec1f7151c | ||
|
|
a27cbf8bad | ||
|
|
f4a1424e90 | ||
|
|
a92dc282a8 | ||
|
|
e3ffbf73c3 | ||
|
|
c6e075af92 | ||
|
|
144f293231 | ||
|
|
6d78bc70f3 | ||
|
|
bf15865957 | ||
|
|
d2e5c0c515 | ||
|
|
933f2515db | ||
|
|
17bf361767 | ||
|
|
1df731396f | ||
|
|
968ea30fd4 | ||
|
|
8f75c7f92d | ||
|
|
234be011cc | ||
|
|
fa2f5bcab8 | ||
|
|
685014ec48 | ||
|
|
1cd6c55d30 | ||
|
|
6dbcf5d17b | ||
|
|
f84d7c372b | ||
|
|
8be8647f6d | ||
|
|
eb878055ae | ||
|
|
00b334d3d9 | ||
|
|
5905154fe0 | ||
|
|
8280f0796f | ||
|
|
18ea2f9a7e | ||
|
|
3cbddae6bc | ||
|
|
aac11e96b5 | ||
|
|
2e62a9c82a | ||
|
|
ec18ec758b | ||
|
|
8f3e2ae1d9 | ||
|
|
7f00601007 | ||
|
|
175c10c146 | ||
|
|
8dc0933c47 | ||
|
|
8c52b9bad9 | ||
|
|
a1c9396946 | ||
|
|
b0fbb386b8 | ||
|
|
e77a2fcd79 | ||
|
|
89152325be | ||
|
|
03cb9e2bc5 | ||
|
|
3c6f8ec419 | ||
|
|
3cfb1f6bfe | ||
|
|
96ad191ce2 | ||
|
|
52d4039dc8 | ||
|
|
73b3517840 | ||
|
|
3d78802446 | ||
|
|
8a99e6d539 | ||
|
|
0e08ad16e1 | ||
|
|
d04ab25315 | ||
|
|
19d35c65a0 | ||
|
|
1783914d3a | ||
|
|
c837dd4db6 | ||
|
|
db22052729 | ||
|
|
116babcaaf | ||
|
|
94da732bfb | ||
|
|
86d42b7060 | ||
|
|
122387a195 | ||
|
|
028f26a969 | ||
|
|
13c13b8dde | ||
|
|
5df4a49ff5 | ||
|
|
97902d2f6a | ||
|
|
db6221d1c9 | ||
|
|
0223dd9a3a | ||
|
|
974a4c979a | ||
|
|
51ba51fe33 | ||
|
|
4d5c69f250 | ||
|
|
9bddab4928 | ||
|
|
6dcb1d4b8b | ||
|
|
9ed384fa20 | ||
|
|
7cdc79a9ef | ||
|
|
852770c574 | ||
|
|
74afeb85d0 | ||
|
|
12a494720b | ||
|
|
b3261e0b56 | ||
|
|
88dbb010d0 | ||
|
|
d8adaf5fe6 | ||
|
|
2a36b45072 | ||
|
|
4e6474fa99 | ||
|
|
dbe7536339 | ||
|
|
b5e08110ab | ||
|
|
a7f2558aab | ||
|
|
3c3e6fa7d2 | ||
|
|
6a2b092ad6 | ||
|
|
5f2c300b21 | ||
|
|
439e44128a | ||
|
|
55056e27f1 | ||
|
|
22c36a0d77 | ||
|
|
1ebaa0c41f | ||
|
|
a2dbb94179 | ||
|
|
6f6f54965c | ||
|
|
5a833ec367 | ||
|
|
f1161be49f | ||
|
|
c0731ce142 | ||
|
|
4534ad5a92 | ||
|
|
6788210c27 | ||
|
|
1051dea281 | ||
|
|
eb9fce2e5f | ||
|
|
955a16f1c5 | ||
|
|
f38773473b | ||
|
|
b15254f1ed | ||
|
|
6dd623f796 | ||
|
|
41e97d7281 | ||
|
|
1b2a352df1 | ||
|
|
7fcad2425d | ||
|
|
5fb43086b6 | ||
|
|
7b4586a43a | ||
|
|
aaa76f7bd0 | ||
|
|
8260296d64 | ||
|
|
b02bc530f1 | ||
|
|
1b4e859431 | ||
|
|
acc61ad584 | ||
|
|
cb1d5c49e0 | ||
|
|
0c7b1c4731 | ||
|
|
629ef85d64 | ||
|
|
914f1d76ac | ||
|
|
0923070c45 | ||
|
|
bbf51952e0 | ||
|
|
1d1c2df8f3 | ||
|
|
0780b10170 | ||
|
|
fd6ef9b6eb | ||
|
|
da4a54900c | ||
|
|
53bd32d6b6 | ||
|
|
f7fa419105 | ||
|
|
023ab01e93 | ||
|
|
615d5ef871 | ||
|
|
a52b7b9742 | ||
|
|
dcbc6bc604 | ||
|
|
ce13d89e07 | ||
|
|
7114b10871 | ||
|
|
100404d25f | ||
|
|
60bfc192d3 | ||
|
|
fd090c7749 | ||
|
|
d735308bd3 | ||
|
|
4ec068ca62 | ||
|
|
f5e3e5e0f8 | ||
|
|
94aee3e07a | ||
|
|
b1f7c623a1 | ||
|
|
afa95d3c50 | ||
|
|
ba8e77abfe | ||
|
|
8c09047203 | ||
|
|
baa85e8947 | ||
|
|
f1e5acc52e | ||
|
|
d76b7a4667 | ||
|
|
df32a3ee34 | ||
|
|
2fa74662db | ||
|
|
d5fd80d116 | ||
|
|
97afe9fa85 | ||
|
|
141e2dbc08 | ||
|
|
7a0b243885 | ||
|
|
e662e621ad | ||
|
|
98c3e4acbd | ||
|
|
7b21a9a7ea | ||
|
|
90af63d757 | ||
|
|
facca9c7e6 | ||
|
|
37119c22e4 | ||
|
|
be748f5f6f | ||
|
|
fa23a3852f | ||
|
|
c5c8a6ef71 | ||
|
|
047fcb6584 | ||
|
|
75be929077 | ||
|
|
46c4c7d4fd | ||
|
|
aa3a829592 | ||
|
|
351af0bd39 | ||
|
|
66fbaac8d7 | ||
|
|
3b4fc9db20 | ||
|
|
1292f68340 | ||
|
|
2861d9f89f | ||
|
|
a552bde7c7 | ||
|
|
0f593eda27 | ||
|
|
0c71403859 | ||
|
|
facb5f4a33 | ||
|
|
13d6a79b1f | ||
|
|
8104df7c14 | ||
|
|
a35489bee3 | ||
|
|
fe1c4e5b34 | ||
|
|
eeda7b4fb9 | ||
|
|
052774397c | ||
|
|
f2c30afe8a | ||
|
|
ea01d84419 | ||
|
|
e2cc8c3bd9 | ||
|
|
c630d3e809 | ||
|
|
97eb0a2c5e | ||
|
|
59fa3cd11c | ||
|
|
bdaf28eef4 | ||
|
|
00a1fa8b85 | ||
|
|
76792c61a1 | ||
|
|
989db86f83 | ||
|
|
61019d5625 | ||
|
|
ba45022c79 | ||
|
|
1fa8c5ff35 | ||
|
|
e98adcd65c | ||
|
|
92e6659301 | ||
|
|
96957af0ce | ||
|
|
7cd8946e20 | ||
|
|
9c55a2dde0 | ||
|
|
6d81cb3ddd | ||
|
|
5e92394dc7 | ||
|
|
6ceecd4f9b | ||
|
|
774b5f11cd | ||
|
|
fb236edf8c | ||
|
|
5aeebc1ed8 | ||
|
|
60b7357ef4 | ||
|
|
22bb8d65e9 | ||
|
|
8f77cce542 | ||
|
|
be783d244c | ||
|
|
4d17f10675 | ||
|
|
3391a40b77 | ||
|
|
d829a28ddf | ||
|
|
0a48954f18 | ||
|
|
2e0f0d29b6 | ||
|
|
1fe20dcc1d | ||
|
|
838b648ef6 | ||
|
|
55c44ef6d4 | ||
|
|
e436cb921a | ||
|
|
f6df55dd2d | ||
|
|
f8bdc3e864 | ||
|
|
443c7f852e | ||
|
|
86cb011a5c | ||
|
|
b3cdbdced8 | ||
|
|
ba953c9b09 | ||
|
|
e8ed8bc9d3 | ||
|
|
1b781b43a0 | ||
|
|
b79cb2e89d | ||
|
|
517fc14847 | ||
|
|
9058acaa58 | ||
|
|
326fb861a4 | ||
|
|
39097b424a | ||
|
|
5f9fb3c08f | ||
|
|
91458331bc | ||
|
|
368d5e4f63 | ||
|
|
3e52dc0ae2 | ||
|
|
36a1932786 | ||
|
|
53a83a788d | ||
|
|
48d0edd243 | ||
|
|
cc00efb40a | ||
|
|
27ec8beda2 | ||
|
|
a8dd7837c1 | ||
|
|
ae0460e5b7 | ||
|
|
246e270dc6 | ||
|
|
554b1edd52 | ||
|
|
bb78592b70 | ||
|
|
79419cdb96 | ||
|
|
7c22c706b0 | ||
|
|
389d72c30c | ||
|
|
ff2672b8f3 | ||
|
|
0ff9520e22 | ||
|
|
61ed059f13 | ||
|
|
587e2d4dcd | ||
|
|
bd44ea27d3 | ||
|
|
702206b9c3 | ||
|
|
47c4b58468 | ||
|
|
8dbea68b8f | ||
|
|
d44267d06c | ||
|
|
7d04b5a6b7 | ||
|
|
ac02ddfc4d | ||
|
|
606a53aac6 | ||
|
|
c4272d46a5 | ||
|
|
b492f7a6cf | ||
|
|
9cd320188d | ||
|
|
4d8f9763b8 | ||
|
|
a1d5c911e8 | ||
|
|
bf5f5ad09f | ||
|
|
1c0bc1f09a | ||
|
|
32c67cd3fb | ||
|
|
4da6a42bdf | ||
|
|
60dbf606be | ||
|
|
345ca761c7 | ||
|
|
d69a123d0e | ||
|
|
3e4bf0eb99 | ||
|
|
4ad732a7c4 | ||
|
|
f66e3e8172 | ||
|
|
c45a63da02 | ||
|
|
8e111f26f2 | ||
|
|
dc131fc681 | ||
|
|
ca24876463 | ||
|
|
10af76bdf0 | ||
|
|
bc746fec21 | ||
|
|
dc5a2a5914 | ||
|
|
79dfcc7e5a | ||
|
|
5d7913a377 | ||
|
|
dcc912919d | ||
|
|
5738e0851a | ||
|
|
83797f4e4a | ||
|
|
55778a26e6 | ||
|
|
c2c2519601 | ||
|
|
1184f18108 | ||
|
|
c80a087f6d | ||
|
|
d23c7eecd3 | ||
|
|
fb24eddaf8 | ||
|
|
cb09583c0b | ||
|
|
b08f0b80aa | ||
|
|
9f5bfbf8ff | ||
|
|
299e54baa9 | ||
|
|
bd1bd0ac41 | ||
|
|
af680cb37e | ||
|
|
ac68516579 | ||
|
|
876a68eb46 | ||
|
|
4372b4ac27 | ||
|
|
e4fb4655db | ||
|
|
ec76abe744 | ||
|
|
82fe8c8cf2 | ||
|
|
11e01b58eb | ||
|
|
00df27020c | ||
|
|
784a1462da | ||
|
|
abca5d19d7 | ||
|
|
3ceee99a69 | ||
|
|
02b17b8cf6 | ||
|
|
d688090dfc | ||
|
|
d36c127dc8 | ||
|
|
9b5c419c29 | ||
|
|
fff42693df | ||
|
|
192518decd | ||
|
|
51f4e2e415 | ||
|
|
a7eba9dcfd | ||
|
|
fff6395b3a | ||
|
|
4438d775f0 | ||
|
|
69e3e4a80b | ||
|
|
1868e66911 | ||
|
|
b4903c983d | ||
|
|
4bc033a2e9 | ||
|
|
f0a0b8d08e | ||
|
|
6a8784c184 | ||
|
|
f4a70cda51 | ||
|
|
101499df1e | ||
|
|
26f82d9ef6 | ||
|
|
4d9395982e | ||
|
|
12ae50d67b | ||
|
|
90e0cab306 | ||
|
|
7a414a0ca3 | ||
|
|
be4e8438ab | ||
|
|
f9580003cc | ||
|
|
761d0ce4fe | ||
|
|
cb6d8dbaf5 | ||
|
|
9eefd22422 | ||
|
|
7e2c170d1b | ||
|
|
351c72a590 | ||
|
|
ea5f3f2d70 | ||
|
|
4441107360 | ||
|
|
529c4defb3 | ||
|
|
e7a2306268 | ||
|
|
1ffee422b6 | ||
|
|
9fba14f1d3 | ||
|
|
e0185a39a8 | ||
|
|
0e49d72a67 | ||
|
|
786d2583de | ||
|
|
3ebdaf694d | ||
|
|
db50b78cb6 | ||
|
|
60f0719380 | ||
|
|
c68d223670 | ||
|
|
5c1e3ec50a | ||
|
|
e0b11a0171 | ||
|
|
e7a53ce31a | ||
|
|
d83b8b809d | ||
|
|
1020f6e344 | ||
|
|
6591466620 | ||
|
|
4505f2c426 | ||
|
|
1484a1445c | ||
|
|
28fa6a4372 | ||
|
|
a3724d61be | ||
|
|
439c2b422e | ||
|
|
2a7c5b9c9c | ||
|
|
bd6475c93f | ||
|
|
ae14c299f6 | ||
|
|
95ab566607 | ||
|
|
e19b78d5cf | ||
|
|
b20c5821e7 | ||
|
|
1b0f545d06 | ||
|
|
806d1074ea | ||
|
|
789930e10e | ||
|
|
1231e267aa | ||
|
|
b95e9756ab | ||
|
|
deea984d57 | ||
|
|
2b6877e771 | ||
|
|
5274b16253 | ||
|
|
3ef0985ae1 | ||
|
|
da6914d563 | ||
|
|
855d6cc4b9 | ||
|
|
22f1b9076a | ||
|
|
4900aca82e | ||
|
|
dafdf10755 | ||
|
|
ca3f6747e2 | ||
|
|
26129e724b | ||
|
|
93c5a6eb0f | ||
|
|
e91a4698f3 | ||
|
|
5cd2c51d19 | ||
|
|
b87047320a | ||
|
|
93d77fdbec | ||
|
|
37a807c108 | ||
|
|
706b564c01 | ||
|
|
93dc26aa6e | ||
|
|
0bf25619e0 | ||
|
|
fede0908bf | ||
|
|
b0bafb9212 | ||
|
|
ca75c14252 | ||
|
|
0076026fad | ||
|
|
b49ba034a0 | ||
|
|
0b53a4746d | ||
|
|
b636796851 | ||
|
|
46b81edc9e | ||
|
|
9f6f4eb475 | ||
|
|
7e3dc511c0 | ||
|
|
a329df397e | ||
|
|
6f25fc7e19 | ||
|
|
599844a87e | ||
|
|
088905dd7a | ||
|
|
4ffbafdbf2 | ||
|
|
2be3b85b09 | ||
|
|
76c709287b | ||
|
|
1f7b3cc480 | ||
|
|
40ac9b6c3e | ||
|
|
06fcf8f2cd | ||
|
|
2f0241df2e | ||
|
|
34ff6f4aac | ||
|
|
40f7f0907a | ||
|
|
0e5006616e | ||
|
|
792a513bb5 | ||
|
|
a9b65de341 | ||
|
|
a0fc1bbeb8 | ||
|
|
482bcb3149 | ||
|
|
cf0b90369a | ||
|
|
a0bcbc5cc6 | ||
|
|
e73eec8ba4 | ||
|
|
c1ed33848c | ||
|
|
d9d75fdfe4 | ||
|
|
c348b824c8 | ||
|
|
39987a0303 | ||
|
|
0906b06192 | ||
|
|
434f59d06d | ||
|
|
af4c01abd4 | ||
|
|
516bc6d5fc | ||
|
|
d7b3aedab4 | ||
|
|
fb641946d6 | ||
|
|
b3bc532e81 | ||
|
|
fe1006d643 | ||
|
|
9a37d6dbfc | ||
|
|
bf704309ad | ||
|
|
635cf3962f | ||
|
|
e986ca31a1 | ||
|
|
43a0fec9a6 | ||
|
|
c6c41c59d2 | ||
|
|
fb54b8126a | ||
|
|
a4f2a99776 | ||
|
|
dbca6bc0d7 | ||
|
|
e647faf31c | ||
|
|
fdd05853af | ||
|
|
afd8372baa | ||
|
|
f99d1f516c | ||
|
|
1aa23407f1 | ||
|
|
83d59dd3a9 | ||
|
|
2233786605 | ||
|
|
2d2f7c6772 | ||
|
|
ba3e97b73d | ||
|
|
4107481b07 | ||
|
|
6e158992dc | ||
|
|
0e4c60c23f | ||
|
|
702672de28 | ||
|
|
48bdf83887 | ||
|
|
520a0f8c26 | ||
|
|
b84564b0f7 | ||
|
|
ba33a83e9f | ||
|
|
b645c1e974 | ||
|
|
3daad1b9bc | ||
|
|
5416a2b3a1 | ||
|
|
5c3098afa1 | ||
|
|
e25470ece3 | ||
|
|
87a65e9b0f | ||
|
|
4c9459ac57 | ||
|
|
67bd5dcb1f | ||
|
|
beb563e74e | ||
|
|
3e1805b09b | ||
|
|
ee568ec307 | ||
|
|
37b355b530 | ||
|
|
a5de97ff42 | ||
|
|
3f4cdf7293 | ||
|
|
2a35b627a0 | ||
|
|
517347533d | ||
|
|
f0d021560a | ||
|
|
d49093f6b6 | ||
|
|
1c2f3683a5 | ||
|
|
bd0f8fb4c4 | ||
|
|
061a04142b | ||
|
|
092af73794 | ||
|
|
0f3359e417 | ||
|
|
90272cdc12 | ||
|
|
7891f017c9 | ||
|
|
cb5b67ed09 | ||
|
|
201c121e34 | ||
|
|
a1ea3b772b | ||
|
|
4d6a05915c | ||
|
|
0c5b4b0ebe | ||
|
|
be263513b3 | ||
|
|
db4db8a696 | ||
|
|
c2425f3c33 |
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"image": "ghcr.io/juliushaertl/nextcloud-dev-php81:latest",
|
"image": "ghcr.io/juliusknorr/nextcloud-dev-php81:latest",
|
||||||
"forwardPorts": [80],
|
"forwardPorts": [80],
|
||||||
"containerEnv": {
|
"containerEnv": {
|
||||||
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
|
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
|
||||||
|
|||||||
2
.github/CODEOWNERS
vendored
Normal file
2
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# App maintainers
|
||||||
|
* @luka-nextcloud @grnd-alt @elzody
|
||||||
18
.github/dependabot.yml
vendored
18
.github/dependabot.yml
vendored
@@ -14,13 +14,13 @@ updates:
|
|||||||
- luka-nextcloud
|
- luka-nextcloud
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable29
|
target-branch: stable32
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "03:15"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
ignore:
|
ignore:
|
||||||
- dependency-name: "*"
|
- dependency-name: "*"
|
||||||
@@ -31,13 +31,13 @@ updates:
|
|||||||
- dependencies
|
- dependencies
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable28
|
target-branch: stable31
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "03:15"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
ignore:
|
ignore:
|
||||||
- dependency-name: "*"
|
- dependency-name: "*"
|
||||||
@@ -48,13 +48,13 @@ updates:
|
|||||||
- dependencies
|
- dependencies
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable27
|
target-branch: stable30
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "03:30"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
ignore:
|
ignore:
|
||||||
- dependency-name: "*"
|
- dependency-name: "*"
|
||||||
@@ -69,7 +69,7 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "03:45"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
@@ -81,7 +81,7 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "04:00"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
@@ -93,7 +93,7 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
time: "03:00"
|
time: "04:15"
|
||||||
timezone: Europe/Paris
|
timezone: Europe/Paris
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
|
|||||||
6
.github/workflows/appbuild.yml
vendored
6
.github/workflows/appbuild.yml
vendored
@@ -16,15 +16,15 @@ jobs:
|
|||||||
node-version: [16.x]
|
node-version: [16.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.7
|
- uses: actions/checkout@v4.2.2
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.3
|
uses: actions/setup-node@v4.4.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
- name: Set up npm7
|
- name: Set up npm7
|
||||||
run: npm i -g npm@7
|
run: npm i -g npm@7
|
||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@2.31.1
|
uses: shivammathur/setup-php@2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
php-version: '7.4'
|
||||||
tools: composer
|
tools: composer
|
||||||
|
|||||||
10
.github/workflows/appstore-build-publish.yml
vendored
10
.github/workflows/appstore-build-publish.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
|||||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
@@ -71,7 +71,7 @@ jobs:
|
|||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
# Skip if no package.json
|
# Skip if no package.json
|
||||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ jobs:
|
|||||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||||
|
|
||||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||||
coverage: none
|
coverage: none
|
||||||
@@ -149,7 +149,7 @@ jobs:
|
|||||||
unzip latest-$NCVERSION.zip
|
unzip latest-$NCVERSION.zip
|
||||||
|
|
||||||
- name: Checkout server master fallback
|
- name: Checkout server master fallback
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
@@ -173,7 +173,7 @@ jobs:
|
|||||||
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Attach tarball to github release
|
- name: Attach tarball to github release
|
||||||
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
|
uses: svenstaro/upload-release-action@81c65b7cd4de9b2570615ce3aad67a41de5b1a13 # v2
|
||||||
id: attach_to_release
|
id: attach_to_release
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
51
.github/workflows/command-rebase.yml
vendored
51
.github/workflows/command-rebase.yml
vendored
@@ -1,51 +0,0 @@
|
|||||||
# This workflow is provided via the organization template repository
|
|
||||||
#
|
|
||||||
# https://github.com/nextcloud/.github
|
|
||||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
|
||||||
|
|
||||||
name: Rebase command
|
|
||||||
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: created
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
rebase:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
|
|
||||||
# On pull requests and if the comment starts with `/rebase`
|
|
||||||
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Add reaction on start
|
|
||||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
|
||||||
repository: ${{ github.event.repository.full_name }}
|
|
||||||
comment-id: ${{ github.event.comment.id }}
|
|
||||||
reaction-type: "+1"
|
|
||||||
|
|
||||||
- name: Checkout the latest code
|
|
||||||
uses: actions/checkout@v4.1.7 # v3.5.2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
|
||||||
|
|
||||||
- name: Automatic Rebase
|
|
||||||
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
|
||||||
|
|
||||||
- name: Add reaction on failure
|
|
||||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
|
||||||
if: failure()
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
|
||||||
repository: ${{ github.event.repository.full_name }}
|
|
||||||
comment-id: ${{ github.event.comment.id }}
|
|
||||||
reaction-type: "-1"
|
|
||||||
12
.github/workflows/cypress-e2e.yml
vendored
12
.github/workflows/cypress-e2e.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
node-version: [20.x]
|
node-version: [20.x]
|
||||||
# containers: [1, 2, 3]
|
# containers: [1, 2, 3]
|
||||||
php-versions: [ '8.2' ]
|
php-versions: [ '8.2' ]
|
||||||
server-versions: [ 'stable30' ]
|
server-versions: [ 'master' ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||||
@@ -41,7 +41,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.3
|
uses: actions/setup-node@v4.4.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ jobs:
|
|||||||
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -64,12 +64,12 @@ jobs:
|
|||||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||||
|
|
||||||
- name: Checkout ${{ env.APP_NAME }}
|
- name: Checkout ${{ env.APP_NAME }}
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Checkout text
|
- name: Checkout text
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/text
|
repository: nextcloud/text
|
||||||
ref: ${{ env.text_app_ref }}
|
ref: ${{ env.text_app_ref }}
|
||||||
@@ -91,7 +91,7 @@ jobs:
|
|||||||
restore-keys: ${{ steps.extcache.outputs.key }}
|
restore-keys: ${{ steps.extcache.outputs.key }}
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.31.1
|
uses: shivammathur/setup-php@2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: ${{ env.extensions }}
|
extensions: ${{ env.extensions }}
|
||||||
|
|||||||
14
.github/workflows/integration.yml
vendored
14
.github/workflows/integration.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1']
|
php-versions: ['8.1']
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
server-versions: ['stable30']
|
server-versions: ['master']
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -66,19 +66,19 @@ jobs:
|
|||||||
cd build/integration && composer require --dev phpunit/phpunit:~9
|
cd build/integration && composer require --dev phpunit/phpunit:~9
|
||||||
|
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@v4.1.7
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Checkout activity
|
- name: Checkout activity
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/activity
|
repository: nextcloud/activity
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
path: apps/activity
|
path: apps/activity
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.31.1
|
uses: shivammathur/setup-php@2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
|
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
|
||||||
@@ -112,6 +112,10 @@ jobs:
|
|||||||
working-directory: apps/${{ env.APP_NAME }}/tests/integration
|
working-directory: apps/${{ env.APP_NAME }}/tests/integration
|
||||||
run: ./run.sh
|
run: ./run.sh
|
||||||
|
|
||||||
|
- name: Print log
|
||||||
|
if: always()
|
||||||
|
run: cat data/nextcloud.log
|
||||||
|
|
||||||
- name: Query count
|
- name: Query count
|
||||||
if: ${{ matrix.databases == 'mysql' }}
|
if: ${{ matrix.databases == 'mysql' }}
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v7
|
||||||
|
|||||||
6
.github/workflows/lint-eslint.yml
vendored
6
.github/workflows/lint-eslint.yml
vendored
@@ -56,7 +56,9 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
- name: Read package.json node and npm engines version
|
||||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||||
@@ -66,7 +68,7 @@ jobs:
|
|||||||
fallbackNpm: '^10'
|
fallbackNpm: '^10'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
|
|||||||
8
.github/workflows/lint-php-cs.yml
vendored
8
.github/workflows/lint-php-cs.yml
vendored
@@ -25,14 +25,16 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get php version
|
- name: Get php version
|
||||||
id: versions
|
id: versions
|
||||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||||
|
|
||||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
- name: Set up php${{ steps.versions.outputs.php-min }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ steps.versions.outputs.php-min }}
|
php-version: ${{ steps.versions.outputs.php-min }}
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||||
|
|||||||
11
.github/workflows/lint-php.yml
vendored
11
.github/workflows/lint-php.yml
vendored
@@ -24,7 +24,10 @@ jobs:
|
|||||||
php-versions: ${{ steps.versions.outputs.php-versions }}
|
php-versions: ${{ steps.versions.outputs.php-versions }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get version matrix
|
- name: Get version matrix
|
||||||
id: versions
|
id: versions
|
||||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
|
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
|
||||||
@@ -40,10 +43,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||||
|
|||||||
6
.github/workflows/lint-stylelint.yml
vendored
6
.github/workflows/lint-stylelint.yml
vendored
@@ -25,7 +25,9 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
- name: Read package.json node and npm engines version
|
||||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||||
@@ -35,7 +37,7 @@ jobs:
|
|||||||
fallbackNpm: '^10'
|
fallbackNpm: '^10'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
|
|||||||
4
.github/workflows/nodejs.yml
vendored
4
.github/workflows/nodejs.yml
vendored
@@ -12,9 +12,9 @@ jobs:
|
|||||||
node-version: [14.x]
|
node-version: [14.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.7
|
- uses: actions/checkout@v4.2.2
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.3
|
uses: actions/setup-node@v4.4.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
- name: Set up npm7
|
- name: Set up npm7
|
||||||
|
|||||||
20
.github/workflows/npm-audit-fix.yml
vendored
20
.github/workflows/npm-audit-fix.yml
vendored
@@ -14,6 +14,9 @@ on:
|
|||||||
# At 2:30 on Sundays
|
# At 2:30 on Sundays
|
||||||
- cron: '30 2 * * 0'
|
- cron: '30 2 * * 0'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -21,15 +24,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
|
||||||
|
|
||||||
name: npm-audit-fix-${{ matrix.branches }}
|
name: npm-audit-fix-${{ matrix.branches }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
id: checkout
|
||||||
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
|
persist-credentials: false
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
- name: Read package.json node and npm engines version
|
||||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||||
@@ -39,7 +45,7 @@ jobs:
|
|||||||
fallbackNpm: '^10'
|
fallbackNpm: '^10'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -48,10 +54,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Fix npm audit
|
- name: Fix npm audit
|
||||||
id: npm-audit
|
id: npm-audit
|
||||||
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
|
uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0
|
||||||
|
|
||||||
- name: Run npm ci and npm run build
|
- name: Run npm ci and npm run build
|
||||||
if: always()
|
if: steps.checkout.outcome == 'success'
|
||||||
env:
|
env:
|
||||||
CYPRESS_INSTALL_BINARY: 0
|
CYPRESS_INSTALL_BINARY: 0
|
||||||
run: |
|
run: |
|
||||||
@@ -59,8 +65,8 @@ jobs:
|
|||||||
npm run build --if-present
|
npm run build --if-present
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
if: always()
|
if: steps.checkout.outcome == 'success'
|
||||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
commit-message: 'fix(deps): Fix npm audit'
|
commit-message: 'fix(deps): Fix npm audit'
|
||||||
|
|||||||
10
.github/workflows/phpunit-mysql.yml
vendored
10
.github/workflows/phpunit-mysql.yml
vendored
@@ -24,7 +24,9 @@ jobs:
|
|||||||
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get version matrix
|
- name: Get version matrix
|
||||||
id: versions
|
id: versions
|
||||||
@@ -87,7 +89,7 @@ jobs:
|
|||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
submodules: true
|
submodules: true
|
||||||
@@ -95,13 +97,13 @@ jobs:
|
|||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||||
|
|||||||
10
.github/workflows/phpunit-pgsql.yml
vendored
10
.github/workflows/phpunit-pgsql.yml
vendored
@@ -25,7 +25,9 @@ jobs:
|
|||||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get version matrix
|
- name: Get version matrix
|
||||||
id: versions
|
id: versions
|
||||||
@@ -90,7 +92,7 @@ jobs:
|
|||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
submodules: true
|
submodules: true
|
||||||
@@ -98,13 +100,13 @@ jobs:
|
|||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||||
|
|||||||
10
.github/workflows/phpunit-sqlite.yml
vendored
10
.github/workflows/phpunit-sqlite.yml
vendored
@@ -25,7 +25,9 @@ jobs:
|
|||||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get version matrix
|
- name: Get version matrix
|
||||||
id: versions
|
id: versions
|
||||||
@@ -79,7 +81,7 @@ jobs:
|
|||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
submodules: true
|
submodules: true
|
||||||
@@ -87,13 +89,13 @@ jobs:
|
|||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||||
|
|||||||
7
.github/workflows/pr-feedback.yml
vendored
7
.github/workflows/pr-feedback.yml
vendored
@@ -15,12 +15,17 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '30 1 * * *'
|
- cron: '30 1 * * *'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pr-feedback:
|
pr-feedback:
|
||||||
|
if: ${{ github.repository_owner == 'nextcloud' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: The get-github-handles-from-website action
|
- name: The get-github-handles-from-website action
|
||||||
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
|
uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
|
||||||
id: scrape
|
id: scrape
|
||||||
with:
|
with:
|
||||||
website: 'https://nextcloud.com/team/'
|
website: 'https://nextcloud.com/team/'
|
||||||
|
|||||||
8
.github/workflows/psalm.yml
vendored
8
.github/workflows/psalm.yml
vendored
@@ -24,7 +24,9 @@ jobs:
|
|||||||
name: static-psalm-analysis
|
name: static-psalm-analysis
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Get php version
|
- name: Get php version
|
||||||
id: versions
|
id: versions
|
||||||
@@ -33,8 +35,8 @@ jobs:
|
|||||||
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
|
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
|
||||||
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
|
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
|
||||||
|
|
||||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
- name: Set up php${{ steps.versions.outputs.php-min }}
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ steps.versions.outputs.php-min }}
|
php-version: ${{ steps.versions.outputs.php-min }}
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||||
|
|||||||
8
.github/workflows/reuse.yml
vendored
8
.github/workflows/reuse.yml
vendored
@@ -16,10 +16,12 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
reuse-compliance-check:
|
reuse-compliance-check:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest-low
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: REUSE Compliance Check
|
- name: REUSE Compliance Check
|
||||||
uses: fsfe/reuse-action@3ae3c6bdf1257ab19397fab11fd3312144692083 # v4.0.0
|
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
|
||||||
|
|||||||
8
.github/workflows/update-nextcloud-ocp.yml
vendored
8
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -23,13 +23,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
|
||||||
|
|
||||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- id: checkout
|
- id: checkout
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
@@ -38,7 +38,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Set up php8.2
|
- name: Set up php8.2
|
||||||
if: steps.checkout.outcome == 'success'
|
if: steps.checkout.outcome == 'success'
|
||||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||||
with:
|
with:
|
||||||
php-version: 8.2
|
php-version: 8.2
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||||
@@ -107,7 +107,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
if: steps.checkout.outcome == 'success'
|
if: steps.checkout.outcome == 'success'
|
||||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
/.editorconfig
|
/.editorconfig
|
||||||
/.eslintrc.js
|
/.eslintrc.js
|
||||||
/.nextcloudignore
|
/.nextcloudignore
|
||||||
/webpack.*.js
|
/webpack.js
|
||||||
/.codecov.yml
|
/.codecov.yml
|
||||||
/composer.json
|
/composer.json
|
||||||
/composer.lock
|
/composer.lock
|
||||||
@@ -26,3 +26,10 @@
|
|||||||
/package-lock.json
|
/package-lock.json
|
||||||
/node_modules/
|
/node_modules/
|
||||||
/src/
|
/src/
|
||||||
|
/cypress/
|
||||||
|
/cypress.config.js
|
||||||
|
/.devcontainer/
|
||||||
|
/.php-cs-fixer.dist.php
|
||||||
|
/psalm.xml
|
||||||
|
/relativeci.config.js
|
||||||
|
/stylelint.config.js
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
- Adrian Missy <adrian.missy@onewavestudios.com>
|
- Adrian Missy <adrian.missy@onewavestudios.com>
|
||||||
- Alexandru Puiu <alexpuiu20@yahoo.com>
|
- Alexandru Puiu <alexpuiu20@yahoo.com>
|
||||||
|
- Arne Bartelt <arne.bartelt@gmail.com>
|
||||||
- Chandi Langecker <git@chandi.it>
|
- Chandi Langecker <git@chandi.it>
|
||||||
- Christoph Wurst <christoph@winzerhof-wurst.at>
|
- Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||||
- Gary Kim <gary@garykim.dev>
|
- Gary Kim <gary@garykim.dev>
|
||||||
|
|||||||
98
CHANGELOG.md
98
CHANGELOG.md
@@ -5,83 +5,31 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## 1.14.6
|
## 1.16.0-beta.1
|
||||||
### Fixed
|
|
||||||
* [stable30] fix: update DeleteCron to remove deleted lists by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7028
|
|
||||||
* [stable30] fix: not show Share with a Deck card for unauthorized users by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7060
|
|
||||||
* [stable30] fix: add retry and show warning on description saving error by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7090
|
|
||||||
* [stable30] fix: styling for new stack input field by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7112
|
|
||||||
* [stable30] fix:allow foreign label deletion by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7129
|
|
||||||
* [stable30] fix: acl check when delete, update board acl by @backportbot[bot] in https://github.com/nextcloud/deck/pull/7133
|
|
||||||
|
|
||||||
## 1.14.5
|
|
||||||
### Fixed
|
|
||||||
* [stable30] Clear selected stack when selected board changed by @backportbot in https://github.com/nextcloud/deck/pull/6914
|
|
||||||
* [stable30] perf: Skip doing a query just to check if a board is deleted by @backportbot in https://github.com/nextcloud/deck/pull/6895
|
|
||||||
* [stable30] fix: only delete assignments on unshared board by @grnd-alt in https://github.com/nextcloud/deck/pull/6935
|
|
||||||
* [stable30] fix: Limit label actions to labels of the cards board by @backportbot in https://github.com/nextcloud/deck/pull/6953
|
|
||||||
|
|
||||||
### Maintenance
|
|
||||||
* Chore(deps): Bump @babel/runtime from 7.26.10 to 7.27.0 by @dependabot in https://github.com/nextcloud/deck/pull/6866
|
|
||||||
* Chore(deps): Bump dompurify from 3.2.4 to 3.2.5 by @dependabot in https://github.com/nextcloud/deck/pull/6881
|
|
||||||
* Chore(deps): Bump @nextcloud/vue from 8.23.1 to 8.24.0 by @dependabot in https://github.com/nextcloud/deck/pull/6882
|
|
||||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6887
|
|
||||||
* Chore(deps-dev): Bump @nextcloud/webpack-vue-config from 6.2.0 to 6.3.0 by @dependabot in https://github.com/nextcloud/deck/pull/6909
|
|
||||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6911
|
|
||||||
* Chore(deps): Bump @nextcloud/vue from 8.24.0 to 8.25.1 by @dependabot in https://github.com/nextcloud/deck/pull/6923
|
|
||||||
* [stable30] chore: update workflows from templates by @backportbot in https://github.com/nextcloud/deck/pull/6921
|
|
||||||
* Chore(deps): Bump @nextcloud/vue from 8.25.1 to 8.26.0 by @dependabot in https://github.com/nextcloud/deck/pull/6939
|
|
||||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6948
|
|
||||||
|
|
||||||
## 1.14.4
|
|
||||||
### Fixed
|
|
||||||
- fix: skip exporting a deleted card #6722
|
|
||||||
- fix: Properly show attachment extension #6673
|
|
||||||
|
|
||||||
### Maintenance
|
|
||||||
- Update nextcloud/ocp dependency #6769
|
|
||||||
- Update nextcloud/ocp dependency #6718
|
|
||||||
- Update nextcloud/ocp dependency #6700
|
|
||||||
- Update nextcloud/ocp dependency #6656
|
|
||||||
|
|
||||||
## 1.14.3
|
|
||||||
### Fixed
|
|
||||||
- fix: two close buttons on card modal @app/backportbot [#6659](https://github.com/nextcloud/deck/pull/6659)
|
|
||||||
- fix: Catch not found card @app/backportbot [#6652](https://github.com/nextcloud/deck/pull/6652)
|
|
||||||
- fix: close modal after deleting card @app/backportbot [#6619](https://github.com/nextcloud/deck/pull/6619)
|
|
||||||
- fix: Use new query builder @app/backportbot [#6612](https://github.com/nextcloud/deck/pull/6612)
|
|
||||||
- fix: new card input spacing @app/backportbot [#6576](https://github.com/nextcloud/deck/pull/6576)
|
|
||||||
- fix(sharing): list accounts with matches in email @app/backportbot [#6524](https://github.com/nextcloud/deck/pull/6524)
|
|
||||||
|
|
||||||
## 1.14.2
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- fix: board bubble preview widget [#6477](https://github.com/nextcloud/deck/pull/6477)
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
|
|
||||||
- Update nextcloud/ocp dependency @nextcloud-command [#6470](https://github.com/nextcloud/deck/pull/6470)
|
|
||||||
- Fix npm audit @nextcloud-command [#6450](https://github.com/nextcloud/deck/pull/6450)
|
|
||||||
|
|
||||||
## 1.14.1
|
|
||||||
### Fixed
|
|
||||||
- fix: Load archived card if URL is opened directly #6326
|
|
||||||
- Update nextcloud/ocp dependency #6322
|
|
||||||
|
|
||||||
## 1.14.0
|
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
- feat: update default content @luka-nextcloud [#6740](https://github.com/nextcloud/deck/pull/6740)
|
||||||
|
- feat: add board import and export @luka-nextcloud [#6872](https://github.com/nextcloud/deck/pull/6872)
|
||||||
|
- feat: use outline icons @luka-nextcloud [#7114](https://github.com/nextcloud/deck/pull/7114)
|
||||||
|
- Add OCC commands for global calendar feature opt-in and opt-out in Deck @Fledermaus-20 [#7080](https://github.com/nextcloud/deck/pull/7080)
|
||||||
|
|
||||||
- export json data of commments @grnd-alt [#6119](https://github.com/nextcloud/deck/pull/6119)
|
### Fixed
|
||||||
|
- CSV export fixes @gidan80 [#6800](https://github.com/nextcloud/deck/pull/6800)
|
||||||
|
|
||||||
|
## 1.15.0-beta.1
|
||||||
|
### Fixed
|
||||||
|
- fix: Catch not found card @juliusknorr [#6646](https://github.com/nextcloud/deck/pull/6646)
|
||||||
|
- fix: Avoid failing on public dav URLs @juliusknorr [#6642](https://github.com/nextcloud/deck/pull/6642)
|
||||||
|
- fix: Proper rich object formats @juliusknorr [#6641](https://github.com/nextcloud/deck/pull/6641)
|
||||||
|
- fix(notifications): Notifier::prepare() threw \InvalidArgumentExcepti… @nickvergessen [#6623](https://github.com/nextcloud/deck/pull/6623)
|
||||||
|
- fix: close modal after deleting card @ludij [#6617](https://github.com/nextcloud/deck/pull/6617)
|
||||||
|
- fix: Use new query builder @juliusknorr [#6611](https://github.com/nextcloud/deck/pull/6611)
|
||||||
|
- fix: new card input spacing @luka-nextcloud [#6574](https://github.com/nextcloud/deck/pull/6574)
|
||||||
|
|
||||||
|
## 1.14.0-beta.1
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: losing focus while editing title field @luka-nextcloud [#6140](https://github.com/nextcloud/deck/pull/6140)
|
|
||||||
- Fix UI with the new compact design [#6258](https://github.com/nextcloud/deck/pull/6258)
|
|
||||||
- Translation call fix [#6261](https://github.com/nextcloud/deck/pull/6261)
|
|
||||||
- fix: 30 design issues [#6265](https://github.com/nextcloud/deck/pull/6265)
|
|
||||||
- copy labels when moving cards between boards [#6289](https://github.com/nextcloud/deck/pull/6289)
|
|
||||||
- Bug fix collection [#6307](https://github.com/nextcloud/deck/pull/6307)
|
|
||||||
- fix: card details focus issue with screen reader @luka-nextcloud [#5858](https://github.com/nextcloud/deck/pull/5858)
|
- fix: card details focus issue with screen reader @luka-nextcloud [#5858](https://github.com/nextcloud/deck/pull/5858)
|
||||||
- Cleaning up unused indicies @mintsoft [#5612](https://github.com/nextcloud/deck/pull/5612)
|
- Cleaning up unused indicies @mintsoft [#5612](https://github.com/nextcloud/deck/pull/5612)
|
||||||
- Change import command's config default argument @JimMadge [#5722](https://github.com/nextcloud/deck/pull/5722)
|
- Change import command's config default argument @JimMadge [#5722](https://github.com/nextcloud/deck/pull/5722)
|
||||||
@@ -94,17 +42,12 @@ All notable changes to this project will be documented in this file.
|
|||||||
- fix: remove redundant log @luka-nextcloud [#6115](https://github.com/nextcloud/deck/pull/6115)
|
- fix: remove redundant log @luka-nextcloud [#6115](https://github.com/nextcloud/deck/pull/6115)
|
||||||
- fix: Adjust dependencies to fix filepicker @susnux [#5964](https://github.com/nextcloud/deck/pull/5964)
|
- fix: Adjust dependencies to fix filepicker @susnux [#5964](https://github.com/nextcloud/deck/pull/5964)
|
||||||
- fix: Remove bindParam usage with simpler query @juliushaertl [#6065](https://github.com/nextcloud/deck/pull/6065)
|
- fix: Remove bindParam usage with simpler query @juliushaertl [#6065](https://github.com/nextcloud/deck/pull/6065)
|
||||||
- add Order when cloning board @grnd-alt [#6117](https://github.com/nextcloud/deck/pull/6117)
|
|
||||||
- use deleted_users for users that do not exist @grnd-alt [#6201](https://github.com/nextcloud/deck/pull/6201)
|
|
||||||
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
|
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
- fix(files): fix appstore-build-publish.yml @JuliaKirschenheuter [#6142](https://github.com/nextcloud/deck/pull/6142)
|
|
||||||
- tests: Add environment variable and document commands to run behat tests locally @juliushaertl [#6137](https://github.com/nextcloud/deck/pull/6137)
|
|
||||||
- chore(CI): Adjust testing matrix for Nextcloud 30 on stable30 @nickvergessen [#6205](https://github.com/nextcloud/deck/pull/6205)
|
|
||||||
- Adds link to Nextcloud Deck for iOS in README.md file @StCyr [#5886](https://github.com/nextcloud/deck/pull/5886)
|
- Adds link to Nextcloud Deck for iOS in README.md file @StCyr [#5886](https://github.com/nextcloud/deck/pull/5886)
|
||||||
- choir(i18n): Change filter title @rakekniven [#5957](https://github.com/nextcloud/deck/pull/5957)
|
- choir(i18n): Change filter title @rakekniven [#5957](https://github.com/nextcloud/deck/pull/5957)
|
||||||
|
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
|
||||||
- Update User_documentation_en.md @StCyr [#6029](https://github.com/nextcloud/deck/pull/6029)
|
- Update User_documentation_en.md @StCyr [#6029](https://github.com/nextcloud/deck/pull/6029)
|
||||||
- chore: Move comments event handler to use proper event dispatcher @juliushaertl [#6008](https://github.com/nextcloud/deck/pull/6008)
|
- chore: Move comments event handler to use proper event dispatcher @juliushaertl [#6008](https://github.com/nextcloud/deck/pull/6008)
|
||||||
- Migrate REUSE to TOML format @AndyScherzinger [#6084](https://github.com/nextcloud/deck/pull/6084)
|
- Migrate REUSE to TOML format @AndyScherzinger [#6084](https://github.com/nextcloud/deck/pull/6084)
|
||||||
@@ -940,3 +883,4 @@ Android app team for helping to improve our REST API:
|
|||||||
- Assign labels
|
- Assign labels
|
||||||
- Markdown notes for each card
|
- Markdown notes for each card
|
||||||
- Archive cards
|
- Archive cards
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Deck is a kanban style organization tool aimed at personal planning and project
|
|||||||
|
|
||||||
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
|
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
|
||||||
- [Nextcloud Deck app for iOS](https://github.com/StCyr/deck-react-native) - It is available in [Apple App store](https://apps.apple.com/ml/app/nextcloud-deck/id1570892788)
|
- [Nextcloud Deck app for iOS](https://github.com/StCyr/deck-react-native) - It is available in [Apple App store](https://apps.apple.com/ml/app/nextcloud-deck/id1570892788)
|
||||||
- [deck NG for Android and iOS](https://github.com/meltzow/deck-ng) - It is available in [Google Play Store](https://play.google.com/store/apps/details?id=net.meltzow.deckng) and [Apple App Store](https://apps.apple.com/us/app/deck-ng/id6443334702)
|
|
||||||
|
|
||||||
### 3rd-Party Integrations
|
### 3rd-Party Integrations
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ SPDX-FileCopyrightText = "none"
|
|||||||
SPDX-License-Identifier = "CC0-1.0"
|
SPDX-License-Identifier = "CC0-1.0"
|
||||||
|
|
||||||
[[annotations]]
|
[[annotations]]
|
||||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg"]
|
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "lib/Service/fixtures/default-board.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg", "img/sample-image.jpg"]
|
||||||
precedence = "aggregate"
|
precedence = "aggregate"
|
||||||
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
|
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
|
||||||
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -20,17 +20,17 @@
|
|||||||
- 🚀 Get your project organized
|
- 🚀 Get your project organized
|
||||||
|
|
||||||
</description>
|
</description>
|
||||||
<version>1.14.6</version>
|
<version>2.0.0-dev.0</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author>Julius Härtl</author>
|
<author>Julius Härtl</author>
|
||||||
<documentation>
|
|
||||||
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
|
||||||
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
|
||||||
</documentation>
|
|
||||||
<namespace>Deck</namespace>
|
<namespace>Deck</namespace>
|
||||||
<types>
|
<types>
|
||||||
<dav/>
|
<dav/>
|
||||||
</types>
|
</types>
|
||||||
|
<documentation>
|
||||||
|
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
||||||
|
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
||||||
|
</documentation>
|
||||||
<category>organization</category>
|
<category>organization</category>
|
||||||
<category>office</category>
|
<category>office</category>
|
||||||
<website>https://github.com/nextcloud/deck</website>
|
<website>https://github.com/nextcloud/deck</website>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<database min-version="9.4">pgsql</database>
|
<database min-version="9.4">pgsql</database>
|
||||||
<database>sqlite</database>
|
<database>sqlite</database>
|
||||||
<database min-version="8.0">mysql</database>
|
<database min-version="8.0">mysql</database>
|
||||||
<nextcloud min-version="30" max-version="30"/>
|
<nextcloud min-version="33" max-version="33"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<background-jobs>
|
<background-jobs>
|
||||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||||
@@ -54,11 +54,15 @@
|
|||||||
<live-migration>
|
<live-migration>
|
||||||
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
|
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
|
||||||
</live-migration>
|
</live-migration>
|
||||||
|
<post-migration>
|
||||||
|
<step>OCA\Deck\Migration\LabelMismatchCleanup</step>
|
||||||
|
</post-migration>
|
||||||
</repair-steps>
|
</repair-steps>
|
||||||
<commands>
|
<commands>
|
||||||
<command>OCA\Deck\Command\UserExport</command>
|
<command>OCA\Deck\Command\UserExport</command>
|
||||||
<command>OCA\Deck\Command\BoardImport</command>
|
<command>OCA\Deck\Command\BoardImport</command>
|
||||||
<command>OCA\Deck\Command\TransferOwnership</command>
|
<command>OCA\Deck\Command\TransferOwnership</command>
|
||||||
|
<command>OCA\Deck\Command\CalendarToggle</command>
|
||||||
</commands>
|
</commands>
|
||||||
<activity>
|
<activity>
|
||||||
<settings>
|
<settings>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -28,6 +29,7 @@ return [
|
|||||||
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
|
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
|
||||||
['name' => 'board#transferOwner', 'url' => '/boards/{boardId}/transferOwner', 'verb' => 'PUT'],
|
['name' => 'board#transferOwner', 'url' => '/boards/{boardId}/transferOwner', 'verb' => 'PUT'],
|
||||||
['name' => 'board#export', 'url' => '/boards/{boardId}/export', 'verb' => 'GET'],
|
['name' => 'board#export', 'url' => '/boards/{boardId}/export', 'verb' => 'GET'],
|
||||||
|
['name' => 'board#import', 'url' => '/boards/import', 'verb' => 'POST'],
|
||||||
|
|
||||||
// stacks
|
// stacks
|
||||||
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
|
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
|
||||||
@@ -102,6 +104,8 @@ return [
|
|||||||
['name' => 'card_api#assignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'],
|
['name' => 'card_api#assignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'],
|
||||||
['name' => 'card_api#unassignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'],
|
['name' => 'card_api#unassignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'],
|
||||||
['name' => 'card_api#reorder', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'],
|
['name' => 'card_api#reorder', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'],
|
||||||
|
['name' => 'card_api#archive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/archive', 'verb' => 'PUT'],
|
||||||
|
['name' => 'card_api#unarchive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unarchive', 'verb' => 'PUT'],
|
||||||
['name' => 'card_api#delete', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'],
|
['name' => 'card_api#delete', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'],
|
||||||
|
|
||||||
['name' => 'card_api#findAllWithDue', 'url' => '/api/v{apiVersion}/dashboard/due', 'verb' => 'GET'],
|
['name' => 'card_api#findAllWithDue', 'url' => '/api/v{apiVersion}/dashboard/due', 'verb' => 'GET'],
|
||||||
@@ -136,6 +140,8 @@ return [
|
|||||||
['name' => 'comments_api#update', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'PUT'],
|
['name' => 'comments_api#update', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'PUT'],
|
||||||
['name' => 'comments_api#delete', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
|
['name' => 'comments_api#delete', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
|
||||||
|
|
||||||
|
['name' => 'card#clone', 'url' => '/api/v{apiVersion}/cards/{cardId}/clone', 'verb' => 'POST'],
|
||||||
|
|
||||||
['name' => 'overview_api#upcomingCards', 'url' => '/api/v{apiVersion}/overview/upcoming', 'verb' => 'GET'],
|
['name' => 'overview_api#upcomingCards', 'url' => '/api/v{apiVersion}/overview/upcoming', 'verb' => 'GET'],
|
||||||
|
|
||||||
['name' => 'search#search', 'url' => '/api/v{apiVersion}/search', 'verb' => 'GET'],
|
['name' => 'search#search', 'url' => '/api/v{apiVersion}/search', 'verb' => 'GET'],
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"roave/security-advisories": "dev-master",
|
"roave/security-advisories": "dev-master",
|
||||||
"phpunit/phpunit": "^9",
|
"phpunit/phpunit": "^9",
|
||||||
"nextcloud/coding-standard": "^1.1",
|
"nextcloud/coding-standard": "^1.1",
|
||||||
"nextcloud/ocp": "dev-stable30",
|
"nextcloud/ocp": "dev-master",
|
||||||
"psalm/phar": "^5.13"
|
"psalm/phar": "^5.13"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
"composer/package-versions-deprecated": true
|
"composer/package-versions-deprecated": true
|
||||||
},
|
},
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "8.0"
|
"php": "8.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
888
composer.lock
generated
888
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
input[type=submit].icon-confirm {
|
input[type=submit].icon-confirm {
|
||||||
border-color: var(--color-border-maxcontrast) !important;
|
border-color: var(--color-border-maxcontrast) !important;
|
||||||
|
border-style: solid;
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randUser } from '../utils/index.js'
|
||||||
const user = randUser()
|
const user = randUser()
|
||||||
const recipient = randUser()
|
const recipient = randUser()
|
||||||
|
import { sampleBoard } from '../utils/sampleBoard'
|
||||||
|
|
||||||
describe('Board', function() {
|
describe('Board', function() {
|
||||||
|
|
||||||
@@ -58,3 +59,151 @@ describe('Board', function() {
|
|||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('Board cloning', function() {
|
||||||
|
before(function() {
|
||||||
|
cy.createUser(user)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Clones a board without cards', function() {
|
||||||
|
const boardName = 'Clone board original'
|
||||||
|
const board = sampleBoard(boardName)
|
||||||
|
cy.createExampleBoard({ user, board }).then((board) => {
|
||||||
|
const boardId = board.id
|
||||||
|
cy.visit(`/apps/deck/board/${boardId}`)
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.parent()
|
||||||
|
.find('button[aria-label="Actions"]')
|
||||||
|
.click()
|
||||||
|
cy.get('button:contains("Clone board")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.modal-container button:contains("Clone")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||||
|
|
||||||
|
cy.get('h3[aria-label="TestList"]')
|
||||||
|
.should('be.visible')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Clones a board with cards', function() {
|
||||||
|
const boardName = 'Clone with cards'
|
||||||
|
const board = sampleBoard(boardName)
|
||||||
|
cy.createExampleBoard({ user, board }).then((board) => {
|
||||||
|
const boardId = board.id
|
||||||
|
cy.visit(`/apps/deck/board/${boardId}`)
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.parent()
|
||||||
|
.find('button[aria-label="Actions"]')
|
||||||
|
.click()
|
||||||
|
cy.get('button:contains("Clone board")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.checkbox-content__text:contains("Clone cards")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.modal-container button:contains("Clone")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||||
|
|
||||||
|
cy.get('h3[aria-label="TestList"]')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.card:contains("Hello world")')
|
||||||
|
.should('be.visible')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Board export', function() {
|
||||||
|
before(function() {
|
||||||
|
cy.createUser(user)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Exports a board as JSON', function() {
|
||||||
|
const boardName = 'Export JSON board'
|
||||||
|
const board = sampleBoard(boardName)
|
||||||
|
cy.createExampleBoard({ user, board }).then((board) => {
|
||||||
|
const boardId = board.id
|
||||||
|
cy.visit(`/apps/deck/board/${boardId}`)
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.parent()
|
||||||
|
.find('button[aria-label="Actions"]')
|
||||||
|
.click()
|
||||||
|
cy.get('button:contains("Export board")')
|
||||||
|
.click()
|
||||||
|
cy.get('.modal-container .checkbox-radio-switch__text:contains("Export as JSON")')
|
||||||
|
.click()
|
||||||
|
cy.get('.modal-container button:contains("Export")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
const downloadsFolder = Cypress.config('downloadsFolder')
|
||||||
|
cy.readFile(`${downloadsFolder}/${boardName}.json`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Exports a board as CSV', function() {
|
||||||
|
const boardName = 'Export CSV board'
|
||||||
|
const board = sampleBoard(boardName)
|
||||||
|
cy.createExampleBoard({ user, board }).then((board) => {
|
||||||
|
const boardId = board.id
|
||||||
|
cy.visit(`/apps/deck/board/${boardId}`)
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||||
|
.parent()
|
||||||
|
.find('button[aria-label="Actions"]')
|
||||||
|
.click()
|
||||||
|
cy.get('button:contains("Export board")')
|
||||||
|
.click()
|
||||||
|
cy.get('.modal-container .checkbox-radio-switch__text:contains("Export as CSV")')
|
||||||
|
.click()
|
||||||
|
cy.get('.modal-container button:contains("Export")')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
const downloadsFolder = Cypress.config('downloadsFolder')
|
||||||
|
cy.readFile(`${downloadsFolder}/${boardName}.csv`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Board import', function() {
|
||||||
|
before(function () {
|
||||||
|
cy.createUser(user)
|
||||||
|
})
|
||||||
|
beforeEach(function() {
|
||||||
|
cy.login(user)
|
||||||
|
cy.visit('/apps/deck')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Imports a board from JSON', function() {
|
||||||
|
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry:contains("Import board")')
|
||||||
|
.should('be.visible')
|
||||||
|
.click()
|
||||||
|
|
||||||
|
// Upload a JSON file
|
||||||
|
cy.get('input[type="file"]')
|
||||||
|
.selectFile([
|
||||||
|
{
|
||||||
|
contents: 'cypress/fixtures/import-board.json',
|
||||||
|
fileName: 'import-board.json',
|
||||||
|
},
|
||||||
|
], { force: true })
|
||||||
|
|
||||||
|
cy.get('.app-navigation__list .app-navigation-entry:contains("Imported board")')
|
||||||
|
.should('be.visible')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ const useModal = (useModal) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('Card', function() {
|
describe('Card', function () {
|
||||||
let boardId
|
let boardId
|
||||||
before(function() {
|
before(function () {
|
||||||
cy.createUser(user)
|
cy.createUser(user)
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
cy.createExampleBoard({
|
cy.createExampleBoard({
|
||||||
@@ -38,11 +38,11 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function () {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can add a card', function() {
|
it('Can add a card', function () {
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
const newCardTitle = 'Write some cypress tests'
|
const newCardTitle = 'Write some cypress tests'
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Create card from overview', function() {
|
it('Create card from overview', function () {
|
||||||
cy.visit(`/apps/deck/#/`)
|
cy.visit(`/apps/deck/#/`)
|
||||||
const newCardTitle = 'Test create from overview'
|
const newCardTitle = 'Test create from overview'
|
||||||
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
|
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
|
||||||
@@ -71,6 +71,10 @@ describe('Card', function() {
|
|||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
cy.get('.button-vue[aria-label*="Add card"]')
|
||||||
.first().click()
|
.first().click()
|
||||||
|
|
||||||
|
// Somehow this avoids the electron crash
|
||||||
|
cy.wait(2000)
|
||||||
|
|
||||||
cy.get('.modal-mask.card-selector .card-title').should('be.visible').click().type(newCardTitle)
|
cy.get('.modal-mask.card-selector .card-title').should('be.visible').click().type(newCardTitle)
|
||||||
cy.get('.modal-mask.card-selector .multiselect-board').should('be.visible').click()
|
cy.get('.modal-mask.card-selector .multiselect-board').should('be.visible').click()
|
||||||
cy.get('.vs__dropdown-menu [data-cy="board-select-title"]:contains("' + boardData.title + '")').should('be.visible').click()
|
cy.get('.vs__dropdown-menu [data-cy="board-select-title"]:contains("' + boardData.title + '")').should('be.visible').click()
|
||||||
@@ -83,22 +87,85 @@ describe('Card', function() {
|
|||||||
cy.get('.modal-mask.card-selector button.button-vue--vue-primary').should('be.visible').click()
|
cy.get('.modal-mask.card-selector button.button-vue--vue-primary').should('be.visible').click()
|
||||||
cy.wait('@save', { timeout: 7000 })
|
cy.wait('@save', { timeout: 7000 })
|
||||||
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.reload()
|
cy.reload()
|
||||||
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('Card with link reference', () => {
|
||||||
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
|
const absoluteUrl = `https://example.com`
|
||||||
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
|
cy.get('.button-vue[aria-label*="Add card"]')
|
||||||
|
.first().click()
|
||||||
|
|
||||||
|
cy.get('.stack__card-add form input#new-stack-input-main')
|
||||||
|
.type(absoluteUrl)
|
||||||
|
cy.get('.stack__card-add form input[type=submit]')
|
||||||
|
.first().click()
|
||||||
|
cy.get('.card:contains("Example Domain")')
|
||||||
|
.should('be.visible')
|
||||||
|
.click()
|
||||||
|
})
|
||||||
|
|
||||||
|
cy.get('.app-sidebar-header', { timeout: 10000 })
|
||||||
|
.should('be.visible')
|
||||||
|
.find('h2').contains('Example Domain').should('be.visible')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Rename card with link', () => {
|
||||||
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
|
const absoluteUrl = `https://example.com`
|
||||||
|
const plainTitle = 'New title'
|
||||||
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
|
cy.get('.button-vue[aria-label*="Add card"]')
|
||||||
|
.first().click()
|
||||||
|
|
||||||
|
cy.get('.stack__card-add form input#new-stack-input-main')
|
||||||
|
.type(absoluteUrl)
|
||||||
|
cy.get('.stack__card-add form input[type=submit]')
|
||||||
|
.first().click()
|
||||||
|
cy.get('.card:contains("Example Domain")')
|
||||||
|
.should('be.visible')
|
||||||
|
})
|
||||||
|
|
||||||
|
// Rename link to plain title
|
||||||
|
cy.get('.card:contains("Example Domain")')
|
||||||
|
.last() // A duplicate card might be created in other test case, so we select the last one
|
||||||
|
.find('.action-item__menutoggle')
|
||||||
|
.click()
|
||||||
|
cy.get('.v-popper__popper button:contains("Edit title")')
|
||||||
|
.click()
|
||||||
|
cy.get(`h4:contains("${absoluteUrl}") span[contenteditable="true"]`)
|
||||||
|
.type(`{selectAll}${plainTitle}{enter}`)
|
||||||
|
cy.get(`.card:contains("${plainTitle}")`)
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
// Rename plain title to link
|
||||||
|
cy.get('.card:contains("New title")')
|
||||||
|
.find('.action-item__menutoggle')
|
||||||
|
.click()
|
||||||
|
cy.get('.v-popper__popper button:contains("Edit title")')
|
||||||
|
.click()
|
||||||
|
cy.get('h4:contains("New title") span[contenteditable="true"]')
|
||||||
|
.type(`{selectAll}${absoluteUrl}{enter}`)
|
||||||
|
cy.get('.board').click()
|
||||||
|
cy.get('.card:contains("Example Domain")')
|
||||||
|
.should('be.visible')
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
describe('Modal', () => {
|
describe('Modal', () => {
|
||||||
beforeEach(function() {
|
beforeEach(function () {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
useModal(true).then(() => {
|
useModal(true).then(() => {
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can show card details modal', function() {
|
it('Can show card details modal', function () {
|
||||||
cy.getNavigationEntry(boardData.title)
|
cy.getNavigationEntry(boardData.title)
|
||||||
.first().click({ force: true })
|
.first().click({ force: true })
|
||||||
|
|
||||||
@@ -121,10 +188,11 @@ describe('Card', function() {
|
|||||||
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
|
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
|
||||||
.click()
|
.click()
|
||||||
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
||||||
cy.get('.attachment-list .basename').contains('welcome.txt')
|
cy.get('.attachment-list .filename').contains('welcome')
|
||||||
|
cy.get('.attachment-list .filename .extension').contains('txt')
|
||||||
})
|
})
|
||||||
|
|
||||||
it.only('Shows the modal with the editor', () => {
|
it('Shows the modal with the editor', () => {
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
||||||
cy.get('.modal__card').should('be.visible')
|
cy.get('.modal__card').should('be.visible')
|
||||||
@@ -161,9 +229,9 @@ describe('Card', function() {
|
|||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').contains(boardData.stacks[0].title)
|
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').contains(boardData.stacks[0].title)
|
||||||
cy.get('.reference-picker-modal--content .reference-picker button.button-vue--vue-primary').should('be.visible').click()
|
cy.get('.reference-picker-modal--content .reference-picker button.button-vue--vue-primary').should('be.visible').click()
|
||||||
cy.wait('@save', { timeout: 7000 })
|
cy.wait('@save', { timeout: 7000 })
|
||||||
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('be.visible')
|
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('have.length', 1)
|
||||||
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/board/${boardId}`)
|
||||||
cy.reload()
|
cy.reload()
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
||||||
@@ -172,7 +240,7 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('Sidebar', () => {
|
describe('Sidebar', () => {
|
||||||
beforeEach(function() {
|
beforeEach(function () {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
useModal(false).then(() => {
|
useModal(false).then(() => {
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
@@ -185,7 +253,7 @@ describe('Card', function() {
|
|||||||
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Set a due date', function() {
|
it('Set a due date', function () {
|
||||||
const newCardTitle = 'Card with a due date'
|
const newCardTitle = 'Card with a due date'
|
||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
cy.get('.button-vue[aria-label*="Add card"]')
|
||||||
@@ -223,7 +291,7 @@ describe('Card', function() {
|
|||||||
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state]').should('not.exist')
|
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state]').should('not.exist')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Add a label', function() {
|
it('Add a label', function () {
|
||||||
const newCardTitle = 'Card with labels'
|
const newCardTitle = 'Card with labels'
|
||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
cy.get('.button-vue[aria-label*="Add card"]')
|
||||||
@@ -234,6 +302,9 @@ describe('Card', function() {
|
|||||||
.first().click()
|
.first().click()
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
|
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
|
||||||
|
|
||||||
|
// Add delay to ensure the events are bound
|
||||||
|
cy.wait(1000)
|
||||||
|
|
||||||
cy.get('#app-sidebar-vue [data-test="tag-selector"] .vs__dropdown-toggle').should('be.visible').click()
|
cy.get('#app-sidebar-vue [data-test="tag-selector"] .vs__dropdown-toggle').should('be.visible').click()
|
||||||
cy.get('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click()
|
cy.get('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click()
|
||||||
cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click()
|
cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click()
|
||||||
@@ -252,7 +323,7 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('Card actions', () => {
|
describe('Card actions', () => {
|
||||||
beforeEach(function() {
|
beforeEach(function () {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
useModal(false).then(() => {
|
useModal(false).then(() => {
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
@@ -298,5 +369,21 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('clone card', () => {
|
||||||
|
cy.intercept({ method: 'POST', url: '**/apps/deck/**/cards/*/clone' }).as('clone')
|
||||||
|
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||||
|
cy.get('#app-sidebar-vue')
|
||||||
|
.find('.ProseMirror h1').contains('Hello world').should('be.visible')
|
||||||
|
|
||||||
|
cy.get('.app-sidebar-header .action-item__menutoggle').click()
|
||||||
|
cy.get('.v-popper__popper button:contains("Move/copy card")').click()
|
||||||
|
cy.get('.vs__dropdown-menu span[title="MyTestBoard"]').should('be.visible').click()
|
||||||
|
cy.get('[data-cy="select-stack"] .vs__dropdown-toggle').should('be.visible').click()
|
||||||
|
cy.get('.vs__dropdown-menu span[title="TestList"]').should('be.visible').click()
|
||||||
|
cy.get('.modal-container button:contains("Copy card")').click()
|
||||||
|
cy.wait('@clone', { timeout: 7000 })
|
||||||
|
cy.get('.card:contains("Hello world")').should('have.length', 2)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ describe('Deck dashboard', function() {
|
|||||||
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can see the default "Personal Board" created for user by default', function() {
|
it('Can see the default "Welcome Board" created for user by default', function() {
|
||||||
cy.visit('/apps/deck')
|
cy.visit('/apps/deck')
|
||||||
|
|
||||||
const defaultBoard = 'Personal'
|
const defaultBoard = 'Welcome to Nextcloud Deck!'
|
||||||
|
|
||||||
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
||||||
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
|
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
|
||||||
|
|||||||
102
cypress/fixtures/import-board.json
Normal file
102
cypress/fixtures/import-board.json
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
{
|
||||||
|
"boards": [
|
||||||
|
{
|
||||||
|
"id": 70,
|
||||||
|
"title": "Imported board",
|
||||||
|
"owner": "unvjrmwuag",
|
||||||
|
"color": "00ff00",
|
||||||
|
"archived": false,
|
||||||
|
"labels": [
|
||||||
|
{
|
||||||
|
"id": 293,
|
||||||
|
"title": "Finished",
|
||||||
|
"color": "31CC7C",
|
||||||
|
"boardId": 70,
|
||||||
|
"cardId": null,
|
||||||
|
"lastModified": 0,
|
||||||
|
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 294,
|
||||||
|
"title": "To review",
|
||||||
|
"color": "317CCC",
|
||||||
|
"boardId": 70,
|
||||||
|
"cardId": null,
|
||||||
|
"lastModified": 0,
|
||||||
|
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 295,
|
||||||
|
"title": "Action needed",
|
||||||
|
"color": "FF7A66",
|
||||||
|
"boardId": 70,
|
||||||
|
"cardId": null,
|
||||||
|
"lastModified": 0,
|
||||||
|
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 296,
|
||||||
|
"title": "Later",
|
||||||
|
"color": "F1DB50",
|
||||||
|
"boardId": 70,
|
||||||
|
"cardId": null,
|
||||||
|
"lastModified": 0,
|
||||||
|
"ETag": "cfcd208495d565ef66e7dff9f98764da"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acl": [],
|
||||||
|
"permissions": [],
|
||||||
|
"users": [],
|
||||||
|
"stacks": {
|
||||||
|
"114": {
|
||||||
|
"id": 114,
|
||||||
|
"title": "TestList",
|
||||||
|
"boardId": 70,
|
||||||
|
"deletedAt": 0,
|
||||||
|
"lastModified": 1743495533,
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"id": 124,
|
||||||
|
"title": "Hello world",
|
||||||
|
"description": "# Hello world",
|
||||||
|
"descriptionPrev": null,
|
||||||
|
"stackId": 114,
|
||||||
|
"type": "plain",
|
||||||
|
"lastModified": 1743495533,
|
||||||
|
"lastEditor": null,
|
||||||
|
"createdAt": 1743495533,
|
||||||
|
"labels": [],
|
||||||
|
"assignedUsers": null,
|
||||||
|
"attachments": null,
|
||||||
|
"attachmentCount": null,
|
||||||
|
"owner": {
|
||||||
|
"primaryKey": "unvjrmwuag",
|
||||||
|
"uid": "unvjrmwuag",
|
||||||
|
"displayname": "unvjrmwuag",
|
||||||
|
"type": 0
|
||||||
|
},
|
||||||
|
"order": 999,
|
||||||
|
"archived": false,
|
||||||
|
"done": null,
|
||||||
|
"duedate": null,
|
||||||
|
"notified": false,
|
||||||
|
"deletedAt": 0,
|
||||||
|
"commentsUnread": 0,
|
||||||
|
"commentsCount": 0,
|
||||||
|
"relatedStack": null,
|
||||||
|
"relatedBoard": null,
|
||||||
|
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"order": 0,
|
||||||
|
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"activeSessions": [],
|
||||||
|
"deletedAt": 0,
|
||||||
|
"lastModified": 1743495533,
|
||||||
|
"settings": [],
|
||||||
|
"ETag": "aa85bb973089e7fbc0bbf122e926c23f"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -102,7 +102,11 @@ Cypress.Commands.add('shareBoardWithUi', (query, userId=query) => {
|
|||||||
cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${query}*` }).as('fetchRecipients')
|
cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${query}*` }).as('fetchRecipients')
|
||||||
cy.get('[aria-label="Open details"]').click()
|
cy.get('[aria-label="Open details"]').click()
|
||||||
cy.get('.app-sidebar').should('be.visible')
|
cy.get('.app-sidebar').should('be.visible')
|
||||||
cy.get('.select input').type(`${query}`)
|
|
||||||
|
// Add delay to ensure the events are bound
|
||||||
|
cy.wait(1000)
|
||||||
|
|
||||||
|
cy.get('.select input').click().type(`${query}`)
|
||||||
cy.wait('@fetchRecipients', { timeout: 7000 })
|
cy.wait('@fetchRecipients', { timeout: 7000 })
|
||||||
|
|
||||||
cy.get('.vs__dropdown-menu .option').first().contains(query)
|
cy.get('.vs__dropdown-menu .option').first().contains(query)
|
||||||
|
|||||||
71
docs/API.md
71
docs/API.md
@@ -6,7 +6,7 @@ The REST API provides access for authenticated users to their data inside the De
|
|||||||
|
|
||||||
# Prerequisites
|
# Prerequisites
|
||||||
|
|
||||||
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`.
|
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`. This does not apply to the endpoint for uploading attachments, which consumes `multipart/form-data`.
|
||||||
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
|
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
|
||||||
- All request parameters are required, unless otherwise specified
|
- All request parameters are required, unless otherwise specified
|
||||||
|
|
||||||
@@ -347,6 +347,34 @@ A 403 response might be returned if the users ability to create new boards has b
|
|||||||
|
|
||||||
##### 200 Success
|
##### 200 Success
|
||||||
|
|
||||||
|
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/archive - Archive a card
|
||||||
|
|
||||||
|
#### Request parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --------- | ------- | --------------------------------------- |
|
||||||
|
| boardId | Integer | The id of the board the card belongs to |
|
||||||
|
| stackId | Integer | The id of the stack the card belongs to |
|
||||||
|
| cardId | Integer | The id of the card |
|
||||||
|
|
||||||
|
#### Response
|
||||||
|
|
||||||
|
##### 200 Success
|
||||||
|
|
||||||
|
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/unarchive - Unarchive a card
|
||||||
|
|
||||||
|
#### Request parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --------- | ------- | --------------------------------------- |
|
||||||
|
| boardId | Integer | The id of the board the card belongs to |
|
||||||
|
| stackId | Integer | The id of the stack the card belongs to |
|
||||||
|
| cardId | Integer | The id of the card |
|
||||||
|
|
||||||
|
#### Response
|
||||||
|
|
||||||
|
##### 200 Success
|
||||||
|
|
||||||
### DELETE /boards/{boardId} - Delete a board
|
### DELETE /boards/{boardId} - Delete a board
|
||||||
|
|
||||||
#### Request parameters
|
#### Request parameters
|
||||||
@@ -423,6 +451,25 @@ A 403 response might be returned if the users ability to create new boards has b
|
|||||||
|
|
||||||
##### 200 Success
|
##### 200 Success
|
||||||
|
|
||||||
|
### POST /boards/{boardId}/clone - Clone a board
|
||||||
|
|
||||||
|
Creates a copy of the board.
|
||||||
|
|
||||||
|
#### Request body
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --------- | ------ | ---------------------------------------------------- |
|
||||||
|
| withCards | Bool | Setting if the cards should be copied (Default: false) |
|
||||||
|
| withAssignments | Bool | Setting if the card assignments should be cloned (Default: false) |
|
||||||
|
| withLabels | Bool | Setting if the card labels should be cloned (Default: false) |
|
||||||
|
| withDueDate | Bool | Setting if the card due dates should be cloned (Default: false) |
|
||||||
|
| moveCardsToLeftStack | Bool | Setting if all cards should be moved to the most left column (useful for To-Do / Doing / Done boards) (Default: false) |
|
||||||
|
| restoreArchivedCards | Bool | Setting if the archived cards should be unarchived (Default: false) |
|
||||||
|
|
||||||
|
#### Response
|
||||||
|
|
||||||
|
##### 200 Success
|
||||||
|
|
||||||
### DELETE /boards/{boardId}/acl/{aclId} - Delete an acl rule
|
### DELETE /boards/{boardId}/acl/{aclId} - Delete an acl rule
|
||||||
|
|
||||||
#### Response
|
#### Response
|
||||||
@@ -686,6 +733,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
|||||||
| Parameter | Type | Description |
|
| Parameter | Type | Description |
|
||||||
| --------- | ------- | --------------------------------------- |
|
| --------- | ------- | --------------------------------------- |
|
||||||
| labelId | Integer | The label id to assign to the card |
|
| labelId | Integer | The label id to assign to the card |
|
||||||
|
|
||||||
#### Response
|
#### Response
|
||||||
|
|
||||||
##### 200 Success
|
##### 200 Success
|
||||||
@@ -950,10 +998,12 @@ The request can fail with a bad request response for the following reasons:
|
|||||||
|
|
||||||
#### Request data
|
#### Request data
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
The request is performed as `multipart/form-data`.
|
||||||
| --------- | ------- | --------------------------------------------- |
|
|
||||||
| type | String | The type of the attachement |
|
| Parameter | Type | Description |
|
||||||
| file | Binary | File data to add as an attachment |
|
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
||||||
|
| type | String | The type of the attachement. Use `file` or `deck_file`. |
|
||||||
|
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
||||||
|
|
||||||
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
|
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
|
||||||
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
|
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
|
||||||
@@ -975,12 +1025,13 @@ The request can fail with a bad request response for the following reasons:
|
|||||||
|
|
||||||
#### Request data
|
#### Request data
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
The request is performed as `multipart/form-data`.
|
||||||
| --------- | ------- | --------------------------------------------- |
|
|
||||||
| type | String | The type of the attachement |
|
| Parameter | Type | Description |
|
||||||
| file | Binary | File data to add as an attachment |
|
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
||||||
|
| type | String | The type of the attachement. For now only `deck_file` is supported as an attachment type. |
|
||||||
|
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
||||||
|
|
||||||
For now only `deck_file` is supported as an attachment type.
|
|
||||||
|
|
||||||
#### Response
|
#### Response
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ The Deck application plugin uses the [markdown-it](https://github.com/markdown-i
|
|||||||
|
|
||||||
## Supported Markdown
|
## Supported Markdown
|
||||||
|
|
||||||
Markdown comes in may flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
Markdown comes in many flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
||||||
That same link offers also a comprehensive list of what is supported, and what is not - rendering it unnecessary to duplicate that content in here.
|
That same link offers also a comprehensive list of what is supported, and what is not - rendering it unnecessary to duplicate that content in here.
|
||||||
|
|
||||||
[CommonMark Markdown Reference](http://commonmark.org/help/)
|
[CommonMark Markdown Reference](http://commonmark.org/help/)
|
||||||
|
|||||||
@@ -105,17 +105,21 @@ It is possible to import from the following sources:
|
|||||||
|
|
||||||
#### Trello JSON
|
#### Trello JSON
|
||||||
|
|
||||||
Steps:
|
**Limitations:**
|
||||||
* Create the data file
|
* Comments with more than 1000 characters are placed as attached files to the card.
|
||||||
* Access Trello
|
|
||||||
* go to the board you want to export
|
|
||||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
|
|
||||||
* Create the configuration file
|
|
||||||
* Execute the import informing the import file path, data file and source as `Trello JSON`
|
|
||||||
|
|
||||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
|
**Steps:**
|
||||||
|
1. Create the data file:
|
||||||
|
* Access Trello.
|
||||||
|
* Go to the board you want to export.
|
||||||
|
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON.
|
||||||
|
2. Create the configuration file.
|
||||||
|
3. Execute the import, specifying the import file path, data file, and source as `Trello JSON`.
|
||||||
|
|
||||||
|
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for importing `Trello JSON`.
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"owner": "admin",
|
"owner": "admin",
|
||||||
@@ -126,26 +130,22 @@ Example configuration file:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Limitations**:
|
**Additional Limitations**:
|
||||||
|
* Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, check the number of actions in the JSON.
|
||||||
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
|
|
||||||
|
|
||||||
#### Trello API
|
#### Trello API
|
||||||
|
|
||||||
Import using API is recommended for boards with more than 1000 actions.
|
Importing via API is recommended for boards with more than 1000 actions. Trello allows attaching links to a card, but Deck does not support this feature. Attachment links are instead added in a markdown table at the end of the description for each imported card.
|
||||||
|
|
||||||
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
|
1. Get the API Key and Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization).
|
||||||
|
2. Obtain the ID of the board you want to import by making a request to:
|
||||||
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
|
```
|
||||||
* Get the ID of the board you want to import by making a request to:
|
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
```
|
||||||
|
3. Create the configuration file, ensuring it follows the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for `Trello JSON`.
|
||||||
This ID you will use in the configuration file in the `board` property
|
|
||||||
* Create the configuration file
|
|
||||||
|
|
||||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
|
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"owner": "admin",
|
"owner": "admin",
|
||||||
|
|||||||
@@ -4,18 +4,19 @@
|
|||||||
-->
|
-->
|
||||||
## Export
|
## Export
|
||||||
|
|
||||||
Deck currently supports exporting all boards a user owns in a single JSON file. The format is based on the database schema that deck uses. It can be used to re-import boards on the same or other instances.
|
Deck currently supports exporting all boards a user owns in a single JSON file. The format is based on the database schema that Deck uses. It can be used to re-import boards on the same or other instances.
|
||||||
|
|
||||||
The export currently has some kown limitations in terms of specific data not included:
|
The export currently has some known limitations in terms of specific data not included:
|
||||||
- Activity information
|
- Activity information
|
||||||
- File attachments to deck cards
|
- File attachments to Deck cards
|
||||||
- Comments
|
- Comments
|
||||||
-
|
|
||||||
```
|
|
||||||
occ deck:export > my-file.json
|
|
||||||
```
|
|
||||||
|
|
||||||
## Import boards
|
```
|
||||||
|
occ deck:export userid > userid-deck-export.json
|
||||||
|
```
|
||||||
|
*(`userid` = username as seen in the admin user accounts page)*
|
||||||
|
|
||||||
|
## Import Boards
|
||||||
|
|
||||||
Importing can be done using the API or the `occ` `deck:import` command.
|
Importing can be done using the API or the `occ` `deck:import` command.
|
||||||
|
|
||||||
@@ -23,39 +24,57 @@ It is possible to import from the following sources:
|
|||||||
|
|
||||||
### Deck JSON
|
### Deck JSON
|
||||||
|
|
||||||
A json file that has been obtained from the above described `occ deck:export [userid]` command can be imported.
|
A JSON file that has been obtained from the above-described `occ deck:export [userid] > userid-deck-export.json` command can be imported.
|
||||||
|
|
||||||
```
|
```
|
||||||
occ deck:import my-file.json
|
occ deck:import userid-deck-export.json
|
||||||
```
|
```
|
||||||
|
|
||||||
In case you are importing from a different instance you may use an additional config file to provide custom user id mapping in case users have different identifiers.
|
You will be asked to provide a path to a config file.
|
||||||
|
|
||||||
```
|
To know what to put in there:
|
||||||
|
- Have a look at your `userid-deck-export.json`
|
||||||
|
- Near the top, you will see `"uid"` with a username.
|
||||||
|
- Search for additional `"uid"` entries to find all the usernames involved and note them.
|
||||||
|
- Search for `"acl"`, where `"uid"`s of groups are also present; note them too.
|
||||||
|
|
||||||
|
If you are importing from a different instance, you must provide custom user ID mapping in case users have different identifiers.
|
||||||
|
|
||||||
|
Create a config file, e.g., `deck-import-config-file-userid.json`, and adjust the content of this example as described above. User IDs on the new instance can be seen in the admin user accounts page.
|
||||||
|
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"owner": "admin",
|
"owner": "useridofnewownerofallboards",
|
||||||
"uidRelation": {
|
"uidRelation": {
|
||||||
"johndoe": "test-user-1"
|
"userid1onoldinstance": "userid1onnewinstance",
|
||||||
|
"userid2onoldinstance": "userid2onnewinstance",
|
||||||
|
"groupid1onoldinstance": "groupid1onnewinstance"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
After pressing enter, everything will be imported.
|
||||||
|
|
||||||
|
Additional info:
|
||||||
|
- If you export a user’s boards, all boards that the user has access to will be exported (including those shared with that user).
|
||||||
|
|
||||||
#### Trello JSON
|
#### Trello JSON
|
||||||
|
|
||||||
Limitations:
|
**Limitations:**
|
||||||
* Comments with more than 1000 characters are placed as attached files to the card.
|
* Comments with more than 1000 characters are placed as attached files to the card.
|
||||||
|
|
||||||
Steps:
|
**Steps:**
|
||||||
* Create the data file
|
1. Create the data file:
|
||||||
* Access Trello
|
* Access Trello.
|
||||||
* go to the board you want to export
|
* Go to the board you want to export.
|
||||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
|
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON.
|
||||||
* Create the configuration file
|
2. Create the configuration file.
|
||||||
* Execute the import informing the import file path, data file and source as `Trello JSON`
|
3. Execute the import, specifying the import file path, data file, and source as `Trello JSON`.
|
||||||
|
|
||||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
|
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for importing `Trello JSON`.
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"owner": "admin",
|
"owner": "admin",
|
||||||
@@ -66,26 +85,22 @@ Example configuration file:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Limitations**:
|
**Additional Limitations**:
|
||||||
|
* Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, check the number of actions in the JSON.
|
||||||
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
|
|
||||||
|
|
||||||
#### Trello API
|
#### Trello API
|
||||||
|
|
||||||
Import using API is recommended for boards with more than 1000 actions.
|
Importing via API is recommended for boards with more than 1000 actions. Trello allows attaching links to a card, but Deck does not support this feature. Attachment links are instead added in a markdown table at the end of the description for each imported card.
|
||||||
|
|
||||||
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
|
1. Get the API Key and Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization).
|
||||||
|
2. Obtain the ID of the board you want to import by making a request to:
|
||||||
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
|
```
|
||||||
* Get the ID of the board you want to import by making a request to:
|
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
```
|
||||||
|
3. Create the configuration file, ensuring it follows the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for `Trello JSON`.
|
||||||
This ID you will use in the configuration file in the `board` property
|
|
||||||
* Create the configuration file
|
|
||||||
|
|
||||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
|
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"owner": "admin",
|
"owner": "admin",
|
||||||
|
|||||||
BIN
img/sample-image.jpg
Normal file
BIN
img/sample-image.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
13
l10n/be.js
13
l10n/be.js
@@ -9,11 +9,9 @@ OC.L10N.register(
|
|||||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
|
||||||
"copy" : "копія",
|
"copy" : "копія",
|
||||||
"Done" : "Гатова",
|
"Done" : "Гатова",
|
||||||
"File" : "Файл",
|
"File" : "Файл",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
|
||||||
"Cancel" : "Скасаваць",
|
"Cancel" : "Скасаваць",
|
||||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||||
"File already exists" : "Файл ужо існуе",
|
"File already exists" : "Файл ужо існуе",
|
||||||
@@ -39,7 +37,6 @@ OC.L10N.register(
|
|||||||
"Delete" : "Выдаліць",
|
"Delete" : "Выдаліць",
|
||||||
"Edit" : "Рэдагаваць",
|
"Edit" : "Рэдагаваць",
|
||||||
"Members" : "Удзельнікі",
|
"Members" : "Удзельнікі",
|
||||||
"File to share" : "Файл для абагульвання",
|
|
||||||
"Invalid path selected" : "Выбраны памылковы шлях",
|
"Invalid path selected" : "Выбраны памылковы шлях",
|
||||||
"Share from Files" : "Абагуліць з Файлаў",
|
"Share from Files" : "Абагуліць з Файлаў",
|
||||||
"Show in Files" : "Паказаць у Файлах",
|
"Show in Files" : "Паказаць у Файлах",
|
||||||
@@ -52,15 +49,7 @@ OC.L10N.register(
|
|||||||
"Reply" : "Адказаць",
|
"Reply" : "Адказаць",
|
||||||
"Update" : "Абнавіць",
|
"Update" : "Абнавіць",
|
||||||
"Description" : "Апісанне",
|
"Description" : "Апісанне",
|
||||||
"Formatting help" : "Даведка па фармаціраванні",
|
|
||||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
|
||||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
|
||||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||||
"This weekend – {timeLocale}" : "У гэты ўік-энд – {timeLocale}",
|
|
||||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
|
||||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
|
||||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
|
||||||
"Create a new tag:" : "Стварыць новы тэг:",
|
|
||||||
"(group)" : "(група)",
|
"(group)" : "(група)",
|
||||||
"Open link" : "Адкрыць спасылку",
|
"Open link" : "Адкрыць спасылку",
|
||||||
"Edit title" : "Рэдагаваць загаловак",
|
"Edit title" : "Рэдагаваць загаловак",
|
||||||
@@ -69,7 +58,6 @@ OC.L10N.register(
|
|||||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||||
"Action" : "Дзеянне",
|
"Action" : "Дзеянне",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Пошук",
|
"Search" : "Пошук",
|
||||||
"Enter" : "Enter",
|
"Enter" : "Enter",
|
||||||
"Shared with you" : "Абагулена з вамі",
|
"Shared with you" : "Абагулена з вамі",
|
||||||
@@ -83,7 +71,6 @@ OC.L10N.register(
|
|||||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||||
"Share" : "Абагуліць",
|
"Share" : "Абагуліць",
|
||||||
"Personal" : "Асабістыя",
|
|
||||||
"Today" : "Сёння",
|
"Today" : "Сёння",
|
||||||
"Tomorrow" : "Заўтра"
|
"Tomorrow" : "Заўтра"
|
||||||
},
|
},
|
||||||
|
|||||||
13
l10n/be.json
13
l10n/be.json
@@ -7,11 +7,9 @@
|
|||||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
|
||||||
"copy" : "копія",
|
"copy" : "копія",
|
||||||
"Done" : "Гатова",
|
"Done" : "Гатова",
|
||||||
"File" : "Файл",
|
"File" : "Файл",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
|
||||||
"Cancel" : "Скасаваць",
|
"Cancel" : "Скасаваць",
|
||||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||||
"File already exists" : "Файл ужо існуе",
|
"File already exists" : "Файл ужо існуе",
|
||||||
@@ -37,7 +35,6 @@
|
|||||||
"Delete" : "Выдаліць",
|
"Delete" : "Выдаліць",
|
||||||
"Edit" : "Рэдагаваць",
|
"Edit" : "Рэдагаваць",
|
||||||
"Members" : "Удзельнікі",
|
"Members" : "Удзельнікі",
|
||||||
"File to share" : "Файл для абагульвання",
|
|
||||||
"Invalid path selected" : "Выбраны памылковы шлях",
|
"Invalid path selected" : "Выбраны памылковы шлях",
|
||||||
"Share from Files" : "Абагуліць з Файлаў",
|
"Share from Files" : "Абагуліць з Файлаў",
|
||||||
"Show in Files" : "Паказаць у Файлах",
|
"Show in Files" : "Паказаць у Файлах",
|
||||||
@@ -50,15 +47,7 @@
|
|||||||
"Reply" : "Адказаць",
|
"Reply" : "Адказаць",
|
||||||
"Update" : "Абнавіць",
|
"Update" : "Абнавіць",
|
||||||
"Description" : "Апісанне",
|
"Description" : "Апісанне",
|
||||||
"Formatting help" : "Даведка па фармаціраванні",
|
|
||||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
|
||||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
|
||||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||||
"This weekend – {timeLocale}" : "У гэты ўік-энд – {timeLocale}",
|
|
||||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
|
||||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
|
||||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
|
||||||
"Create a new tag:" : "Стварыць новы тэг:",
|
|
||||||
"(group)" : "(група)",
|
"(group)" : "(група)",
|
||||||
"Open link" : "Адкрыць спасылку",
|
"Open link" : "Адкрыць спасылку",
|
||||||
"Edit title" : "Рэдагаваць загаловак",
|
"Edit title" : "Рэдагаваць загаловак",
|
||||||
@@ -67,7 +56,6 @@
|
|||||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||||
"Action" : "Дзеянне",
|
"Action" : "Дзеянне",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Пошук",
|
"Search" : "Пошук",
|
||||||
"Enter" : "Enter",
|
"Enter" : "Enter",
|
||||||
"Shared with you" : "Абагулена з вамі",
|
"Shared with you" : "Абагулена з вамі",
|
||||||
@@ -81,7 +69,6 @@
|
|||||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||||
"Share" : "Абагуліць",
|
"Share" : "Абагуліць",
|
||||||
"Personal" : "Асабістыя",
|
|
||||||
"Today" : "Сёння",
|
"Today" : "Сёння",
|
||||||
"Tomorrow" : "Заўтра"
|
"Tomorrow" : "Заўтра"
|
||||||
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ OC.L10N.register(
|
|||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||||
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||||
"Deck board" : "Opslagstavle",
|
"Deck board" : "Opslagstavle",
|
||||||
@@ -188,10 +188,6 @@ OC.L10N.register(
|
|||||||
"Add Attachment" : "Tilføj vedhæftning",
|
"Add Attachment" : "Tilføj vedhæftning",
|
||||||
"Choose attachment" : "Vælg en vedhæftning",
|
"Choose attachment" : "Vælg en vedhæftning",
|
||||||
"Select Date" : "Vælg dato",
|
"Select Date" : "Vælg dato",
|
||||||
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
|
||||||
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
|
||||||
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
|
||||||
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
|
||||||
"Set a due date" : "Angiv en forfaldsdato",
|
"Set a due date" : "Angiv en forfaldsdato",
|
||||||
"Remove due date" : "Fjern forfaldsdato",
|
"Remove due date" : "Fjern forfaldsdato",
|
||||||
"Mark as done" : "Marker som færdig",
|
"Mark as done" : "Marker som færdig",
|
||||||
|
|||||||
@@ -49,8 +49,8 @@
|
|||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||||
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||||
"Deck board" : "Opslagstavle",
|
"Deck board" : "Opslagstavle",
|
||||||
@@ -186,10 +186,6 @@
|
|||||||
"Add Attachment" : "Tilføj vedhæftning",
|
"Add Attachment" : "Tilføj vedhæftning",
|
||||||
"Choose attachment" : "Vælg en vedhæftning",
|
"Choose attachment" : "Vælg en vedhæftning",
|
||||||
"Select Date" : "Vælg dato",
|
"Select Date" : "Vælg dato",
|
||||||
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
|
||||||
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
|
||||||
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
|
||||||
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
|
||||||
"Set a due date" : "Angiv en forfaldsdato",
|
"Set a due date" : "Angiv en forfaldsdato",
|
||||||
"Remove due date" : "Fjern forfaldsdato",
|
"Remove due date" : "Fjern forfaldsdato",
|
||||||
"Mark as done" : "Marker som færdig",
|
"Mark as done" : "Marker som færdig",
|
||||||
|
|||||||
44
l10n/el.js
44
l10n/el.js
@@ -81,14 +81,10 @@ OC.L10N.register(
|
|||||||
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
||||||
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
||||||
"Invalid file type. Only JSON files are allowed." : "Μη έγκυρος τύπος αρχείου. Επιτρέπονται μόνο αρχεία JSON.",
|
|
||||||
"Invalid JSON data" : "Μη έγκυρα δεδομένα JSON",
|
|
||||||
"Failed to import board" : "Αποτυχία εισαγωγής πίνακα",
|
|
||||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
||||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
||||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||||
"Load more" : "Φόρτωση περισσότερων",
|
"Load more" : "Φόρτωση περισσότερων",
|
||||||
"Welcome to Nextcloud Deck!" : "Καλώς ήρθατε στο Nextcloud Deck!",
|
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
||||||
@@ -100,7 +96,6 @@ OC.L10N.register(
|
|||||||
"Deck board" : "Πίνακας του Deck",
|
"Deck board" : "Πίνακας του Deck",
|
||||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Από %1$s, στον %2$s/%3$s, που ανήκει στον %4$s",
|
|
||||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||||
"Card comments" : "Σχόλια καρτέλας",
|
"Card comments" : "Σχόλια καρτέλας",
|
||||||
"%s on %s" : "%s στο %s",
|
"%s on %s" : "%s στο %s",
|
||||||
@@ -111,20 +106,11 @@ OC.L10N.register(
|
|||||||
"Action needed" : "Απαιτείται ενέργεια",
|
"Action needed" : "Απαιτείται ενέργεια",
|
||||||
"Later" : "Αργότερα",
|
"Later" : "Αργότερα",
|
||||||
"copy" : "Αντιγραφή",
|
"copy" : "Αντιγραφή",
|
||||||
"Read more inside" : "Διαβάστε περισσότερα εντός",
|
|
||||||
"Custom lists - click to rename!" : "Προσαρμοσμένες λίστες - κάντε κλικ για μετονομασία!",
|
|
||||||
"To Do" : "Προς Ενέργεια",
|
"To Do" : "Προς Ενέργεια",
|
||||||
"In Progress" : "Σε Εξέλιξη",
|
|
||||||
"Done" : "Ολοκληρώθηκε",
|
"Done" : "Ολοκληρώθηκε",
|
||||||
"1. Open to learn more about boards and cards" : "1. Ανοίξτε για να μάθετε περισσότερα για τους πίνακες και τις κάρτες",
|
|
||||||
"2. Drag cards left and right, up and down" : "2. Σύρετε κάρτες αριστερά και δεξιά, πάνω και κάτω",
|
|
||||||
"3. Apply rich formatting and link content" : "3. Εφαρμόστε πλούσια μορφοποίηση και συνδέστε περιεχόμενο",
|
|
||||||
"4. Share, comment and collaborate!" : "4. Μοιραστείτε, σχολιάστε και συνεργαστείτε!",
|
|
||||||
"Create your first card!" : "Δημιουργήστε την πρώτη σας κάρτα!",
|
|
||||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
||||||
"Attachments" : "Συνημμένα",
|
"Attachments" : "Συνημμένα",
|
||||||
"File" : "Αρχείο",
|
"File" : "Αρχείο",
|
||||||
"date" : "ημερομηνία",
|
|
||||||
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
||||||
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
||||||
@@ -135,12 +121,10 @@ OC.L10N.register(
|
|||||||
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
||||||
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
||||||
"Select board" : "Επιλογή πίνακα",
|
"Select board" : "Επιλογή πίνακα",
|
||||||
"Move/copy card" : "Μετακίνηση/αντιγραφή κάρτας",
|
|
||||||
"Select a board" : "Επιλογή ενός πίνακα",
|
"Select a board" : "Επιλογή ενός πίνακα",
|
||||||
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
||||||
"Select a list" : "Επιλέξτε μια λίστα",
|
"Select a list" : "Επιλέξτε μια λίστα",
|
||||||
"Move card" : "Μετακίνηση καρτέλας",
|
"Move card" : "Μετακίνηση καρτέλας",
|
||||||
"Copy card" : "Αντίγραφο κάρτας",
|
|
||||||
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
||||||
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
||||||
"Select a card" : "Επιλογή μιας καρτέλας",
|
"Select a card" : "Επιλογή μιας καρτέλας",
|
||||||
@@ -228,7 +212,7 @@ OC.L10N.register(
|
|||||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||||
"File to share" : "Αρχείο για κοινή χρήση",
|
"File to share" : "Αρχείο για κοινή χρήση",
|
||||||
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
||||||
"Upload new files" : "Μεταφορτώστε νέα αρχεία",
|
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||||
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
||||||
@@ -240,7 +224,6 @@ OC.L10N.register(
|
|||||||
"Modified" : "Τροποποιήθηκε",
|
"Modified" : "Τροποποιήθηκε",
|
||||||
"Created" : "Δημιουργήθηκε",
|
"Created" : "Δημιουργήθηκε",
|
||||||
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
||||||
"Cannot close unsaved card!" : "Αδυναμία κλεισίματος της κάρτας που δεν έχει αποθηκευτεί!",
|
|
||||||
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
||||||
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
||||||
"Comments" : "Σχόλια",
|
"Comments" : "Σχόλια",
|
||||||
@@ -255,7 +238,6 @@ OC.L10N.register(
|
|||||||
"Reply" : "Απάντηση",
|
"Reply" : "Απάντηση",
|
||||||
"Update" : "Ενημέρωση",
|
"Update" : "Ενημέρωση",
|
||||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||||
"Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής",
|
|
||||||
"Description" : "Περιγραφή",
|
"Description" : "Περιγραφή",
|
||||||
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
||||||
"(Saving…)" : "(Αποθήκευση...)",
|
"(Saving…)" : "(Αποθήκευση...)",
|
||||||
@@ -334,7 +316,6 @@ OC.L10N.register(
|
|||||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||||
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
||||||
"Save board" : "Αποθήκευση πίνακα",
|
|
||||||
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
||||||
"All cards" : "Όλες οι καρτέλες",
|
"All cards" : "Όλες οι καρτέλες",
|
||||||
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
||||||
@@ -342,7 +323,6 @@ OC.L10N.register(
|
|||||||
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
||||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
||||||
"Delete the board?" : "Διαγραφή του πίνακα;",
|
"Delete the board?" : "Διαγραφή του πίνακα;",
|
||||||
"Exporting board..." : "Εξαγωγή πίνακα...",
|
|
||||||
"Board details" : "Λεπτομέριες πίνακα",
|
"Board details" : "Λεπτομέριες πίνακα",
|
||||||
"Edit board" : "Επεξεργασία πίνακα",
|
"Edit board" : "Επεξεργασία πίνακα",
|
||||||
"Clone board" : "Κλώνος πίνακα",
|
"Clone board" : "Κλώνος πίνακα",
|
||||||
@@ -355,25 +335,12 @@ OC.L10N.register(
|
|||||||
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
||||||
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
||||||
"Delete board" : "Διαγραφή πίνακα",
|
"Delete board" : "Διαγραφή πίνακα",
|
||||||
"Importing board..." : "Εισαγωγή πίνακα...",
|
"Clone cards" : "Κάρτες κλώνου",
|
||||||
"Board imported successfully" : "Ο πίνακας εισήχθη επιτυχώς",
|
"Advanced options" : "Επιλογές για προχωρημένους",
|
||||||
"Import board" : "Εισαγωγή πίνακα",
|
"Clone" : "Κλώνος",
|
||||||
"Clone {boardTitle}" : "Κλωνοποίηση {boardTitle}",
|
"Export as CSV" : "Εξαγωγή σε CSV",
|
||||||
"Clone cards" : "Κλωνοποίηση καρτών",
|
|
||||||
"Clone assignments" : "Κλωνοποίηση αναθέσεων",
|
|
||||||
"Clone labels" : "Κλωνοποίηση ετικετών",
|
|
||||||
"Clone due dates" : "Κλωνοποίηση προθεσμιών",
|
|
||||||
"Advanced options" : "Προχωρημένες επιλογές",
|
|
||||||
"Move all cards to the first list" : "Μετακίνηση όλων των καρτών στην πρώτη λίστα",
|
|
||||||
"Restore archived cards" : "Επαναφορά αρχειοθετημένων καρτών",
|
|
||||||
"Clone" : "Κλωνοποίηση",
|
|
||||||
"Export {boardTitle}" : "Εξαγωγή {boardTitle}",
|
|
||||||
"Export as JSON" : "Εξαγωγή ως JSON",
|
|
||||||
"Export as CSV" : "Εξαγωγή ως CSV",
|
|
||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Σημείωση: Μόνο η μορφή JSON υποστηρίζεται για εισαγωγή πίσω στην εφαρμογή Deck.",
|
|
||||||
"Export" : "Εξαγωγή",
|
"Export" : "Εξαγωγή",
|
||||||
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
||||||
"Search for {searchQuery} in other boards" : "Αναζήτηση για {searchQuery} σε άλλους πίνακες",
|
|
||||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||||
@@ -402,7 +369,6 @@ OC.L10N.register(
|
|||||||
"Something went wrong" : "Κάτι πήγε στραβά",
|
"Something went wrong" : "Κάτι πήγε στραβά",
|
||||||
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
||||||
"Assigned users" : "Ανατεθειμένοι χρήστες",
|
|
||||||
"Due date" : "Προθεσμία",
|
"Due date" : "Προθεσμία",
|
||||||
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
||||||
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
||||||
|
|||||||
44
l10n/el.json
44
l10n/el.json
@@ -79,14 +79,10 @@
|
|||||||
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
"Could not write file to disk" : "Αδυναμία εγγραφής αρχείου στον δίσκο",
|
||||||
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
"A PHP extension stopped the file upload" : "Ένα πρόσθετο PHP διέκοψε την μεταφόρτωση του αρχείου",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Δεν μεταφορτώθηκε αρχείο ή το μέγεθος αρχείου υπερβαίνει το μέγιστο %s",
|
||||||
"Invalid file type. Only JSON files are allowed." : "Μη έγκυρος τύπος αρχείου. Επιτρέπονται μόνο αρχεία JSON.",
|
|
||||||
"Invalid JSON data" : "Μη έγκυρα δεδομένα JSON",
|
|
||||||
"Failed to import board" : "Αποτυχία εισαγωγής πίνακα",
|
|
||||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
||||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
||||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||||
"Load more" : "Φόρτωση περισσότερων",
|
"Load more" : "Φόρτωση περισσότερων",
|
||||||
"Welcome to Nextcloud Deck!" : "Καλώς ήρθατε στο Nextcloud Deck!",
|
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Η καρτέλα \"%s\" του \"%s\" ανατέθηκε σε εσάς από τον %s.",
|
||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "Ο/Η {user} έχει αναθέσει την καρτέλα {deck-card} του πίνακα {deck-board} σε εσάς.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Η καρτέλα \"%s\" στο \"%s\" έχει λήξει.",
|
||||||
@@ -98,7 +94,6 @@
|
|||||||
"Deck board" : "Πίνακας του Deck",
|
"Deck board" : "Πίνακας του Deck",
|
||||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Από %1$s, στον %2$s/%3$s, που ανήκει στον %4$s",
|
|
||||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||||
"Card comments" : "Σχόλια καρτέλας",
|
"Card comments" : "Σχόλια καρτέλας",
|
||||||
"%s on %s" : "%s στο %s",
|
"%s on %s" : "%s στο %s",
|
||||||
@@ -109,20 +104,11 @@
|
|||||||
"Action needed" : "Απαιτείται ενέργεια",
|
"Action needed" : "Απαιτείται ενέργεια",
|
||||||
"Later" : "Αργότερα",
|
"Later" : "Αργότερα",
|
||||||
"copy" : "Αντιγραφή",
|
"copy" : "Αντιγραφή",
|
||||||
"Read more inside" : "Διαβάστε περισσότερα εντός",
|
|
||||||
"Custom lists - click to rename!" : "Προσαρμοσμένες λίστες - κάντε κλικ για μετονομασία!",
|
|
||||||
"To Do" : "Προς Ενέργεια",
|
"To Do" : "Προς Ενέργεια",
|
||||||
"In Progress" : "Σε Εξέλιξη",
|
|
||||||
"Done" : "Ολοκληρώθηκε",
|
"Done" : "Ολοκληρώθηκε",
|
||||||
"1. Open to learn more about boards and cards" : "1. Ανοίξτε για να μάθετε περισσότερα για τους πίνακες και τις κάρτες",
|
|
||||||
"2. Drag cards left and right, up and down" : "2. Σύρετε κάρτες αριστερά και δεξιά, πάνω και κάτω",
|
|
||||||
"3. Apply rich formatting and link content" : "3. Εφαρμόστε πλούσια μορφοποίηση και συνδέστε περιεχόμενο",
|
|
||||||
"4. Share, comment and collaborate!" : "4. Μοιραστείτε, σχολιάστε και συνεργαστείτε!",
|
|
||||||
"Create your first card!" : "Δημιουργήστε την πρώτη σας κάρτα!",
|
|
||||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Αυτό το σχόλιο έχει περισσότερους από %s χαρακτήρες.\nΠροστέθηκε ως συνημμένο στην καρτέλα με όνομα %s .\nΠροσβάσιμο στη διεύθυνση URL: %s.",
|
||||||
"Attachments" : "Συνημμένα",
|
"Attachments" : "Συνημμένα",
|
||||||
"File" : "Αρχείο",
|
"File" : "Αρχείο",
|
||||||
"date" : "ημερομηνία",
|
|
||||||
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
"Card not found" : "Η καρτέλα δεν βρέθηκε",
|
||||||
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
"Path is already shared with this card" : "Η διαδρομή κοινοποιείται ήδη σε αυτήν την καρτέλα",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
"Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή ημερομηνίας πρέπει να είναι ΕΕΕΕ-ΜΜ-ΗΗ",
|
||||||
@@ -133,12 +119,10 @@
|
|||||||
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
"Select the board to link to a project" : "Επιλέξτε πίνακα και συνδέστε τον σε ένα έργο",
|
||||||
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
"Search by board title" : "Αναζήτηση με το όνομα πίνακα",
|
||||||
"Select board" : "Επιλογή πίνακα",
|
"Select board" : "Επιλογή πίνακα",
|
||||||
"Move/copy card" : "Μετακίνηση/αντιγραφή κάρτας",
|
|
||||||
"Select a board" : "Επιλογή ενός πίνακα",
|
"Select a board" : "Επιλογή ενός πίνακα",
|
||||||
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
"No lists available" : "Δεν υπάρχουν διαθέσιμες λίστες",
|
||||||
"Select a list" : "Επιλέξτε μια λίστα",
|
"Select a list" : "Επιλέξτε μια λίστα",
|
||||||
"Move card" : "Μετακίνηση καρτέλας",
|
"Move card" : "Μετακίνηση καρτέλας",
|
||||||
"Copy card" : "Αντίγραφο κάρτας",
|
|
||||||
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
"Select the card to link to a project" : "Επιλογή καρτέλας για σύνδεση στο έργο",
|
||||||
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
"Link to card" : "Σύνδεσμος σε καρτέλα",
|
||||||
"Select a card" : "Επιλογή μιας καρτέλας",
|
"Select a card" : "Επιλογή μιας καρτέλας",
|
||||||
@@ -226,7 +210,7 @@
|
|||||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||||
"File to share" : "Αρχείο για κοινή χρήση",
|
"File to share" : "Αρχείο για κοινή χρήση",
|
||||||
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
"Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
|
||||||
"Upload new files" : "Μεταφορτώστε νέα αρχεία",
|
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||||
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
"Add this attachment" : "Προσθήκη αυτού του συνημμένου",
|
||||||
@@ -238,7 +222,6 @@
|
|||||||
"Modified" : "Τροποποιήθηκε",
|
"Modified" : "Τροποποιήθηκε",
|
||||||
"Created" : "Δημιουργήθηκε",
|
"Created" : "Δημιουργήθηκε",
|
||||||
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
"The title cannot be empty." : "Ο τίτλος δεν μπορεί να είναι κενός.",
|
||||||
"Cannot close unsaved card!" : "Αδυναμία κλεισίματος της κάρτας που δεν έχει αποθηκευτεί!",
|
|
||||||
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
"Open in sidebar view" : "Άνοιγμα σε προβολή πλευρικής στήλης",
|
||||||
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
"Open in bigger view" : "Άνοιγμα σε μεγαλύτερη προβολή",
|
||||||
"Comments" : "Σχόλια",
|
"Comments" : "Σχόλια",
|
||||||
@@ -253,7 +236,6 @@
|
|||||||
"Reply" : "Απάντηση",
|
"Reply" : "Απάντηση",
|
||||||
"Update" : "Ενημέρωση",
|
"Update" : "Ενημέρωση",
|
||||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||||
"Could not save description" : "Αδυναμία αποθήκευσης της περιγραφής",
|
|
||||||
"Description" : "Περιγραφή",
|
"Description" : "Περιγραφή",
|
||||||
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
"(Unsaved)" : "(Δεν αποθηκεύτηκε)",
|
||||||
"(Saving…)" : "(Αποθήκευση...)",
|
"(Saving…)" : "(Αποθήκευση...)",
|
||||||
@@ -332,7 +314,6 @@
|
|||||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||||
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
"Cancel edit" : "Ακύρωση επεξεργασίας",
|
||||||
"Save board" : "Αποθήκευση πίνακα",
|
|
||||||
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
"Board {0} deleted" : "Διαγράφηκε {0} πίνακας ",
|
||||||
"All cards" : "Όλες οι καρτέλες",
|
"All cards" : "Όλες οι καρτέλες",
|
||||||
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
"Only assigned cards" : "Μόνο καρτέλες που έχουν ανατεθεί",
|
||||||
@@ -340,7 +321,6 @@
|
|||||||
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
"An error occurred" : "Παρουσιάστηκε σφάλμα",
|
||||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Είστε βέβαιοι ότι θέλετε να διαγράψετε τον πίνακα {title}; Αυτό θα διαγράψει όλα τα δεδομένα του πίνακα συμπεριλαμβανομένων και των αρχειοθετημένων καρτών.",
|
||||||
"Delete the board?" : "Διαγραφή του πίνακα;",
|
"Delete the board?" : "Διαγραφή του πίνακα;",
|
||||||
"Exporting board..." : "Εξαγωγή πίνακα...",
|
|
||||||
"Board details" : "Λεπτομέριες πίνακα",
|
"Board details" : "Λεπτομέριες πίνακα",
|
||||||
"Edit board" : "Επεξεργασία πίνακα",
|
"Edit board" : "Επεξεργασία πίνακα",
|
||||||
"Clone board" : "Κλώνος πίνακα",
|
"Clone board" : "Κλώνος πίνακα",
|
||||||
@@ -353,25 +333,12 @@
|
|||||||
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
"Assigned cards" : "Ανατεθειμένες καρτέλες",
|
||||||
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
"No notifications" : "Δεν υπάρχουν ειδοποιήσεις",
|
||||||
"Delete board" : "Διαγραφή πίνακα",
|
"Delete board" : "Διαγραφή πίνακα",
|
||||||
"Importing board..." : "Εισαγωγή πίνακα...",
|
"Clone cards" : "Κάρτες κλώνου",
|
||||||
"Board imported successfully" : "Ο πίνακας εισήχθη επιτυχώς",
|
"Advanced options" : "Επιλογές για προχωρημένους",
|
||||||
"Import board" : "Εισαγωγή πίνακα",
|
"Clone" : "Κλώνος",
|
||||||
"Clone {boardTitle}" : "Κλωνοποίηση {boardTitle}",
|
"Export as CSV" : "Εξαγωγή σε CSV",
|
||||||
"Clone cards" : "Κλωνοποίηση καρτών",
|
|
||||||
"Clone assignments" : "Κλωνοποίηση αναθέσεων",
|
|
||||||
"Clone labels" : "Κλωνοποίηση ετικετών",
|
|
||||||
"Clone due dates" : "Κλωνοποίηση προθεσμιών",
|
|
||||||
"Advanced options" : "Προχωρημένες επιλογές",
|
|
||||||
"Move all cards to the first list" : "Μετακίνηση όλων των καρτών στην πρώτη λίστα",
|
|
||||||
"Restore archived cards" : "Επαναφορά αρχειοθετημένων καρτών",
|
|
||||||
"Clone" : "Κλωνοποίηση",
|
|
||||||
"Export {boardTitle}" : "Εξαγωγή {boardTitle}",
|
|
||||||
"Export as JSON" : "Εξαγωγή ως JSON",
|
|
||||||
"Export as CSV" : "Εξαγωγή ως CSV",
|
|
||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Σημείωση: Μόνο η μορφή JSON υποστηρίζεται για εισαγωγή πίσω στην εφαρμογή Deck.",
|
|
||||||
"Export" : "Εξαγωγή",
|
"Export" : "Εξαγωγή",
|
||||||
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
"Loading filtered view" : "Φόρτωση εμφάνισης με βάση το φίλτρο",
|
||||||
"Search for {searchQuery} in other boards" : "Αναζήτηση για {searchQuery} σε άλλους πίνακες",
|
|
||||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||||
@@ -400,7 +367,6 @@
|
|||||||
"Something went wrong" : "Κάτι πήγε στραβά",
|
"Something went wrong" : "Κάτι πήγε στραβά",
|
||||||
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
"Failed to upload {name}" : "Αποτυχία μεταφόρτωσης {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
"Maximum file size of {size} exceeded" : "Υπέρβαση επιτρεπόμενου μεγέθους αρχείου {size}",
|
||||||
"Assigned users" : "Ανατεθειμένοι χρήστες",
|
|
||||||
"Due date" : "Προθεσμία",
|
"Due date" : "Προθεσμία",
|
||||||
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
"Error creating the share" : "Σφάλμα κατά τη δημιουργία της κοινοποίησης",
|
||||||
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
"Share with a Deck card" : "Μοιραστείτε με μια καρτέλα Deck",
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ OC.L10N.register(
|
|||||||
"Delete board" : "Supprimer le tableau",
|
"Delete board" : "Supprimer le tableau",
|
||||||
"Importing board..." : "Importation du tableau...",
|
"Importing board..." : "Importation du tableau...",
|
||||||
"Board imported successfully" : "Carte importée avec succès",
|
"Board imported successfully" : "Carte importée avec succès",
|
||||||
"Import board" : "Importer un tableau",
|
"Import board" : "Tableau d'importation",
|
||||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||||
"Clone cards" : "Dupliquer les cartes",
|
"Clone cards" : "Dupliquer les cartes",
|
||||||
"Clone assignments" : "Cloner les affectations",
|
"Clone assignments" : "Cloner les affectations",
|
||||||
@@ -373,7 +373,6 @@ OC.L10N.register(
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Remarque : seul le format JSON est pris en charge pour la réimportation dans l'application Deck.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Remarque : seul le format JSON est pris en charge pour la réimportation dans l'application Deck.",
|
||||||
"Export" : "Exporter",
|
"Export" : "Exporter",
|
||||||
"Loading filtered view" : "Chargement de la vue filtrée",
|
"Loading filtered view" : "Chargement de la vue filtrée",
|
||||||
"Search for {searchQuery} in other boards" : "Rechercher {searchQuery} dans les autres tableaux",
|
|
||||||
"Search for {searchQuery} in all boards" : "Recherche de {searchQuery} dans tous les tableaux",
|
"Search for {searchQuery} in all boards" : "Recherche de {searchQuery} dans tous les tableaux",
|
||||||
"No results found" : "Aucun résultat",
|
"No results found" : "Aucun résultat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tableau Deck {name}\n* Dernière modification le {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Tableau Deck {name}\n* Dernière modification le {lastMod}",
|
||||||
|
|||||||
@@ -355,7 +355,7 @@
|
|||||||
"Delete board" : "Supprimer le tableau",
|
"Delete board" : "Supprimer le tableau",
|
||||||
"Importing board..." : "Importation du tableau...",
|
"Importing board..." : "Importation du tableau...",
|
||||||
"Board imported successfully" : "Carte importée avec succès",
|
"Board imported successfully" : "Carte importée avec succès",
|
||||||
"Import board" : "Importer un tableau",
|
"Import board" : "Tableau d'importation",
|
||||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||||
"Clone cards" : "Dupliquer les cartes",
|
"Clone cards" : "Dupliquer les cartes",
|
||||||
"Clone assignments" : "Cloner les affectations",
|
"Clone assignments" : "Cloner les affectations",
|
||||||
@@ -371,7 +371,6 @@
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Remarque : seul le format JSON est pris en charge pour la réimportation dans l'application Deck.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Remarque : seul le format JSON est pris en charge pour la réimportation dans l'application Deck.",
|
||||||
"Export" : "Exporter",
|
"Export" : "Exporter",
|
||||||
"Loading filtered view" : "Chargement de la vue filtrée",
|
"Loading filtered view" : "Chargement de la vue filtrée",
|
||||||
"Search for {searchQuery} in other boards" : "Rechercher {searchQuery} dans les autres tableaux",
|
|
||||||
"Search for {searchQuery} in all boards" : "Recherche de {searchQuery} dans tous les tableaux",
|
"Search for {searchQuery} in all boards" : "Recherche de {searchQuery} dans tous les tableaux",
|
||||||
"No results found" : "Aucun résultat",
|
"No results found" : "Aucun résultat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Tableau Deck {name}\n* Dernière modification le {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Tableau Deck {name}\n* Dernière modification le {lastMod}",
|
||||||
|
|||||||
@@ -373,7 +373,6 @@ OC.L10N.register(
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
||||||
"Export" : "Exportálás",
|
"Export" : "Exportálás",
|
||||||
"Loading filtered view" : "Szűrt nézet betöltése",
|
"Loading filtered view" : "Szűrt nézet betöltése",
|
||||||
"Search for {searchQuery} in other boards" : "Keresés a(z) {searchQuery} kifejezésre a többi táblában",
|
|
||||||
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
||||||
"No results found" : "Nincs találat",
|
"No results found" : "Nincs találat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
||||||
|
|||||||
@@ -371,7 +371,6 @@
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
||||||
"Export" : "Exportálás",
|
"Export" : "Exportálás",
|
||||||
"Loading filtered view" : "Szűrt nézet betöltése",
|
"Loading filtered view" : "Szűrt nézet betöltése",
|
||||||
"Search for {searchQuery} in other boards" : "Keresés a(z) {searchQuery} kifejezésre a többi táblában",
|
|
||||||
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
||||||
"No results found" : "Nincs találat",
|
"No results found" : "Nincs találat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
||||||
|
|||||||
@@ -6,19 +6,16 @@ OC.L10N.register(
|
|||||||
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
||||||
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
||||||
"Finished" : "Immed",
|
"Finished" : "Immed",
|
||||||
"copy" : "nɣel",
|
|
||||||
"Done" : "Immed",
|
"Done" : "Immed",
|
||||||
"Attachments" : "Ticeqqufin",
|
"Attachments" : "Ticeqqufin",
|
||||||
"File" : "Afaylu",
|
"File" : "Afaylu",
|
||||||
"Cancel" : "Sefsex",
|
"Cancel" : "Sefsex",
|
||||||
"Open" : "Ldi",
|
"Open" : "Ldi",
|
||||||
"Completed" : "Yemmed",
|
"Completed" : "Yemmed",
|
||||||
"Open details" : "Ldi talqayt",
|
|
||||||
"Details" : "Talqayt",
|
"Details" : "Talqayt",
|
||||||
"Sharing" : "Beṭṭu",
|
"Sharing" : "Beṭṭu",
|
||||||
"Tags" : "Tibzimin",
|
"Tags" : "Tibzimin",
|
||||||
"Activity" : "Armud",
|
"Activity" : "Armud",
|
||||||
"Transfer" : "Seḍfeṛ",
|
|
||||||
"Owner" : "Bab",
|
"Owner" : "Bab",
|
||||||
"Delete" : "Kkes",
|
"Delete" : "Kkes",
|
||||||
"Edit" : "Ẓreg",
|
"Edit" : "Ẓreg",
|
||||||
@@ -29,9 +26,6 @@ OC.L10N.register(
|
|||||||
"Save" : "Sekles",
|
"Save" : "Sekles",
|
||||||
"Cancel reply" : "Semmet tiririt.",
|
"Cancel reply" : "Semmet tiririt.",
|
||||||
"Reply" : "Err",
|
"Reply" : "Err",
|
||||||
"Description" : "Aglam",
|
|
||||||
"Open link" : "Nɣel aseɣwen",
|
|
||||||
"Keyboard shortcuts" : "Inegzumen n unasiw",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Nadi",
|
"Search" : "Nadi",
|
||||||
"Cancel edit" : "Sefsex aseẓreg",
|
"Cancel edit" : "Sefsex aseẓreg",
|
||||||
|
|||||||
@@ -4,19 +4,16 @@
|
|||||||
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
||||||
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
||||||
"Finished" : "Immed",
|
"Finished" : "Immed",
|
||||||
"copy" : "nɣel",
|
|
||||||
"Done" : "Immed",
|
"Done" : "Immed",
|
||||||
"Attachments" : "Ticeqqufin",
|
"Attachments" : "Ticeqqufin",
|
||||||
"File" : "Afaylu",
|
"File" : "Afaylu",
|
||||||
"Cancel" : "Sefsex",
|
"Cancel" : "Sefsex",
|
||||||
"Open" : "Ldi",
|
"Open" : "Ldi",
|
||||||
"Completed" : "Yemmed",
|
"Completed" : "Yemmed",
|
||||||
"Open details" : "Ldi talqayt",
|
|
||||||
"Details" : "Talqayt",
|
"Details" : "Talqayt",
|
||||||
"Sharing" : "Beṭṭu",
|
"Sharing" : "Beṭṭu",
|
||||||
"Tags" : "Tibzimin",
|
"Tags" : "Tibzimin",
|
||||||
"Activity" : "Armud",
|
"Activity" : "Armud",
|
||||||
"Transfer" : "Seḍfeṛ",
|
|
||||||
"Owner" : "Bab",
|
"Owner" : "Bab",
|
||||||
"Delete" : "Kkes",
|
"Delete" : "Kkes",
|
||||||
"Edit" : "Ẓreg",
|
"Edit" : "Ẓreg",
|
||||||
@@ -27,9 +24,6 @@
|
|||||||
"Save" : "Sekles",
|
"Save" : "Sekles",
|
||||||
"Cancel reply" : "Semmet tiririt.",
|
"Cancel reply" : "Semmet tiririt.",
|
||||||
"Reply" : "Err",
|
"Reply" : "Err",
|
||||||
"Description" : "Aglam",
|
|
||||||
"Open link" : "Nɣel aseɣwen",
|
|
||||||
"Keyboard shortcuts" : "Inegzumen n unasiw",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Nadi",
|
"Search" : "Nadi",
|
||||||
"Cancel edit" : "Sefsex aseẓreg",
|
"Cancel edit" : "Sefsex aseẓreg",
|
||||||
|
|||||||
145
l10n/mk.js
145
l10n/mk.js
@@ -12,7 +12,7 @@ OC.L10N.register(
|
|||||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименуваше таблата {before} во {board}",
|
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
||||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||||
@@ -20,7 +20,7 @@ OC.L10N.register(
|
|||||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименуваше листата {before} во {stack} на таблата {board}",
|
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
||||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||||
@@ -28,7 +28,7 @@ OC.L10N.register(
|
|||||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименуваше картицата {before} во {card}",
|
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
||||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||||
@@ -37,10 +37,6 @@ OC.L10N.register(
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Ја означивте картицата {card} како завршена во листата {stack} на таблата {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ја означи картичката {card} како завршена во листата {stack} на таблата {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ја означивте картицата {card} како не-завршена во листата {stack} на таблата {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ја означи картичката {card} како не-завршена во листата {stack} на таблата {board}",
|
|
||||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||||
@@ -69,9 +65,7 @@ OC.L10N.register(
|
|||||||
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||||
"A <strong>board, list or card</strong> was changed" : "Променета е <strong>табла, листа или картица</strong>",
|
|
||||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||||
"A <strong>card description</strong> has been changed" : "Променет е <strong>опис на картица</strong> ",
|
|
||||||
"The file was uploaded" : "Датотеката е прикачена",
|
"The file was uploaded" : "Датотеката е прикачена",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
||||||
@@ -81,66 +75,35 @@ OC.L10N.register(
|
|||||||
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
||||||
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
||||||
"Invalid file type. Only JSON files are allowed." : "Невалиден тип на датотека. Дозволени се само JSON датотеки.",
|
|
||||||
"Invalid JSON data" : "Невалидни JSON податоци",
|
|
||||||
"Failed to import board" : "Неуспешен увоз на табла",
|
|
||||||
"Cards due today" : "Картици со рок до денес",
|
|
||||||
"Cards due tomorrow" : "Картици со рок до утре",
|
|
||||||
"Upcoming cards" : "Престојни картици",
|
"Upcoming cards" : "Престојни картици",
|
||||||
"Load more" : "Вчитај повеќе",
|
"Load more" : "Вчитај повеќе",
|
||||||
"Welcome to Nextcloud Deck!" : "Добредојдовте во Nextcloud Deck!",
|
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} ти ја додели картицата {deck-card} на {deck-board}.",
|
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Картицата {deck-card} на {deck-board} го достигна рокот.",
|
|
||||||
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} те спомна во коментар на {deck-card}.",
|
|
||||||
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} сподели {deck-board} со вас.",
|
|
||||||
"Deck board" : "Табла",
|
|
||||||
"Owned by %1$s" : "Сопственик %1$s",
|
|
||||||
"Deck boards, cards and comments" : "Табли, картици и коментари",
|
|
||||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Од %1$s, во %2$s/%3$s, сопственик %4$s",
|
|
||||||
"Create a new deck card" : "Креирај нова картица",
|
|
||||||
"Card comments" : "Коментари на картица",
|
|
||||||
"%s on %s" : "%s на %s",
|
|
||||||
"Deck boards and cards" : "Табли и картици",
|
|
||||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||||
"Finished" : "Завршено",
|
"Finished" : "Завршено",
|
||||||
"To review" : "На ревизија",
|
"To review" : "На ревизија",
|
||||||
"Action needed" : "Потребна е акција",
|
"Action needed" : "Потребна е акција",
|
||||||
"Later" : "Покасно",
|
"Later" : "Покасно",
|
||||||
"copy" : "копирај",
|
"copy" : "копирај",
|
||||||
"Read more inside" : "Прочитај повеќе",
|
|
||||||
"Custom lists - click to rename!" : "Прилагодени листи – кликнете за преименување!",
|
|
||||||
"To Do" : "За правење",
|
"To Do" : "За правење",
|
||||||
"In Progress" : "Во тек",
|
|
||||||
"Done" : "Готово",
|
"Done" : "Готово",
|
||||||
"1. Open to learn more about boards and cards" : "1. Отворете за да дознаете повеќе за таблите и картичките",
|
|
||||||
"2. Drag cards left and right, up and down" : "2. Влечете ги картичките лево и десно, горе и долу",
|
|
||||||
"3. Apply rich formatting and link content" : "3. Применете богато форматирање и поврзете содржина",
|
|
||||||
"4. Share, comment and collaborate!" : "4. Споделувајте, коментирајте и соработувајте!",
|
|
||||||
"Create your first card!" : "Креирајте ја вашата прва картичка!",
|
|
||||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Коментарот има повеќе од %s карактери.\nДодаден е како пролог на картицата со име %s.\nДостапен е на линк: %s.",
|
|
||||||
"Attachments" : "Прилози",
|
"Attachments" : "Прилози",
|
||||||
"File" : "Датотека",
|
"File" : "Датотека",
|
||||||
"date" : "датум",
|
|
||||||
"Card not found" : "Картицата не е пронајдена",
|
"Card not found" : "Картицата не е пронајдена",
|
||||||
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
||||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
||||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck е алатка за организација во стил на kanban, наменета за лични планови и организација на проекти за тимови интегрирани со Nextcloud.\n\n\n📥 Додај ги задачите на картички и подреди ги\n📄 Запиши дополнителни белешки во Markdown\n🔖 Додели етикети за уште подобра организација\n👥 Сподели со твојот тим, пријатели или семејство\n📎 Прикачи датотеки и вметни ги во Markdown описот\n💬 Дискутирај со твојот тим преку коментари\n⚡ Следи ги промените во активностите\n🚀 Организирај го твојот проект",
|
|
||||||
"Add board" : "Додади табла",
|
"Add board" : "Додади табла",
|
||||||
"Card details" : "Детали за картица",
|
"Card details" : "Детали за картица",
|
||||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||||
"Search by board title" : "Барај по име на табла",
|
"Search by board title" : "Барај по име на табла",
|
||||||
"Select board" : "Избери табла",
|
"Select board" : "Избери табла",
|
||||||
"Move/copy card" : "Премести/копирај картица",
|
|
||||||
"Select a board" : "Избери табла",
|
"Select a board" : "Избери табла",
|
||||||
"No lists available" : "Нема достапни листи",
|
"No lists available" : "Нема достапни листи",
|
||||||
"Select a list" : "Избери листа",
|
"Select a list" : "Избери листа",
|
||||||
"Move card" : "Премести картица",
|
"Move card" : "Премести картица",
|
||||||
"Copy card" : "Копирај картица",
|
|
||||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||||
"Link to card" : "Линк до картица",
|
"Link to card" : "Линк до картица",
|
||||||
"Select a card" : "Избери картица",
|
"Select a card" : "Избери картица",
|
||||||
@@ -161,8 +124,6 @@ OC.L10N.register(
|
|||||||
"Filter by tag" : "Филтрирај по ознака",
|
"Filter by tag" : "Филтрирај по ознака",
|
||||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||||
"Unassigned" : "Неназначени",
|
"Unassigned" : "Неназначени",
|
||||||
"Filter by status" : "Филтрирај по статус",
|
|
||||||
"Open and completed" : "Отворени и завршени",
|
|
||||||
"Open" : "Отвори",
|
"Open" : "Отвори",
|
||||||
"Completed" : "Завршено",
|
"Completed" : "Завршено",
|
||||||
"Filter by due date" : "Филтрирај по краен рок",
|
"Filter by due date" : "Филтрирај по краен рок",
|
||||||
@@ -172,17 +133,12 @@ OC.L10N.register(
|
|||||||
"Next 30 days" : "Следни 30 дена",
|
"Next 30 days" : "Следни 30 дена",
|
||||||
"No due date" : "Нема краен рок",
|
"No due date" : "Нема краен рок",
|
||||||
"Clear filter" : "Исчисти филтри",
|
"Clear filter" : "Исчисти филтри",
|
||||||
"View Modes" : "Режими на приказ",
|
|
||||||
"Toggle View Modes" : "Промени режими на приказ",
|
|
||||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||||
"Toggle compact mode" : "Вклучи компактен мод",
|
"Toggle compact mode" : "Вклучи компактен мод",
|
||||||
"Hide card cover images" : "Сокриј насловни слики на картици",
|
|
||||||
"Show card cover images" : "Прикажи насловни слики на картици",
|
|
||||||
"Open details" : "Отвори детали",
|
"Open details" : "Отвори детали",
|
||||||
"Details" : "Детали",
|
"Details" : "Детали",
|
||||||
"Currently present people" : "Моментално приситни корисници",
|
"Loading board" : "Вчирување на табла",
|
||||||
"Loading board" : "Вчитување на табла",
|
|
||||||
"Board not found" : "Таблата не е пронајдена",
|
"Board not found" : "Таблата не е пронајдена",
|
||||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||||
"Sharing" : "Споделување",
|
"Sharing" : "Споделување",
|
||||||
@@ -193,69 +149,51 @@ OC.L10N.register(
|
|||||||
"Undo" : "Врати",
|
"Undo" : "Врати",
|
||||||
"Deleted cards" : "Избришани картици",
|
"Deleted cards" : "Избришани картици",
|
||||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||||
"Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?",
|
|
||||||
"Transfer the board." : "Префрли табла.",
|
|
||||||
"Transfer" : "Трансфер",
|
"Transfer" : "Трансфер",
|
||||||
"The board has been transferred to {user}" : "Таблата е префрлена на {user}",
|
|
||||||
"Failed to transfer the board to {user}" : "Неуспешно префрлање на таблата на {user}",
|
|
||||||
"Share board with a user, group or team …" : "Сподели табла со корисник, група или тим...",
|
|
||||||
"Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...",
|
|
||||||
"No participants found" : "Не се пронајдени учесници",
|
"No participants found" : "Не се пронајдени учесници",
|
||||||
"Board owner" : "Сопственик на таблата",
|
"Board owner" : "Сопственик на таблата",
|
||||||
"(Group)" : "(Група)",
|
"(Group)" : "(Група)",
|
||||||
"(Team)" : "(Тим)",
|
|
||||||
"Can edit" : "Може да се уредува",
|
"Can edit" : "Може да се уредува",
|
||||||
"Can share" : "Can share",
|
"Can share" : "Can share",
|
||||||
"Can manage" : "Може да ја менаџира",
|
"Can manage" : "Може да ја менаџира",
|
||||||
"Owner" : "Сопственик",
|
"Owner" : "Сопственик",
|
||||||
"Delete" : "Избриши",
|
"Delete" : "Избриши",
|
||||||
"List deleted" : "Листата е избришана",
|
"List deleted" : "Листата е избришана",
|
||||||
"Edit list title" : "Удери наслов на листата",
|
|
||||||
"Archive all cards" : "Архивирај ги сите картици",
|
"Archive all cards" : "Архивирај ги сите картици",
|
||||||
"Unarchive all cards" : "Врати ги од архива сите картици",
|
|
||||||
"Delete list" : "Избриши листа",
|
"Delete list" : "Избриши листа",
|
||||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||||
"Unarchive all cards in this list" : "Врати ги од архива сите картици во оваа листа",
|
|
||||||
"Add a new card" : "Додади нова картица",
|
"Add a new card" : "Додади нова картица",
|
||||||
"Card name" : "Име на картицата",
|
"Card name" : "Име на картицата",
|
||||||
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
"title and color value must be provided" : "наслов и боја мора да се приложи",
|
||||||
"Edit" : "Уреди",
|
"Edit" : "Уреди",
|
||||||
"Add a new tag" : "Додади нова ознака",
|
"Add a new tag" : "Додади нова ознака",
|
||||||
"Board name" : "Име на табла",
|
"Board name" : "Име на табла",
|
||||||
"Members" : "Членови",
|
"Members" : "Членови",
|
||||||
"Assign to users/groups/team" : "Додели на корисници/групи/тимови",
|
|
||||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||||
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
|
||||||
"File to share" : "Датотека за споделување",
|
"File to share" : "Датотека за споделување",
|
||||||
"Invalid path selected" : "Избрана невалидна патека",
|
"Invalid path selected" : "Избрана невалидна патека",
|
||||||
"Upload new files" : "Прикачи нови датотеки",
|
"Upload new files" : "Прикачи нови датотеки",
|
||||||
"Share from Files" : "Сподели од датотеките",
|
"Share from Files" : "Сподели од датотеките",
|
||||||
"Pending share" : "Споделување на чекање",
|
|
||||||
"Add this attachment" : "Додади го овој прилог",
|
"Add this attachment" : "Додади го овој прилог",
|
||||||
"Show in Files" : "Прикажи во датотеките",
|
"Show in Files" : "Прикажи во датотеките",
|
||||||
"Download" : "Преземи",
|
"Download" : "Преземи",
|
||||||
"Remove attachment" : "Отстрани прилог",
|
|
||||||
"Delete Attachment" : "Избриши прилог",
|
"Delete Attachment" : "Избриши прилог",
|
||||||
"Restore Attachment" : "Врати прилог",
|
"Restore Attachment" : "Врати прилог",
|
||||||
"Modified" : "Изменето",
|
"Modified" : "Изменето",
|
||||||
"Created" : "Креирано",
|
"Created" : "Креирано",
|
||||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||||
"Cannot close unsaved card!" : "Неможе да се затвори незачувана картица!",
|
|
||||||
"Open in sidebar view" : "Отвори страничен поглед",
|
"Open in sidebar view" : "Отвори страничен поглед",
|
||||||
"Open in bigger view" : "Отвори на голем екран",
|
"Open in bigger view" : "Отвори на голем екран",
|
||||||
"Comments" : "Коментари",
|
"Comments" : "Коментари",
|
||||||
"Failed to load comments" : "Неуспешно вчитување на коментари",
|
|
||||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||||
"Save" : "Зачувај",
|
"Save" : "Зачувај",
|
||||||
"Created:" : "Создадено:",
|
"Created:" : "Создадено:",
|
||||||
"In reply to" : "Како одговор на",
|
"In reply to" : "Како одговор на",
|
||||||
"Cancel reply" : "Откажи одговор",
|
|
||||||
"Reply" : "Одговор",
|
"Reply" : "Одговор",
|
||||||
"Update" : "Ажурирај",
|
"Update" : "Ажурирај",
|
||||||
"Write a description …" : "Напиши опис ...",
|
"Write a description …" : "Напиши опис ...",
|
||||||
"Could not save description" : "Неможе да се зачува описот",
|
|
||||||
"Description" : "Опис",
|
"Description" : "Опис",
|
||||||
"(Unsaved)" : "(Незачувано)",
|
"(Unsaved)" : "(Незачувано)",
|
||||||
"(Saving…)" : "(Снимање…)",
|
"(Saving…)" : "(Снимање…)",
|
||||||
@@ -266,135 +204,63 @@ OC.L10N.register(
|
|||||||
"Choose attachment" : "Избери прилог",
|
"Choose attachment" : "Избери прилог",
|
||||||
"Select Date" : "Избери датум",
|
"Select Date" : "Избери датум",
|
||||||
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
||||||
"Set due date for later today" : "Постави краен рок за денес подоцна",
|
|
||||||
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
||||||
"Set due date for tomorrow" : "Постави краен рок за утре",
|
|
||||||
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
|
||||||
"Set due date for this weekend" : "Постави краен рок за овој викенд",
|
|
||||||
"Next week – {timeLocale}" : "Следна недела – {timeLocale}",
|
|
||||||
"Set due date for next week" : "Постави краен рок за следната недела",
|
|
||||||
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
|
||||||
"Set a due date" : "Постави краен рок",
|
"Set a due date" : "Постави краен рок",
|
||||||
"Add due date" : "Додади краен рок",
|
|
||||||
"Choose a date" : "Избери датум",
|
|
||||||
"Remove due date" : "Отстрани краен рок",
|
"Remove due date" : "Отстрани краен рок",
|
||||||
"Mark as done" : "Означи како готово",
|
"Mark as done" : "Означи како готово",
|
||||||
"Due at:" : "Краен рок:",
|
|
||||||
"Not done" : "Не е завршено",
|
|
||||||
"Unarchive card" : "Врати картица од архива",
|
"Unarchive card" : "Врати картица од архива",
|
||||||
"Archive card" : "Архивирај картица",
|
"Archive card" : "Архивирај картица",
|
||||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||||
"Select or create a tag…" : "Избери или креирај ознака...",
|
|
||||||
"Create a new tag:" : "Направи нова ознака:",
|
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочитани",
|
|
||||||
"Todo items" : "Работи за правење",
|
|
||||||
"Edit card title" : "Измени наслов на картица",
|
|
||||||
"Open link" : "Отвори линк",
|
|
||||||
"Card deleted" : "Картицата е избришана",
|
"Card deleted" : "Картицата е избришана",
|
||||||
"Edit title" : "Удери наслов",
|
"Edit title" : "Удери наслов",
|
||||||
"Assign to me" : "Доделени мене",
|
"Assign to me" : "Доделени мене",
|
||||||
"Unassign myself" : "Откажи се",
|
"Unassign myself" : "Откажи се",
|
||||||
"Mark as not done" : "Означи како не-готово",
|
|
||||||
"Delete card" : "Избриши картица",
|
"Delete card" : "Избриши картица",
|
||||||
"seconds ago" : "пред неколку секунди",
|
"seconds ago" : "пред неколку секунди",
|
||||||
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
||||||
"Boost your productivity using Deck with keyboard shortcuts." : "Зголеми ја продуктивноста со користење на кратенки преку тастатура.",
|
|
||||||
"Board actions" : "Акции за табла",
|
|
||||||
"Keyboard shortcut" : "Кратенка преку тастатура",
|
"Keyboard shortcut" : "Кратенка преку тастатура",
|
||||||
"Action" : "Акција",
|
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Scroll" : "Scroll",
|
|
||||||
"Scroll sideways" : "Лизгај странично",
|
|
||||||
"Navigate between cards" : "Навигација помеѓу картиците",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Затвори детали на картица",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Барај",
|
"Search" : "Барај",
|
||||||
"Show card filters" : "Прикажи филтри за картици",
|
|
||||||
"Clear card filters" : "Исчисти филтри за картици",
|
|
||||||
"Show help dialog" : "Прикажи дијалог за помош",
|
|
||||||
"Card actions" : "Акции за картици",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Следните акции можат да се активираат на моментално обележаната картичка",
|
|
||||||
"Enter" : "Ентер",
|
|
||||||
"Space" : "Празно место",
|
"Space" : "Празно место",
|
||||||
"Open card details" : "Отвори детали на картица",
|
|
||||||
"Edit the card title" : "Измени наслов на картица",
|
|
||||||
"Assign yourself to the current card" : "Доделете се себеси на тековната картица",
|
|
||||||
"Archive/unarchive the current card" : "Архивирај/одархивирај тековната картица",
|
|
||||||
"Mark card as completed/not completed" : "Означи ја картицата како завршена/незавршена",
|
|
||||||
"Open card menu" : "Отвори мени на картица",
|
|
||||||
"All boards" : "Сите табли",
|
"All boards" : "Сите табли",
|
||||||
"Archived boards" : "Архивирани табли",
|
"Archived boards" : "Архивирани табли",
|
||||||
"Shared with you" : "Споделено со тебе",
|
"Shared with you" : "Споделено со тебе",
|
||||||
"Deck settings" : "Deck параметри",
|
|
||||||
"Use bigger card view" : "Користи поголем преглед на картици",
|
"Use bigger card view" : "Користи поголем преглед на картици",
|
||||||
"Show card ID badge" : "Прикажи ID на картиците",
|
|
||||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||||
"Limit board creation to some groups" : "Ограничи го креирањето на нови табли само на овие групи",
|
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисниците кој што не се во овие групи нема да можат да прават нови таби, но ќе можат да работат на таблите кој ќе бидат споделени со нив.",
|
|
||||||
"Cancel edit" : "Откажи ажурирање",
|
"Cancel edit" : "Откажи ажурирање",
|
||||||
"Save board" : "Зачувај табла",
|
|
||||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||||
"All cards" : "Сите картици",
|
"All cards" : "Сите картици",
|
||||||
"Only assigned cards" : "Само доделени картици",
|
"Only assigned cards" : "Само доделени картици",
|
||||||
"No reminder" : "Нема потсетник",
|
"No reminder" : "Нема потсетник",
|
||||||
"An error occurred" : "Настана грешка",
|
"An error occurred" : "Настана грешка",
|
||||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци во таблата и архивираните картици.",
|
|
||||||
"Delete the board?" : "Бришење на таблата?",
|
"Delete the board?" : "Бришење на таблата?",
|
||||||
"Exporting board..." : "Извоз на табла...",
|
|
||||||
"Board details" : "Детали за таблата",
|
"Board details" : "Детали за таблата",
|
||||||
"Edit board" : "Измени табла",
|
"Edit board" : "Измени табла",
|
||||||
"Clone board" : "Клонирај табла",
|
"Clone board" : "Клонирај табла",
|
||||||
"Unarchive board" : "Врати табла од архива",
|
"Unarchive board" : "Врати табла од архива",
|
||||||
"Archive board" : "Архивирај табла",
|
"Archive board" : "Архивирај табла",
|
||||||
"Export board" : "Извези табла",
|
|
||||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||||
"Due date reminders" : "Потсетници за крајните рокови",
|
"Due date reminders" : "Потсетници за крајните рокови",
|
||||||
"Assigned cards" : "Доделени картици",
|
"Assigned cards" : "Доделени картици",
|
||||||
"No notifications" : "Нема известувања",
|
"No notifications" : "Нема известувања",
|
||||||
"Delete board" : "Избриши табла",
|
"Delete board" : "Избриши табла",
|
||||||
"Importing board..." : "Увезување табла...",
|
|
||||||
"Board imported successfully" : "Таблата е успешно увезена",
|
|
||||||
"Import board" : "Увези табла",
|
|
||||||
"Clone {boardTitle}" : "Клонирај {boardTitle}",
|
|
||||||
"Clone cards" : "Клинирај картици",
|
"Clone cards" : "Клинирај картици",
|
||||||
"Clone assignments" : "Клонирај задачи",
|
|
||||||
"Clone labels" : "Клонирај ознаки",
|
|
||||||
"Clone due dates" : "Клонирај крајни рокови",
|
|
||||||
"Advanced options" : "Напредни опции",
|
"Advanced options" : "Напредни опции",
|
||||||
"Move all cards to the first list" : "Помести ги сите картици во првата листа",
|
|
||||||
"Restore archived cards" : "Врати архивирани картици",
|
|
||||||
"Clone" : "Клонирај",
|
"Clone" : "Клонирај",
|
||||||
"Export {boardTitle}" : "Извези {boardTitle}",
|
|
||||||
"Export as JSON" : "Извези како JSON",
|
|
||||||
"Export as CSV" : "Извези како CSV",
|
|
||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Забелешка: Поддржан е само JSON формат за увоз назад во апликацијата Deck.",
|
|
||||||
"Export" : "Извези",
|
"Export" : "Извези",
|
||||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||||
"Search for {searchQuery} in other boards" : "Барај {searchQuery} во други табли",
|
|
||||||
"Search for {searchQuery} in all boards" : "Барај {searchQuery} во сите табли",
|
|
||||||
"No results found" : "Нема пронајдено резултати",
|
"No results found" : "Нема пронајдено резултати",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Табла {name}\n* Последна промена на {lastMod}",
|
|
||||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирана на {created}\n* Последна промена на {lastMod}\n* {nbAttachments} прилози\n* {nbComments} коментари",
|
|
||||||
"{nbCards} cards" : "{nbCards} картици",
|
|
||||||
"Due on {date}" : "Истекува на {date}",
|
|
||||||
"{stack} in {board}" : "{stack} во {board}",
|
"{stack} in {board}" : "{stack} во {board}",
|
||||||
"Click to expand description" : "Кликнни за проширување на опис",
|
|
||||||
"Click to expand comment" : "Кликнни за проширување на коментарот",
|
|
||||||
"Create card" : "Креирајте картица",
|
"Create card" : "Креирајте картица",
|
||||||
"Create a new card" : "Креирајте нова картица",
|
"Create a new card" : "Креирајте нова картица",
|
||||||
"Card title" : "Наслов на картицата",
|
"Card title" : "Наслов на картицата",
|
||||||
"Creating the new card …" : "Креирање нова картица ...",
|
|
||||||
"Card \"{card}\" was added to \"{board}\"" : "Картицата \"{card}\" е додадена во \"{board}\"",
|
|
||||||
"Open card" : "Отвори картица",
|
"Open card" : "Отвори картица",
|
||||||
"Close" : "Затвори",
|
"Close" : "Затвори",
|
||||||
"No upcoming cards" : "Нема престојни картици",
|
"No upcoming cards" : "Нема престојни картици",
|
||||||
"upcoming cards today" : "престојни картици за денес",
|
|
||||||
"upcoming cards tomorrow" : "престојни картици за утре",
|
|
||||||
"upcoming cards" : "престојни картици",
|
"upcoming cards" : "престојни картици",
|
||||||
"New card" : "Нова картица",
|
|
||||||
"Link to a board" : "Линк до табла",
|
"Link to a board" : "Линк до табла",
|
||||||
"Link to a card" : "Линк до картица",
|
"Link to a card" : "Линк до картица",
|
||||||
"Create a card" : "Креирајте картица",
|
"Create a card" : "Креирајте картица",
|
||||||
@@ -402,7 +268,6 @@ OC.L10N.register(
|
|||||||
"Something went wrong" : "Нешто не е во ред",
|
"Something went wrong" : "Нешто не е во ред",
|
||||||
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
||||||
"Assigned users" : "Доделени корисници",
|
|
||||||
"Due date" : "До датум",
|
"Due date" : "До датум",
|
||||||
"Error creating the share" : "Грешка при креирање на споделување",
|
"Error creating the share" : "Грешка при креирање на споделување",
|
||||||
"Share with a Deck card" : "Споделено со Deck картица",
|
"Share with a Deck card" : "Споделено со Deck картица",
|
||||||
|
|||||||
145
l10n/mk.json
145
l10n/mk.json
@@ -10,7 +10,7 @@
|
|||||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименуваше таблата {before} во {board}",
|
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
||||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименуваше листата {before} во {stack} на таблата {board}",
|
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
||||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименуваше картицата {before} во {card}",
|
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
||||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||||
@@ -35,10 +35,6 @@
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Ја означивте картицата {card} како завршена во листата {stack} на таблата {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ја означи картичката {card} како завршена во листата {stack} на таблата {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ја означивте картицата {card} како не-завршена во листата {stack} на таблата {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ја означи картичката {card} како не-завршена во листата {stack} на таблата {board}",
|
|
||||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||||
@@ -67,9 +63,7 @@
|
|||||||
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||||
"A <strong>board, list or card</strong> was changed" : "Променета е <strong>табла, листа или картица</strong>",
|
|
||||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||||
"A <strong>card description</strong> has been changed" : "Променет е <strong>опис на картица</strong> ",
|
|
||||||
"The file was uploaded" : "Датотеката е прикачена",
|
"The file was uploaded" : "Датотеката е прикачена",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
||||||
@@ -79,66 +73,35 @@
|
|||||||
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
||||||
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
||||||
"Invalid file type. Only JSON files are allowed." : "Невалиден тип на датотека. Дозволени се само JSON датотеки.",
|
|
||||||
"Invalid JSON data" : "Невалидни JSON податоци",
|
|
||||||
"Failed to import board" : "Неуспешен увоз на табла",
|
|
||||||
"Cards due today" : "Картици со рок до денес",
|
|
||||||
"Cards due tomorrow" : "Картици со рок до утре",
|
|
||||||
"Upcoming cards" : "Престојни картици",
|
"Upcoming cards" : "Престојни картици",
|
||||||
"Load more" : "Вчитај повеќе",
|
"Load more" : "Вчитај повеќе",
|
||||||
"Welcome to Nextcloud Deck!" : "Добредојдовте во Nextcloud Deck!",
|
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} ти ја додели картицата {deck-card} на {deck-board}.",
|
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Картицата {deck-card} на {deck-board} го достигна рокот.",
|
|
||||||
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} те спомна во коментар на {deck-card}.",
|
|
||||||
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} сподели {deck-board} со вас.",
|
|
||||||
"Deck board" : "Табла",
|
|
||||||
"Owned by %1$s" : "Сопственик %1$s",
|
|
||||||
"Deck boards, cards and comments" : "Табли, картици и коментари",
|
|
||||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Од %1$s, во %2$s/%3$s, сопственик %4$s",
|
|
||||||
"Create a new deck card" : "Креирај нова картица",
|
|
||||||
"Card comments" : "Коментари на картица",
|
|
||||||
"%s on %s" : "%s на %s",
|
|
||||||
"Deck boards and cards" : "Табли и картици",
|
|
||||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||||
"Finished" : "Завршено",
|
"Finished" : "Завршено",
|
||||||
"To review" : "На ревизија",
|
"To review" : "На ревизија",
|
||||||
"Action needed" : "Потребна е акција",
|
"Action needed" : "Потребна е акција",
|
||||||
"Later" : "Покасно",
|
"Later" : "Покасно",
|
||||||
"copy" : "копирај",
|
"copy" : "копирај",
|
||||||
"Read more inside" : "Прочитај повеќе",
|
|
||||||
"Custom lists - click to rename!" : "Прилагодени листи – кликнете за преименување!",
|
|
||||||
"To Do" : "За правење",
|
"To Do" : "За правење",
|
||||||
"In Progress" : "Во тек",
|
|
||||||
"Done" : "Готово",
|
"Done" : "Готово",
|
||||||
"1. Open to learn more about boards and cards" : "1. Отворете за да дознаете повеќе за таблите и картичките",
|
|
||||||
"2. Drag cards left and right, up and down" : "2. Влечете ги картичките лево и десно, горе и долу",
|
|
||||||
"3. Apply rich formatting and link content" : "3. Применете богато форматирање и поврзете содржина",
|
|
||||||
"4. Share, comment and collaborate!" : "4. Споделувајте, коментирајте и соработувајте!",
|
|
||||||
"Create your first card!" : "Креирајте ја вашата прва картичка!",
|
|
||||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Коментарот има повеќе од %s карактери.\nДодаден е како пролог на картицата со име %s.\nДостапен е на линк: %s.",
|
|
||||||
"Attachments" : "Прилози",
|
"Attachments" : "Прилози",
|
||||||
"File" : "Датотека",
|
"File" : "Датотека",
|
||||||
"date" : "датум",
|
|
||||||
"Card not found" : "Картицата не е пронајдена",
|
"Card not found" : "Картицата не е пронајдена",
|
||||||
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
||||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
||||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck е алатка за организација во стил на kanban, наменета за лични планови и организација на проекти за тимови интегрирани со Nextcloud.\n\n\n📥 Додај ги задачите на картички и подреди ги\n📄 Запиши дополнителни белешки во Markdown\n🔖 Додели етикети за уште подобра организација\n👥 Сподели со твојот тим, пријатели или семејство\n📎 Прикачи датотеки и вметни ги во Markdown описот\n💬 Дискутирај со твојот тим преку коментари\n⚡ Следи ги промените во активностите\n🚀 Организирај го твојот проект",
|
|
||||||
"Add board" : "Додади табла",
|
"Add board" : "Додади табла",
|
||||||
"Card details" : "Детали за картица",
|
"Card details" : "Детали за картица",
|
||||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||||
"Search by board title" : "Барај по име на табла",
|
"Search by board title" : "Барај по име на табла",
|
||||||
"Select board" : "Избери табла",
|
"Select board" : "Избери табла",
|
||||||
"Move/copy card" : "Премести/копирај картица",
|
|
||||||
"Select a board" : "Избери табла",
|
"Select a board" : "Избери табла",
|
||||||
"No lists available" : "Нема достапни листи",
|
"No lists available" : "Нема достапни листи",
|
||||||
"Select a list" : "Избери листа",
|
"Select a list" : "Избери листа",
|
||||||
"Move card" : "Премести картица",
|
"Move card" : "Премести картица",
|
||||||
"Copy card" : "Копирај картица",
|
|
||||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||||
"Link to card" : "Линк до картица",
|
"Link to card" : "Линк до картица",
|
||||||
"Select a card" : "Избери картица",
|
"Select a card" : "Избери картица",
|
||||||
@@ -159,8 +122,6 @@
|
|||||||
"Filter by tag" : "Филтрирај по ознака",
|
"Filter by tag" : "Филтрирај по ознака",
|
||||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||||
"Unassigned" : "Неназначени",
|
"Unassigned" : "Неназначени",
|
||||||
"Filter by status" : "Филтрирај по статус",
|
|
||||||
"Open and completed" : "Отворени и завршени",
|
|
||||||
"Open" : "Отвори",
|
"Open" : "Отвори",
|
||||||
"Completed" : "Завршено",
|
"Completed" : "Завршено",
|
||||||
"Filter by due date" : "Филтрирај по краен рок",
|
"Filter by due date" : "Филтрирај по краен рок",
|
||||||
@@ -170,17 +131,12 @@
|
|||||||
"Next 30 days" : "Следни 30 дена",
|
"Next 30 days" : "Следни 30 дена",
|
||||||
"No due date" : "Нема краен рок",
|
"No due date" : "Нема краен рок",
|
||||||
"Clear filter" : "Исчисти филтри",
|
"Clear filter" : "Исчисти филтри",
|
||||||
"View Modes" : "Режими на приказ",
|
|
||||||
"Toggle View Modes" : "Промени режими на приказ",
|
|
||||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||||
"Toggle compact mode" : "Вклучи компактен мод",
|
"Toggle compact mode" : "Вклучи компактен мод",
|
||||||
"Hide card cover images" : "Сокриј насловни слики на картици",
|
|
||||||
"Show card cover images" : "Прикажи насловни слики на картици",
|
|
||||||
"Open details" : "Отвори детали",
|
"Open details" : "Отвори детали",
|
||||||
"Details" : "Детали",
|
"Details" : "Детали",
|
||||||
"Currently present people" : "Моментално приситни корисници",
|
"Loading board" : "Вчирување на табла",
|
||||||
"Loading board" : "Вчитување на табла",
|
|
||||||
"Board not found" : "Таблата не е пронајдена",
|
"Board not found" : "Таблата не е пронајдена",
|
||||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||||
"Sharing" : "Споделување",
|
"Sharing" : "Споделување",
|
||||||
@@ -191,69 +147,51 @@
|
|||||||
"Undo" : "Врати",
|
"Undo" : "Врати",
|
||||||
"Deleted cards" : "Избришани картици",
|
"Deleted cards" : "Избришани картици",
|
||||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||||
"Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?",
|
|
||||||
"Transfer the board." : "Префрли табла.",
|
|
||||||
"Transfer" : "Трансфер",
|
"Transfer" : "Трансфер",
|
||||||
"The board has been transferred to {user}" : "Таблата е префрлена на {user}",
|
|
||||||
"Failed to transfer the board to {user}" : "Неуспешно префрлање на таблата на {user}",
|
|
||||||
"Share board with a user, group or team …" : "Сподели табла со корисник, група или тим...",
|
|
||||||
"Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...",
|
|
||||||
"No participants found" : "Не се пронајдени учесници",
|
"No participants found" : "Не се пронајдени учесници",
|
||||||
"Board owner" : "Сопственик на таблата",
|
"Board owner" : "Сопственик на таблата",
|
||||||
"(Group)" : "(Група)",
|
"(Group)" : "(Група)",
|
||||||
"(Team)" : "(Тим)",
|
|
||||||
"Can edit" : "Може да се уредува",
|
"Can edit" : "Може да се уредува",
|
||||||
"Can share" : "Can share",
|
"Can share" : "Can share",
|
||||||
"Can manage" : "Може да ја менаџира",
|
"Can manage" : "Може да ја менаџира",
|
||||||
"Owner" : "Сопственик",
|
"Owner" : "Сопственик",
|
||||||
"Delete" : "Избриши",
|
"Delete" : "Избриши",
|
||||||
"List deleted" : "Листата е избришана",
|
"List deleted" : "Листата е избришана",
|
||||||
"Edit list title" : "Удери наслов на листата",
|
|
||||||
"Archive all cards" : "Архивирај ги сите картици",
|
"Archive all cards" : "Архивирај ги сите картици",
|
||||||
"Unarchive all cards" : "Врати ги од архива сите картици",
|
|
||||||
"Delete list" : "Избриши листа",
|
"Delete list" : "Избриши листа",
|
||||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||||
"Unarchive all cards in this list" : "Врати ги од архива сите картици во оваа листа",
|
|
||||||
"Add a new card" : "Додади нова картица",
|
"Add a new card" : "Додади нова картица",
|
||||||
"Card name" : "Име на картицата",
|
"Card name" : "Име на картицата",
|
||||||
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
"title and color value must be provided" : "наслов и боја мора да се приложи",
|
||||||
"Edit" : "Уреди",
|
"Edit" : "Уреди",
|
||||||
"Add a new tag" : "Додади нова ознака",
|
"Add a new tag" : "Додади нова ознака",
|
||||||
"Board name" : "Име на табла",
|
"Board name" : "Име на табла",
|
||||||
"Members" : "Членови",
|
"Members" : "Членови",
|
||||||
"Assign to users/groups/team" : "Додели на корисници/групи/тимови",
|
|
||||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||||
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
|
||||||
"File to share" : "Датотека за споделување",
|
"File to share" : "Датотека за споделување",
|
||||||
"Invalid path selected" : "Избрана невалидна патека",
|
"Invalid path selected" : "Избрана невалидна патека",
|
||||||
"Upload new files" : "Прикачи нови датотеки",
|
"Upload new files" : "Прикачи нови датотеки",
|
||||||
"Share from Files" : "Сподели од датотеките",
|
"Share from Files" : "Сподели од датотеките",
|
||||||
"Pending share" : "Споделување на чекање",
|
|
||||||
"Add this attachment" : "Додади го овој прилог",
|
"Add this attachment" : "Додади го овој прилог",
|
||||||
"Show in Files" : "Прикажи во датотеките",
|
"Show in Files" : "Прикажи во датотеките",
|
||||||
"Download" : "Преземи",
|
"Download" : "Преземи",
|
||||||
"Remove attachment" : "Отстрани прилог",
|
|
||||||
"Delete Attachment" : "Избриши прилог",
|
"Delete Attachment" : "Избриши прилог",
|
||||||
"Restore Attachment" : "Врати прилог",
|
"Restore Attachment" : "Врати прилог",
|
||||||
"Modified" : "Изменето",
|
"Modified" : "Изменето",
|
||||||
"Created" : "Креирано",
|
"Created" : "Креирано",
|
||||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||||
"Cannot close unsaved card!" : "Неможе да се затвори незачувана картица!",
|
|
||||||
"Open in sidebar view" : "Отвори страничен поглед",
|
"Open in sidebar view" : "Отвори страничен поглед",
|
||||||
"Open in bigger view" : "Отвори на голем екран",
|
"Open in bigger view" : "Отвори на голем екран",
|
||||||
"Comments" : "Коментари",
|
"Comments" : "Коментари",
|
||||||
"Failed to load comments" : "Неуспешно вчитување на коментари",
|
|
||||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||||
"Save" : "Зачувај",
|
"Save" : "Зачувај",
|
||||||
"Created:" : "Создадено:",
|
"Created:" : "Создадено:",
|
||||||
"In reply to" : "Како одговор на",
|
"In reply to" : "Како одговор на",
|
||||||
"Cancel reply" : "Откажи одговор",
|
|
||||||
"Reply" : "Одговор",
|
"Reply" : "Одговор",
|
||||||
"Update" : "Ажурирај",
|
"Update" : "Ажурирај",
|
||||||
"Write a description …" : "Напиши опис ...",
|
"Write a description …" : "Напиши опис ...",
|
||||||
"Could not save description" : "Неможе да се зачува описот",
|
|
||||||
"Description" : "Опис",
|
"Description" : "Опис",
|
||||||
"(Unsaved)" : "(Незачувано)",
|
"(Unsaved)" : "(Незачувано)",
|
||||||
"(Saving…)" : "(Снимање…)",
|
"(Saving…)" : "(Снимање…)",
|
||||||
@@ -264,135 +202,63 @@
|
|||||||
"Choose attachment" : "Избери прилог",
|
"Choose attachment" : "Избери прилог",
|
||||||
"Select Date" : "Избери датум",
|
"Select Date" : "Избери датум",
|
||||||
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
||||||
"Set due date for later today" : "Постави краен рок за денес подоцна",
|
|
||||||
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
||||||
"Set due date for tomorrow" : "Постави краен рок за утре",
|
|
||||||
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
|
||||||
"Set due date for this weekend" : "Постави краен рок за овој викенд",
|
|
||||||
"Next week – {timeLocale}" : "Следна недела – {timeLocale}",
|
|
||||||
"Set due date for next week" : "Постави краен рок за следната недела",
|
|
||||||
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
|
||||||
"Set a due date" : "Постави краен рок",
|
"Set a due date" : "Постави краен рок",
|
||||||
"Add due date" : "Додади краен рок",
|
|
||||||
"Choose a date" : "Избери датум",
|
|
||||||
"Remove due date" : "Отстрани краен рок",
|
"Remove due date" : "Отстрани краен рок",
|
||||||
"Mark as done" : "Означи како готово",
|
"Mark as done" : "Означи како готово",
|
||||||
"Due at:" : "Краен рок:",
|
|
||||||
"Not done" : "Не е завршено",
|
|
||||||
"Unarchive card" : "Врати картица од архива",
|
"Unarchive card" : "Врати картица од архива",
|
||||||
"Archive card" : "Архивирај картица",
|
"Archive card" : "Архивирај картица",
|
||||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||||
"Select or create a tag…" : "Избери или креирај ознака...",
|
|
||||||
"Create a new tag:" : "Направи нова ознака:",
|
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочитани",
|
|
||||||
"Todo items" : "Работи за правење",
|
|
||||||
"Edit card title" : "Измени наслов на картица",
|
|
||||||
"Open link" : "Отвори линк",
|
|
||||||
"Card deleted" : "Картицата е избришана",
|
"Card deleted" : "Картицата е избришана",
|
||||||
"Edit title" : "Удери наслов",
|
"Edit title" : "Удери наслов",
|
||||||
"Assign to me" : "Доделени мене",
|
"Assign to me" : "Доделени мене",
|
||||||
"Unassign myself" : "Откажи се",
|
"Unassign myself" : "Откажи се",
|
||||||
"Mark as not done" : "Означи како не-готово",
|
|
||||||
"Delete card" : "Избриши картица",
|
"Delete card" : "Избриши картица",
|
||||||
"seconds ago" : "пред неколку секунди",
|
"seconds ago" : "пред неколку секунди",
|
||||||
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
||||||
"Boost your productivity using Deck with keyboard shortcuts." : "Зголеми ја продуктивноста со користење на кратенки преку тастатура.",
|
|
||||||
"Board actions" : "Акции за табла",
|
|
||||||
"Keyboard shortcut" : "Кратенка преку тастатура",
|
"Keyboard shortcut" : "Кратенка преку тастатура",
|
||||||
"Action" : "Акција",
|
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Scroll" : "Scroll",
|
|
||||||
"Scroll sideways" : "Лизгај странично",
|
|
||||||
"Navigate between cards" : "Навигација помеѓу картиците",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Затвори детали на картица",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Барај",
|
"Search" : "Барај",
|
||||||
"Show card filters" : "Прикажи филтри за картици",
|
|
||||||
"Clear card filters" : "Исчисти филтри за картици",
|
|
||||||
"Show help dialog" : "Прикажи дијалог за помош",
|
|
||||||
"Card actions" : "Акции за картици",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Следните акции можат да се активираат на моментално обележаната картичка",
|
|
||||||
"Enter" : "Ентер",
|
|
||||||
"Space" : "Празно место",
|
"Space" : "Празно место",
|
||||||
"Open card details" : "Отвори детали на картица",
|
|
||||||
"Edit the card title" : "Измени наслов на картица",
|
|
||||||
"Assign yourself to the current card" : "Доделете се себеси на тековната картица",
|
|
||||||
"Archive/unarchive the current card" : "Архивирај/одархивирај тековната картица",
|
|
||||||
"Mark card as completed/not completed" : "Означи ја картицата како завршена/незавршена",
|
|
||||||
"Open card menu" : "Отвори мени на картица",
|
|
||||||
"All boards" : "Сите табли",
|
"All boards" : "Сите табли",
|
||||||
"Archived boards" : "Архивирани табли",
|
"Archived boards" : "Архивирани табли",
|
||||||
"Shared with you" : "Споделено со тебе",
|
"Shared with you" : "Споделено со тебе",
|
||||||
"Deck settings" : "Deck параметри",
|
|
||||||
"Use bigger card view" : "Користи поголем преглед на картици",
|
"Use bigger card view" : "Користи поголем преглед на картици",
|
||||||
"Show card ID badge" : "Прикажи ID на картиците",
|
|
||||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||||
"Limit board creation to some groups" : "Ограничи го креирањето на нови табли само на овие групи",
|
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисниците кој што не се во овие групи нема да можат да прават нови таби, но ќе можат да работат на таблите кој ќе бидат споделени со нив.",
|
|
||||||
"Cancel edit" : "Откажи ажурирање",
|
"Cancel edit" : "Откажи ажурирање",
|
||||||
"Save board" : "Зачувај табла",
|
|
||||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||||
"All cards" : "Сите картици",
|
"All cards" : "Сите картици",
|
||||||
"Only assigned cards" : "Само доделени картици",
|
"Only assigned cards" : "Само доделени картици",
|
||||||
"No reminder" : "Нема потсетник",
|
"No reminder" : "Нема потсетник",
|
||||||
"An error occurred" : "Настана грешка",
|
"An error occurred" : "Настана грешка",
|
||||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци во таблата и архивираните картици.",
|
|
||||||
"Delete the board?" : "Бришење на таблата?",
|
"Delete the board?" : "Бришење на таблата?",
|
||||||
"Exporting board..." : "Извоз на табла...",
|
|
||||||
"Board details" : "Детали за таблата",
|
"Board details" : "Детали за таблата",
|
||||||
"Edit board" : "Измени табла",
|
"Edit board" : "Измени табла",
|
||||||
"Clone board" : "Клонирај табла",
|
"Clone board" : "Клонирај табла",
|
||||||
"Unarchive board" : "Врати табла од архива",
|
"Unarchive board" : "Врати табла од архива",
|
||||||
"Archive board" : "Архивирај табла",
|
"Archive board" : "Архивирај табла",
|
||||||
"Export board" : "Извези табла",
|
|
||||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||||
"Due date reminders" : "Потсетници за крајните рокови",
|
"Due date reminders" : "Потсетници за крајните рокови",
|
||||||
"Assigned cards" : "Доделени картици",
|
"Assigned cards" : "Доделени картици",
|
||||||
"No notifications" : "Нема известувања",
|
"No notifications" : "Нема известувања",
|
||||||
"Delete board" : "Избриши табла",
|
"Delete board" : "Избриши табла",
|
||||||
"Importing board..." : "Увезување табла...",
|
|
||||||
"Board imported successfully" : "Таблата е успешно увезена",
|
|
||||||
"Import board" : "Увези табла",
|
|
||||||
"Clone {boardTitle}" : "Клонирај {boardTitle}",
|
|
||||||
"Clone cards" : "Клинирај картици",
|
"Clone cards" : "Клинирај картици",
|
||||||
"Clone assignments" : "Клонирај задачи",
|
|
||||||
"Clone labels" : "Клонирај ознаки",
|
|
||||||
"Clone due dates" : "Клонирај крајни рокови",
|
|
||||||
"Advanced options" : "Напредни опции",
|
"Advanced options" : "Напредни опции",
|
||||||
"Move all cards to the first list" : "Помести ги сите картици во првата листа",
|
|
||||||
"Restore archived cards" : "Врати архивирани картици",
|
|
||||||
"Clone" : "Клонирај",
|
"Clone" : "Клонирај",
|
||||||
"Export {boardTitle}" : "Извези {boardTitle}",
|
|
||||||
"Export as JSON" : "Извези како JSON",
|
|
||||||
"Export as CSV" : "Извези како CSV",
|
|
||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Забелешка: Поддржан е само JSON формат за увоз назад во апликацијата Deck.",
|
|
||||||
"Export" : "Извези",
|
"Export" : "Извези",
|
||||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||||
"Search for {searchQuery} in other boards" : "Барај {searchQuery} во други табли",
|
|
||||||
"Search for {searchQuery} in all boards" : "Барај {searchQuery} во сите табли",
|
|
||||||
"No results found" : "Нема пронајдено резултати",
|
"No results found" : "Нема пронајдено резултати",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Табла {name}\n* Последна промена на {lastMod}",
|
|
||||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирана на {created}\n* Последна промена на {lastMod}\n* {nbAttachments} прилози\n* {nbComments} коментари",
|
|
||||||
"{nbCards} cards" : "{nbCards} картици",
|
|
||||||
"Due on {date}" : "Истекува на {date}",
|
|
||||||
"{stack} in {board}" : "{stack} во {board}",
|
"{stack} in {board}" : "{stack} во {board}",
|
||||||
"Click to expand description" : "Кликнни за проширување на опис",
|
|
||||||
"Click to expand comment" : "Кликнни за проширување на коментарот",
|
|
||||||
"Create card" : "Креирајте картица",
|
"Create card" : "Креирајте картица",
|
||||||
"Create a new card" : "Креирајте нова картица",
|
"Create a new card" : "Креирајте нова картица",
|
||||||
"Card title" : "Наслов на картицата",
|
"Card title" : "Наслов на картицата",
|
||||||
"Creating the new card …" : "Креирање нова картица ...",
|
|
||||||
"Card \"{card}\" was added to \"{board}\"" : "Картицата \"{card}\" е додадена во \"{board}\"",
|
|
||||||
"Open card" : "Отвори картица",
|
"Open card" : "Отвори картица",
|
||||||
"Close" : "Затвори",
|
"Close" : "Затвори",
|
||||||
"No upcoming cards" : "Нема престојни картици",
|
"No upcoming cards" : "Нема престојни картици",
|
||||||
"upcoming cards today" : "престојни картици за денес",
|
|
||||||
"upcoming cards tomorrow" : "престојни картици за утре",
|
|
||||||
"upcoming cards" : "престојни картици",
|
"upcoming cards" : "престојни картици",
|
||||||
"New card" : "Нова картица",
|
|
||||||
"Link to a board" : "Линк до табла",
|
"Link to a board" : "Линк до табла",
|
||||||
"Link to a card" : "Линк до картица",
|
"Link to a card" : "Линк до картица",
|
||||||
"Create a card" : "Креирајте картица",
|
"Create a card" : "Креирајте картица",
|
||||||
@@ -400,7 +266,6 @@
|
|||||||
"Something went wrong" : "Нешто не е во ред",
|
"Something went wrong" : "Нешто не е во ред",
|
||||||
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
||||||
"Assigned users" : "Доделени корисници",
|
|
||||||
"Due date" : "До датум",
|
"Due date" : "До датум",
|
||||||
"Error creating the share" : "Грешка при креирање на споделување",
|
"Error creating the share" : "Грешка при креирање на споделување",
|
||||||
"Share with a Deck card" : "Споделено со Deck картица",
|
"Share with a Deck card" : "Споделено со Deck картица",
|
||||||
|
|||||||
@@ -266,7 +266,6 @@ OC.L10N.register(
|
|||||||
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
||||||
"Todo items" : "Te doen onderwerpen",
|
"Todo items" : "Te doen onderwerpen",
|
||||||
"Edit card title" : "Wijzig de titel van de kaart",
|
"Edit card title" : "Wijzig de titel van de kaart",
|
||||||
"Open link" : "Open link",
|
|
||||||
"Card deleted" : "Kaart verwijderd",
|
"Card deleted" : "Kaart verwijderd",
|
||||||
"Edit title" : "Titel bewerken",
|
"Edit title" : "Titel bewerken",
|
||||||
"Assign to me" : "Aan mij toewijzen",
|
"Assign to me" : "Aan mij toewijzen",
|
||||||
@@ -280,7 +279,6 @@ OC.L10N.register(
|
|||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Zoeken",
|
"Search" : "Zoeken",
|
||||||
"Enter" : "Enter",
|
|
||||||
"All boards" : "Alle borden",
|
"All boards" : "Alle borden",
|
||||||
"Archived boards" : "Gearchiveerde borden",
|
"Archived boards" : "Gearchiveerde borden",
|
||||||
"Shared with you" : "Deelde met jou",
|
"Shared with you" : "Deelde met jou",
|
||||||
|
|||||||
@@ -264,7 +264,6 @@
|
|||||||
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
||||||
"Todo items" : "Te doen onderwerpen",
|
"Todo items" : "Te doen onderwerpen",
|
||||||
"Edit card title" : "Wijzig de titel van de kaart",
|
"Edit card title" : "Wijzig de titel van de kaart",
|
||||||
"Open link" : "Open link",
|
|
||||||
"Card deleted" : "Kaart verwijderd",
|
"Card deleted" : "Kaart verwijderd",
|
||||||
"Edit title" : "Titel bewerken",
|
"Edit title" : "Titel bewerken",
|
||||||
"Assign to me" : "Aan mij toewijzen",
|
"Assign to me" : "Aan mij toewijzen",
|
||||||
@@ -278,7 +277,6 @@
|
|||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Zoeken",
|
"Search" : "Zoeken",
|
||||||
"Enter" : "Enter",
|
|
||||||
"All boards" : "Alle borden",
|
"All boards" : "Alle borden",
|
||||||
"Archived boards" : "Gearchiveerde borden",
|
"Archived boards" : "Gearchiveerde borden",
|
||||||
"Shared with you" : "Deelde met jou",
|
"Shared with you" : "Deelde met jou",
|
||||||
|
|||||||
@@ -373,7 +373,6 @@ OC.L10N.register(
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Observera: Endast JSON-formatet stöds för import tillbaka till Deck-appen.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Observera: Endast JSON-formatet stöds för import tillbaka till Deck-appen.",
|
||||||
"Export" : "Exportera",
|
"Export" : "Exportera",
|
||||||
"Loading filtered view" : "Laddar filtrerad vy",
|
"Loading filtered view" : "Laddar filtrerad vy",
|
||||||
"Search for {searchQuery} in other boards" : "Sök efter {searchQuery} i andra tavlor",
|
|
||||||
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
|
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
|
||||||
"No results found" : "Inga resultat funna",
|
"No results found" : "Inga resultat funna",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}",
|
||||||
|
|||||||
@@ -371,7 +371,6 @@
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Observera: Endast JSON-formatet stöds för import tillbaka till Deck-appen.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Observera: Endast JSON-formatet stöds för import tillbaka till Deck-appen.",
|
||||||
"Export" : "Exportera",
|
"Export" : "Exportera",
|
||||||
"Loading filtered view" : "Laddar filtrerad vy",
|
"Loading filtered view" : "Laddar filtrerad vy",
|
||||||
"Search for {searchQuery} in other boards" : "Sök efter {searchQuery} i andra tavlor",
|
|
||||||
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
|
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
|
||||||
"No results found" : "Inga resultat funna",
|
"No results found" : "Inga resultat funna",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Deck tavla {name}\n* Senast ändrad den {lastMod}",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -100,7 +101,7 @@ class ActivityManager {
|
|||||||
StackMapper $stackMapper,
|
StackMapper $stackMapper,
|
||||||
AclMapper $aclMapper,
|
AclMapper $aclMapper,
|
||||||
IFactory $l10nFactory,
|
IFactory $l10nFactory,
|
||||||
?string $userId
|
?string $userId,
|
||||||
) {
|
) {
|
||||||
$this->manager = $manager;
|
$this->manager = $manager;
|
||||||
$this->permissionService = $permissionsService;
|
$this->permissionService = $permissionsService;
|
||||||
@@ -484,7 +485,7 @@ class ActivityManager {
|
|||||||
$objectId = $entity->getObjectId();
|
$objectId = $entity->getObjectId();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||||
}
|
}
|
||||||
return $this->cardMapper->find($objectId);
|
return $this->cardMapper->find($objectId);
|
||||||
}
|
}
|
||||||
@@ -499,11 +500,11 @@ class ActivityManager {
|
|||||||
$objectId = $entity->getBoardId();
|
$objectId = $entity->getBoardId();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||||
}
|
}
|
||||||
return $this->boardMapper->find($objectId);
|
return $this->boardMapper->find($objectId);
|
||||||
}
|
}
|
||||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function findDetailsForStack($stackId) {
|
private function findDetailsForStack($stackId) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -108,7 +109,7 @@ class DeckProvider implements IProvider {
|
|||||||
}
|
}
|
||||||
$board = [
|
$board = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $event->getObjectId(),
|
'id' => (string)$event->getObjectId(),
|
||||||
'name' => $event->getObjectName(),
|
'name' => $event->getObjectName(),
|
||||||
'link' => $this->deckUrl('/board/' . $event->getObjectId()),
|
'link' => $this->deckUrl('/board/' . $event->getObjectId()),
|
||||||
];
|
];
|
||||||
@@ -125,12 +126,12 @@ class DeckProvider implements IProvider {
|
|||||||
}
|
}
|
||||||
$card = [
|
$card = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $event->getObjectId(),
|
'id' => (string)$event->getObjectId(),
|
||||||
'name' => $event->getObjectName(),
|
'name' => $event->getObjectName(),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (array_key_exists('board', $subjectParams)) {
|
if (array_key_exists('board', $subjectParams)) {
|
||||||
$card['link'] = $this->cardService->getRedirectUrlForCard($event->getObjectId());
|
$card['link'] = $this->cardService->getCardUrl($event->getObjectId());
|
||||||
$event->setLink($card['link']);
|
$event->setLink($card['link']);
|
||||||
}
|
}
|
||||||
$params['card'] = $card;
|
$params['card'] = $card;
|
||||||
@@ -212,7 +213,7 @@ class DeckProvider implements IProvider {
|
|||||||
if (array_key_exists($paramName, $subjectParams)) {
|
if (array_key_exists($paramName, $subjectParams)) {
|
||||||
$params[$paramName] = [
|
$params[$paramName] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams[$paramName]['id'],
|
'id' => (string)$subjectParams[$paramName]['id'],
|
||||||
'name' => $subjectParams[$paramName]['title'],
|
'name' => $subjectParams[$paramName]['title'],
|
||||||
'link' => $this->deckUrl('/board/' . $subjectParams[$paramName]['id'] . '/'),
|
'link' => $this->deckUrl('/board/' . $subjectParams[$paramName]['id'] . '/'),
|
||||||
];
|
];
|
||||||
@@ -223,7 +224,7 @@ class DeckProvider implements IProvider {
|
|||||||
if (array_key_exists($paramName, $subjectParams)) {
|
if (array_key_exists($paramName, $subjectParams)) {
|
||||||
$params[$paramName] = [
|
$params[$paramName] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams[$paramName]['id'],
|
'id' => (string)$subjectParams[$paramName]['id'],
|
||||||
'name' => $subjectParams[$paramName]['title'],
|
'name' => $subjectParams[$paramName]['title'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -234,7 +235,7 @@ class DeckProvider implements IProvider {
|
|||||||
if (array_key_exists($paramName, $subjectParams)) {
|
if (array_key_exists($paramName, $subjectParams)) {
|
||||||
$params[$paramName] = [
|
$params[$paramName] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams[$paramName]['id'],
|
'id' => (string)$subjectParams[$paramName]['id'],
|
||||||
'name' => $subjectParams[$paramName]['data'],
|
'name' => $subjectParams[$paramName]['data'],
|
||||||
'link' => $this->urlGenerator->linkToRoute('deck.attachment.display', ['cardId' => $subjectParams['card']['id'], 'attachmentId' => $subjectParams['attachment']['id']]),
|
'link' => $this->urlGenerator->linkToRoute('deck.attachment.display', ['cardId' => $subjectParams['card']['id'], 'attachmentId' => $subjectParams['attachment']['id']]),
|
||||||
];
|
];
|
||||||
@@ -258,7 +259,7 @@ class DeckProvider implements IProvider {
|
|||||||
if (array_key_exists('label', $subjectParams)) {
|
if (array_key_exists('label', $subjectParams)) {
|
||||||
$params['label'] = [
|
$params['label'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['label']['id'],
|
'id' => (string)$subjectParams['label']['id'],
|
||||||
'name' => $subjectParams['label']['title']
|
'name' => $subjectParams['label']['title']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -277,7 +278,7 @@ class DeckProvider implements IProvider {
|
|||||||
} else {
|
} else {
|
||||||
$params['acl'] = [
|
$params['acl'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['acl']['participant'],
|
'id' => (string)$subjectParams['acl']['participant'],
|
||||||
'name' => $subjectParams['acl']['participant']
|
'name' => $subjectParams['acl']['participant']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -293,7 +294,7 @@ class DeckProvider implements IProvider {
|
|||||||
$event->setParsedMessage($comment->getMessage());
|
$event->setParsedMessage($comment->getMessage());
|
||||||
$params['comment'] = [
|
$params['comment'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['comment'],
|
'id' => (string)$subjectParams['comment'],
|
||||||
'name' => $comment->getMessage()
|
'name' => $comment->getMessage()
|
||||||
];
|
];
|
||||||
} catch (NotFoundException $e) {
|
} catch (NotFoundException $e) {
|
||||||
@@ -342,28 +343,28 @@ class DeckProvider implements IProvider {
|
|||||||
if (array_key_exists('before', $subjectParams)) {
|
if (array_key_exists('before', $subjectParams)) {
|
||||||
$params['before'] = [
|
$params['before'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['before'],
|
'id' => (string)$subjectParams['before'],
|
||||||
'name' => $subjectParams['before']
|
'name' => $subjectParams['before'] ?? ''
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
if (array_key_exists('after', $subjectParams)) {
|
if (array_key_exists('after', $subjectParams)) {
|
||||||
$params['after'] = [
|
$params['after'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['after'],
|
'id' => (string)$subjectParams['after'],
|
||||||
'name' => $subjectParams['after']
|
'name' => $subjectParams['after'] ?? ''
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
if (array_key_exists('card', $subjectParams) && $event->getSubject() === ActivityManager::SUBJECT_CARD_UPDATE_TITLE) {
|
if (array_key_exists('card', $subjectParams) && $event->getSubject() === ActivityManager::SUBJECT_CARD_UPDATE_TITLE) {
|
||||||
$params['card'] = [
|
$params['card'] = [
|
||||||
'type' => 'highlight',
|
'type' => 'highlight',
|
||||||
'id' => $subjectParams['after'],
|
'id' => (string)$subjectParams['after'],
|
||||||
'name' => $subjectParams['after']
|
'name' => $subjectParams['after'] ?? ''
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return $params;
|
return $params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deckUrl($endpoint) {
|
public function deckUrl($endpoint) {
|
||||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#' . $endpoint;
|
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . trim($endpoint, '/');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -15,7 +16,7 @@ class Filter implements \OCP\Activity\IFilter {
|
|||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IL10N $l10n,
|
IL10N $l10n,
|
||||||
IURLGenerator $urlGenerator
|
IURLGenerator $urlGenerator,
|
||||||
) {
|
) {
|
||||||
$this->l10n = $l10n;
|
$this->l10n = $l10n;
|
||||||
$this->urlGenerator = $urlGenerator;
|
$this->urlGenerator = $urlGenerator;
|
||||||
@@ -39,8 +40,8 @@ class Filter implements \OCP\Activity\IFilter {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int whether the filter should be rather on the top or bottom of
|
* @return int whether the filter should be rather on the top or bottom of
|
||||||
* the admin section. The filters are arranged in ascending order of the
|
* the admin section. The filters are arranged in ascending order of the
|
||||||
* priority values. It is required to return a value between 0 and 100.
|
* priority values. It is required to return a value between 0 and 100.
|
||||||
* @since 11.0.0
|
* @since 11.0.0
|
||||||
*/
|
*/
|
||||||
public function getPriority(): int {
|
public function getPriority(): int {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -47,8 +48,8 @@ abstract class SettingBase extends ActivitySettings {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int whether the filter should be rather on the top or bottom of
|
* @return int whether the filter should be rather on the top or bottom of
|
||||||
* the admin section. The filters are arranged in ascending order of the
|
* the admin section. The filters are arranged in ascending order of the
|
||||||
* priority values. It is required to return a value between 0 and 100.
|
* priority values. It is required to return a value between 0 and 100.
|
||||||
* @since 11.0.0
|
* @since 11.0.0
|
||||||
*/
|
*/
|
||||||
public function getPriority(): int {
|
public function getPriority(): int {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -25,8 +26,8 @@ class SettingChanges extends SettingBase {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int whether the filter should be rather on the top or bottom of
|
* @return int whether the filter should be rather on the top or bottom of
|
||||||
* the admin section. The filters are arranged in ascending order of the
|
* the admin section. The filters are arranged in ascending order of the
|
||||||
* priority values. It is required to return a value between 0 and 100.
|
* priority values. It is required to return a value between 0 and 100.
|
||||||
* @since 11.0.0
|
* @since 11.0.0
|
||||||
*/
|
*/
|
||||||
public function getPriority(): int {
|
public function getPriority(): int {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -176,7 +177,7 @@ class Application extends App implements IBootstrap {
|
|||||||
$permissionService = $this->getContainer()->get(PermissionService::class);
|
$permissionService = $this->getContainer()->get(PermissionService::class);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return $permissionService->checkPermission($cardMapper, (int) $name, Acl::PERMISSION_READ);
|
return $permissionService->checkPermission($cardMapper, (int)$name, Acl::PERMISSION_READ);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -14,7 +15,7 @@ class Capabilities implements ICapability {
|
|||||||
|
|
||||||
/** @var IAppManager */
|
/** @var IAppManager */
|
||||||
private $appManager;
|
private $appManager;
|
||||||
/** @var PermissionService */
|
/** @var PermissionService */
|
||||||
private $permissionService;
|
private $permissionService;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -56,7 +57,7 @@ class ResourceProvider implements IProvider {
|
|||||||
*/
|
*/
|
||||||
public function getResourceRichObject(IResource $resource): array {
|
public function getResourceRichObject(IResource $resource): array {
|
||||||
$board = $this->getBoard($resource);
|
$board = $this->getBoard($resource);
|
||||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $resource->getId();
|
$link = $this->urlGenerator->linkToRoute('deck.page.indexBoard', ['boardId' => $resource->getId()]);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'type' => self::RESOURCE_TYPE,
|
'type' => self::RESOURCE_TYPE,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -65,7 +66,10 @@ class ResourceProviderCard implements IProvider {
|
|||||||
throw new ResourceException('No unique card found for resource, this should never happen');
|
throw new ResourceException('No unique card found for resource, this should never happen');
|
||||||
}
|
}
|
||||||
|
|
||||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $resource->getId();
|
$link = $this->urlGenerator->linkToRoute('deck.page.indexCard', [
|
||||||
|
'boardId' => $board->getId(),
|
||||||
|
'cardId' => $card->getId()
|
||||||
|
]);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'type' => self::RESOURCE_TYPE,
|
'type' => self::RESOURCE_TYPE,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -15,7 +16,7 @@ use Symfony\Component\Console\Output\OutputInterface;
|
|||||||
|
|
||||||
class BoardImport extends Command {
|
class BoardImport extends Command {
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private BoardImportCommandService $boardImportCommandService
|
private BoardImportCommandService $boardImportCommandService,
|
||||||
) {
|
) {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
|
|||||||
67
lib/Command/CalendarToggle.php
Normal file
67
lib/Command/CalendarToggle.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
namespace OCA\Deck\Command;
|
||||||
|
|
||||||
|
use OCP\IConfig;
|
||||||
|
use OCP\IUserManager;
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
|
class CalendarToggle extends Command {
|
||||||
|
private IUserManager $userManager;
|
||||||
|
private IConfig $config;
|
||||||
|
|
||||||
|
public function __construct(IUserManager $userManager, IConfig $config) {
|
||||||
|
parent::__construct();
|
||||||
|
$this->userManager = $userManager;
|
||||||
|
$this->config = $config;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function configure() {
|
||||||
|
$this
|
||||||
|
->setName('deck:calendar-toggle')
|
||||||
|
->setDescription('Enable or disable Deck calendar/tasks integration for all existing users. Users can still change their own setting afterwards. Only affects users that already exist at the time of execution.')
|
||||||
|
->addOption(
|
||||||
|
'on',
|
||||||
|
null,
|
||||||
|
InputOption::VALUE_NONE,
|
||||||
|
'Enable calendar/tasks integration for all existing users (users can opt-out later)'
|
||||||
|
)
|
||||||
|
->addOption(
|
||||||
|
'off',
|
||||||
|
null,
|
||||||
|
InputOption::VALUE_NONE,
|
||||||
|
'Disable calendar/tasks integration for all existing users (users can opt-in later)'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output): int {
|
||||||
|
$enable = $input->getOption('on');
|
||||||
|
$disable = $input->getOption('off');
|
||||||
|
if ($enable && $disable) {
|
||||||
|
$output->writeln('<error>Cannot use --on and --off together.</error>');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (!$enable && !$disable) {
|
||||||
|
$output->writeln('<error>Please specify either --on or --off.</error>');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
$value = $enable ? 'yes' : '';
|
||||||
|
$users = $this->userManager->search('');
|
||||||
|
$count = 0;
|
||||||
|
foreach ($users as $user) {
|
||||||
|
$uid = $user->getUID();
|
||||||
|
$this->config->setUserValue($uid, 'deck', 'calendar', $value);
|
||||||
|
$output->writeln("Set calendar integration to '" . ($enable ? 'on' : 'off') . "' for user: $uid");
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
$output->writeln("Done. Updated $count existing users.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -72,17 +73,17 @@ final class TransferOwnership extends Command {
|
|||||||
try {
|
try {
|
||||||
$board = $boardId ? $this->boardMapper->find($boardId) : null;
|
$board = $boardId ? $this->boardMapper->find($boardId) : null;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$output->writeln("Could not find a board for the provided id.");
|
$output->writeln('Could not find a board for the provided id.');
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($boardId !== null && $board->getOwner() !== $owner) {
|
if ($boardId !== null && $board->getOwner() !== $owner) {
|
||||||
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ")");
|
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ')');
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($boardId) {
|
if ($boardId) {
|
||||||
$output->writeln("Transfer board " . $board->getTitle() . " from ". $board->getOwner() ." to $newOwner");
|
$output->writeln('Transfer board ' . $board->getTitle() . ' from ' . $board->getOwner() . " to $newOwner");
|
||||||
} else {
|
} else {
|
||||||
$output->writeln("Transfer all boards from $owner to $newOwner");
|
$output->writeln("Transfer all boards from $owner to $newOwner");
|
||||||
}
|
}
|
||||||
@@ -94,12 +95,12 @@ final class TransferOwnership extends Command {
|
|||||||
|
|
||||||
if ($boardId) {
|
if ($boardId) {
|
||||||
$this->boardService->transferBoardOwnership($boardId, $newOwner, $remapAssignment);
|
$this->boardService->transferBoardOwnership($boardId, $newOwner, $remapAssignment);
|
||||||
$output->writeln("<info>Board " . $board->getTitle() . " from ". $board->getOwner() ." transferred to $newOwner completed</info>");
|
$output->writeln('<info>Board ' . $board->getTitle() . ' from ' . $board->getOwner() . " transferred to $newOwner completed</info>");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->boardService->transferOwnership($owner, $newOwner, $remapAssignment) as $board) {
|
foreach ($this->boardService->transferOwnership($owner, $newOwner, $remapAssignment) as $board) {
|
||||||
$output->writeln(" - " . $board->getTitle() . " transferred");
|
$output->writeln(' - ' . $board->getTitle() . ' transferred');
|
||||||
}
|
}
|
||||||
$output->writeln("<info>All boards from $owner to $newOwner transferred</info>");
|
$output->writeln("<info>All boards from $owner to $newOwner transferred</info>");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -163,4 +164,13 @@ class BoardApiController extends ApiController {
|
|||||||
$acl = $this->boardService->deleteAcl($aclId);
|
$acl = $this->boardService->deleteAcl($aclId);
|
||||||
return new DataResponse($acl, HTTP::STATUS_OK);
|
return new DataResponse($acl, HTTP::STATUS_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
*/
|
||||||
|
public function clone(int $boardId, bool $withCards = false, bool $withAssignments = false, bool $withLabels = false, bool $withDueDate = false, bool $moveCardsToLeftStack = false, bool $restoreArchivedCards = false): DataResponse {
|
||||||
|
return new DataResponse(
|
||||||
|
$this->boardService->clone($boardId, $this->userId, $withCards, $withAssignments, $withLabels, $withDueDate, $moveCardsToLeftStack, $restoreArchivedCards)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -9,10 +10,12 @@ namespace OCA\Deck\Controller;
|
|||||||
use OCA\Deck\Db\Acl;
|
use OCA\Deck\Db\Acl;
|
||||||
use OCA\Deck\Db\Board;
|
use OCA\Deck\Db\Board;
|
||||||
use OCA\Deck\Service\BoardService;
|
use OCA\Deck\Service\BoardService;
|
||||||
|
use OCA\Deck\Service\Importer\BoardImportService;
|
||||||
use OCA\Deck\Service\PermissionService;
|
use OCA\Deck\Service\PermissionService;
|
||||||
use OCP\AppFramework\ApiController;
|
use OCP\AppFramework\ApiController;
|
||||||
use OCP\AppFramework\Http;
|
use OCP\AppFramework\Http;
|
||||||
use OCP\AppFramework\Http\DataResponse;
|
use OCP\AppFramework\Http\DataResponse;
|
||||||
|
use OCP\IL10N;
|
||||||
use OCP\IRequest;
|
use OCP\IRequest;
|
||||||
|
|
||||||
class BoardController extends ApiController {
|
class BoardController extends ApiController {
|
||||||
@@ -21,6 +24,8 @@ class BoardController extends ApiController {
|
|||||||
IRequest $request,
|
IRequest $request,
|
||||||
private BoardService $boardService,
|
private BoardService $boardService,
|
||||||
private PermissionService $permissionService,
|
private PermissionService $permissionService,
|
||||||
|
private BoardImportService $boardImportService,
|
||||||
|
private IL10N $l10n,
|
||||||
private $userId,
|
private $userId,
|
||||||
) {
|
) {
|
||||||
parent::__construct($appName, $request);
|
parent::__construct($appName, $request);
|
||||||
@@ -134,11 +139,11 @@ class BoardController extends ApiController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @param $boardId
|
|
||||||
* @return Board
|
|
||||||
*/
|
*/
|
||||||
public function clone($boardId) {
|
public function clone(int $boardId, bool $withCards = false, bool $withAssignments = false, bool $withLabels = false, bool $withDueDate = false, bool $moveCardsToLeftStack = false, bool $restoreArchivedCards = false): DataResponse {
|
||||||
return $this->boardService->clone($boardId, $this->userId);
|
return new DataResponse(
|
||||||
|
$this->boardService->clone($boardId, $this->userId, $withCards, $withAssignments, $withLabels, $withDueDate, $moveCardsToLeftStack, $restoreArchivedCards)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -162,4 +167,62 @@ class BoardController extends ApiController {
|
|||||||
public function export($boardId) {
|
public function export($boardId) {
|
||||||
return $this->boardService->export($boardId);
|
return $this->boardService->export($boardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
*/
|
||||||
|
public function import(): DataResponse {
|
||||||
|
$file = $this->request->getUploadedFile('file');
|
||||||
|
$error = null;
|
||||||
|
$phpFileUploadErrors = [
|
||||||
|
UPLOAD_ERR_OK => $this->l10n->t('The file was uploaded'),
|
||||||
|
UPLOAD_ERR_INI_SIZE => $this->l10n->t('The uploaded file exceeds the upload_max_filesize directive in php.ini'),
|
||||||
|
UPLOAD_ERR_FORM_SIZE => $this->l10n->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'),
|
||||||
|
UPLOAD_ERR_PARTIAL => $this->l10n->t('The file was only partially uploaded'),
|
||||||
|
UPLOAD_ERR_NO_FILE => $this->l10n->t('No file was uploaded'),
|
||||||
|
UPLOAD_ERR_NO_TMP_DIR => $this->l10n->t('Missing a temporary folder'),
|
||||||
|
UPLOAD_ERR_CANT_WRITE => $this->l10n->t('Could not write file to disk'),
|
||||||
|
UPLOAD_ERR_EXTENSION => $this->l10n->t('A PHP extension stopped the file upload'),
|
||||||
|
];
|
||||||
|
|
||||||
|
if (empty($file)) {
|
||||||
|
$error = $this->l10n->t('No file uploaded or file size exceeds maximum of %s', [\OCP\Util::humanFileSize(\OCP\Util::uploadLimit())]);
|
||||||
|
}
|
||||||
|
if (!empty($file) && array_key_exists('error', $file) && $file['error'] !== UPLOAD_ERR_OK) {
|
||||||
|
$error = $phpFileUploadErrors[$file['error']];
|
||||||
|
}
|
||||||
|
if (!empty($file) && $file['error'] === UPLOAD_ERR_OK && !in_array($file['type'], ['application/json', 'text/plain'])) {
|
||||||
|
$error = $this->l10n->t('Invalid file type. Only JSON files are allowed.');
|
||||||
|
}
|
||||||
|
if ($error !== null) {
|
||||||
|
return new DataResponse([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => $error,
|
||||||
|
], Http::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$fileContent = file_get_contents($file['tmp_name']);
|
||||||
|
$this->boardImportService->setSystem('DeckJson');
|
||||||
|
$config = new \stdClass();
|
||||||
|
$config->owner = $this->userId;
|
||||||
|
$this->boardImportService->setConfigInstance($config);
|
||||||
|
$this->boardImportService->setData(json_decode($fileContent));
|
||||||
|
$this->boardImportService->import();
|
||||||
|
$importedBoard = $this->boardImportService->getBoard();
|
||||||
|
$board = $this->boardService->find($importedBoard->getId());
|
||||||
|
|
||||||
|
return new DataResponse($board, Http::STATUS_OK);
|
||||||
|
} catch (\TypeError $e) {
|
||||||
|
return new DataResponse([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => $this->l10n->t('Invalid JSON data'),
|
||||||
|
], Http::STATUS_BAD_REQUEST);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return new DataResponse([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => $this->l10n->t('Failed to import board'),
|
||||||
|
], Http::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -152,6 +153,30 @@ class CardApiController extends ApiController {
|
|||||||
return new DataResponse($card, HTTP::STATUS_OK);
|
return new DataResponse($card, HTTP::STATUS_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @CORS
|
||||||
|
* @NoCSRFRequired
|
||||||
|
*
|
||||||
|
* Archive card
|
||||||
|
*/
|
||||||
|
public function archive($cardId) {
|
||||||
|
$card = $this->cardService->archive($cardId);
|
||||||
|
return new DataResponse($card, HTTP::STATUS_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @CORS
|
||||||
|
* @NoCSRFRequired
|
||||||
|
*
|
||||||
|
* Unarchive card
|
||||||
|
*/
|
||||||
|
public function unarchive($cardId) {
|
||||||
|
$card = $this->cardService->unarchive($cardId);
|
||||||
|
return new DataResponse($card, HTTP::STATUS_OK);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @CORS
|
* @CORS
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -89,6 +90,15 @@ class CardController extends Controller {
|
|||||||
public function update($id, $title, $stackId, $type, $order, $description, $duedate, $deletedAt) {
|
public function update($id, $title, $stackId, $type, $order, $description, $duedate, $deletedAt) {
|
||||||
return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt);
|
return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @param $cardId
|
||||||
|
* @param $targetStackId
|
||||||
|
* @return \OCP\AppFramework\Db\Entity
|
||||||
|
*/
|
||||||
|
public function clone(int $cardId, ?int $targetStackId = null) {
|
||||||
|
return $this->cardService->cloneCard($cardId, $targetStackId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ use OCP\AppFramework\OCSController;
|
|||||||
use OCP\IRequest;
|
use OCP\IRequest;
|
||||||
|
|
||||||
class SessionController extends OCSController {
|
class SessionController extends OCSController {
|
||||||
public function __construct($appName,
|
public function __construct(
|
||||||
|
$appName,
|
||||||
IRequest $request,
|
IRequest $request,
|
||||||
private SessionService $sessionService,
|
private SessionService $sessionService,
|
||||||
private PermissionService $permissionService,
|
private PermissionService $permissionService,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -12,27 +13,17 @@ use OCA\Deck\Notification\NotificationHelper;
|
|||||||
use OCP\AppFramework\Db\DoesNotExistException;
|
use OCP\AppFramework\Db\DoesNotExistException;
|
||||||
use OCP\AppFramework\Utility\ITimeFactory;
|
use OCP\AppFramework\Utility\ITimeFactory;
|
||||||
use OCP\BackgroundJob\Job;
|
use OCP\BackgroundJob\Job;
|
||||||
use OCP\ILogger;
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
class ScheduledNotifications extends Job {
|
class ScheduledNotifications extends Job {
|
||||||
|
|
||||||
/** @var CardMapper */
|
|
||||||
protected $cardMapper;
|
|
||||||
/** @var NotificationHelper */
|
|
||||||
protected $notificationHelper;
|
|
||||||
/** @var ILogger */
|
|
||||||
protected $logger;
|
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
ITimeFactory $time,
|
ITimeFactory $time,
|
||||||
CardMapper $cardMapper,
|
protected CardMapper $cardMapper,
|
||||||
NotificationHelper $notificationHelper,
|
protected NotificationHelper $notificationHelper,
|
||||||
ILogger $logger
|
protected LoggerInterface $logger,
|
||||||
) {
|
) {
|
||||||
parent::__construct($time);
|
parent::__construct($time);
|
||||||
$this->cardMapper = $cardMapper;
|
|
||||||
$this->notificationHelper = $notificationHelper;
|
|
||||||
$this->logger = $logger;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,21 +14,19 @@ namespace OCA\Deck\Cron;
|
|||||||
use OCA\Deck\Service\SessionService;
|
use OCA\Deck\Service\SessionService;
|
||||||
use OCP\AppFramework\Utility\ITimeFactory;
|
use OCP\AppFramework\Utility\ITimeFactory;
|
||||||
use OCP\BackgroundJob\TimedJob;
|
use OCP\BackgroundJob\TimedJob;
|
||||||
use OCP\ILogger;
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
class SessionsCleanup extends TimedJob {
|
class SessionsCleanup extends TimedJob {
|
||||||
private $sessionService;
|
|
||||||
private $documentService;
|
private $documentService;
|
||||||
private $logger;
|
|
||||||
private $imageService;
|
private $imageService;
|
||||||
|
|
||||||
|
|
||||||
public function __construct(ITimeFactory $time,
|
public function __construct(
|
||||||
SessionService $sessionService,
|
ITimeFactory $time,
|
||||||
ILogger $logger) {
|
private SessionService $sessionService,
|
||||||
|
private LoggerInterface $logger,
|
||||||
|
) {
|
||||||
parent::__construct($time);
|
parent::__construct($time);
|
||||||
$this->sessionService = $sessionService;
|
|
||||||
$this->logger = $logger;
|
|
||||||
$this->setInterval(SessionService::SESSION_VALID_TIME);
|
$this->setInterval(SessionService::SESSION_VALID_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -25,7 +26,7 @@ class Calendar extends ExternalCalendar {
|
|||||||
private $children;
|
private $children;
|
||||||
/** @var DeckCalendarBackend */
|
/** @var DeckCalendarBackend */
|
||||||
private $backend;
|
private $backend;
|
||||||
/** @var Board */
|
/** @var Board */
|
||||||
private $board;
|
private $board;
|
||||||
|
|
||||||
public function __construct(string $principalUri, string $calendarUri, Board $board, DeckCalendarBackend $backend) {
|
public function __construct(string $principalUri, string $calendarUri, Board $board, DeckCalendarBackend $backend) {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user