Compare commits
550 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3346b8958 | ||
|
|
9586405290 | ||
|
|
15d7098c46 | ||
|
|
54b62fe7f3 | ||
|
|
7355bdd27f | ||
|
|
7e9f94233a | ||
|
|
c061cba5cd | ||
|
|
c4c905042f | ||
|
|
6dee849ed9 | ||
|
|
3ff9248852 | ||
|
|
aeb691752c | ||
|
|
5801565486 | ||
|
|
c69b1c6814 | ||
|
|
d0780557f6 | ||
|
|
8915c143ad | ||
|
|
e56b278383 | ||
|
|
8efa30ddd2 | ||
|
|
ce84bd6e88 | ||
|
|
6e3762ec10 | ||
|
|
aa7430bde9 | ||
|
|
e75ff1c1a0 | ||
|
|
037469352e | ||
|
|
8f589236af | ||
|
|
041f3e6eb8 | ||
|
|
23901ff0b0 | ||
|
|
8ded6e43c0 | ||
|
|
e4186cd9f1 | ||
|
|
585d2de7f7 | ||
|
|
9b785502b5 | ||
|
|
8568bb127e | ||
|
|
c2783186c0 | ||
|
|
4a2d54ab97 | ||
|
|
472018b2d6 | ||
|
|
2159e6e9d4 | ||
|
|
a66713f1ae | ||
|
|
571b08f42b | ||
|
|
b94d373c1b | ||
|
|
244580c29b | ||
|
|
7c45424d0d | ||
|
|
090f1c6cda | ||
|
|
e4072d0e49 | ||
|
|
7aa5d55def | ||
|
|
893a2ed5f3 | ||
|
|
57d6ebc1eb | ||
|
|
4c5102041b | ||
|
|
ff32a1583f | ||
|
|
284afbfa2f | ||
|
|
f290a9fe42 | ||
|
|
a87e0d841b | ||
|
|
4d936e98f0 | ||
|
|
f788ad1c51 | ||
|
|
74bc5551fe | ||
|
|
f7a8acb3d5 | ||
|
|
ecd60afe1e | ||
|
|
608d0f554e | ||
|
|
4944be2082 | ||
|
|
ee282c9afb | ||
|
|
3448acc920 | ||
|
|
1e002ca3bf | ||
|
|
a7d137f8cb | ||
|
|
b3f16d64cc | ||
|
|
d76477177f | ||
|
|
2ff5b502b9 | ||
|
|
d5617d96fa | ||
|
|
bfdb9bcdfc | ||
|
|
7564b1dcda | ||
|
|
889b5cc143 | ||
|
|
ee954b9fa2 | ||
|
|
b7a37f5ec0 | ||
|
|
3bbf62cf48 | ||
|
|
3289d474d4 | ||
|
|
e508ae1fbb | ||
|
|
1c621e11c0 | ||
|
|
23eabf4945 | ||
|
|
f1389318ad | ||
|
|
61e8e7eacb | ||
|
|
d4cdfd952b | ||
|
|
fdc2336c7a | ||
|
|
8a914a3c47 | ||
|
|
c5d004c5b1 | ||
|
|
048583a777 | ||
|
|
aa98e632fa | ||
|
|
a703374044 | ||
|
|
1128c05511 | ||
|
|
9f78510c7a | ||
|
|
aead228d58 | ||
|
|
146b68d7c7 | ||
|
|
659fa3f65c | ||
|
|
ad2ac29450 | ||
|
|
4e24a4b8b3 | ||
|
|
922ed01233 | ||
|
|
210a859063 | ||
|
|
d975216362 | ||
|
|
0e382cc340 | ||
|
|
3992210b14 | ||
|
|
736a98b174 | ||
|
|
8216329331 | ||
|
|
36e483dad2 | ||
|
|
50d4301c86 | ||
|
|
384f6f3058 | ||
|
|
3670be4980 | ||
|
|
8e81deceae | ||
|
|
66f924ba35 | ||
|
|
0475920aeb | ||
|
|
161fe371a3 | ||
|
|
982bbdf03e | ||
|
|
32e7fce7b8 | ||
|
|
e42d6dfed0 | ||
|
|
bbaf98ea3e | ||
|
|
fd6d7cc45e | ||
|
|
6cfe8a32ff | ||
|
|
5cd8e98601 | ||
|
|
c70e5d3568 | ||
|
|
e62206635b | ||
|
|
c399fb0fc0 | ||
|
|
a71cad1dfe | ||
|
|
4ca01ebd12 | ||
|
|
d12afd4bed | ||
|
|
22d62f4222 | ||
|
|
72f764e5c8 | ||
|
|
8dedd83381 | ||
|
|
6cc41da920 | ||
|
|
0584d4a2a3 | ||
|
|
688b810de2 | ||
|
|
32365cba13 | ||
|
|
6672d32985 | ||
|
|
097c59d14f | ||
|
|
dbbc8281cd | ||
|
|
a6d455e267 | ||
|
|
845a1c7122 | ||
|
|
18583db84d | ||
|
|
7067a9208d | ||
|
|
d14e40b454 | ||
|
|
4d32390409 | ||
|
|
8c18b5dea6 | ||
|
|
9ea84bbeff | ||
|
|
c424ca5a9b | ||
|
|
bc4dc7efc1 | ||
|
|
e591853055 | ||
|
|
56b7a5d89f | ||
|
|
5ec18f9386 | ||
|
|
f82696a1ec | ||
|
|
06c70c4eda | ||
|
|
0a7bc8958d | ||
|
|
e4df2bdccc | ||
|
|
34a4ae0777 | ||
|
|
96fcd13ad6 | ||
|
|
a4ba8460d6 | ||
|
|
db06e1cce7 | ||
|
|
dbc1667172 | ||
|
|
7f187487d6 | ||
|
|
1297064b4a | ||
|
|
90c54d29bb | ||
|
|
f57b88d0ad | ||
|
|
cc540953b0 | ||
|
|
dd3e67d554 | ||
|
|
c3125c06c2 | ||
|
|
2dbc6afdc5 | ||
|
|
fe2bc80658 | ||
|
|
8a6c934903 | ||
|
|
83ef278374 | ||
|
|
6c2ae9d2ec | ||
|
|
0854643e95 | ||
|
|
b1dc05be87 | ||
|
|
1cd3b37dee | ||
|
|
b80524b727 | ||
|
|
964f9cd98a | ||
|
|
db4cf929de | ||
|
|
1fc1683c72 | ||
|
|
a5c700a812 | ||
|
|
15107c2cae | ||
|
|
e2175ff107 | ||
|
|
3ce0bfe650 | ||
|
|
487b0b1fc7 | ||
|
|
34904f9a8a | ||
|
|
ff35f31b02 | ||
|
|
8f6efd6594 | ||
|
|
f6cc0231fc | ||
|
|
f6d0bb5255 | ||
|
|
a8b3df6370 | ||
|
|
df28ab764b | ||
|
|
17b7f9d18e | ||
|
|
56ae66ac13 | ||
|
|
b2791e0982 | ||
|
|
6641f1d970 | ||
|
|
628cad6926 | ||
|
|
36514c6bd5 | ||
|
|
ef6350a8a9 | ||
|
|
b98586a0e4 | ||
|
|
271a6cba65 | ||
|
|
207037cd9b | ||
|
|
90307158f6 | ||
|
|
4869acbde5 | ||
|
|
ddbf1046c5 | ||
|
|
e6ee110554 | ||
|
|
0c84d13181 | ||
|
|
44bdf5f86e | ||
|
|
b62376e39e | ||
|
|
6e7169f1e1 | ||
|
|
989b6a54f4 | ||
|
|
3b1c8dec9e | ||
|
|
e84980406c | ||
|
|
e359fb070f | ||
|
|
19d85c7864 | ||
|
|
0e13176d0b | ||
|
|
8aaf5fdb10 | ||
|
|
867762a8d5 | ||
|
|
2931d252ec | ||
|
|
e9dd4aaaa8 | ||
|
|
7af9d71027 | ||
|
|
826acdd0fd | ||
|
|
075aeb00cc | ||
|
|
ae9bf21296 | ||
|
|
8c0a15ed2a | ||
|
|
d08b56ae16 | ||
|
|
0141cc4cc9 | ||
|
|
6d1d4951bd | ||
|
|
14d3b0ffd7 | ||
|
|
1326fbfa38 | ||
|
|
1365f99887 | ||
|
|
27be8991a6 | ||
|
|
3badc73e5e | ||
|
|
fd9e7acb0a | ||
|
|
3c9e3b5b23 | ||
|
|
2851791f9a | ||
|
|
f62c3ec2be | ||
|
|
bf8c0498f6 | ||
|
|
cddf5fe9ad | ||
|
|
921d7e5f31 | ||
|
|
a4b7223ddc | ||
|
|
76a84245d4 | ||
|
|
963f569099 | ||
|
|
f0619912ff | ||
|
|
8946e150bd | ||
|
|
8c10cada1d | ||
|
|
dbd3eaeb79 | ||
|
|
5ba5c3df88 | ||
|
|
909472b9a0 | ||
|
|
d416a05bc7 | ||
|
|
8cb662541f | ||
|
|
b5a76bc555 | ||
|
|
5dba15261d | ||
|
|
0f122c2a26 | ||
|
|
a0dd54df35 | ||
|
|
9fe82e9179 | ||
|
|
4d59a12db3 | ||
|
|
94e57979e3 | ||
|
|
0e66110401 | ||
|
|
29a9744060 | ||
|
|
bbfb471e41 | ||
|
|
445660b0e5 | ||
|
|
d8c3c835d4 | ||
|
|
631b01f000 | ||
|
|
89603b6f4a | ||
|
|
c88a6109b8 | ||
|
|
a3ca766a81 | ||
|
|
4fbded42b8 | ||
|
|
9a5dd487a2 | ||
|
|
1e0adff1ef | ||
|
|
65f5101e78 | ||
|
|
275c4574e2 | ||
|
|
b0ebb34fb8 | ||
|
|
e72b654bc6 | ||
|
|
d5ae69afce | ||
|
|
5dfe12a302 | ||
|
|
103a2c8508 | ||
|
|
4120f2e7ee | ||
|
|
9f9ef99a31 | ||
|
|
7ce6e1779a | ||
|
|
5cc075cbf9 | ||
|
|
150e663283 | ||
|
|
2bdaba5c85 | ||
|
|
3c3837c8d3 | ||
|
|
c30e253f83 | ||
|
|
c3acf91184 | ||
|
|
4e513264c5 | ||
|
|
f470ed4848 | ||
|
|
396b725442 | ||
|
|
5c8b48faa0 | ||
|
|
5141d463fc | ||
|
|
5360b8552e | ||
|
|
c93b837754 | ||
|
|
9ca7a2fc2c | ||
|
|
f5e733362e | ||
|
|
c3697295e6 | ||
|
|
cffe0f708e | ||
|
|
ca96096617 | ||
|
|
baea5d83d3 | ||
|
|
14e37c4392 | ||
|
|
be39fb3b7c | ||
|
|
7a262c5188 | ||
|
|
d97fe80e48 | ||
|
|
88b4fd0756 | ||
|
|
c8878d4497 | ||
|
|
68c1faabaa | ||
|
|
60d8370dbe | ||
|
|
685db5a4fe | ||
|
|
c190832287 | ||
|
|
2740d2145e | ||
|
|
58ed490c7d | ||
|
|
372878b318 | ||
|
|
d055b44fa2 | ||
|
|
deb63d4a9a | ||
|
|
66fda2265d | ||
|
|
44037cfd18 | ||
|
|
b450d96d4b | ||
|
|
9f1597a2f3 | ||
|
|
a0a929bdec | ||
|
|
deffd3adaa | ||
|
|
cd7ade1eaf | ||
|
|
e568d79bbe | ||
|
|
1ddb3cdac9 | ||
|
|
a982a0dbed | ||
|
|
bebbb046ea | ||
|
|
37f305aba2 | ||
|
|
dcc42f7613 | ||
|
|
bea851009c | ||
|
|
6a5e72bf6d | ||
|
|
b5c6b54fab | ||
|
|
61a801502b | ||
|
|
54c5cbbef1 | ||
|
|
6956551e3c | ||
|
|
62a54481e5 | ||
|
|
9d9b333152 | ||
|
|
0179b99f24 | ||
|
|
342003ea2e | ||
|
|
20d4476843 | ||
|
|
cc1b30be54 | ||
|
|
c1e52fd168 | ||
|
|
81d8748e96 | ||
|
|
06e3272b79 | ||
|
|
b71d8e2090 | ||
|
|
302ec1c44e | ||
|
|
28c031a68e | ||
|
|
b938c3b2bf | ||
|
|
78fea30e39 | ||
|
|
fcbc0cf092 | ||
|
|
dbdbb00fd5 | ||
|
|
dcccd63864 | ||
|
|
cf52359e7a | ||
|
|
cf7f231047 | ||
|
|
8449d91656 | ||
|
|
4126e4dd43 | ||
|
|
566778be58 | ||
|
|
063c4cbfef | ||
|
|
8d03a03b27 | ||
|
|
46f76f2dbc | ||
|
|
9f68a58407 | ||
|
|
58a5275e78 | ||
|
|
c644fc9680 | ||
|
|
7eb078d0a8 | ||
|
|
6126cc53a2 | ||
|
|
38344cee55 | ||
|
|
3e0baf9330 | ||
|
|
2899927efe | ||
|
|
4ce2265f5e | ||
|
|
2872cd39d9 | ||
|
|
73752472ac | ||
|
|
508ded19ba | ||
|
|
57e8698f3b | ||
|
|
abf00984f4 | ||
|
|
b53c10c47d | ||
|
|
5e2d8ac24a | ||
|
|
5db87329ac | ||
|
|
d12ccc0208 | ||
|
|
d67b1e4ba9 | ||
|
|
81c0e37ba0 | ||
|
|
f44eb87d77 | ||
|
|
55b75e16a0 | ||
|
|
020b16a33d | ||
|
|
fef75fa169 | ||
|
|
4547e1ae3d | ||
|
|
0e0ff7e16c | ||
|
|
6329da3d4d | ||
|
|
c37cae0a5c | ||
|
|
9d852b93ce | ||
|
|
5035be90f0 | ||
|
|
6a07581508 | ||
|
|
84b1de5308 | ||
|
|
3533388c37 | ||
|
|
43fa69aa65 | ||
|
|
ab051171ed | ||
|
|
72de3f257a | ||
|
|
186fc572b3 | ||
|
|
ea95fcaaf3 | ||
|
|
e4e474235e | ||
|
|
64f406355e | ||
|
|
d523e4f64e | ||
|
|
81f8423218 | ||
|
|
2d1f39eb82 | ||
|
|
d601b0300b | ||
|
|
eb8b94328f | ||
|
|
e29fc0f320 | ||
|
|
165c8ebc1c | ||
|
|
527be16719 | ||
|
|
cc86209179 | ||
|
|
c7de8c4590 | ||
|
|
68acd38421 | ||
|
|
54e298d00f | ||
|
|
ba20c1a9eb | ||
|
|
49cb27d576 | ||
|
|
7320a48dce | ||
|
|
3c834b79f5 | ||
|
|
4637024240 | ||
|
|
440f2710f0 | ||
|
|
0ebd55890c | ||
|
|
3409a9f13f | ||
|
|
7fae8e0928 | ||
|
|
609c975de4 | ||
|
|
64615a3e14 | ||
|
|
fb72a0f24d | ||
|
|
54c5a7f963 | ||
|
|
8d46fbbd04 | ||
|
|
0d787f9989 | ||
|
|
f19f22737a | ||
|
|
687f5c933c | ||
|
|
fd95e77d4e | ||
|
|
fba52536d0 | ||
|
|
cfcbc94006 | ||
|
|
9643f0581e | ||
|
|
c02a24f85b | ||
|
|
728c7916be | ||
|
|
1af1c7f581 | ||
|
|
87439dbaad | ||
|
|
c79ec72b79 | ||
|
|
beff26500a | ||
|
|
6df2e2b755 | ||
|
|
4b793d3738 | ||
|
|
399a85ce9f | ||
|
|
673222d37e | ||
|
|
eced4dd2d3 | ||
|
|
293f241aa6 | ||
|
|
5a79c61732 | ||
|
|
c28a877d0b | ||
|
|
484b9df8c9 | ||
|
|
db7403acc0 | ||
|
|
8c8788eab3 | ||
|
|
0f4ad52ca9 | ||
|
|
8b156958f8 | ||
|
|
88ba778e55 | ||
|
|
192314fb02 | ||
|
|
0bfb983a1c | ||
|
|
c3a8f797d1 | ||
|
|
b67ed2057c | ||
|
|
234ba20eba | ||
|
|
88097f98e8 | ||
|
|
4c3c483011 | ||
|
|
5a9cba00ed | ||
|
|
8f822cfd84 | ||
|
|
45c19c1c2d | ||
|
|
369749bb46 | ||
|
|
5ec04ac670 | ||
|
|
69b8ed2486 | ||
|
|
74d8fba022 | ||
|
|
2ca8863b5d | ||
|
|
63e57f2667 | ||
|
|
165ef3adf6 | ||
|
|
8ccdc6a2ed | ||
|
|
a04f2004bd | ||
|
|
ad00818bd1 | ||
|
|
138087b296 | ||
|
|
cd5500ee50 | ||
|
|
cda8a40607 | ||
|
|
84e6679704 | ||
|
|
7d8bc27d73 | ||
|
|
566de0f9e7 | ||
|
|
146fbbcb6f | ||
|
|
d2dd0d2914 | ||
|
|
6010e839d0 | ||
|
|
2895f563cd | ||
|
|
7663a4a346 | ||
|
|
864272c1a2 | ||
|
|
4f75064ba4 | ||
|
|
ffd6d4dedc | ||
|
|
891139f682 | ||
|
|
496304c896 | ||
|
|
9cfde4d80c | ||
|
|
eba4453728 | ||
|
|
f36a2a11a6 | ||
|
|
6c9af9cc12 | ||
|
|
de6604ad5f | ||
|
|
d4ebfc7ab1 | ||
|
|
2a2f578c13 | ||
|
|
f04cf33c78 | ||
|
|
6d89bbacf7 | ||
|
|
0010255391 | ||
|
|
50de5610b9 | ||
|
|
8def56fd8b | ||
|
|
bdbcb236a1 | ||
|
|
70fa18f186 | ||
|
|
43a7255c2a | ||
|
|
8c24def8d8 | ||
|
|
937f285689 | ||
|
|
a66c960b21 | ||
|
|
81d922c8bd | ||
|
|
347364543d | ||
|
|
6bc703a9b0 | ||
|
|
ee99a768f4 | ||
|
|
beee212fcb | ||
|
|
33145e377b | ||
|
|
5552a9d538 | ||
|
|
4fcdb6f304 | ||
|
|
0e4d345fc1 | ||
|
|
ee0092e7ca | ||
|
|
c3f0a1edc4 | ||
|
|
a8b46ad10f | ||
|
|
daa65b40fb | ||
|
|
fa6027f7ba | ||
|
|
f26a085b13 | ||
|
|
9d09916c17 | ||
|
|
f250d9956b | ||
|
|
93994bb39c | ||
|
|
17f7d19624 | ||
|
|
7e0c1a8024 | ||
|
|
f6dc22c545 | ||
|
|
d196956519 | ||
|
|
4769c69ba7 | ||
|
|
f322b6191e | ||
|
|
e076c76b3f | ||
|
|
df8257a18f | ||
|
|
e7f22ca0d3 | ||
|
|
a9921ecdf0 | ||
|
|
a5da643513 | ||
|
|
8c68b7ce83 | ||
|
|
a4137a4edd | ||
|
|
cb5a181993 | ||
|
|
46972646d8 | ||
|
|
8549d4a13f | ||
|
|
47077af838 | ||
|
|
6cc589539b | ||
|
|
2237745c09 | ||
|
|
b74569abef | ||
|
|
de67847ef1 | ||
|
|
a430eaf41f | ||
|
|
31b68ae5e5 | ||
|
|
fa1877ef7b | ||
|
|
5851c4a5f1 | ||
|
|
4fadb9a633 | ||
|
|
d021559d7c | ||
|
|
7f22925063 | ||
|
|
e65fa778cb | ||
|
|
003ee7a926 | ||
|
|
8b344a653f | ||
|
|
7403aafe16 | ||
|
|
f7b6e8a3bc | ||
|
|
ad051c5e0e | ||
|
|
7ceb23f7a2 | ||
|
|
9760c838aa | ||
|
|
8002cecda4 | ||
|
|
27b1c6a2f2 |
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"image": "ghcr.io/juliushaertl/nextcloud-dev-php80:latest",
|
|
||||||
"forwardPorts": [80],
|
|
||||||
"containerEnv": {
|
|
||||||
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
|
|
||||||
"XDEBUG_MODE": "debug"
|
|
||||||
},
|
|
||||||
"customizations": {
|
|
||||||
"vscode": {
|
|
||||||
"extensions": [
|
|
||||||
"felixfbecker.php-intellisense",
|
|
||||||
"octref.vetur"
|
|
||||||
],
|
|
||||||
"settings": {
|
|
||||||
"php.suggest.basic": false,
|
|
||||||
"git.alwaysSignOff": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"workspaceMount": "source=${localWorkspaceFolder},target=/var/www/html/apps-extra/deck,type=bind",
|
|
||||||
"workspaceFolder": "/var/www/html/apps-extra/deck",
|
|
||||||
"overrideCommand": true,
|
|
||||||
"postAttachCommand": "bash ./.devcontainer/setup.sh",
|
|
||||||
"portsAttributes": {
|
|
||||||
"80": {
|
|
||||||
"label": "Webserver"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
(
|
|
||||||
cd /tmp && /usr/local/bin/bootstrap.sh apache2ctl start
|
|
||||||
)
|
|
||||||
|
|
||||||
composer install --no-dev
|
|
||||||
npm ci
|
|
||||||
npm run dev
|
|
||||||
@@ -9,6 +9,6 @@ module.exports = {
|
|||||||
'jsdoc/check-param-names': ['off'],
|
'jsdoc/check-param-names': ['off'],
|
||||||
'jsdoc/no-undefined-types': ['off'],
|
'jsdoc/no-undefined-types': ['off'],
|
||||||
'jsdoc/require-property-description': ['off'],
|
'jsdoc/require-property-description': ['off'],
|
||||||
'import/no-named-as-default-member': ['off'],
|
'import/no-named-as-default-member': ['off']
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
37
.github/dependabot.yml
vendored
37
.github/dependabot.yml
vendored
@@ -2,7 +2,7 @@ version: 2
|
|||||||
updates:
|
updates:
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/"
|
directory: "/"
|
||||||
target-branch: "main"
|
target-branch: "master"
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: saturday
|
day: saturday
|
||||||
@@ -11,41 +11,6 @@ updates:
|
|||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
- juliushaertl
|
- juliushaertl
|
||||||
|
|
||||||
- package-ecosystem: npm
|
|
||||||
target-branch: stable27
|
|
||||||
versioning-strategy: lockfile-only
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
day: saturday
|
|
||||||
time: "03:00"
|
|
||||||
timezone: Europe/Paris
|
|
||||||
ignore:
|
|
||||||
- dependency-name: "*"
|
|
||||||
update-types: ["version-update:semver-major"]
|
|
||||||
open-pull-requests-limit: 30
|
|
||||||
labels:
|
|
||||||
- 3. to review
|
|
||||||
- dependencies
|
|
||||||
|
|
||||||
- package-ecosystem: npm
|
|
||||||
target-branch: stable26
|
|
||||||
versioning-strategy: lockfile-only
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
day: saturday
|
|
||||||
time: "03:00"
|
|
||||||
timezone: Europe/Paris
|
|
||||||
ignore:
|
|
||||||
- dependency-name: "*"
|
|
||||||
update-types: ["version-update:semver-major"]
|
|
||||||
open-pull-requests-limit: 30
|
|
||||||
labels:
|
|
||||||
- 3. to review
|
|
||||||
- dependencies
|
|
||||||
|
|
||||||
- package-ecosystem: composer
|
- package-ecosystem: composer
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
|
|||||||
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
* Resolves: # <!-- related github issue -->
|
* Resolves: # <!-- related github issue -->
|
||||||
* Target version: main
|
* Target version: master
|
||||||
|
|
||||||
### Summary
|
### Summary
|
||||||
|
|
||||||
|
|||||||
43
.github/workflows/appbuild.yml
vendored
43
.github/workflows/appbuild.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name: Package build
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- master
|
|
||||||
- stable*
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [16.x]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- name: Set up npm7
|
|
||||||
run: npm i -g npm@7
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@2.27.1
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
tools: composer
|
|
||||||
- name: install dependencies
|
|
||||||
run: |
|
|
||||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
|
||||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
|
||||||
- name: package
|
|
||||||
run: |
|
|
||||||
uname -a
|
|
||||||
RUST_BACKTRACE=1 krankerl --version
|
|
||||||
RUST_BACKTRACE=1 krankerl package
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: Deck app tarball
|
|
||||||
path: build/artifacts/deck.tar.gz
|
|
||||||
52
.github/workflows/appstore-build-publish.yml
vendored
52
.github/workflows/appstore-build-publish.yml
vendored
@@ -10,7 +10,7 @@ on:
|
|||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PHP_VERSION: 8.1
|
PHP_VERSION: 7.4
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_and_publish:
|
build_and_publish:
|
||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check actor permission
|
- name: Check actor permission
|
||||||
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
|
uses: skjnldsv/check-actor-permission@v2
|
||||||
with:
|
with:
|
||||||
require: write
|
require: write
|
||||||
|
|
||||||
@@ -32,31 +32,31 @@ jobs:
|
|||||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Get appinfo data
|
- name: Get appinfo data
|
||||||
id: appinfo
|
id: appinfo
|
||||||
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
|
uses: skjnldsv/xpath-action@master
|
||||||
with:
|
with:
|
||||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||||
expression: "//info//dependencies//nextcloud/@min-version"
|
expression: "//info//dependencies//nextcloud/@min-version"
|
||||||
|
|
||||||
- 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@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
uses: skjnldsv/read-package-engines-version-actions@v1.2
|
||||||
id: versions
|
id: versions
|
||||||
# Continue if no package.json
|
# Continue if no package.json
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
fallbackNode: "^16"
|
fallbackNode: "^12"
|
||||||
fallbackNpm: "^7"
|
fallbackNpm: "^6"
|
||||||
|
|
||||||
- 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@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -66,16 +66,14 @@ jobs:
|
|||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||||
|
|
||||||
- name: Set up php ${{ env.PHP_VERSION }}
|
- name: Set up php ${{ env.PHP_VERSION }}
|
||||||
uses: shivammathur/setup-php@2.27.1 # v2
|
uses: shivammathur/setup-php@2.21.2
|
||||||
with:
|
with:
|
||||||
php-version: ${{ env.PHP_VERSION }}
|
php-version: ${{ env.PHP_VERSION }}
|
||||||
coverage: none
|
coverage: none
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Check composer.json
|
- name: Check composer.json
|
||||||
id: check_composer
|
id: check_composer
|
||||||
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
uses: andstor/file-existence-action@v1
|
||||||
with:
|
with:
|
||||||
files: "${{ env.APP_NAME }}/composer.json"
|
files: "${{ env.APP_NAME }}/composer.json"
|
||||||
|
|
||||||
@@ -93,29 +91,16 @@ jobs:
|
|||||||
npm ci
|
npm ci
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
- name: Check Krankerl config
|
|
||||||
id: krankerl
|
|
||||||
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
|
||||||
with:
|
|
||||||
files: ${{ env.APP_NAME }}/krankerl.toml
|
|
||||||
|
|
||||||
- name: Install Krankerl
|
- name: Install Krankerl
|
||||||
if: steps.krankerl.outputs.files_exists == 'true'
|
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.13.0/krankerl_0.13.0_amd64.deb
|
||||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
sudo dpkg -i krankerl_0.13.0_amd64.deb
|
||||||
|
|
||||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
|
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }}
|
||||||
if: steps.krankerl.outputs.files_exists == 'true'
|
# Try krankerl, fallback to makefile
|
||||||
run: |
|
run: |
|
||||||
cd ${{ env.APP_NAME }}
|
cd ${{ env.APP_NAME }}
|
||||||
krankerl package
|
krankerl package || make appstore
|
||||||
|
|
||||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
|
|
||||||
if: steps.krankerl.outputs.files_exists != 'true'
|
|
||||||
run: |
|
|
||||||
cd ${{ env.APP_NAME }}
|
|
||||||
make appstore
|
|
||||||
|
|
||||||
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
@@ -126,10 +111,9 @@ jobs:
|
|||||||
unzip latest-$NCVERSION.zip
|
unzip latest-$NCVERSION.zip
|
||||||
|
|
||||||
- name: Checkout server master fallback
|
- name: Checkout server master fallback
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@v3
|
||||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||||
with:
|
with:
|
||||||
submodules: true
|
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
path: nextcloud
|
path: nextcloud
|
||||||
|
|
||||||
@@ -149,7 +133,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@1beeb572c19a9242f4361f4cee78f8e0d9aec5df # v2
|
uses: svenstaro/upload-release-action@v2
|
||||||
id: attach_to_release
|
id: attach_to_release
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -159,7 +143,7 @@ jobs:
|
|||||||
overwrite: true
|
overwrite: true
|
||||||
|
|
||||||
- name: Upload app to Nextcloud appstore
|
- name: Upload app to Nextcloud appstore
|
||||||
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
|
uses: nextcloud-releases/nextcloud-appstore-push-action@v1
|
||||||
with:
|
with:
|
||||||
app_name: ${{ env.APP_NAME }}
|
app_name: ${{ env.APP_NAME }}
|
||||||
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
||||||
|
|||||||
8
.github/workflows/command-rebase.yml
vendored
8
.github/workflows/command-rebase.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Add reaction on start
|
- name: Add reaction on start
|
||||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
uses: peter-evans/create-or-update-comment@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
repository: ${{ github.event.repository.full_name }}
|
repository: ${{ github.event.repository.full_name }}
|
||||||
@@ -31,18 +31,18 @@ jobs:
|
|||||||
reaction-type: "+1"
|
reaction-type: "+1"
|
||||||
|
|
||||||
- name: Checkout the latest code
|
- name: Checkout the latest code
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
|
|
||||||
- name: Automatic Rebase
|
- name: Automatic Rebase
|
||||||
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
|
uses: cirrus-actions/rebase@1.7
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
|
|
||||||
- name: Add reaction on failure
|
- name: Add reaction on failure
|
||||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
uses: peter-evans/create-or-update-comment@v2
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
|
|||||||
26
.github/workflows/cypress.yml
vendored
26
.github/workflows/cypress.yml
vendored
@@ -14,22 +14,24 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
cypress:
|
cypress:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: self-hosted
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.x]
|
node-version: [16.x]
|
||||||
# containers: [1, 2, 3]
|
# containers: [1, 2, 3]
|
||||||
php-versions: [ '8.0' ]
|
php-versions: [ '7.4' ]
|
||||||
databases: [ 'sqlite' ]
|
databases: [ 'sqlite' ]
|
||||||
server-versions: [ 'stable28' ]
|
server-versions: [ 'stable25' ]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
- name: Set up npm7
|
||||||
|
run: npm i -g npm@7
|
||||||
|
|
||||||
- name: Register text Git reference
|
- name: Register text Git reference
|
||||||
run: |
|
run: |
|
||||||
@@ -37,7 +39,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
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -50,22 +52,22 @@ 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
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Checkout text
|
- name: Checkout text
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/text
|
repository: nextcloud/text
|
||||||
ref: ${{ env.text_app_ref }}
|
ref: ${{ env.text_app_ref }}
|
||||||
path: apps/text
|
path: apps/text
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.27.1
|
uses: shivammathur/setup-php@2.25.4
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu
|
||||||
ini-values:
|
ini-values:
|
||||||
apc.enable_cli=on
|
apc.enable_cli=on
|
||||||
coverage: none
|
coverage: none
|
||||||
@@ -94,9 +96,9 @@ jobs:
|
|||||||
curl -v http://localhost:8081/index.php/login
|
curl -v http://localhost:8081/index.php/login
|
||||||
|
|
||||||
- name: Cypress run
|
- name: Cypress run
|
||||||
uses: cypress-io/github-action@v6
|
uses: cypress-io/github-action@v5
|
||||||
with:
|
with:
|
||||||
record: false
|
record: true
|
||||||
parallel: false
|
parallel: false
|
||||||
wait-on: '${{ env.CYPRESS_baseUrl }}'
|
wait-on: '${{ env.CYPRESS_baseUrl }}'
|
||||||
working-directory: 'apps/${{ env.APP_NAME }}'
|
working-directory: 'apps/${{ env.APP_NAME }}'
|
||||||
|
|||||||
@@ -15,10 +15,6 @@ on:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
auto-approve-merge:
|
auto-approve-merge:
|
||||||
if: github.actor == 'dependabot[bot]'
|
if: github.actor == 'dependabot[bot]'
|
||||||
@@ -29,12 +25,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Github actions bot approve
|
# Github actions bot approve
|
||||||
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
|
- uses: hmarr/auto-approve-action@v2
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
# Nextcloud bot approve and merge request
|
# Nextcloud bot approve and merge request
|
||||||
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
|
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||||
with:
|
with:
|
||||||
target: minor
|
target: minor
|
||||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||||
|
|||||||
19
.github/workflows/fixup.yml
vendored
19
.github/workflows/fixup.yml
vendored
@@ -3,31 +3,18 @@
|
|||||||
# https://github.com/nextcloud/.github
|
# https://github.com/nextcloud/.github
|
||||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||||
|
|
||||||
name: Block fixup and squash commits
|
name: Pull request checks
|
||||||
|
|
||||||
on:
|
on: pull_request
|
||||||
pull_request:
|
|
||||||
types: [opened, ready_for_review, reopened, synchronize]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: fixup-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
commit-message-check:
|
commit-message-check:
|
||||||
if: github.event.pull_request.draft == false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
name: Block fixup and squash commits
|
name: Block fixup and squash commits
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Run check
|
- name: Run check
|
||||||
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
|
uses: xt0rted/block-autosquash-commits-action@v2
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
21
.github/workflows/integration.yml
vendored
21
.github/workflows/integration.yml
vendored
@@ -26,9 +26,9 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1']
|
php-versions: ['7.4']
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
server-versions: ['stable28']
|
server-versions: ['stable25']
|
||||||
|
|
||||||
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
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -66,15 +66,22 @@ 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
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Checkout activity
|
||||||
|
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||||
|
with:
|
||||||
|
repository: nextcloud/activity
|
||||||
|
ref: ${{ matrix.server-versions }}
|
||||||
|
path: apps/activity
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.27.1
|
uses: shivammathur/setup-php@2.25.4
|
||||||
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
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu
|
||||||
ini-values:
|
ini-values:
|
||||||
apc.enable_cli=on
|
apc.enable_cli=on
|
||||||
coverage: none
|
coverage: none
|
||||||
@@ -107,7 +114,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Query count
|
- name: Query count
|
||||||
if: ${{ matrix.databases == 'mysql' }}
|
if: ${{ matrix.databases == 'mysql' }}
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
script: |
|
script: |
|
||||||
|
|||||||
62
.github/workflows/lint-eslint.yml
vendored
62
.github/workflows/lint-eslint.yml
vendored
@@ -1,62 +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
|
|
||||||
#
|
|
||||||
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
|
|
||||||
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
|
|
||||||
|
|
||||||
name: Lint eslint
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- '.github/workflows/**'
|
|
||||||
- 'src/**'
|
|
||||||
- 'appinfo/info.xml'
|
|
||||||
- 'package.json'
|
|
||||||
- 'package-lock.json'
|
|
||||||
- 'tsconfig.json'
|
|
||||||
- '.eslintrc.*'
|
|
||||||
- '.eslintignore'
|
|
||||||
- '**.js'
|
|
||||||
- '**.ts'
|
|
||||||
- '**.vue'
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
name: eslint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
|
||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
|
||||||
id: versions
|
|
||||||
with:
|
|
||||||
fallbackNode: '^16'
|
|
||||||
fallbackNpm: '^7'
|
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
|
|
||||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
|
||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: npm run lint
|
|
||||||
40
.github/workflows/lint-php-cs.yml
vendored
40
.github/workflows/lint-php-cs.yml
vendored
@@ -1,40 +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: Lint php-cs
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-php-cs-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
name: php-cs
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
|
||||||
|
|
||||||
- name: Set up php
|
|
||||||
uses: shivammathur/setup-php@2.27.1 # v2
|
|
||||||
with:
|
|
||||||
php-version: 8.1
|
|
||||||
coverage: none
|
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: composer i
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
|
|
||||||
60
.github/workflows/lint-php.yml
vendored
60
.github/workflows/lint-php.yml
vendored
@@ -1,60 +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: Lint php
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- master
|
|
||||||
- stable*
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-php-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
php-lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
php-versions: [ "8.0", "8.1", "8.2", "8.3" ]
|
|
||||||
|
|
||||||
name: php-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
|
||||||
uses: shivammathur/setup-php@2.27.1 # v2
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php-versions }}
|
|
||||||
coverage: none
|
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: composer run lint
|
|
||||||
|
|
||||||
summary:
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: php-lint
|
|
||||||
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
name: php-lint-summary
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Summary status
|
|
||||||
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
|
|
||||||
46
.github/workflows/lint-stylelint.yml
vendored
46
.github/workflows/lint-stylelint.yml
vendored
@@ -1,46 +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: Lint stylelint
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-stylelint-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
name: stylelint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
|
||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
|
||||||
id: versions
|
|
||||||
with:
|
|
||||||
fallbackNode: '^16'
|
|
||||||
fallbackNpm: '^7'
|
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
|
|
||||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
|
||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: npm run stylelint
|
|
||||||
88
.github/workflows/lint.yml
vendored
Normal file
88
.github/workflows/lint.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
name: Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
php:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['7.4', '8.0', '8.1']
|
||||||
|
|
||||||
|
name: php${{ matrix.php-versions }} lint
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up php${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@2.21.2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php-versions }}
|
||||||
|
coverage: none
|
||||||
|
- name: Lint
|
||||||
|
run: composer run lint
|
||||||
|
|
||||||
|
php-cs-fixer:
|
||||||
|
name: php-cs check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Set up php
|
||||||
|
uses: shivammathur/setup-php@2.21.2
|
||||||
|
with:
|
||||||
|
php-version: 7.4
|
||||||
|
coverage: none
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer i
|
||||||
|
- name: Run coding standards check
|
||||||
|
run: composer run cs:check
|
||||||
|
|
||||||
|
node:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Use node ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
- name: Set up npm7
|
||||||
|
run: npm i -g npm@7
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
- name: ESLint
|
||||||
|
run: npm run lint
|
||||||
|
|
||||||
|
stylelint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x]
|
||||||
|
|
||||||
|
name: stylelint node${{ matrix.node-version }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up node ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
|
- name: Set up npm7
|
||||||
|
run: npm i -g npm@7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: npm run stylelint
|
||||||
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
|
- uses: actions/checkout@v3
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
- name: Set up npm7
|
- name: Set up npm7
|
||||||
|
|||||||
71
.github/workflows/npm-audit-fix.yml
vendored
71
.github/workflows/npm-audit-fix.yml
vendored
@@ -1,71 +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: Npm audit fix and compile
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
# At 2:30 on Sundays
|
|
||||||
- cron: '30 2 * * 0'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"]
|
|
||||||
|
|
||||||
name: npm-audit-fix-${{ matrix.branches }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
|
||||||
with:
|
|
||||||
ref: ${{ matrix.branches }}
|
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
|
||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
|
||||||
id: versions
|
|
||||||
with:
|
|
||||||
fallbackNode: '^16'
|
|
||||||
fallbackNpm: '^7'
|
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
|
|
||||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
|
||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
|
||||||
|
|
||||||
- name: Fix npm audit
|
|
||||||
run: |
|
|
||||||
npm audit fix
|
|
||||||
|
|
||||||
- name: Run npm ci and npm run build
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
npm ci
|
|
||||||
npm run build --if-present
|
|
||||||
|
|
||||||
- name: Create Pull Request
|
|
||||||
if: always()
|
|
||||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
|
||||||
commit-message: "chore(deps): fix npm audit"
|
|
||||||
committer: GitHub <noreply@github.com>
|
|
||||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
|
||||||
signoff: true
|
|
||||||
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
|
|
||||||
title: "[${{ matrix.branches }}] Fix npm audit"
|
|
||||||
body: |
|
|
||||||
Auto-generated fix of npm audit
|
|
||||||
labels: |
|
|
||||||
dependencies
|
|
||||||
3. to review
|
|
||||||
11
.github/workflows/phpunit.yml
vendored
11
.github/workflows/phpunit.yml
vendored
@@ -26,9 +26,9 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
php-versions: ['7.4', '8.0', '8.1']
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
server-versions: ['stable28']
|
server-versions: ['stable25']
|
||||||
|
|
||||||
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
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -65,16 +65,17 @@ 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 app
|
- name: Checkout app
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
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@2.27.1
|
uses: shivammathur/setup-php@2.24.0
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
tools: phpunit
|
tools: phpunit
|
||||||
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
|
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
|
||||||
|
ini-file: development
|
||||||
coverage: none
|
coverage: none
|
||||||
|
|
||||||
- name: Set up PHPUnit
|
- name: Set up PHPUnit
|
||||||
|
|||||||
29
.github/workflows/pr-feedback.yml
vendored
29
.github/workflows/pr-feedback.yml
vendored
@@ -1,29 +0,0 @@
|
|||||||
name: 'Ask for feedback on PRs'
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '30 1 * * *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pr-feedback:
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
steps:
|
|
||||||
- name: The get-github-handles-from-website action
|
|
||||||
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
|
|
||||||
id: scrape
|
|
||||||
with:
|
|
||||||
website: 'https://nextcloud.com/team/'
|
|
||||||
- uses: marcelklehr/pr-feedback-action@601109aa729eb4c8d6d0ece7567b9d4901db4aef
|
|
||||||
with:
|
|
||||||
feedback-message: |
|
|
||||||
Hello there,
|
|
||||||
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
|
|
||||||
|
|
||||||
We hope that the reviewing process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR reviewing process.
|
|
||||||
|
|
||||||
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
|
|
||||||
|
|
||||||
Thank you for contributing to Nextcloud and we hope to hear from you soon!
|
|
||||||
days-before-feedback: 14
|
|
||||||
start-date: "2023-07-10"
|
|
||||||
exempt-authors: "${{ steps.scrape.outputs.users }}"
|
|
||||||
exempt-bots: true
|
|
||||||
13
.github/workflows/psalm.yml
vendored
13
.github/workflows/psalm.yml
vendored
@@ -13,10 +13,6 @@ on:
|
|||||||
- main
|
- main
|
||||||
- stable*
|
- stable*
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: psalm-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
static-analysis:
|
static-analysis:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -24,16 +20,13 @@ jobs:
|
|||||||
name: Nextcloud
|
name: Nextcloud
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Set up php
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@2.27.1 # v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: 8.1
|
php-version: 7.4
|
||||||
coverage: none
|
coverage: none
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: composer i
|
run: composer i
|
||||||
|
|||||||
40
.github/workflows/update-nextcloud-ocp.yml
vendored
40
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -17,60 +17,42 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ["main", "master", "stable27", "stable26", "stable25"]
|
branches: ["master", "stable25", "stable24", "stable23"]
|
||||||
|
|
||||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4 # v3.5.2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
- name: Set up php8.1
|
- name: Set up php7.4
|
||||||
uses: shivammathur/setup-php@2.27.1 # v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: 8.1
|
php-version: 7.4
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
|
||||||
coverage: none
|
coverage: none
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Composer install
|
- name: Composer install
|
||||||
run: composer install
|
run: composer install
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
- name: Composer update nextcloud/ocp
|
||||||
if: matrix.branches != 'main'
|
|
||||||
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
|
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
- name: Reset checkout dirs
|
||||||
if: matrix.branches == 'main'
|
|
||||||
run: composer require --dev nextcloud/ocp:dev-master
|
|
||||||
|
|
||||||
- name: Reset checkout 3rdparty
|
|
||||||
run: |
|
run: |
|
||||||
git clean -f 3rdparty
|
git clean -f 3rdparty
|
||||||
git checkout 3rdparty
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Reset checkout vendor
|
|
||||||
run: |
|
|
||||||
git clean -f vendor
|
git clean -f vendor
|
||||||
git checkout vendor
|
git checkout 3rdparty vendor
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Reset checkout vendor-bin
|
|
||||||
run: |
|
|
||||||
git clean -f vendor-bin
|
|
||||||
git checkout vendor-bin
|
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v3
|
uses: peter-evans/create-pull-request@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
|
commit-message: Update psalm baseline
|
||||||
committer: GitHub <noreply@github.com>
|
committer: GitHub <noreply@github.com>
|
||||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||||
signoff: true
|
signoff: true
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,11 +3,9 @@ js/
|
|||||||
build/
|
build/
|
||||||
css/style.css
|
css/style.css
|
||||||
css/vendor.css
|
css/vendor.css
|
||||||
cypress/videos/
|
|
||||||
tests/integration/vendor/
|
tests/integration/vendor/
|
||||||
tests/integration/composer.lock
|
tests/integration/composer.lock
|
||||||
tests/.phpunit.result.cache
|
tests/.phpunit.result.cache
|
||||||
vendor/
|
vendor/
|
||||||
.php_cs.cache
|
.php_cs.cache
|
||||||
\.idea/
|
\.idea/
|
||||||
settings.json
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
lang_map = hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi
|
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
|
||||||
|
|
||||||
[o:nextcloud:p:nextcloud:r:deck]
|
[o:nextcloud:p:nextcloud:r:deck]
|
||||||
file_filter = translationfiles/<lang>/deck.po
|
file_filter = translationfiles/<lang>/deck.po
|
||||||
|
|||||||
258
CHANGELOG.md
258
CHANGELOG.md
@@ -1,226 +1,80 @@
|
|||||||
# 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.12.0
|
## 1.8.8
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Added ability to mark a card as done @TehThanos [#4137](https://github.com/nextcloud/deck/pull/4137)
|
|
||||||
- Card Cover Images @jszeibert [#5035](https://github.com/nextcloud/deck/pull/5035)
|
|
||||||
- Upcoming/Today/Tomorrow dashboard widgets @BKapelari [#2658](https://github.com/nextcloud/deck/pull/2658)
|
|
||||||
- Enabled advanced fields option on tag color picker @faab007nl [#4362](https://github.com/nextcloud/deck/pull/4362)
|
|
||||||
- Remember last board, list for new card dialog @luka-nextcloud [#5046](https://github.com/nextcloud/deck/pull/5046)
|
|
||||||
- Add support for bidirectional text @jamazi [#5258](https://github.com/nextcloud/deck/pull/5258)
|
|
||||||
- Card layout polishing @juliushaertl [#5264](https://github.com/nextcloud/deck/pull/5264)
|
|
||||||
- feat: Move to contenteditable for inline title editing @juliushaertl [#5282](https://github.com/nextcloud/deck/pull/5282)
|
|
||||||
- scroll board by dragging @shoetten [#5293](https://github.com/nextcloud/deck/pull/5293)
|
|
||||||
- Keyboard shortcuts [#5358](https://github.com/nextcloud/deck/pull/5358)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: allow null label colors in trello json importer [#5355](https://github.com/nextcloud/deck/pull/5355)
|
- fix: Pass user id along to properly check permissions in background jobs @backportbot[bot] [#5595](https://github.com/nextcloud/deck/pull/5595)
|
||||||
- fix: Get proper rich object for card actions [#5352](https://github.com/nextcloud/deck/pull/5352)
|
|
||||||
- fix: Use text content as result for comments @juliushaertl [#5294](https://github.com/nextcloud/deck/pull/5294)
|
|
||||||
- fix: Bring back due date indicator to compact mode @juliushaertl [#5292](https://github.com/nextcloud/deck/pull/5292)
|
|
||||||
- Fix small issues around delete/undo @juliushaertl [#5296](https://github.com/nextcloud/deck/pull/5296)
|
|
||||||
- fix(controls): use primary when filter is active @fitrahfm [#5299](https://github.com/nextcloud/deck/pull/5299)
|
|
||||||
- fix: Properly get done state for dav @juliushaertl [#5287](https://github.com/nextcloud/deck/pull/5287)
|
|
||||||
- Fix upcoming cards and label input @juliushaertl [#5290](https://github.com/nextcloud/deck/pull/5290)
|
|
||||||
- fix: Properly handle adding new tags through multiselect @juliushaertl [#5285](https://github.com/nextcloud/deck/pull/5285)
|
|
||||||
- fix: Avoid throwing errors if no token provided on close @juliushaertl [#5284](https://github.com/nextcloud/deck/pull/5284)
|
|
||||||
- fix: Expose card actions in the card menu (fix #3180) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Use full card menu everywhere (fix #3993) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Detect end of the activity responses (fix #3395) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Add title with absolute date time to activity (fix #4508, fix #2122) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Disable dragging archived cards (fix #3271) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Hide unavailable card menu entries for archived card view [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Use localCompare to sort labels (fix #2736) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: More fitting click target for title editing [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Always load proper dashboard js (fixes a log error) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Set fixed height for card modal (fix #4296) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Make sure to always update card description when navigating away (fix #5254 #2705) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- perf: Already pass board list as initial state @juliushaertl [#5281](https://github.com/nextcloud/deck/pull/5281)
|
|
||||||
- Deck card comment notification label improvement @Jerome-Herbinet [#4748](https://github.com/nextcloud/deck/pull/4748)
|
|
||||||
- update smart picker links @luka-nextcloud [#5047](https://github.com/nextcloud/deck/pull/5047)
|
|
||||||
- feat: Enhance dark mode @juliushaertl [#5045](https://github.com/nextcloud/deck/pull/5045)
|
|
||||||
- fix: export doesn't handle lists with no cards @magikmw [#5096](https://github.com/nextcloud/deck/pull/5096)
|
|
||||||
- add attributes aria-label= and title= to Filters & View Modes buttons @privatemaker [#5133](https://github.com/nextcloud/deck/pull/5133)
|
|
||||||
- fix: Check both card reference url patterns @juliushaertl [#5262](https://github.com/nextcloud/deck/pull/5262)
|
|
||||||
- fix: Avoid too large index on postgres as indexing just the last_editor column is enough @juliushaertl [#5260](https://github.com/nextcloud/deck/pull/5260)
|
|
||||||
- feat: error msg on CreateNewCardCustomPicker & only show available bo… @luka-nextcloud [#5029](https://github.com/nextcloud/deck/pull/5029)
|
|
||||||
- test: add cypress tests for create new deck card @luka-nextcloud [#5025](https://github.com/nextcloud/deck/pull/5025)
|
|
||||||
- Remove duplicate button @solracsf [#4850](https://github.com/nextcloud/deck/pull/4850)
|
|
||||||
- [stable27] fix cypress for new file picker [#5088](https://github.com/nextcloud/deck/pull/5088)
|
|
||||||
- Replace "Timeline" wording with "Activity" in order to be consistent with equivalent contexts throughout Nextcloud @Jerome-Herbinet [#5164](https://github.com/nextcloud/deck/pull/5164)
|
|
||||||
- Board creation limitation : More understandable wordings @Jerome-Herbinet [#5168](https://github.com/nextcloud/deck/pull/5168)
|
|
||||||
- ci(cypress): Fix file picker selector @juliushaertl [#5212](https://github.com/nextcloud/deck/pull/5212)
|
|
||||||
- Switch to native date picker @juliushaertl [#4668](https://github.com/nextcloud/deck/pull/4668)
|
|
||||||
- fixes minor spelling error @FundreasFrohsinn [#5216](https://github.com/nextcloud/deck/pull/5216)
|
|
||||||
- feat(card): tooltip for comment timestamp @fitrahfm [#5253](https://github.com/nextcloud/deck/pull/5253)
|
|
||||||
|
|
||||||
## 1.12.0-beta.5
|
## 1.8.7
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Keyboard shortcuts [#5358](https://github.com/nextcloud/deck/pull/5358)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: allow null label colors in trello json importer [#5355](https://github.com/nextcloud/deck/pull/5355)
|
- Fix small issues around delete/undo @juliushaertl [#5440](https://github.com/nextcloud/deck/pull/5440)
|
||||||
- fix: Get proper rich object for card actions [#5352](https://github.com/nextcloud/deck/pull/5352)
|
- Fix deleted card/board issues @juliushaertl [#5444](https://github.com/nextcloud/deck/pull/5444)
|
||||||
|
|
||||||
### Dependencies
|
## 1.8.6
|
||||||
|
|
||||||
- Update nextcloud/ocp dependency @nextcloud-command [#5343](https://github.com/nextcloud/deck/pull/5343)
|
|
||||||
- Chore(deps): Bump @babel/runtime from 7.23.4 to 7.23.5 @dependabot[bot] [#5338](https://github.com/nextcloud/deck/pull/5338)
|
|
||||||
|
|
||||||
|
|
||||||
## 1.12.0-beta.4
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- scroll board by dragging @shoetten [#5293](https://github.com/nextcloud/deck/pull/5293)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: Use text content as result for comments @juliushaertl [#5294](https://github.com/nextcloud/deck/pull/5294)
|
- Prevent tag itself being edit button if user lacks permissions [#4767](https://github.com/nextcloud/deck/pull/4767)
|
||||||
- fix: Bring back due date indicator to compact mode @juliushaertl [#5292](https://github.com/nextcloud/deck/pull/5292)
|
- Fix(occ): set user id for permission sevice from board service [#4815](https://github.com/nextcloud/deck/pull/4815)
|
||||||
- Fix small issues around delete/undo @juliushaertl [#5296](https://github.com/nextcloud/deck/pull/5296)
|
- fix(notification): Prevent null in parameters [#4911](https://github.com/nextcloud/deck/pull/4911)
|
||||||
- fix(controls): use primary when filter is active @fitrahfm [#5299](https://github.com/nextcloud/deck/pull/5299)
|
- fix: Allow dynamic autoloading for classes added during upgrade [#4806](https://github.com/nextcloud/deck/pull/4806)
|
||||||
|
- Ensure `$boardId` is an integer [#4775](https://github.com/nextcloud/deck/pull/4775)
|
||||||
|
- fix: crash when leaving out system parameter [#4833](https://github.com/nextcloud/deck/pull/4833)
|
||||||
|
- Fix CI @juliushaertl [#4912](https://github.com/nextcloud/deck/pull/4912)
|
||||||
|
- fix: Split query to fetch board ids to avoid slow query join @juliushaertl [#4963](https://github.com/nextcloud/deck/pull/4963)
|
||||||
|
- Dependency updates
|
||||||
|
|
||||||
## 1.12.0-beta.3
|
## 1.8.5
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- feat: Move to contenteditable for inline title editing @juliushaertl [#5282](https://github.com/nextcloud/deck/pull/5282)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: Properly get done state for dav @juliushaertl [#5287](https://github.com/nextcloud/deck/pull/5287)
|
- fix: Properly overwrite z-index of datepicker above modal [#4667](https://github.com/nextcloud/deck/pull/4667)
|
||||||
- Fix upcoming cards and label input @juliushaertl [#5290](https://github.com/nextcloud/deck/pull/5290)
|
|
||||||
|
|
||||||
## 1.12.0-beta.2
|
|
||||||
|
|
||||||
### Added
|
## 1.8.4
|
||||||
|
|
||||||
- Card layout polishing @juliushaertl [#5264](https://github.com/nextcloud/deck/pull/5264)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- fix: Properly handle adding new tags through multiselect @juliushaertl [#5285](https://github.com/nextcloud/deck/pull/5285)
|
- fix: Use passed userid when getting attachment folder [#4540](https://github.com/nextcloud/deck/pull/4540)
|
||||||
- fix: Avoid throwing errors if no token provided on close @juliushaertl [#5284](https://github.com/nextcloud/deck/pull/5284)
|
- fix: Adapt NcEmptyContent usages to new slots [#4563](https://github.com/nextcloud/deck/pull/4563)
|
||||||
- fix: Expose card actions in the card menu (fix #3180) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Gracefully handle not found card for a share [#4568](https://github.com/nextcloud/deck/pull/4568)
|
||||||
- fix: Use full card menu everywhere (fix #3993) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- allow user to toggle visibility of the calendar for a deck board [#4626](https://github.com/nextcloud/deck/pull/4626)
|
||||||
- fix: Detect end of the activity responses (fix #3395) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- fix: Append datetime picker to body to avoid cut off [#4645](https://github.com/nextcloud/deck/pull/4645)
|
||||||
- fix: Add title with absolute date time to activity (fix #4508, fix #2122) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Fix : Overlapping expiry dates on tags [#4536](https://github.com/nextcloud/deck/pull/4536)
|
||||||
- fix: Disable dragging archived cards (fix #3271) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Better display of card dates (creation and change dates) [#4620](https://github.com/nextcloud/deck/pull/4620)
|
||||||
- fix: Hide unavailable card menu entries for archived card view [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Dependency updates
|
||||||
- fix: Use localCompare to sort labels (fix #2736) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: More fitting click target for title editing [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Always load proper dashboard js (fixes a log error) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Set fixed height for card modal (fix #4296) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- fix: Make sure to always update card description when navigating away (fix #5254 #2705) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
|
||||||
- perf: Already pass board list as initial state @juliushaertl [#5281](https://github.com/nextcloud/deck/pull/5281)
|
|
||||||
|
|
||||||
### Dependencies
|
## 1.8.3
|
||||||
|
|
||||||
- Fix npm audit @nextcloud-command [#5277](https://github.com/nextcloud/deck/pull/5277)
|
|
||||||
- Update nextcloud/ocp dependency @nextcloud-command [#5275](https://github.com/nextcloud/deck/pull/5275)
|
|
||||||
- Chore(deps): Bump @nextcloud/dialogs from 4.2.1 to 4.2.2 @dependabot[bot] [#5266](https://github.com/nextcloud/deck/pull/5266)
|
|
||||||
- Chore(deps-dev): Bump cypress from 13.4.0 to 13.5.0 @dependabot[bot] [#5267](https://github.com/nextcloud/deck/pull/5267)
|
|
||||||
- Chore(deps): Bump shivammathur/setup-php from 2.27.0 to 2.27.1 @dependabot[bot] [#5268](https://github.com/nextcloud/deck/pull/5268)
|
|
||||||
|
|
||||||
|
|
||||||
## 1.12.0-beta.1
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Added ability to mark a card as done @TehThanos [#4137](https://github.com/nextcloud/deck/pull/4137)
|
|
||||||
- Card Cover Images @jszeibert [#5035](https://github.com/nextcloud/deck/pull/5035)
|
|
||||||
- Upcoming/Today/Tomorrow dashboard widgets @BKapelari [#2658](https://github.com/nextcloud/deck/pull/2658)
|
|
||||||
- Enabled advanced fields option on tag color picker @faab007nl [#4362](https://github.com/nextcloud/deck/pull/4362)
|
|
||||||
- Remember last board, list for new card dialog @luka-nextcloud [#5046](https://github.com/nextcloud/deck/pull/5046)
|
|
||||||
- Add support for bidirectional text @jamazi [#5258](https://github.com/nextcloud/deck/pull/5258)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Deck card comment notification label improvement @Jerome-Herbinet [#4748](https://github.com/nextcloud/deck/pull/4748)
|
- Fix component renaming so that acl works on shares again [#4328](https://github.com/nextcloud/deck/pull/4328)
|
||||||
- update smart picker links @luka-nextcloud [#5047](https://github.com/nextcloud/deck/pull/5047)
|
- Permanently delete deck cards marked as deleted after 5 min in a cron job [#4301](https://github.com/nextcloud/deck/pull/4301)
|
||||||
- feat: Enhance dark mode @juliushaertl [#5045](https://github.com/nextcloud/deck/pull/5045)
|
|
||||||
- fix: export doesn't handle lists with no cards @magikmw [#5096](https://github.com/nextcloud/deck/pull/5096)
|
|
||||||
- add attributes aria-label= and title= to Filters & View Modes buttons @privatemaker [#5133](https://github.com/nextcloud/deck/pull/5133)
|
|
||||||
- fix: Check both card reference url patterns @juliushaertl [#5262](https://github.com/nextcloud/deck/pull/5262)
|
|
||||||
- fix: Avoid too large index on postgres as indexing just the last_editor column is enough @juliushaertl [#5260](https://github.com/nextcloud/deck/pull/5260)
|
|
||||||
- feat: error msg on CreateNewCardCustomPicker & only show available bo… @luka-nextcloud [#5029](https://github.com/nextcloud/deck/pull/5029)
|
|
||||||
- test: add cypress tests for create new deck card @luka-nextcloud [#5025](https://github.com/nextcloud/deck/pull/5025)
|
|
||||||
- Remove duplicate button @solracsf [#4850](https://github.com/nextcloud/deck/pull/4850)
|
|
||||||
- [stable27] fix cypress for new file picker [#5088](https://github.com/nextcloud/deck/pull/5088)
|
|
||||||
- Replace "Timeline" wording with "Activity" in order to be consistent with equivalent contexts throughout Nextcloud @Jerome-Herbinet [#5164](https://github.com/nextcloud/deck/pull/5164)
|
|
||||||
- Board creation limitation : More understandable wordings @Jerome-Herbinet [#5168](https://github.com/nextcloud/deck/pull/5168)
|
|
||||||
- ci(cypress): Fix file picker selector @juliushaertl [#5212](https://github.com/nextcloud/deck/pull/5212)
|
|
||||||
- Switch to native date picker @juliushaertl [#4668](https://github.com/nextcloud/deck/pull/4668)
|
|
||||||
- fixes minor spelling error @FundreasFrohsinn [#5216](https://github.com/nextcloud/deck/pull/5216)
|
|
||||||
- feat(card): tooltip for comment timestamp @fitrahfm [#5253](https://github.com/nextcloud/deck/pull/5253)
|
|
||||||
|
|
||||||
## 1.10.0-beta.1
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Compatibility with Nextcloud 27
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- fix(references): Mute NoPermissionException as it is expected to happen for references @juliushaertl [#4514](https://github.com/nextcloud/deck/pull/4514)
|
|
||||||
- fix(cards): Fix card sizing by limiting too wide style rules @juliushaertl [#4512](https://github.com/nextcloud/deck/pull/4512)
|
|
||||||
- fix: Adapt NcEmptyContent usages to new slots @juliushaertl [#4561](https://github.com/nextcloud/deck/pull/4561)
|
|
||||||
- Gracefully handle not found card for a share @mejo- [#4566](https://github.com/nextcloud/deck/pull/4566)
|
|
||||||
- Prevent tag itself being edit button if user lacks permissions @joshtrichards [#4574](https://github.com/nextcloud/deck/pull/4574)
|
|
||||||
- chore: Remove unused @nextcloud/vue-dashboard @juliushaertl [#4586](https://github.com/nextcloud/deck/pull/4586)
|
|
||||||
- Update Description.vue: Fixes the issue of hidden text by menu bar @pschopen [#4617](https://github.com/nextcloud/deck/pull/4617)
|
|
||||||
- allow user to toggle visibility of the calendar for a deck board @schiessle [#4622](https://github.com/nextcloud/deck/pull/4622)
|
|
||||||
- fix: Append datetime picker to body to avoid cut off @juliushaertl [#4643](https://github.com/nextcloud/deck/pull/4643)
|
|
||||||
- fix: Bring back overdue column by removing faulty condition @juliushaertl [#4660](https://github.com/nextcloud/deck/pull/4660)
|
|
||||||
- fix(sessions): Do not send close request without token @juliushaertl [#4510](https://github.com/nextcloud/deck/pull/4510)
|
|
||||||
- tests(integration): Add test for multiple board shares to the same user @juliushaertl [#4494](https://github.com/nextcloud/deck/pull/4494)
|
|
||||||
- fix(API): Fix board API details parameter to work as expected @nickvergessen [#4518](https://github.com/nextcloud/deck/pull/4518)
|
|
||||||
- Fix : Overlapping expiry dates on tags @Jerome-Herbinet [#4535](https://github.com/nextcloud/deck/pull/4535)
|
|
||||||
- Fix consistency of a "Create card" wording with its equivalent for Notes ("New card") @Jerome-Herbinet [#4534](https://github.com/nextcloud/deck/pull/4534)
|
|
||||||
- tests(integration): Add integration tests for due dates @juliushaertl [#4489](https://github.com/nextcloud/deck/pull/4489)
|
|
||||||
- Better display of card dates (creation and change dates) @Jerome-Herbinet [#4604](https://github.com/nextcloud/deck/pull/4604)
|
|
||||||
- Refactors lib\Activity\DeckProvider.php to improve code readability. @fsamapoor [#4648](https://github.com/nextcloud/deck/pull/4648)
|
|
||||||
- Converts 'strpos()' calls to improve code readability. @fsamapoor [#4657](https://github.com/nextcloud/deck/pull/4657)
|
|
||||||
|
|
||||||
|
|
||||||
## 1.9.0-beta.1
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Export Board @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
|
|
||||||
- basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
|
|
||||||
- feat(Description): Use text as editor if available @juliushaertl [#4399](https://github.com/nextcloud/deck/pull/4399)
|
|
||||||
- Improve reference provider and add reference widgets @julien-nc [#4422](https://github.com/nextcloud/deck/pull/4422)
|
|
||||||
- live updates 🎉 @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
|
|
||||||
- Tag creation from card view @juliushaertl [#4344](https://github.com/nextcloud/deck/pull/4344)
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fix component renaming so that acl works on shares again @small1 [#4315](https://github.com/nextcloud/deck/pull/4315)
|
|
||||||
- fix(Sidebar): Only close sidebar on v-click-outside for specific targets @juliushaertl [#4350](https://github.com/nextcloud/deck/pull/4350)
|
|
||||||
- add basic e2e tests for stack title @shoetten [#4206](https://github.com/nextcloud/deck/pull/4206)
|
|
||||||
- App metadata: add links to user and developer documentation @p-bo [#4356](https://github.com/nextcloud/deck/pull/4356)
|
|
||||||
- Update signature of Entity::markFieldUpdated @nickvergessen [#4398](https://github.com/nextcloud/deck/pull/4398)
|
|
||||||
- Remove updated nightly information @xf- [#4419](https://github.com/nextcloud/deck/pull/4419)
|
|
||||||
- perf: Register notifier and resource listener lazy @juliushaertl [#4439](https://github.com/nextcloud/deck/pull/4439)
|
|
||||||
- perf: Lazy load dashboard components @juliushaertl [#4440](https://github.com/nextcloud/deck/pull/4440)
|
|
||||||
- Optimise upcomming overview creation @Raudius [#3793](https://github.com/nextcloud/deck/pull/3793)
|
|
||||||
- Performance boost @juliushaertl [#4452](https://github.com/nextcloud/deck/pull/4452)
|
|
||||||
|
|
||||||
### Other
|
|
||||||
- Dependency updates
|
- Dependency updates
|
||||||
|
|
||||||
|
|
||||||
## 1.8.0-beta.1
|
## 1.8.2
|
||||||
### Enhancements
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- minor style fixes [#4201](https://github.com/nextcloud/deck/pull/4201)
|
||||||
|
- feat: add validators to check values in services [#4174](https://github.com/nextcloud/deck/pull/4174)
|
||||||
|
- Add integration test for attachment handling on cards [#4179](https://github.com/nextcloud/deck/pull/4179)
|
||||||
|
- Add missing userId property [#4198](https://github.com/nextcloud/deck/pull/4198)
|
||||||
|
|
||||||
|
## 1.8.1
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix Duedate activity @nickvergessen [#4155](https://github.com/nextcloud/deck/pull/4155)
|
||||||
|
|
||||||
|
## 1.8.0
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
- Nextcloud 25 compatibility
|
- Nextcloud 25 compatibility
|
||||||
- Performance improvements
|
- Performance improvements
|
||||||
@@ -232,10 +86,26 @@ All notable changes to this project will be documented in this file.
|
|||||||
- Improve filter popover accessibility @juliushaertl [#3820](https://github.com/nextcloud/deck/pull/3820)
|
- Improve filter popover accessibility @juliushaertl [#3820](https://github.com/nextcloud/deck/pull/3820)
|
||||||
- Set ids to skip to content/navigation @juliushaertl [#3924](https://github.com/nextcloud/deck/pull/3924)
|
- Set ids to skip to content/navigation @juliushaertl [#3924](https://github.com/nextcloud/deck/pull/3924)
|
||||||
- Invert icons properly in dark mode @juliushaertl [#3939](https://github.com/nextcloud/deck/pull/3939)
|
- Invert icons properly in dark mode @juliushaertl [#3939](https://github.com/nextcloud/deck/pull/3939)
|
||||||
- Bump dependencies
|
- Implement card reference widget @eneiluj [#4031](https://github.com/nextcloud/deck/pull/4031)
|
||||||
|
- Implement new dashboard widget interfaces @eneiluj [#4033](https://github.com/nextcloud/deck/pull/4033)
|
||||||
|
- Add related resources panel to board sharing tab sidebar @Pytal [#4000](https://github.com/nextcloud/deck/pull/4000)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fix sorting stacks [#4116](https://github.com/nextcloud/deck/pull/4116)
|
||||||
|
- Fix issue with duedate format [#4140](https://github.com/nextcloud/deck/pull/4140)
|
||||||
|
- Fix missing icon for activity rendering [#4090](https://github.com/nextcloud/deck/pull/4090)
|
||||||
|
- disables autocomplete on card creation [#4142](https://github.com/nextcloud/deck/pull/4142)
|
||||||
|
- Set event link also for notifications that get emitted from activities [#4117](https://github.com/nextcloud/deck/pull/4117)
|
||||||
|
- Fix attachment creator name: show display name @eneiluj [#4036](https://github.com/nextcloud/deck/pull/4036)
|
||||||
|
- Fix reference provider when caching @eneiluj [#4056](https://github.com/nextcloud/deck/pull/4056)
|
||||||
|
- Use global import for nextcloud-vue [#4072](https://github.com/nextcloud/deck/pull/4072)
|
||||||
|
- Disable Create card button while no stack is chosen @icewind1991 [#4014](https://github.com/nextcloud/deck/pull/4014)
|
||||||
|
- Adjust testing matrix for Nextcloud 25 on stable25 @nickvergessen [#4068](https://github.com/nextcloud/deck/pull/4068)
|
||||||
|
- Fix Card menu not displaying when description is not set @marcelklehr [#4105](https://github.com/nextcloud/deck/pull/4105)
|
||||||
|
- Reference widget adjustments for Text [#4075](https://github.com/nextcloud/deck/pull/4075)
|
||||||
|
- use OCP\Collaboration\Reference\Reference [#4078](https://github.com/nextcloud/deck/pull/4078)
|
||||||
|
- Cache user membership for circles [#4141](https://github.com/nextcloud/deck/pull/4141)
|
||||||
- set last modified when the card was found. Fixes #3763 @ylebre [#3796](https://github.com/nextcloud/deck/pull/3796)
|
- set last modified when the card was found. Fixes #3763 @ylebre [#3796](https://github.com/nextcloud/deck/pull/3796)
|
||||||
- Increase file count after sharing @luka-nextcloud [#3682](https://github.com/nextcloud/deck/pull/3682)
|
- Increase file count after sharing @luka-nextcloud [#3682](https://github.com/nextcloud/deck/pull/3682)
|
||||||
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 @Ben-Ro [#3811](https://github.com/nextcloud/deck/pull/3811)
|
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 @Ben-Ro [#3811](https://github.com/nextcloud/deck/pull/3811)
|
||||||
|
|||||||
10
Makefile
10
Makefile
@@ -30,16 +30,6 @@ build: clean-dist install-deps build-js
|
|||||||
|
|
||||||
release: clean-dist install-deps-nodev build-js
|
release: clean-dist install-deps-nodev build-js
|
||||||
|
|
||||||
lint: lint-js lint-php
|
|
||||||
|
|
||||||
lint-js:
|
|
||||||
npm run lint
|
|
||||||
npm run stylelint
|
|
||||||
|
|
||||||
lint-php:
|
|
||||||
composer run lint 1>/dev/null
|
|
||||||
composer run cs:check
|
|
||||||
|
|
||||||
build-js: install-deps-js
|
build-js: install-deps-js
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
|||||||
83
README.md
83
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Deck
|
# Deck
|
||||||
|
|
||||||
[](https://travis-ci.org/nextcloud/deck) [](https://codecov.io/github/nextcloud/deck) [](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&utm_medium=referral&utm_content=nextcloud/deck&utm_campaign=Badge_Grade) [](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=main) [](https://webchat.freenode.net/?channels=nextcloud-deck)
|
[](https://travis-ci.org/nextcloud/deck) [](https://codecov.io/github/nextcloud/deck) [](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&utm_medium=referral&utm_content=nextcloud/deck&utm_campaign=Badge_Grade) [](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=master) [](https://webchat.freenode.net/?channels=nextcloud-deck)
|
||||||
|
|
||||||
|
|
||||||
Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
|
Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
|
||||||
@@ -20,18 +20,37 @@ Deck is a kanban style organization tool aimed at personal planning and project
|
|||||||
### Mobile apps
|
### Mobile apps
|
||||||
|
|
||||||
- [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)
|
||||||
- [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
|
||||||
|
|
||||||
- [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello
|
- [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello
|
||||||
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
|
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
|
||||||
- [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab
|
- [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab
|
||||||
- [QOwnNotes](https://github.com/pbek/QOwnNotes) - Quickly creates cards and links to them in Markdown notes
|
|
||||||
|
|
||||||
## Installation/Update
|
## Installation/Update
|
||||||
|
|
||||||
The app can be installed through the app store within Nextcloud. You can also download the latest release from the [release page](https://github.com/nextcloud-releases/deck/releases).
|
This app is supposed to work on the two latest Nextcloud versions.
|
||||||
|
|
||||||
|
### Install latest release
|
||||||
|
|
||||||
|
You can download and install the latest release from the [Nextcloud app store](https://apps.nextcloud.com/apps/deck)
|
||||||
|
|
||||||
|
### Install from git
|
||||||
|
|
||||||
|
If you want to run the latest development version from git source, you need to clone the repo to your apps folder:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/nextcloud/deck.git
|
||||||
|
cd deck
|
||||||
|
make install-deps
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
Please make sure you have installed the following dependencies: `make, which, tar, npm, curl, composer`
|
||||||
|
|
||||||
|
### Install the nightly builds
|
||||||
|
|
||||||
|
Instead of setting everything up manually, you can just [download the nightly build](https://github.com/nextcloud/deck/releases/tag/nightly) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
|
||||||
|
|
||||||
## Performance limitations
|
## Performance limitations
|
||||||
|
|
||||||
@@ -46,54 +65,36 @@ Improvements on Nextcloud server and Deck itself will improve the situation.
|
|||||||
|
|
||||||
## Developing
|
## Developing
|
||||||
|
|
||||||
There are multiple ways to develop on Deck. As you will need a Nextcloud server running, the individual options are described below.
|
### PHP
|
||||||
|
|
||||||
### General build instructions
|
Nothing to prepare, just dig into the code.
|
||||||
|
|
||||||
General build instructions for the app itself are the same for all options.
|
### JavaScript
|
||||||
|
|
||||||
To build you will need to have [Node.js](https://nodejs.org/en/) and [Composer](https://getcomposer.org/) installed.
|
This requires at least Node 14 and npm 7 to be installed.
|
||||||
|
|
||||||
- Install PHP dependencies: `composer install --no-dev`
|
Deck requires running a `make build-js` to install npm dependencies and build the JavaScript code using webpack. While developing you can also use `make watch` to rebuild everytime the code changes.
|
||||||
- Install JS dependencies: `npm ci`
|
|
||||||
- Build JavaScript for the frontend
|
|
||||||
- Development build `npm run dev`
|
|
||||||
- Watch for changes `npm run watch`
|
|
||||||
- Production build `npm run build`
|
|
||||||
|
|
||||||
### Faster frontend developing with HMR
|
#### Hot reloading
|
||||||
|
|
||||||
You can enable HMR (Hot module replacement) to avoid page reloads when working on the frontend:
|
Enable debug mode in your config.php `'debug' => true,`
|
||||||
|
|
||||||
1. ☑️ Install and enable [`hmr_enabler` app](https://github.com/nextcloud/hmr_enabler)
|
|
||||||
2. 🏁 Run `npm run serve`
|
|
||||||
3. 🌍 Open the normal Nextcloud server URL (not the URL given by above command)
|
|
||||||
|
|
||||||
### GitHub Codespaces / VS Code devcontainer
|
|
||||||
|
|
||||||
- Open code spaces or the repository in VS Code to start the dev container
|
|
||||||
- The container will automatically install all dependencies and build the app
|
|
||||||
- Nextcloud will be installed from the master development branch and be available on a port exposed by the container
|
|
||||||
|
|
||||||
### Docker: Simple app development container
|
|
||||||
|
|
||||||
- Fork the app
|
|
||||||
- Clone the repository: `git clone https://github.com/nextcloud/deck.git`
|
|
||||||
- Go into deck directory: `cd deck`
|
|
||||||
- Build the app as described in the general build instructions
|
|
||||||
- Run Nextcloud development container and mount the apps source code into it
|
|
||||||
|
|
||||||
|
Without SSL:
|
||||||
```
|
```
|
||||||
docker run --rm \
|
npx webpack-dev-server --config webpack.hot.js \
|
||||||
-p 8080:80 \
|
--public localhost:3000 \
|
||||||
-v ~/path/to/app:/var/www/html/apps-extra/app \
|
--output-public-path 'http://localhost:3000/js/'
|
||||||
ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Full Nextcloud development environment
|
With SSL:
|
||||||
|
```
|
||||||
|
npx webpack-dev-server --config webpack.dev.js --https \
|
||||||
|
--cert ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.crt \
|
||||||
|
--key ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.key \
|
||||||
|
--public nextcloud.local:3000 \
|
||||||
|
--output-public-path 'https://nextcloud.local:3000/js/'
|
||||||
|
```
|
||||||
|
|
||||||
You need to setup a [development environment](https://docs.nextcloud.com/server/latest/developer_manual//getting_started/devenv.html) of the current Nextcloud version. You can also alternatively install & run the [nextcloud docker container](https://github.com/juliushaertl/nextcloud-docker-dev).
|
|
||||||
After the finished installation, you can clone the deck project directly in the `/[nextcloud-docker-dev-dir]/workspace/server/apps/` folder.
|
|
||||||
|
|
||||||
### Running tests
|
### Running tests
|
||||||
You can use the provided Makefile to run all tests by using:
|
You can use the provided Makefile to run all tests by using:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Your report should include:
|
|||||||
- Reproduction steps
|
- Reproduction steps
|
||||||
|
|
||||||
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
|
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
|
||||||
The fix will be applied to the main branch, tested, and packaged in the next security release.
|
The fix will be applied to the master branch, tested, and packaged in the next security release.
|
||||||
The vulnerability will be publicly announced after the release. Finally, your name will be added
|
The vulnerability will be publicly announced after the release. Finally, your name will be added
|
||||||
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud community. Note our
|
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud community. Note our
|
||||||
[threat model](https://nextcloud.com/security/threat-model) to know what is expected behavior.
|
[threat model](https://nextcloud.com/security/threat-model) to know what is expected behavior.
|
||||||
|
|||||||
@@ -16,13 +16,9 @@
|
|||||||
- 🚀 Get your project organized
|
- 🚀 Get your project organized
|
||||||
|
|
||||||
</description>
|
</description>
|
||||||
<version>1.12.0</version>
|
<version>1.8.8</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/>
|
||||||
@@ -38,19 +34,13 @@
|
|||||||
<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="28" max-version="28"/>
|
<nextcloud min-version="25" max-version="25"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<background-jobs>
|
<background-jobs>
|
||||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||||
<job>OCA\Deck\Cron\ScheduledNotifications</job>
|
<job>OCA\Deck\Cron\ScheduledNotifications</job>
|
||||||
<job>OCA\Deck\Cron\CardDescriptionActivity</job>
|
<job>OCA\Deck\Cron\CardDescriptionActivity</job>
|
||||||
<job>OCA\Deck\Cron\SessionsCleanup</job>
|
|
||||||
</background-jobs>
|
</background-jobs>
|
||||||
<repair-steps>
|
|
||||||
<live-migration>
|
|
||||||
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
|
|
||||||
</live-migration>
|
|
||||||
</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>
|
||||||
@@ -58,9 +48,9 @@
|
|||||||
</commands>
|
</commands>
|
||||||
<activity>
|
<activity>
|
||||||
<settings>
|
<settings>
|
||||||
<setting>OCA\Deck\Activity\SettingChanges</setting>
|
<setting>OCA\Deck\Activity\Setting</setting>
|
||||||
<setting>OCA\Deck\Activity\SettingDescription</setting>
|
|
||||||
<setting>OCA\Deck\Activity\SettingComment</setting>
|
<setting>OCA\Deck\Activity\SettingComment</setting>
|
||||||
|
<setting>OCA\Deck\Activity\DescriptionSetting</setting>
|
||||||
</settings>
|
</settings>
|
||||||
<filters>
|
<filters>
|
||||||
<filter>OCA\Deck\Activity\Filter</filter>
|
<filter>OCA\Deck\Activity\Filter</filter>
|
||||||
|
|||||||
@@ -25,11 +25,6 @@
|
|||||||
return [
|
return [
|
||||||
'routes' => [
|
'routes' => [
|
||||||
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
||||||
['name' => 'page#indexList', 'url' => '/board', 'verb' => 'GET'],
|
|
||||||
['name' => 'page#indexBoard', 'url' => '/board/{boardId}', 'verb' => 'GET'],
|
|
||||||
['name' => 'page#indexBoardDetails', 'url' => '/board/{boardId}/details', 'verb' => 'GET'],
|
|
||||||
['name' => 'page#indexCard', 'url' => '/board/{boardId}/card/{cardId}', 'verb' => 'GET'],
|
|
||||||
|
|
||||||
['name' => 'page#redirectToCard', 'url' => '/card/{cardId}', 'verb' => 'GET'],
|
['name' => 'page#redirectToCard', 'url' => '/card/{cardId}', 'verb' => 'GET'],
|
||||||
|
|
||||||
// boards
|
// boards
|
||||||
@@ -45,7 +40,6 @@ return [
|
|||||||
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
|
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
|
||||||
['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'],
|
|
||||||
|
|
||||||
// stacks
|
// stacks
|
||||||
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
|
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
|
||||||
@@ -66,8 +60,6 @@ return [
|
|||||||
['name' => 'card#reorder', 'url' => '/cards/{cardId}/reorder', 'verb' => 'PUT'],
|
['name' => 'card#reorder', 'url' => '/cards/{cardId}/reorder', 'verb' => 'PUT'],
|
||||||
['name' => 'card#archive', 'url' => '/cards/{cardId}/archive', 'verb' => 'PUT'],
|
['name' => 'card#archive', 'url' => '/cards/{cardId}/archive', 'verb' => 'PUT'],
|
||||||
['name' => 'card#unarchive', 'url' => '/cards/{cardId}/unarchive', 'verb' => 'PUT'],
|
['name' => 'card#unarchive', 'url' => '/cards/{cardId}/unarchive', 'verb' => 'PUT'],
|
||||||
['name' => 'card#done', 'url' => '/cards/{cardId}/done', 'verb' => 'PUT'],
|
|
||||||
['name' => 'card#undone', 'url' => '/cards/{cardId}/undone', 'verb' => 'PUT'],
|
|
||||||
['name' => 'card#assignLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'POST'],
|
['name' => 'card#assignLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'POST'],
|
||||||
['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'],
|
['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'],
|
||||||
['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'],
|
['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'],
|
||||||
@@ -157,10 +149,5 @@ return [
|
|||||||
['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'],
|
||||||
|
|
||||||
// sessions
|
|
||||||
['name' => 'Session#create', 'url' => '/api/v{apiVersion}/session/create', 'verb' => 'PUT'],
|
|
||||||
['name' => 'Session#sync', 'url' => '/api/v{apiVersion}/session/sync', 'verb' => 'POST'],
|
|
||||||
['name' => 'Session#close', 'url' => '/api/v{apiVersion}/session/close', 'verb' => 'POST'],
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -9,14 +9,17 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
|
"cogpowered/finediff": "0.3.*",
|
||||||
"justinrainbow/json-schema": "^5.2"
|
"justinrainbow/json-schema": "^5.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"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.0.0",
|
||||||
"nextcloud/ocp": "dev-stable28",
|
"symfony/event-dispatcher": "^4.0",
|
||||||
"psalm/phar": "^5.13"
|
"vimeo/psalm": "^4.3",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||||
|
"nextcloud/ocp": "dev-stable25"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
@@ -24,22 +27,23 @@
|
|||||||
"composer/package-versions-deprecated": true
|
"composer/package-versions-deprecated": true
|
||||||
},
|
},
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "8.0"
|
"php": "7.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
|
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
|
||||||
"cs:check": "php-cs-fixer fix --dry-run --diff",
|
"cs:check": "php-cs-fixer fix --dry-run --diff",
|
||||||
"cs:fix": "php-cs-fixer fix",
|
"cs:fix": "php-cs-fixer fix",
|
||||||
"psalm": "psalm.phar",
|
"psalm": "psalm",
|
||||||
"psalm:update-baseline": "psalm.phar --update-baseline",
|
"psalm:update-baseline": "psalm --update-baseline",
|
||||||
"psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
|
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
|
||||||
"test": [
|
"test": [
|
||||||
"@test:unit",
|
"@test:unit",
|
||||||
"@test:integration"
|
"@test:integration"
|
||||||
],
|
],
|
||||||
"test:unit": "vendor/bin/phpunit -c tests/phpunit.xml",
|
"test:unit": "phpunit -c tests/phpunit.xml",
|
||||||
"test:integration": "vendor/bin/phpunit -c tests/phpunit.integration.xml && cd tests/integration && ./run.sh"
|
"test:integration": "phpunit -c tests/phpunit.integration.xml",
|
||||||
|
"test:api": "cd tests/integration && ./run.sh"
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
3634
composer.lock
generated
3634
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,17 @@
|
|||||||
const { defineConfig } = require('cypress')
|
const { defineConfig } = require('cypress')
|
||||||
|
|
||||||
module.exports = defineConfig({
|
module.exports = defineConfig({
|
||||||
projectId: '1s7wkc',
|
projectId: '1s7wkc',
|
||||||
viewportWidth: 1280,
|
viewportWidth: 1280,
|
||||||
viewportHeight: 720,
|
viewportHeight: 720,
|
||||||
e2e: {
|
e2e: {
|
||||||
// We've imported your old cypress plugins here.
|
// We've imported your old cypress plugins here.
|
||||||
// You may want to clean this up later by importing these.
|
// You may want to clean this up later by importing these.
|
||||||
setupNodeEvents(on, config) {
|
setupNodeEvents(on, config) {
|
||||||
return require('./cypress/plugins/index.js')(on, config)
|
return require('./cypress/plugins/index.js')(on, config)
|
||||||
},
|
},
|
||||||
baseUrl: 'http://nextcloud.local/index.php',
|
baseUrl: 'http://nextcloud.local/index.php',
|
||||||
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
|
experimentalSessionAndOrigin: true,
|
||||||
},
|
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
extends: [
|
|
||||||
'plugin:cypress/recommended',
|
|
||||||
],
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randHash } from '../utils'
|
||||||
const user = randUser()
|
const randUser = randHash()
|
||||||
const recipient = randUser()
|
|
||||||
|
|
||||||
describe('Board', function() {
|
describe('Board', function() {
|
||||||
|
const password = 'pass123'
|
||||||
|
|
||||||
before(function() {
|
before(function() {
|
||||||
cy.createUser(user)
|
cy.nextcloudCreateUser(randUser, password)
|
||||||
cy.createUser(recipient)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.login(randUser, password)
|
||||||
cy.visit('/apps/deck')
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can create a board', function() {
|
it('Can create a board', function() {
|
||||||
@@ -23,6 +21,7 @@ describe('Board', function() {
|
|||||||
}).as('createBoardRequest')
|
}).as('createBoardRequest')
|
||||||
|
|
||||||
// Click "Add board"
|
// Click "Add board"
|
||||||
|
cy.openLeftSidebar()
|
||||||
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
|
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
|
||||||
.eq(3).find('a').first().click({ force: true })
|
.eq(3).find('a').first().click({ force: true })
|
||||||
|
|
||||||
@@ -39,18 +38,4 @@ describe('Board', function() {
|
|||||||
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
|
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
|
||||||
.contains(board).should('be.visible')
|
.contains(board).should('be.visible')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Shows and hides the navigation', () => {
|
|
||||||
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
|
|
||||||
.contains('Upcoming cards')
|
|
||||||
.should('be.visible')
|
|
||||||
cy.openLeftSidebar()
|
|
||||||
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
|
|
||||||
.contains('Upcoming cards')
|
|
||||||
.should('not.be.visible')
|
|
||||||
cy.openLeftSidebar()
|
|
||||||
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
|
|
||||||
.contains('Upcoming cards')
|
|
||||||
.should('be.visible')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,48 +1,53 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randHash } from '../utils'
|
||||||
import { sampleBoard } from '../utils/sampleBoard'
|
const randUser = randHash()
|
||||||
import moment from '@nextcloud/moment'
|
|
||||||
|
|
||||||
const user = randUser()
|
const testBoardData = {
|
||||||
const boardData = sampleBoard()
|
title: 'MyBoardTest',
|
||||||
|
color: '00ff00',
|
||||||
const auth = {
|
stacks: [
|
||||||
user: user.userId,
|
{
|
||||||
password: user.password,
|
title: 'TestList',
|
||||||
}
|
cards: [
|
||||||
|
{
|
||||||
const useModal = (useModal) => {
|
title: 'Hello world',
|
||||||
return cy.request({
|
},
|
||||||
method: 'POST',
|
],
|
||||||
url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/cardDetailsInModal?format=json`,
|
},
|
||||||
auth,
|
],
|
||||||
body: { value: useModal },
|
|
||||||
}).then((response) => {
|
|
||||||
expect(response.status).to.eq(200)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('Card', function() {
|
describe('Card', function() {
|
||||||
let boardId
|
|
||||||
before(function() {
|
before(function() {
|
||||||
cy.createUser(user)
|
cy.nextcloudCreateUser(randUser, randUser)
|
||||||
cy.login(user)
|
|
||||||
cy.createExampleBoard({
|
cy.createExampleBoard({
|
||||||
user,
|
user: randUser,
|
||||||
board: boardData,
|
password: randUser,
|
||||||
}).then((board) => {
|
board: testBoardData,
|
||||||
boardId = board.id
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.login(randUser, randUser)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Can show card details modal', function() {
|
||||||
|
cy.openLeftSidebar()
|
||||||
|
cy.getNavigationEntry(testBoardData.title)
|
||||||
|
.first().click({ force: true })
|
||||||
|
|
||||||
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
|
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||||
|
})
|
||||||
|
|
||||||
|
cy.get('.modal__card').should('be.visible')
|
||||||
|
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can add a card', function() {
|
it('Can add a card', function() {
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
const newCardTitle = 'Write some cypress tests'
|
const newCardTitle = 'Write some cypress tests'
|
||||||
|
|
||||||
cy.getNavigationEntry(boardData.title)
|
cy.openLeftSidebar()
|
||||||
|
cy.getNavigationEntry(testBoardData.title)
|
||||||
.first().click({ force: true })
|
.first().click({ force: true })
|
||||||
|
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
cy.get('.board .stack').eq(0).within(() => {
|
||||||
@@ -59,245 +64,4 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Create card from overview', function() {
|
|
||||||
cy.visit(`/apps/deck/#/`)
|
|
||||||
const newCardTitle = 'Test create from overview'
|
|
||||||
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
|
|
||||||
cy.intercept({ method: 'GET', url: '**/apps/deck/boards/*' }).as('getBoard')
|
|
||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
|
||||||
.first().click()
|
|
||||||
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 li:contains("' + boardData.title + '")').should('be.visible').click()
|
|
||||||
cy.wait('@getBoard', { timeout: 7000 })
|
|
||||||
|
|
||||||
cy.get('.modal-mask.card-selector .multiselect-list').should('be.visible').click()
|
|
||||||
cy.get('.modal-mask.card-selector .multiselect-list li').eq(0).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.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.reload()
|
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('Modal', () => {
|
|
||||||
beforeEach(function() {
|
|
||||||
cy.login(user)
|
|
||||||
useModal(true).then(() => {
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Can show card details modal', function() {
|
|
||||||
cy.getNavigationEntry(boardData.title)
|
|
||||||
.first().click({ force: true })
|
|
||||||
|
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
|
||||||
})
|
|
||||||
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
|
||||||
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Attachment from files app', () => {
|
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
|
||||||
cy.get('.app-sidebar-tabs__tab [data-id="attachments"]').click()
|
|
||||||
cy.get('button.icon-upload').should('be.visible')
|
|
||||||
cy.get('button.icon-folder').should('be.visible')
|
|
||||||
.click()
|
|
||||||
cy.get('.file-picker__main').should('be.visible')
|
|
||||||
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
|
|
||||||
.click()
|
|
||||||
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
|
||||||
cy.get('.attachment-list .basename').contains('welcome.txt')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Shows the modal with the editor', () => {
|
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
|
||||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
|
||||||
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
|
|
||||||
cy.get('.modal__card .ProseMirror h1').contains('Hello world').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror h1')
|
|
||||||
.click()
|
|
||||||
.type(' writing more text{enter}- List item{enter}with entries{enter}{enter}Paragraph')
|
|
||||||
cy.wait('@save', { timeout: 7000 })
|
|
||||||
|
|
||||||
cy.reload()
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror li').eq(0).contains('List item').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror li').eq(1).contains('with entries').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror p').contains('Paragraph').should('be.visible')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Smart picker', () => {
|
|
||||||
const newCardTitle = 'Test smart picker'
|
|
||||||
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
|
|
||||||
cy.intercept({ method: 'GET', url: '**/apps/deck/boards/*' }).as('getBoard')
|
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
|
||||||
cy.get('.modal__card .ProseMirror h1')
|
|
||||||
.click()
|
|
||||||
.type('{enter}/create')
|
|
||||||
cy.get('.suggestion-list__item.is-selected').should('be.visible').contains('Create a new deck card')
|
|
||||||
cy.get('.suggestion-list__item.is-selected .link-picker__item').click()
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker').should('be.visible')
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker').contains('Create a new card')
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .card-title').should('be.visible').click().type(newCardTitle)
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-board').should('be.visible').contains(boardData.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.wait('@save', { timeout: 7000 })
|
|
||||||
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('be.visible')
|
|
||||||
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.reload()
|
|
||||||
cy.get('.board .stack').eq(0).within(() => {
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('Sidebar', () => {
|
|
||||||
beforeEach(function() {
|
|
||||||
cy.login(user)
|
|
||||||
useModal(false).then(() => {
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Show the sidebar', () => {
|
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
|
||||||
cy.get('#app-sidebar-vue')
|
|
||||||
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Set a due date', function() {
|
|
||||||
const newCardTitle = 'Card with a due date'
|
|
||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
|
||||||
.first().click()
|
|
||||||
cy.get('.stack__card-add form input#new-stack-input-main')
|
|
||||||
.type(newCardTitle)
|
|
||||||
cy.get('.stack__card-add form input[type=submit]')
|
|
||||||
.first().click()
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
|
||||||
|
|
||||||
cy.get('.card:contains("Card with a due date")').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
|
|
||||||
|
|
||||||
// Set a due date through shortcut
|
|
||||||
cy.get('[data-cy-due-date-shortcut="tomorrow"] button').should('be.visible').click()
|
|
||||||
|
|
||||||
const tomorrow = moment().add(1, 'days').hour(8).minutes(0).seconds(0)
|
|
||||||
cy.get('#card-duedate-picker').should('have.value', tomorrow.format('YYYY-MM-DDTHH:mm'))
|
|
||||||
|
|
||||||
const now = moment().hour(11).minutes(0).seconds(0).toDate()
|
|
||||||
cy.clock(now)
|
|
||||||
cy.log(now)
|
|
||||||
cy.tick(60_000)
|
|
||||||
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state="Now"]').should('be.visible').should('contain', '21 hours')
|
|
||||||
|
|
||||||
|
|
||||||
// Remove the due date again
|
|
||||||
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
|
|
||||||
// tick needed to show the popover menu
|
|
||||||
cy.tick(1_000)
|
|
||||||
cy.get('[data-cy-due-date-remove] button').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state]').should('not.exist')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Add a label', function() {
|
|
||||||
const newCardTitle = 'Card with labels'
|
|
||||||
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
|
||||||
.first().click()
|
|
||||||
cy.get('.stack__card-add form input#new-stack-input-main')
|
|
||||||
.type(newCardTitle)
|
|
||||||
cy.get('.stack__card-add form input[type=submit]')
|
|
||||||
.first().click()
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click()
|
|
||||||
cy.get('.multiselect__option:contains("Action needed")').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get('[data-test="tag-selector"] .selector-wrapper--icon').click()
|
|
||||||
cy.get('.multiselect__option:contains("Action needed")').should('not.be.visible')
|
|
||||||
|
|
||||||
cy.get('[data-test="tag-selector"] .multiselect__tags .tag:contains("Action needed")')
|
|
||||||
.should('be.visible')
|
|
||||||
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Action needed")')
|
|
||||||
.should('be.visible')
|
|
||||||
|
|
||||||
cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click()
|
|
||||||
cy.get('.multiselect__option:contains("Later")').should('be.visible').click()
|
|
||||||
cy.get('.multiselect__option:contains("Action needed")').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Later")')
|
|
||||||
.should('be.visible')
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Action needed")')
|
|
||||||
.should('not.exist')
|
|
||||||
})
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('Card actions', () => {
|
|
||||||
beforeEach(function() {
|
|
||||||
cy.login(user)
|
|
||||||
useModal(false).then(() => {
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Custom card actions', () => {
|
|
||||||
const myAction = {
|
|
||||||
label: 'Test action',
|
|
||||||
icon: 'icon-user',
|
|
||||||
callback(card) {
|
|
||||||
console.log('Called callback', card)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
cy.spy(myAction, 'callback').as('myAction.callback')
|
|
||||||
|
|
||||||
cy.window().then(win => {
|
|
||||||
win.OCA.Deck.registerCardAction(myAction)
|
|
||||||
})
|
|
||||||
|
|
||||||
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("Test action")').click()
|
|
||||||
|
|
||||||
cy.get('@myAction.callback')
|
|
||||||
.should('be.called')
|
|
||||||
.its('firstCall.args.0')
|
|
||||||
.as('args')
|
|
||||||
|
|
||||||
cy.url().then(url => {
|
|
||||||
const cardId = url.split('/').pop()
|
|
||||||
cy.get('@args').should('have.property', 'name', 'Hello world')
|
|
||||||
cy.get('@args').should('have.property', 'stackname', 'TestList')
|
|
||||||
cy.get('@args').should('have.property', 'boardname', 'MyTestBoard')
|
|
||||||
cy.get('@args').its('link').then((url) => {
|
|
||||||
expect(url.split('/').pop() === cardId).to.be.true
|
|
||||||
cy.visit(url)
|
|
||||||
cy.get('#app-sidebar-vue')
|
|
||||||
.find('.ProseMirror h1').contains('Hello world').should('be.visible')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,57 +1,31 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randHash } from '../utils'
|
||||||
import { sampleBoard } from '../utils/sampleBoard'
|
const randUser = randHash()
|
||||||
const user = randUser()
|
|
||||||
|
|
||||||
describe('Deck dashboard', function() {
|
describe('Deck dashboard', function() {
|
||||||
|
const password = 'pass123'
|
||||||
|
|
||||||
before(function() {
|
before(function() {
|
||||||
cy.createUser(user)
|
cy.nextcloudCreateUser(randUser, password)
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.login(randUser, password)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can show the right title on the dashboard', function() {
|
it('Can show the right title on the dashboard', function() {
|
||||||
cy.visit('/apps/deck')
|
|
||||||
cy.get('.board-title h2')
|
cy.get('.board-title h2')
|
||||||
.should('have.length', 1).first()
|
.should('have.length', 1).first()
|
||||||
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
.should('have.text', 'Upcoming cards')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can see the default "Personal Board" created for user by default', function() {
|
it('Can see the default "Personal Board" created for user by default', function() {
|
||||||
cy.visit('/apps/deck')
|
|
||||||
|
|
||||||
const defaultBoard = 'Personal'
|
const defaultBoard = 'Personal'
|
||||||
|
|
||||||
|
cy.openLeftSidebar()
|
||||||
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 + ')')
|
||||||
.first()
|
.first()
|
||||||
.contains(defaultBoard)
|
.contains(defaultBoard)
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Shows a card with due date on the overview', function() {
|
|
||||||
cy.createExampleBoard({
|
|
||||||
user,
|
|
||||||
board: sampleBoard(),
|
|
||||||
}).then((board) => {
|
|
||||||
cy.visit(`/apps/deck/#/board/${board.id}`)
|
|
||||||
|
|
||||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/**' }).as('updateCard')
|
|
||||||
|
|
||||||
const newCardTitle = 'Hello world'
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
|
|
||||||
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
|
|
||||||
cy.get('[data-cy-due-date-shortcut="tomorrow"] button').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.wait('@updateCard')
|
|
||||||
|
|
||||||
cy.get('button[title="Close sidebar"]').click()
|
|
||||||
cy.get('.app-navigation-entry:contains("Upcoming cards") a').click()
|
|
||||||
|
|
||||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
|
||||||
cy.get('.dashboard-column:contains("Tomorrow")').should('be.visible')
|
|
||||||
cy.get('.dashboard-column:contains("Tomorrow") .card:contains("Hello world")').should('be.visible')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
|
||||||
import { sampleBoard } from '../utils/sampleBoard'
|
|
||||||
const user = randUser()
|
|
||||||
const recipient = randUser()
|
|
||||||
|
|
||||||
describe('Board', function() {
|
|
||||||
before(function() {
|
|
||||||
cy.createUser(user)
|
|
||||||
cy.createUser(recipient)
|
|
||||||
})
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
cy.login(user)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Share a board to a user', function() {
|
|
||||||
const board = sampleBoard('Read only board')
|
|
||||||
cy.createExampleBoard({ user, board }).then((board) => {
|
|
||||||
const boardId = board.id
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.get('.board-title').contains(board.title)
|
|
||||||
|
|
||||||
cy.shareBoardWithUi(recipient.userId)
|
|
||||||
|
|
||||||
cy.login(recipient)
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.get('.board-title').contains(board.title)
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
|
||||||
.should('not.exist')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Share a board to a user as writable', function() {
|
|
||||||
const board = sampleBoard('Editable board')
|
|
||||||
cy.createExampleBoard({ user, board }).then((board) => {
|
|
||||||
const boardId = board.id
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.get('.board-title').contains(board.title)
|
|
||||||
|
|
||||||
cy.shareBoardWithUi(recipient.userId)
|
|
||||||
cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click()
|
|
||||||
|
|
||||||
cy.login(recipient)
|
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
|
||||||
cy.get('.board-title').contains(board.title)
|
|
||||||
cy.get('.button-vue[aria-label*="Add card"]')
|
|
||||||
.first().click()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@@ -1,68 +1,30 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randHash } from '../utils'
|
||||||
const user = randUser()
|
const randUser = randHash()
|
||||||
|
|
||||||
const boardTitle = 'TestBoard'
|
|
||||||
const testBoardData = {
|
|
||||||
title: boardTitle,
|
|
||||||
stacks: [
|
|
||||||
{ title: 'Existing Stack1' },
|
|
||||||
{ title: 'Existing Stack2' },
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('Stack', function() {
|
describe('Stack', function() {
|
||||||
|
const board = 'TestBoard'
|
||||||
|
const password = 'pass123'
|
||||||
|
const stack = 'List 1'
|
||||||
|
|
||||||
before(function() {
|
before(function() {
|
||||||
cy.createUser(user)
|
cy.nextcloudCreateUser(randUser, password)
|
||||||
cy.login(user)
|
cy.deckCreateBoard({ user: randUser, password }, board)
|
||||||
cy.createExampleBoard({
|
|
||||||
user,
|
|
||||||
board: testBoardData,
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.logout()
|
||||||
cy.visit('/apps/deck')
|
cy.login(randUser, password)
|
||||||
|
|
||||||
cy.openLeftSidebar()
|
|
||||||
cy.getNavigationEntry(boardTitle)
|
|
||||||
.click({ force: true })
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Can create a stack', function() {
|
it('Can create a stack', function() {
|
||||||
|
cy.openLeftSidebar()
|
||||||
|
cy.getNavigationEntry(board)
|
||||||
|
.click({ force: true })
|
||||||
|
|
||||||
cy.get('#stack-add button').first().click()
|
cy.get('#stack-add button').first().click()
|
||||||
cy.focused().type('List 1')
|
cy.get('#stack-add form input#new-stack-input-main').type(stack)
|
||||||
cy.get('#stack-add form input[type=submit]').first().click()
|
cy.get('#stack-add form input[type=submit]').first().click()
|
||||||
|
|
||||||
cy.contains('List 1').should('be.visible')
|
cy.get('.board .stack').eq(0).contains(stack).should('be.visible')
|
||||||
})
|
|
||||||
|
|
||||||
it('Can edit a stack title', function() {
|
|
||||||
cy.contains('Existing Stack1')
|
|
||||||
cy.get('[data-cy-stack="Existing Stack1"]').within(() => {
|
|
||||||
cy.contains('Existing Stack1').click()
|
|
||||||
cy.focused().type(' renamed')
|
|
||||||
cy.get('[data-cy="editStackTitleForm"] input[type="submit"]').click()
|
|
||||||
})
|
|
||||||
cy.contains('Existing Stack1 renamed').should('be.visible')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Can abort a stack title edit via esc', function() {
|
|
||||||
cy.contains('Existing Stack2').click()
|
|
||||||
cy.focused().type(' with a new title, maybe?')
|
|
||||||
cy.focused().type('{esc}')
|
|
||||||
|
|
||||||
cy.contains('Existing Stack2').should('be.visible')
|
|
||||||
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('Can abort a stack title edit via click outside', function() {
|
|
||||||
cy.contains('Existing Stack2').click()
|
|
||||||
cy.focused().type(' with a new title, maybe?')
|
|
||||||
cy.get('[data-cy-stack="Existing Stack2"]').click('bottom')
|
|
||||||
|
|
||||||
cy.contains('Existing Stack2').should('be.visible')
|
|
||||||
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -20,13 +20,61 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { addCommands } from '@nextcloud/cypress'
|
|
||||||
|
|
||||||
addCommands()
|
|
||||||
|
|
||||||
const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
|
const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
|
||||||
Cypress.env('baseUrl', url)
|
Cypress.env('baseUrl', url)
|
||||||
|
|
||||||
|
Cypress.Commands.add('login', (user, password, route = '/apps/deck/') => {
|
||||||
|
const session = `${user}-${Date.now()}`
|
||||||
|
cy.session(session, function() {
|
||||||
|
cy.visit(route)
|
||||||
|
cy.get('input[name=user]').type(user)
|
||||||
|
cy.get('input[name=password]').type(password)
|
||||||
|
cy.get('form[name=login] [type=submit]').click()
|
||||||
|
cy.url().should('include', route)
|
||||||
|
})
|
||||||
|
cy.visit(route)
|
||||||
|
})
|
||||||
|
|
||||||
|
Cypress.Commands.add('logout', (route = '/') => {
|
||||||
|
cy.session('_guest', function() {})
|
||||||
|
})
|
||||||
|
|
||||||
|
Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
|
||||||
|
cy.clearCookies()
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: `${Cypress.env('baseUrl')}/ocs/v1.php/cloud/users?format=json`,
|
||||||
|
form: true,
|
||||||
|
body: {
|
||||||
|
userid: user,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
auth: { user: 'admin', pass: 'admin' },
|
||||||
|
headers: {
|
||||||
|
'OCS-ApiRequest': 'true',
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
}).then((response) => {
|
||||||
|
cy.log(`Created user ${user}`, response.status)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Cypress.Commands.add('nextcloudUpdateUser', (user, password, key, value) => {
|
||||||
|
cy.request({
|
||||||
|
method: 'PUT',
|
||||||
|
url: `${Cypress.env('baseUrl')}/ocs/v2.php/cloud/users/${user}`,
|
||||||
|
form: true,
|
||||||
|
body: { key, value },
|
||||||
|
auth: { user, pass: password },
|
||||||
|
headers: {
|
||||||
|
'OCS-ApiRequest': 'true',
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
}).then((response) => {
|
||||||
|
cy.log(`Updated user ${user} ${key} to ${value}`, response.status)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
Cypress.Commands.add('openLeftSidebar', () => {
|
Cypress.Commands.add('openLeftSidebar', () => {
|
||||||
cy.get('.app-navigation button.app-navigation-toggle').click()
|
cy.get('.app-navigation button.app-navigation-toggle').click()
|
||||||
})
|
})
|
||||||
@@ -63,15 +111,14 @@ Cypress.Commands.add('deckCreateList', ({ user, password }, title) => {
|
|||||||
cy.get('#stack-add form input[type=submit]').first().click()
|
cy.get('#stack-add form input[type=submit]').first().click()
|
||||||
})
|
})
|
||||||
|
|
||||||
Cypress.Commands.add('createExampleBoard', ({ user, board }) => {
|
Cypress.Commands.add('createExampleBoard', ({ user, password, board }) => {
|
||||||
const auth = {
|
|
||||||
user: user.userId,
|
|
||||||
password: user.password,
|
|
||||||
}
|
|
||||||
cy.request({
|
cy.request({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards`,
|
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards`,
|
||||||
auth,
|
auth: {
|
||||||
|
user,
|
||||||
|
password,
|
||||||
|
},
|
||||||
body: { title: board.title, color: board.color ?? 'ff0000' },
|
body: { title: board.title, color: board.color ?? 'ff0000' },
|
||||||
}).then((boardResponse) => {
|
}).then((boardResponse) => {
|
||||||
expect(boardResponse.status).to.eq(200)
|
expect(boardResponse.status).to.eq(200)
|
||||||
@@ -81,7 +128,10 @@ Cypress.Commands.add('createExampleBoard', ({ user, board }) => {
|
|||||||
cy.request({
|
cy.request({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks`,
|
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks`,
|
||||||
auth,
|
auth: {
|
||||||
|
user,
|
||||||
|
password,
|
||||||
|
},
|
||||||
body: { title: stack.title, order: 0 },
|
body: { title: stack.title, order: 0 },
|
||||||
}).then((stackResponse) => {
|
}).then((stackResponse) => {
|
||||||
const stackData = stackResponse.body
|
const stackData = stackResponse.body
|
||||||
@@ -90,13 +140,15 @@ Cypress.Commands.add('createExampleBoard', ({ user, board }) => {
|
|||||||
cy.request({
|
cy.request({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks/${stackData.id}/cards`,
|
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks/${stackData.id}/cards`,
|
||||||
auth,
|
auth: {
|
||||||
body: { title: card.title, description: card.description ?? '' },
|
user,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
body: { title: card.title },
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
cy.wrap(boardData)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -105,13 +157,3 @@ Cypress.Commands.add('getNavigationEntry', (boardTitle) => {
|
|||||||
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + boardTitle + ')')
|
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + boardTitle + ')')
|
||||||
.find('a.app-navigation-entry-link')
|
.find('a.app-navigation-entry-link')
|
||||||
})
|
})
|
||||||
|
|
||||||
Cypress.Commands.add('shareBoardWithUi', (userId) => {
|
|
||||||
cy.get('[aria-label="Open details"]').click()
|
|
||||||
cy.get('.app-sidebar').should('be.visible')
|
|
||||||
cy.get('.multiselect__input').type(`${userId}`)
|
|
||||||
cy.get('.multiselect__content .multiselect__element').first().contains(userId)
|
|
||||||
cy.get('.multiselect__input').type('{enter}')
|
|
||||||
|
|
||||||
cy.get('.shareWithList').contains(userId)
|
|
||||||
})
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
||||||
<title>Components App</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div data-cy-root></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
// ***********************************************************
|
|
||||||
// This example support/component.js is processed and
|
|
||||||
// loaded automatically before your test files.
|
|
||||||
//
|
|
||||||
// This is a great place to put global configuration and
|
|
||||||
// behavior that modifies Cypress.
|
|
||||||
//
|
|
||||||
// You can change the location of this file or turn off
|
|
||||||
// automatically serving support files with the
|
|
||||||
// 'supportFile' configuration option.
|
|
||||||
//
|
|
||||||
// You can read more here:
|
|
||||||
// https://on.cypress.io/configuration
|
|
||||||
// ***********************************************************
|
|
||||||
|
|
||||||
// Import commands.js using ES2015 syntax:
|
|
||||||
import './commands'
|
|
||||||
|
|
||||||
// Alternatively you can use CommonJS syntax:
|
|
||||||
// require('./commands')
|
|
||||||
|
|
||||||
import { mount } from 'cypress/vue2'
|
|
||||||
|
|
||||||
Cypress.Commands.add('mount', mount)
|
|
||||||
|
|
||||||
// Example use:
|
|
||||||
// cy.mount(MyComponent)
|
|
||||||
@@ -14,11 +14,7 @@
|
|||||||
// ***********************************************************
|
// ***********************************************************
|
||||||
|
|
||||||
// Import commands.js using ES2015 syntax:
|
// Import commands.js using ES2015 syntax:
|
||||||
import './commands.js'
|
import './commands'
|
||||||
|
|
||||||
Cypress.on('uncaught:exception', (err) => {
|
|
||||||
return !err.message.includes('ResizeObserver loop limit exceeded')
|
|
||||||
})
|
|
||||||
|
|
||||||
// Alternatively you can use CommonJS syntax:
|
// Alternatively you can use CommonJS syntax:
|
||||||
// require('./commands')
|
// require('./commands')
|
||||||
|
|||||||
@@ -1,4 +1 @@
|
|||||||
import { User } from '@nextcloud/cypress'
|
|
||||||
|
|
||||||
export const randHash = () => Math.random().toString(36).replace(/[^a-z]+/g, '').slice(0, 10)
|
export const randHash = () => Math.random().toString(36).replace(/[^a-z]+/g, '').slice(0, 10)
|
||||||
export const randUser = () => new User(randHash(), randHash())
|
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* @copyright Copyright (c) 2022 Julius Härtl <jus@bitgrid.net>
|
|
||||||
*
|
|
||||||
* @author Julius Härtl <jus@bitgrid.net>
|
|
||||||
*
|
|
||||||
* @license GNU AGPL version 3 or any later version
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License as
|
|
||||||
* published by the Free Software Foundation, either version 3 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Affero General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const sampleBoard = (title = 'MyTestBoard') => {
|
|
||||||
return {
|
|
||||||
title: title,
|
|
||||||
color: '00ff00',
|
|
||||||
stacks: [
|
|
||||||
{
|
|
||||||
title: 'TestList',
|
|
||||||
cards: [
|
|
||||||
{
|
|
||||||
title: 'Hello world',
|
|
||||||
description: '# Hello world',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
132
docs/API.md
132
docs/API.md
@@ -117,7 +117,6 @@ This API version has become available with **Deck 1.3.0**.
|
|||||||
- [GET /boards/import/getSystems - Import a board](#get-boardsimportgetsystems-import-a-board)
|
- [GET /boards/import/getSystems - Import a board](#get-boardsimportgetsystems-import-a-board)
|
||||||
- [GET /boards/import/config/system/{schema} - Import a board](#get-boardsimportconfigsystemschema-import-a-board)
|
- [GET /boards/import/config/system/{schema} - Import a board](#get-boardsimportconfigsystemschema-import-a-board)
|
||||||
- [POST /boards/import - Import a board](#post-boardsimport-import-a-board)
|
- [POST /boards/import - Import a board](#post-boardsimport-import-a-board)
|
||||||
- The `done` property was added to cards
|
|
||||||
|
|
||||||
# Endpoints
|
# Endpoints
|
||||||
|
|
||||||
@@ -602,7 +601,6 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
|||||||
"owner":"admin",
|
"owner":"admin",
|
||||||
"order":999,
|
"order":999,
|
||||||
"archived":false,
|
"archived":false,
|
||||||
"done":null,
|
|
||||||
"duedate": "2019-12-24T19:29:30+00:00",
|
"duedate": "2019-12-24T19:29:30+00:00",
|
||||||
"deletedAt":0,
|
"deletedAt":0,
|
||||||
"commentsUnread":0,
|
"commentsUnread":0,
|
||||||
@@ -625,16 +623,13 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
|||||||
|
|
||||||
#### Request data
|
#### Request data
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
| Parameter | Type | Description |
|
||||||
|-------------|-----------------|-----------------------------------------------------------------------------------------------------|
|
|-------------|-----------|------------------------------------------------------|
|
||||||
| title | String | The title of the card, maximum length is limited to 255 characters |
|
| title | String | The title of the card, maximum length is limited to 255 characters |
|
||||||
| description | String | The markdown description of the card |
|
| description | String | The markdown description of the card |
|
||||||
| type | String | Type of the card (for later use) use 'plain' for now |
|
| type | String | Type of the card (for later use) use 'plain' for now |
|
||||||
| owner | String | The user that owns the card |
|
| order | Integer | Order for sorting the stacks |
|
||||||
| order | Integer | Order for sorting the stacks |
|
| duedate | timestamp | The ISO-8601 formatted duedate of the card or null |
|
||||||
| duedate | timestamp | The ISO-8601 formatted duedate of the card or null |
|
|
||||||
| archived | bool | Whether the card is archived or not |
|
|
||||||
| done | timestamp\|null | The ISO-8601 formatted date when the card is marked as done (optional, null indicates undone state) |
|
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -642,11 +637,8 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
|||||||
"title": "Test card",
|
"title": "Test card",
|
||||||
"description": "A card description",
|
"description": "A card description",
|
||||||
"type": "plain",
|
"type": "plain",
|
||||||
"owner": "admin",
|
|
||||||
"order": 999,
|
"order": 999,
|
||||||
"duedate": "2019-12-24T19:29:30+00:00",
|
"duedate": "2019-12-24T19:29:30+00:00",
|
||||||
"archived": false,
|
|
||||||
"done": null,
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1074,7 +1066,6 @@ Deck stores user and app configuration values globally and per board. The GET en
|
|||||||
| --- | --- |
|
| --- | --- |
|
||||||
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
|
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
|
||||||
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
|
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
|
||||||
| cardIdBadge | Determines if the ID badges are displayed on cards (boolean) |
|
|
||||||
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
|
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -1088,7 +1079,6 @@ Deck stores user and app configuration values globally and per board. The GET en
|
|||||||
"data": {
|
"data": {
|
||||||
"calendar": true,
|
"calendar": true,
|
||||||
"cardDetailsInModal": true,
|
"cardDetailsInModal": true,
|
||||||
"cardIdBadge": true,
|
|
||||||
"groupLimit": [
|
"groupLimit": [
|
||||||
{
|
{
|
||||||
"id": "admin",
|
"id": "admin",
|
||||||
@@ -1119,7 +1109,6 @@ Deck stores user and app configuration values globally and per board. The GET en
|
|||||||
| notify-due | `off`, `assigned` or `all` |
|
| notify-due | `off`, `assigned` or `all` |
|
||||||
| calendar | Boolean |
|
| calendar | Boolean |
|
||||||
| cardDetailsInModal | Boolean |
|
| cardDetailsInModal | Boolean |
|
||||||
| cardIdBadge | Boolean |
|
|
||||||
|
|
||||||
#### Example request
|
#### Example request
|
||||||
|
|
||||||
@@ -1402,110 +1391,3 @@ A bad request response is returned if invalid input values are provided. The res
|
|||||||
A not found response might be returned if:
|
A not found response might be returned if:
|
||||||
- The card for the given cardId could not be found
|
- The card for the given cardId could not be found
|
||||||
- The comment could not be found
|
- The comment could not be found
|
||||||
|
|
||||||
|
|
||||||
## Sessions
|
|
||||||
|
|
||||||
### PUT /session/create - creates a new session
|
|
||||||
|
|
||||||
#### Request parameters
|
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
|
||||||
| --------- | ------- | ---------------------------------------------------- |
|
|
||||||
| boardId | Integer | The id of the opened board |
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -X PUT 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
|
|
||||||
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
|
|
||||||
-H 'Content-Type: application/json;charset=utf-8' \
|
|
||||||
--data '{"boardId":1}'
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
|
|
||||||
##### 200 Success
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"ocs": {
|
|
||||||
"meta": {
|
|
||||||
"status": "ok",
|
|
||||||
"statuscode": 200,
|
|
||||||
"message": "OK"
|
|
||||||
},
|
|
||||||
"data": {
|
|
||||||
"token": "+zcJHf4rC6dobVSbuNa3delkCSfTW8OvYWTyLFvSpIv80FjtgLIj0ARlxspsazNQ"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### POST /session/sync - notifies the server, that the session is still open
|
|
||||||
|
|
||||||
#### Request body
|
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
|
||||||
| --------- | ------- | ---------------------------------------------------- |
|
|
||||||
| boardId | Integer | The id of the opened board |
|
|
||||||
| token | String | The session token from the /sessions/create response |
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
|
|
||||||
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
|
|
||||||
-H 'Content-Type: application/json;charset=utf-8' \
|
|
||||||
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
|
|
||||||
##### 200 Success
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"ocs": {
|
|
||||||
"meta": {
|
|
||||||
"status": "ok",
|
|
||||||
"statuscode": 200,
|
|
||||||
"message": "OK"
|
|
||||||
},
|
|
||||||
"data": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
##### 404 Not Found
|
|
||||||
the provided token is invalid or expired
|
|
||||||
|
|
||||||
|
|
||||||
### POST /session/close - closes the session
|
|
||||||
|
|
||||||
#### Request body
|
|
||||||
|
|
||||||
| Parameter | Type | Description |
|
|
||||||
| --------- | ------- | ---------------------------------------------------- |
|
|
||||||
| boardId | Integer | The id of the opened board |
|
|
||||||
| token | String | The session token from the /sessions/create response |
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/close' \
|
|
||||||
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
|
|
||||||
-H 'Content-Type: application/json;charset=utf-8' \
|
|
||||||
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Response
|
|
||||||
|
|
||||||
##### 200 Success
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"ocs": {
|
|
||||||
"meta": {
|
|
||||||
"status": "ok",
|
|
||||||
"statuscode": 200,
|
|
||||||
"message": "OK"
|
|
||||||
},
|
|
||||||
"data": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -12,12 +12,11 @@ Overall, Deck is easy to use. You can create boards, add users, share the Deck,
|
|||||||
1. [Create my first board](#1-create-my-first-board)
|
1. [Create my first board](#1-create-my-first-board)
|
||||||
2. [Create stacks and cards](#2-create-stacks-and-cards)
|
2. [Create stacks and cards](#2-create-stacks-and-cards)
|
||||||
3. [Handle cards options](#3-handle-cards-options)
|
3. [Handle cards options](#3-handle-cards-options)
|
||||||
4. [Mark task as done](#4-mark-as-done)
|
4. [Archive old tasks](#4-archive-old-tasks)
|
||||||
5. [Archive old tasks](#5-archive-old-tasks)
|
5. [Manage your board](#5-manage-your-board)
|
||||||
6. [Manage your board](#6-manage-your-board)
|
6. [Import boards](#6-import-boards)
|
||||||
7. [Import boards](#7-import-boards)
|
7. [Search](#7-search)
|
||||||
8. [Search](#8-search)
|
8. [New owner for the deck entities](#8-new-owner-for-the-deck-entities)
|
||||||
9. [New owner for the deck entities](#9-new-owner-for-the-deck-entities)
|
|
||||||
|
|
||||||
### 1. Create my first board
|
### 1. Create my first board
|
||||||
In this example, we're going to create a board and share it with an other nextcloud user.
|
In this example, we're going to create a board and share it with an other nextcloud user.
|
||||||
@@ -26,7 +25,7 @@ In this example, we're going to create a board and share it with an other nextcl
|
|||||||
|
|
||||||
|
|
||||||
### 2. Create stacks and cards
|
### 2. Create stacks and cards
|
||||||
Stacks are simply columns with list of cards. It can represent a category of tasks or any step in your projects for example.
|
Stacks are simply columns with list of cards. It can represent a category of tasks or an y step in your projects for example.
|
||||||
**Check this out :**
|
**Check this out :**
|
||||||
|
|
||||||

|

|
||||||
@@ -54,18 +53,12 @@ And even :
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 4. Mark as done
|
### 4. Archive old tasks
|
||||||
Once a task has been completed, you can mark it as done. This will prevent it from becoming overdue and hide it from the upcoming cards.
|
Once finished or obsolete, a task could be archived. The tasks is not deleted, it's just archived, and you can retrieve it later
|
||||||
You can mark it as not done at any time.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 5. Archive old tasks
|
### 5. Manage your board
|
||||||
Once obsolete, a task could be archived. The task is not deleted, it's just archived, and you can retrieve it later
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 6. Manage your board
|
|
||||||
You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right.
|
You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right.
|
||||||
Once in this menu, you have access to several things:
|
Once in this menu, you have access to several things:
|
||||||
|
|
||||||
@@ -79,7 +72,7 @@ The **sharing tab** allows you to add users or even groups to your boards.
|
|||||||
**Deleted objects** allows you to return previously deleted stacks or cards.
|
**Deleted objects** allows you to return previously deleted stacks or cards.
|
||||||
The **Timeline** allows you to see everything that happened in your boards. Everything!
|
The **Timeline** allows you to see everything that happened in your boards. Everything!
|
||||||
|
|
||||||
### 7. Import boards
|
### 6. 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.
|
||||||
|
|
||||||
@@ -97,7 +90,7 @@ Steps:
|
|||||||
* Create the configuration file
|
* Create the configuration file
|
||||||
* Execute the import informing the import file path, data file and source as `Trello JSON`
|
* 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`
|
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
```json
|
```json
|
||||||
@@ -127,7 +120,7 @@ https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&field
|
|||||||
This ID you will use in the configuration file in the `board` property
|
This ID you will use in the configuration file in the `board` property
|
||||||
* Create the configuration file
|
* 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`
|
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
|
||||||
|
|
||||||
Example configuration file:
|
Example configuration file:
|
||||||
```json
|
```json
|
||||||
@@ -145,7 +138,7 @@ Example configuration file:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 8. Search
|
### 7. Search
|
||||||
|
|
||||||
Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls.
|
Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls.
|
||||||
This search allows advanced filtering of cards across all board of the logged in user.
|
This search allows advanced filtering of cards across all board of the logged in user.
|
||||||
@@ -168,7 +161,7 @@ Other text tokens will be used to perform a case-insensitive search on the card
|
|||||||
|
|
||||||
In addition, quotes can be used to pass a query with spaces, e.g. `"Exact match with spaces"` or `title:"My card"`.
|
In addition, quotes can be used to pass a query with spaces, e.g. `"Exact match with spaces"` or `title:"My card"`.
|
||||||
|
|
||||||
### 9. New owner for the deck entities
|
### 8. New owner for the deck entities
|
||||||
You can transfer ownership of boards, cards, etc to a new user, using `occ` command `deck:transfer-ownership`
|
You can transfer ownership of boards, cards, etc to a new user, using `occ` command `deck:transfer-ownership`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
## 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.
|
|
||||||
|
|
||||||
The export currently has some kown limitations in terms of specific data not included:
|
|
||||||
- Activity information
|
|
||||||
- File attachments to deck cards
|
|
||||||
- Comments
|
|
||||||
-
|
|
||||||
```
|
|
||||||
occ deck:export > my-file.json
|
|
||||||
```
|
|
||||||
|
|
||||||
## Import boards
|
|
||||||
|
|
||||||
Importing can be done using the API or the `occ` `deck:import` command.
|
|
||||||
|
|
||||||
It is possible to import from the following sources:
|
|
||||||
|
|
||||||
### Deck JSON
|
|
||||||
|
|
||||||
A json file that has been obtained from the above described `occ deck:export [userid]` command can be imported.
|
|
||||||
|
|
||||||
```
|
|
||||||
occ deck:import my-file.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.
|
|
||||||
|
|
||||||
```
|
|
||||||
{
|
|
||||||
"owner": "admin",
|
|
||||||
"uidRelation": {
|
|
||||||
"johndoe": "test-user-1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Trello JSON
|
|
||||||
|
|
||||||
Limitations:
|
|
||||||
* Comments with more than 1000 characters are placed as attached files to the card.
|
|
||||||
|
|
||||||
Steps:
|
|
||||||
* 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
|
|
||||||
* 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`
|
|
||||||
|
|
||||||
Example configuration file:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"owner": "admin",
|
|
||||||
"color": "0800fd",
|
|
||||||
"uidRelation": {
|
|
||||||
"johndoe": "johndoe"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Limitations**:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Import using API is recommended for boards with more than 1000 actions.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
* 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
|
|
||||||
|
|
||||||
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:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"owner": "admin",
|
|
||||||
"color": "0800fd",
|
|
||||||
"api": {
|
|
||||||
"key": "0cc175b9c0f1b6a831c399e269772661",
|
|
||||||
"token": "92eb5ffee6ae2fec3ad71c777531578f4a8a08f09d37b73795649038408b5f33"
|
|
||||||
},
|
|
||||||
"board": "8277e0910d750195b4487976",
|
|
||||||
"uidRelation": {
|
|
||||||
"johndoe": "johndoe"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 88 KiB |
@@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" style="height: 240px; width: 240px;" viewBox="0 0 24 24">
|
|
||||||
<path fill="currentColor" d="M12,15H10V13H12V15M18,15H14V13H18V15M8,11H6V9H8V11M18,11H10V9H18V11M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 298 B |
@@ -35,9 +35,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Voltooid",
|
"Completed" : "Voltooid",
|
||||||
"Select Date" : "Kies Datum",
|
"Select Date" : "Kies Datum",
|
||||||
"seconds ago" : "sekondes gelede",
|
"seconds ago" : "sekondes gelede",
|
||||||
"Keyboard shortcuts" : "Sneltoetse",
|
|
||||||
"Keyboard shortcut" : "Snelsleutel",
|
|
||||||
"Search" : "Soek",
|
|
||||||
"Shared with you" : "Met u gedeel",
|
"Shared with you" : "Met u gedeel",
|
||||||
"No notifications" : "Geen kennisgewings",
|
"No notifications" : "Geen kennisgewings",
|
||||||
"An error occurred" : "'n Fout het voorgekom",
|
"An error occurred" : "'n Fout het voorgekom",
|
||||||
|
|||||||
@@ -33,9 +33,6 @@
|
|||||||
"Completed" : "Voltooid",
|
"Completed" : "Voltooid",
|
||||||
"Select Date" : "Kies Datum",
|
"Select Date" : "Kies Datum",
|
||||||
"seconds ago" : "sekondes gelede",
|
"seconds ago" : "sekondes gelede",
|
||||||
"Keyboard shortcuts" : "Sneltoetse",
|
|
||||||
"Keyboard shortcut" : "Snelsleutel",
|
|
||||||
"Search" : "Soek",
|
|
||||||
"Shared with you" : "Met u gedeel",
|
"Shared with you" : "Met u gedeel",
|
||||||
"No notifications" : "Geen kennisgewings",
|
"No notifications" : "Geen kennisgewings",
|
||||||
"An error occurred" : "'n Fout het voorgekom",
|
"An error occurred" : "'n Fout het voorgekom",
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ OC.L10N.register(
|
|||||||
"Delete" : "Borrar",
|
"Delete" : "Borrar",
|
||||||
"Download" : "Escargar",
|
"Download" : "Escargar",
|
||||||
"Modified" : "Modificau",
|
"Modified" : "Modificau",
|
||||||
"Search" : "Buscar",
|
|
||||||
"Today" : "Hue",
|
"Today" : "Hue",
|
||||||
"Close" : "Zarrar",
|
"Close" : "Zarrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir"
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
"Delete" : "Borrar",
|
"Delete" : "Borrar",
|
||||||
"Download" : "Escargar",
|
"Download" : "Escargar",
|
||||||
"Modified" : "Modificau",
|
"Modified" : "Modificau",
|
||||||
"Search" : "Buscar",
|
|
||||||
"Today" : "Hue",
|
"Today" : "Hue",
|
||||||
"Close" : "Zarrar",
|
"Close" : "Zarrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir"
|
||||||
|
|||||||
30
l10n/ar.js
30
l10n/ar.js
@@ -277,32 +277,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "القائمة فارغة",
|
"List is empty" : "القائمة فارغة",
|
||||||
"Card deleted" : "البطاقة حٌذفت ",
|
"Card deleted" : "البطاقة حٌذفت ",
|
||||||
"seconds ago" : "ثوانٍ مضت",
|
"seconds ago" : "ثوانٍ مضت",
|
||||||
"Keyboard shortcuts" : "إختصارات لوحة المفاتيح",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "سرِّع التعامل مع الرقعة باستعمال الاختصارات البسيطة.",
|
|
||||||
"Board actions" : "إجراءات الرقعة",
|
|
||||||
"Keyboard shortcut" : "إختصار لوحة المفاتيح",
|
|
||||||
"Action" : "الإجراء",
|
|
||||||
"Shift" : "العالي shift",
|
|
||||||
"Scroll" : "تحريك",
|
|
||||||
"Scroll sideways" : "تحريك للجنب",
|
|
||||||
"Navigate between cards" : "التنقُّل بين البطاقات",
|
|
||||||
"Esc" : "خروج",
|
|
||||||
"Close card details" : "أغلِق تفاصيل البطاقة",
|
|
||||||
"Ctrl" : "تحكم Ctrl",
|
|
||||||
"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" : "المدى",
|
|
||||||
"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" : "تم مشاركتها معك",
|
||||||
@@ -372,12 +346,12 @@ OC.L10N.register(
|
|||||||
"Share" : "مشاركة ",
|
"Share" : "مشاركة ",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
|
||||||
"Timeline" : "الجدول الزمني",
|
"Timeline" : "الجدول الزمني",
|
||||||
|
"Add a new list" : "اضف قائمة جديدة",
|
||||||
"Assign to users" : "انسب الى المتسخدمين",
|
"Assign to users" : "انسب الى المتسخدمين",
|
||||||
"Due date" : "تاريخ الانجاز",
|
"Due date" : "تاريخ الانجاز",
|
||||||
"Next week" : "الاسبوع القادم",
|
"Next week" : "الاسبوع القادم",
|
||||||
"Next month" : "الشهر القادم",
|
"Next month" : "الشهر القادم",
|
||||||
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
|
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم."
|
||||||
"Assign yorself to the current card" : "أسنِد البطاقة الحالية إلى نفسك"
|
|
||||||
},
|
},
|
||||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||||
|
|||||||
30
l10n/ar.json
30
l10n/ar.json
@@ -275,32 +275,6 @@
|
|||||||
"List is empty" : "القائمة فارغة",
|
"List is empty" : "القائمة فارغة",
|
||||||
"Card deleted" : "البطاقة حٌذفت ",
|
"Card deleted" : "البطاقة حٌذفت ",
|
||||||
"seconds ago" : "ثوانٍ مضت",
|
"seconds ago" : "ثوانٍ مضت",
|
||||||
"Keyboard shortcuts" : "إختصارات لوحة المفاتيح",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "سرِّع التعامل مع الرقعة باستعمال الاختصارات البسيطة.",
|
|
||||||
"Board actions" : "إجراءات الرقعة",
|
|
||||||
"Keyboard shortcut" : "إختصار لوحة المفاتيح",
|
|
||||||
"Action" : "الإجراء",
|
|
||||||
"Shift" : "العالي shift",
|
|
||||||
"Scroll" : "تحريك",
|
|
||||||
"Scroll sideways" : "تحريك للجنب",
|
|
||||||
"Navigate between cards" : "التنقُّل بين البطاقات",
|
|
||||||
"Esc" : "خروج",
|
|
||||||
"Close card details" : "أغلِق تفاصيل البطاقة",
|
|
||||||
"Ctrl" : "تحكم Ctrl",
|
|
||||||
"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" : "المدى",
|
|
||||||
"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" : "تم مشاركتها معك",
|
||||||
@@ -370,12 +344,12 @@
|
|||||||
"Share" : "مشاركة ",
|
"Share" : "مشاركة ",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
|
||||||
"Timeline" : "الجدول الزمني",
|
"Timeline" : "الجدول الزمني",
|
||||||
|
"Add a new list" : "اضف قائمة جديدة",
|
||||||
"Assign to users" : "انسب الى المتسخدمين",
|
"Assign to users" : "انسب الى المتسخدمين",
|
||||||
"Due date" : "تاريخ الانجاز",
|
"Due date" : "تاريخ الانجاز",
|
||||||
"Next week" : "الاسبوع القادم",
|
"Next week" : "الاسبوع القادم",
|
||||||
"Next month" : "الشهر القادم",
|
"Next month" : "الشهر القادم",
|
||||||
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
|
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم."
|
||||||
"Assign yorself to the current card" : "أسنِد البطاقة الحالية إلى نفسك"
|
|
||||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||||
}
|
}
|
||||||
@@ -21,9 +21,6 @@ OC.L10N.register(
|
|||||||
"Description" : "Descripción",
|
"Description" : "Descripción",
|
||||||
"(Saving…)" : "(Guardando…)",
|
"(Saving…)" : "(Guardando…)",
|
||||||
"Completed" : "Completáu",
|
"Completed" : "Completáu",
|
||||||
"Keyboard shortcuts" : "Atayos del tecláu",
|
|
||||||
"Action" : "Aición",
|
|
||||||
"Search" : "Guetar",
|
|
||||||
"All cards" : "Toles tarxetes",
|
"All cards" : "Toles tarxetes",
|
||||||
"An error occurred" : "Prodúxose un error",
|
"An error occurred" : "Prodúxose un error",
|
||||||
"Today" : "Güei",
|
"Today" : "Güei",
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
"Description" : "Descripción",
|
"Description" : "Descripción",
|
||||||
"(Saving…)" : "(Guardando…)",
|
"(Saving…)" : "(Guardando…)",
|
||||||
"Completed" : "Completáu",
|
"Completed" : "Completáu",
|
||||||
"Keyboard shortcuts" : "Atayos del tecláu",
|
|
||||||
"Action" : "Aición",
|
|
||||||
"Search" : "Guetar",
|
|
||||||
"All cards" : "Toles tarxetes",
|
"All cards" : "Toles tarxetes",
|
||||||
"An error occurred" : "Prodúxose un error",
|
"An error occurred" : "Prodúxose un error",
|
||||||
"Today" : "Güei",
|
"Today" : "Güei",
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Bitmişdir",
|
"Completed" : "Bitmişdir",
|
||||||
"(group)" : "(qrup)",
|
"(group)" : "(qrup)",
|
||||||
"seconds ago" : "saniyələr öncə",
|
"seconds ago" : "saniyələr öncə",
|
||||||
"Search" : "Axtarış",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "Bu gün",
|
"Today" : "Bu gün",
|
||||||
"Tomorrow" : "Sabah",
|
"Tomorrow" : "Sabah",
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
"Completed" : "Bitmişdir",
|
"Completed" : "Bitmişdir",
|
||||||
"(group)" : "(qrup)",
|
"(group)" : "(qrup)",
|
||||||
"seconds ago" : "saniyələr öncə",
|
"seconds ago" : "saniyələr öncə",
|
||||||
"Search" : "Axtarış",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "Bu gün",
|
"Today" : "Bu gün",
|
||||||
"Tomorrow" : "Sabah",
|
"Tomorrow" : "Sabah",
|
||||||
|
|||||||
@@ -253,14 +253,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "Списъкът е празен",
|
"List is empty" : "Списъкът е празен",
|
||||||
"Card deleted" : "Картата е изтрита",
|
"Card deleted" : "Картата е изтрита",
|
||||||
"seconds ago" : "преди секунди",
|
"seconds ago" : "преди секунди",
|
||||||
"Keyboard shortcuts" : "Бързи клавиши",
|
|
||||||
"Keyboard shortcut" : "Клавишни комбинации",
|
|
||||||
"Action" : "Действие",
|
|
||||||
"Shift" : "Shift /бутон/",
|
|
||||||
"Ctrl" : "Ctrl /бутон/",
|
|
||||||
"Search" : "Търсене",
|
|
||||||
"Enter" : "Въвеждане",
|
|
||||||
"Space" : "Пространство",
|
|
||||||
"All boards" : "Всички табла",
|
"All boards" : "Всички табла",
|
||||||
"Archived boards" : "Архивирани табла",
|
"Archived boards" : "Архивирани табла",
|
||||||
"Shared with you" : "Споделени с вас",
|
"Shared with you" : "Споделени с вас",
|
||||||
@@ -323,6 +315,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Споделяне",
|
"Share" : "Споделяне",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
|
||||||
"Timeline" : "Времева линия",
|
"Timeline" : "Времева линия",
|
||||||
|
"Add a new list" : "Добавяне на нов списък",
|
||||||
"Assign to users" : "Зачисляване към потребители",
|
"Assign to users" : "Зачисляване към потребители",
|
||||||
"Due date" : "Крайна дата",
|
"Due date" : "Крайна дата",
|
||||||
"Next week" : "Следваща седмица",
|
"Next week" : "Следваща седмица",
|
||||||
|
|||||||
@@ -251,14 +251,6 @@
|
|||||||
"List is empty" : "Списъкът е празен",
|
"List is empty" : "Списъкът е празен",
|
||||||
"Card deleted" : "Картата е изтрита",
|
"Card deleted" : "Картата е изтрита",
|
||||||
"seconds ago" : "преди секунди",
|
"seconds ago" : "преди секунди",
|
||||||
"Keyboard shortcuts" : "Бързи клавиши",
|
|
||||||
"Keyboard shortcut" : "Клавишни комбинации",
|
|
||||||
"Action" : "Действие",
|
|
||||||
"Shift" : "Shift /бутон/",
|
|
||||||
"Ctrl" : "Ctrl /бутон/",
|
|
||||||
"Search" : "Търсене",
|
|
||||||
"Enter" : "Въвеждане",
|
|
||||||
"Space" : "Пространство",
|
|
||||||
"All boards" : "Всички табла",
|
"All boards" : "Всички табла",
|
||||||
"Archived boards" : "Архивирани табла",
|
"Archived boards" : "Архивирани табла",
|
||||||
"Shared with you" : "Споделени с вас",
|
"Shared with you" : "Споделени с вас",
|
||||||
@@ -321,6 +313,7 @@
|
|||||||
"Share" : "Споделяне",
|
"Share" : "Споделяне",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
|
||||||
"Timeline" : "Времева линия",
|
"Timeline" : "Времева линия",
|
||||||
|
"Add a new list" : "Добавяне на нов списък",
|
||||||
"Assign to users" : "Зачисляване към потребители",
|
"Assign to users" : "Зачисляване към потребители",
|
||||||
"Due date" : "Крайна дата",
|
"Due date" : "Крайна дата",
|
||||||
"Next week" : "Следваща седмица",
|
"Next week" : "Следваща седмица",
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "সুসম্পন্ন",
|
"Completed" : "সুসম্পন্ন",
|
||||||
"(group)" : "(গোষ্ঠি)",
|
"(group)" : "(গোষ্ঠি)",
|
||||||
"seconds ago" : "সেকেন্ড পূর্বে",
|
"seconds ago" : "সেকেন্ড পূর্বে",
|
||||||
"Keyboard shortcuts" : "কী-বোর্ড শর্টকাট",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "আজ",
|
"Today" : "আজ",
|
||||||
"Tomorrow" : "আগামীকাল",
|
"Tomorrow" : "আগামীকাল",
|
||||||
|
|||||||
@@ -24,8 +24,6 @@
|
|||||||
"Completed" : "সুসম্পন্ন",
|
"Completed" : "সুসম্পন্ন",
|
||||||
"(group)" : "(গোষ্ঠি)",
|
"(group)" : "(গোষ্ঠি)",
|
||||||
"seconds ago" : "সেকেন্ড পূর্বে",
|
"seconds ago" : "সেকেন্ড পূর্বে",
|
||||||
"Keyboard shortcuts" : "কী-বোর্ড শর্টকাট",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "আজ",
|
"Today" : "আজ",
|
||||||
"Tomorrow" : "আগামীকাল",
|
"Tomorrow" : "আগামীকাল",
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Achuet",
|
"Completed" : "Achuet",
|
||||||
"(group)" : "(strollad)",
|
"(group)" : "(strollad)",
|
||||||
"seconds ago" : "eilenn zo",
|
"seconds ago" : "eilenn zo",
|
||||||
"Search" : "Klask",
|
|
||||||
"Shared with you" : "Rannet ganeoc'h",
|
"Shared with you" : "Rannet ganeoc'h",
|
||||||
"No notifications" : "Kemenaden ebet",
|
"No notifications" : "Kemenaden ebet",
|
||||||
"Today" : "Hiziv",
|
"Today" : "Hiziv",
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
"Completed" : "Achuet",
|
"Completed" : "Achuet",
|
||||||
"(group)" : "(strollad)",
|
"(group)" : "(strollad)",
|
||||||
"seconds ago" : "eilenn zo",
|
"seconds ago" : "eilenn zo",
|
||||||
"Search" : "Klask",
|
|
||||||
"Shared with you" : "Rannet ganeoc'h",
|
"Shared with you" : "Rannet ganeoc'h",
|
||||||
"No notifications" : "Kemenaden ebet",
|
"No notifications" : "Kemenaden ebet",
|
||||||
"Today" : "Hiziv",
|
"Today" : "Hiziv",
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ OC.L10N.register(
|
|||||||
"Update" : "Ažuriraj",
|
"Update" : "Ažuriraj",
|
||||||
"Description" : "Opis",
|
"Description" : "Opis",
|
||||||
"Completed" : "Zavrženo",
|
"Completed" : "Zavrženo",
|
||||||
"Keyboard shortcuts" : "Tipkovni prečaci",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "Danas",
|
"Today" : "Danas",
|
||||||
"Tomorrow" : "Sutra",
|
"Tomorrow" : "Sutra",
|
||||||
|
|||||||
@@ -20,8 +20,6 @@
|
|||||||
"Update" : "Ažuriraj",
|
"Update" : "Ažuriraj",
|
||||||
"Description" : "Opis",
|
"Description" : "Opis",
|
||||||
"Completed" : "Zavrženo",
|
"Completed" : "Zavrženo",
|
||||||
"Keyboard shortcuts" : "Tipkovni prečaci",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"Today" : "Danas",
|
"Today" : "Danas",
|
||||||
"Tomorrow" : "Sutra",
|
"Tomorrow" : "Sutra",
|
||||||
|
|||||||
@@ -256,13 +256,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "La llista és buida",
|
"List is empty" : "La llista és buida",
|
||||||
"Card deleted" : "Targeta suprimida",
|
"Card deleted" : "Targeta suprimida",
|
||||||
"seconds ago" : "fa uns segons",
|
"seconds ago" : "fa uns segons",
|
||||||
"Keyboard shortcuts" : "Dreceres de teclat",
|
|
||||||
"Keyboard shortcut" : "Drecera de teclat",
|
|
||||||
"Action" : "Acció",
|
|
||||||
"Shift" : "Maj",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Cercar",
|
|
||||||
"Enter" : "Retorn",
|
|
||||||
"All boards" : "Tots els taulers",
|
"All boards" : "Tots els taulers",
|
||||||
"Archived boards" : "Taulers arxivats",
|
"Archived boards" : "Taulers arxivats",
|
||||||
"Shared with you" : "Us han compartit",
|
"Shared with you" : "Us han compartit",
|
||||||
@@ -328,6 +321,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
||||||
"Timeline" : "Línia de temps",
|
"Timeline" : "Línia de temps",
|
||||||
|
"Add a new list" : "Afegeix una llista nova",
|
||||||
"Assign to users" : "Assignació als usuaris",
|
"Assign to users" : "Assignació als usuaris",
|
||||||
"Due date" : "Data de caducitat",
|
"Due date" : "Data de caducitat",
|
||||||
"Next week" : "Setmana següent",
|
"Next week" : "Setmana següent",
|
||||||
|
|||||||
@@ -254,13 +254,6 @@
|
|||||||
"List is empty" : "La llista és buida",
|
"List is empty" : "La llista és buida",
|
||||||
"Card deleted" : "Targeta suprimida",
|
"Card deleted" : "Targeta suprimida",
|
||||||
"seconds ago" : "fa uns segons",
|
"seconds ago" : "fa uns segons",
|
||||||
"Keyboard shortcuts" : "Dreceres de teclat",
|
|
||||||
"Keyboard shortcut" : "Drecera de teclat",
|
|
||||||
"Action" : "Acció",
|
|
||||||
"Shift" : "Maj",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Cercar",
|
|
||||||
"Enter" : "Retorn",
|
|
||||||
"All boards" : "Tots els taulers",
|
"All boards" : "Tots els taulers",
|
||||||
"Archived boards" : "Taulers arxivats",
|
"Archived boards" : "Taulers arxivats",
|
||||||
"Shared with you" : "Us han compartit",
|
"Shared with you" : "Us han compartit",
|
||||||
@@ -326,6 +319,7 @@
|
|||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
|
||||||
"Timeline" : "Línia de temps",
|
"Timeline" : "Línia de temps",
|
||||||
|
"Add a new list" : "Afegeix una llista nova",
|
||||||
"Assign to users" : "Assignació als usuaris",
|
"Assign to users" : "Assignació als usuaris",
|
||||||
"Due date" : "Data de caducitat",
|
"Due date" : "Data de caducitat",
|
||||||
"Next week" : "Setmana següent",
|
"Next week" : "Setmana següent",
|
||||||
|
|||||||
@@ -277,14 +277,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "Seznam je prázdný",
|
"List is empty" : "Seznam je prázdný",
|
||||||
"Card deleted" : "Karta smazána",
|
"Card deleted" : "Karta smazána",
|
||||||
"seconds ago" : "před několika sekundami",
|
"seconds ago" : "před několika sekundami",
|
||||||
"Keyboard shortcuts" : "Klávesové zkratky",
|
|
||||||
"Keyboard shortcut" : "Klávesová zkratka",
|
|
||||||
"Action" : "Akce",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Hledat",
|
|
||||||
"Enter" : "Konec řádku",
|
|
||||||
"Space" : "Mezera",
|
|
||||||
"All boards" : "Všechny tabule",
|
"All boards" : "Všechny tabule",
|
||||||
"Archived boards" : "Archivované tabule",
|
"Archived boards" : "Archivované tabule",
|
||||||
"Shared with you" : "Sdíleno s vámi",
|
"Shared with you" : "Sdíleno s vámi",
|
||||||
@@ -354,6 +346,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Sdílet",
|
"Share" : "Sdílet",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
|
||||||
"Timeline" : "Časová osa",
|
"Timeline" : "Časová osa",
|
||||||
|
"Add a new list" : "Přidat nový sloupec",
|
||||||
"Assign to users" : "Přiřadit k uživatelům",
|
"Assign to users" : "Přiřadit k uživatelům",
|
||||||
"Due date" : "Termín",
|
"Due date" : "Termín",
|
||||||
"Next week" : "Příští týden",
|
"Next week" : "Příští týden",
|
||||||
|
|||||||
@@ -275,14 +275,6 @@
|
|||||||
"List is empty" : "Seznam je prázdný",
|
"List is empty" : "Seznam je prázdný",
|
||||||
"Card deleted" : "Karta smazána",
|
"Card deleted" : "Karta smazána",
|
||||||
"seconds ago" : "před několika sekundami",
|
"seconds ago" : "před několika sekundami",
|
||||||
"Keyboard shortcuts" : "Klávesové zkratky",
|
|
||||||
"Keyboard shortcut" : "Klávesová zkratka",
|
|
||||||
"Action" : "Akce",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Hledat",
|
|
||||||
"Enter" : "Konec řádku",
|
|
||||||
"Space" : "Mezera",
|
|
||||||
"All boards" : "Všechny tabule",
|
"All boards" : "Všechny tabule",
|
||||||
"Archived boards" : "Archivované tabule",
|
"Archived boards" : "Archivované tabule",
|
||||||
"Shared with you" : "Sdíleno s vámi",
|
"Shared with you" : "Sdíleno s vámi",
|
||||||
@@ -352,6 +344,7 @@
|
|||||||
"Share" : "Sdílet",
|
"Share" : "Sdílet",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
|
||||||
"Timeline" : "Časová osa",
|
"Timeline" : "Časová osa",
|
||||||
|
"Add a new list" : "Přidat nový sloupec",
|
||||||
"Assign to users" : "Přiřadit k uživatelům",
|
"Assign to users" : "Přiřadit k uživatelům",
|
||||||
"Due date" : "Termín",
|
"Due date" : "Termín",
|
||||||
"Next week" : "Příští týden",
|
"Next week" : "Příští týden",
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ OC.L10N.register(
|
|||||||
"Description" : "Disgrifiad",
|
"Description" : "Disgrifiad",
|
||||||
"Select Date" : "Dewis Dyddiad",
|
"Select Date" : "Dewis Dyddiad",
|
||||||
"seconds ago" : "eiliad yn ôl",
|
"seconds ago" : "eiliad yn ôl",
|
||||||
"Keyboard shortcuts" : "Llwybrau byr bysellfwrdd",
|
|
||||||
"Search" : "Chwilio",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"No reminder" : "Dim nodyn atgoffa",
|
"No reminder" : "Dim nodyn atgoffa",
|
||||||
"An error occurred" : "Digwyddodd gwall",
|
"An error occurred" : "Digwyddodd gwall",
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
"Description" : "Disgrifiad",
|
"Description" : "Disgrifiad",
|
||||||
"Select Date" : "Dewis Dyddiad",
|
"Select Date" : "Dewis Dyddiad",
|
||||||
"seconds ago" : "eiliad yn ôl",
|
"seconds ago" : "eiliad yn ôl",
|
||||||
"Keyboard shortcuts" : "Llwybrau byr bysellfwrdd",
|
|
||||||
"Search" : "Chwilio",
|
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
"No reminder" : "Dim nodyn atgoffa",
|
"No reminder" : "Dim nodyn atgoffa",
|
||||||
"An error occurred" : "Digwyddodd gwall",
|
"An error occurred" : "Digwyddodd gwall",
|
||||||
|
|||||||
@@ -188,12 +188,6 @@ OC.L10N.register(
|
|||||||
"Select a list" : "Vælg en kolonne",
|
"Select a list" : "Vælg en kolonne",
|
||||||
"Card deleted" : "Kort slettet",
|
"Card deleted" : "Kort slettet",
|
||||||
"seconds ago" : "få sekunder siden",
|
"seconds ago" : "få sekunder siden",
|
||||||
"Keyboard shortcuts" : "Tastaturgenveje",
|
|
||||||
"Keyboard shortcut" : "Tastaturgenvej",
|
|
||||||
"Action" : "Handling",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Søg",
|
|
||||||
"All boards" : "Alle tavler",
|
"All boards" : "Alle tavler",
|
||||||
"Archived boards" : "Arkiverede lister",
|
"Archived boards" : "Arkiverede lister",
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
@@ -235,6 +229,7 @@ OC.L10N.register(
|
|||||||
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
|
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
|
||||||
"Share" : "Del",
|
"Share" : "Del",
|
||||||
"Timeline" : "Tidslinje",
|
"Timeline" : "Tidslinje",
|
||||||
|
"Add a new list" : "Tilføj en ny kolonne",
|
||||||
"Assign to users" : "Tildel til brugere",
|
"Assign to users" : "Tildel til brugere",
|
||||||
"Due date" : "Forfaldsdato",
|
"Due date" : "Forfaldsdato",
|
||||||
"Next week" : "Næste uge",
|
"Next week" : "Næste uge",
|
||||||
|
|||||||
@@ -186,12 +186,6 @@
|
|||||||
"Select a list" : "Vælg en kolonne",
|
"Select a list" : "Vælg en kolonne",
|
||||||
"Card deleted" : "Kort slettet",
|
"Card deleted" : "Kort slettet",
|
||||||
"seconds ago" : "få sekunder siden",
|
"seconds ago" : "få sekunder siden",
|
||||||
"Keyboard shortcuts" : "Tastaturgenveje",
|
|
||||||
"Keyboard shortcut" : "Tastaturgenvej",
|
|
||||||
"Action" : "Handling",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Søg",
|
|
||||||
"All boards" : "Alle tavler",
|
"All boards" : "Alle tavler",
|
||||||
"Archived boards" : "Arkiverede lister",
|
"Archived boards" : "Arkiverede lister",
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
@@ -233,6 +227,7 @@
|
|||||||
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
|
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
|
||||||
"Share" : "Del",
|
"Share" : "Del",
|
||||||
"Timeline" : "Tidslinje",
|
"Timeline" : "Tidslinje",
|
||||||
|
"Add a new list" : "Tilføj en ny kolonne",
|
||||||
"Assign to users" : "Tildel til brugere",
|
"Assign to users" : "Tildel til brugere",
|
||||||
"Due date" : "Forfaldsdato",
|
"Due date" : "Forfaldsdato",
|
||||||
"Next week" : "Næste uge",
|
"Next week" : "Næste uge",
|
||||||
|
|||||||
34
l10n/de.js
34
l10n/de.js
@@ -265,7 +265,7 @@ OC.L10N.register(
|
|||||||
"Todo items" : "Aufgaben-Elemente",
|
"Todo items" : "Aufgaben-Elemente",
|
||||||
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
|
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
|
||||||
"Edit card title" : "Kartentitel bearbeiten",
|
"Edit card title" : "Kartentitel bearbeiten",
|
||||||
"Card details" : "Kartendetails",
|
"Card details" : "Karten-Details",
|
||||||
"Assign to me" : "Mir zuweisen",
|
"Assign to me" : "Mir zuweisen",
|
||||||
"Unassign myself" : "Nicht mehr mir zuweisen",
|
"Unassign myself" : "Nicht mehr mir zuweisen",
|
||||||
"Mark as not done" : "Als nicht erledigt markieren",
|
"Mark as not done" : "Als nicht erledigt markieren",
|
||||||
@@ -277,32 +277,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
"Card deleted" : "Karte gelöscht",
|
"Card deleted" : "Karte gelöscht",
|
||||||
"seconds ago" : "Gerade eben",
|
"seconds ago" : "Gerade eben",
|
||||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Beschleunige die Verwendung von Deck mit einfachen Tastaturkürzeln.",
|
|
||||||
"Board actions" : "Boardaktionen",
|
|
||||||
"Keyboard shortcut" : "Tastaturkürzel",
|
|
||||||
"Action" : "Aktion",
|
|
||||||
"Shift" : "Umschalttaste",
|
|
||||||
"Scroll" : "Scrollen",
|
|
||||||
"Scroll sideways" : "Seitwärts scrollen",
|
|
||||||
"Navigate between cards" : "Zwischen Karten navigieren",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Kartendetails schließen",
|
|
||||||
"Ctrl" : "Strg",
|
|
||||||
"Search" : "Suche",
|
|
||||||
"Show card filters" : "Kartenfilter anzeigen",
|
|
||||||
"Clear card filters" : "Kartenfilter löschen",
|
|
||||||
"Show help dialog" : "Hilfedialog anzeigen",
|
|
||||||
"Card actions" : "Kartenaktionen",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Leerzeichen",
|
|
||||||
"Open card details" : "Kartendetails öffnen",
|
|
||||||
"Edit the card title" : "Kartentitel bearbeiten",
|
|
||||||
"Assign yourself to the current card" : "Aktuelle Karte dir zuweisen",
|
|
||||||
"Archive/unarchive the current card" : "Aktuelle Karte archivieren/dearchivieren",
|
|
||||||
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
|
|
||||||
"Open card menu" : "Kartenmenü öffnen",
|
|
||||||
"All boards" : "Alle Boards",
|
"All boards" : "Alle Boards",
|
||||||
"Archived boards" : "Archivierte Boards",
|
"Archived boards" : "Archivierte Boards",
|
||||||
"Shared with you" : "Mit dir geteilt",
|
"Shared with you" : "Mit dir geteilt",
|
||||||
@@ -312,7 +286,7 @@ OC.L10N.register(
|
|||||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||||
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
|
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
|
||||||
"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." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
"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." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
||||||
"Board details" : "Boarddetails",
|
"Board details" : "Board-Details",
|
||||||
"Edit board" : "Board bearbeiten",
|
"Edit board" : "Board bearbeiten",
|
||||||
"Clone board" : "Board klonen",
|
"Clone board" : "Board klonen",
|
||||||
"Unarchive board" : "Board dearchivieren",
|
"Unarchive board" : "Board dearchivieren",
|
||||||
@@ -372,12 +346,12 @@ OC.L10N.register(
|
|||||||
"Share" : "Freigeben",
|
"Share" : "Freigeben",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
||||||
"Timeline" : "Zeitachse",
|
"Timeline" : "Zeitachse",
|
||||||
|
"Add a new list" : "Eine neue Liste hinzufügen",
|
||||||
"Assign to users" : "Benutzern zuweisen",
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Due date" : "Fälligkeitsdatum",
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächster Monat",
|
"Next month" : "Nächster Monat",
|
||||||
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
|
||||||
"Assign yorself to the current card" : "Aktuelle Karte dir zuweisen"
|
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
34
l10n/de.json
34
l10n/de.json
@@ -263,7 +263,7 @@
|
|||||||
"Todo items" : "Aufgaben-Elemente",
|
"Todo items" : "Aufgaben-Elemente",
|
||||||
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
|
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
|
||||||
"Edit card title" : "Kartentitel bearbeiten",
|
"Edit card title" : "Kartentitel bearbeiten",
|
||||||
"Card details" : "Kartendetails",
|
"Card details" : "Karten-Details",
|
||||||
"Assign to me" : "Mir zuweisen",
|
"Assign to me" : "Mir zuweisen",
|
||||||
"Unassign myself" : "Nicht mehr mir zuweisen",
|
"Unassign myself" : "Nicht mehr mir zuweisen",
|
||||||
"Mark as not done" : "Als nicht erledigt markieren",
|
"Mark as not done" : "Als nicht erledigt markieren",
|
||||||
@@ -275,32 +275,6 @@
|
|||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
"Card deleted" : "Karte gelöscht",
|
"Card deleted" : "Karte gelöscht",
|
||||||
"seconds ago" : "Gerade eben",
|
"seconds ago" : "Gerade eben",
|
||||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Beschleunige die Verwendung von Deck mit einfachen Tastaturkürzeln.",
|
|
||||||
"Board actions" : "Boardaktionen",
|
|
||||||
"Keyboard shortcut" : "Tastaturkürzel",
|
|
||||||
"Action" : "Aktion",
|
|
||||||
"Shift" : "Umschalttaste",
|
|
||||||
"Scroll" : "Scrollen",
|
|
||||||
"Scroll sideways" : "Seitwärts scrollen",
|
|
||||||
"Navigate between cards" : "Zwischen Karten navigieren",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Kartendetails schließen",
|
|
||||||
"Ctrl" : "Strg",
|
|
||||||
"Search" : "Suche",
|
|
||||||
"Show card filters" : "Kartenfilter anzeigen",
|
|
||||||
"Clear card filters" : "Kartenfilter löschen",
|
|
||||||
"Show help dialog" : "Hilfedialog anzeigen",
|
|
||||||
"Card actions" : "Kartenaktionen",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Leerzeichen",
|
|
||||||
"Open card details" : "Kartendetails öffnen",
|
|
||||||
"Edit the card title" : "Kartentitel bearbeiten",
|
|
||||||
"Assign yourself to the current card" : "Aktuelle Karte dir zuweisen",
|
|
||||||
"Archive/unarchive the current card" : "Aktuelle Karte archivieren/dearchivieren",
|
|
||||||
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
|
|
||||||
"Open card menu" : "Kartenmenü öffnen",
|
|
||||||
"All boards" : "Alle Boards",
|
"All boards" : "Alle Boards",
|
||||||
"Archived boards" : "Archivierte Boards",
|
"Archived boards" : "Archivierte Boards",
|
||||||
"Shared with you" : "Mit dir geteilt",
|
"Shared with you" : "Mit dir geteilt",
|
||||||
@@ -310,7 +284,7 @@
|
|||||||
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
|
||||||
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
|
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
|
||||||
"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." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
"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." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
|
||||||
"Board details" : "Boarddetails",
|
"Board details" : "Board-Details",
|
||||||
"Edit board" : "Board bearbeiten",
|
"Edit board" : "Board bearbeiten",
|
||||||
"Clone board" : "Board klonen",
|
"Clone board" : "Board klonen",
|
||||||
"Unarchive board" : "Board dearchivieren",
|
"Unarchive board" : "Board dearchivieren",
|
||||||
@@ -370,12 +344,12 @@
|
|||||||
"Share" : "Freigeben",
|
"Share" : "Freigeben",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
||||||
"Timeline" : "Zeitachse",
|
"Timeline" : "Zeitachse",
|
||||||
|
"Add a new list" : "Eine neue Liste hinzufügen",
|
||||||
"Assign to users" : "Benutzern zuweisen",
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Due date" : "Fälligkeitsdatum",
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächster Monat",
|
"Next month" : "Nächster Monat",
|
||||||
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
|
||||||
"Assign yorself to the current card" : "Aktuelle Karte dir zuweisen"
|
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
@@ -37,10 +37,10 @@ OC.L10N.register(
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
"You have marked the card {card} as done in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert.",
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
|
"You have marked the card {card} as undone in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als rückgängig gemacht markiert",
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
|
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als rückgängig gemacht markiert",
|
||||||
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
|
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
|
||||||
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
|
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
|
||||||
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
|
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
|
||||||
@@ -277,32 +277,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
"Card deleted" : "Karte gelöscht",
|
"Card deleted" : "Karte gelöscht",
|
||||||
"seconds ago" : "Gerade eben",
|
"seconds ago" : "Gerade eben",
|
||||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Beschleunigen Sie die Verwendung von Deck mit einfachen Tastaturkürzeln.",
|
|
||||||
"Board actions" : "Board-Aktionen",
|
|
||||||
"Keyboard shortcut" : "Tastaturkürzel",
|
|
||||||
"Action" : "Aktion",
|
|
||||||
"Shift" : "Umschalttaste",
|
|
||||||
"Scroll" : "Scrollen",
|
|
||||||
"Scroll sideways" : "Seitwärts scrollen",
|
|
||||||
"Navigate between cards" : "Zwischen Karten navigieren",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Karten-Details schließen",
|
|
||||||
"Ctrl" : "Strg",
|
|
||||||
"Search" : "Suche",
|
|
||||||
"Show card filters" : "Kartenfilter anzeigen",
|
|
||||||
"Clear card filters" : "Kartenfilter löschen",
|
|
||||||
"Show help dialog" : "Hilfedialog anzeigen",
|
|
||||||
"Card actions" : "Kartenaktionen",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Leerzeichen",
|
|
||||||
"Open card details" : "Kartendetails öffnen",
|
|
||||||
"Edit the card title" : "Kartentitel bearbeiten",
|
|
||||||
"Assign yourself to the current card" : "Weisen Sie sich der aktuellen Karte zu",
|
|
||||||
"Archive/unarchive the current card" : "Die aktuelle Karte archivieren/dearchivieren",
|
|
||||||
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
|
|
||||||
"Open card menu" : "Kartenmenü öffnen",
|
|
||||||
"All boards" : "Alle Boards",
|
"All boards" : "Alle Boards",
|
||||||
"Archived boards" : "Archivierte Boards",
|
"Archived boards" : "Archivierte Boards",
|
||||||
"Shared with you" : "Mit Ihnen geteilt",
|
"Shared with you" : "Mit Ihnen geteilt",
|
||||||
@@ -372,12 +346,12 @@ OC.L10N.register(
|
|||||||
"Share" : "Freigeben",
|
"Share" : "Freigeben",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
||||||
"Timeline" : "Zeitachse",
|
"Timeline" : "Zeitachse",
|
||||||
|
"Add a new list" : "Eine neue Liste hinzufügen",
|
||||||
"Assign to users" : "Benutzern zuweisen",
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Due date" : "Fälligkeitsdatum",
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächsten Monat",
|
"Next month" : "Nächsten Monat",
|
||||||
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
|
||||||
"Assign yorself to the current card" : "Weisen Sie sich der aktuellen Karte zu"
|
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
@@ -35,10 +35,10 @@
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
"You have marked the card {card} as done in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert.",
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
|
"You have marked the card {card} as undone in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als rückgängig gemacht markiert",
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
|
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als rückgängig gemacht markiert",
|
||||||
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
|
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
|
||||||
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
|
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
|
||||||
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
|
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
|
||||||
@@ -275,32 +275,6 @@
|
|||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
"Card deleted" : "Karte gelöscht",
|
"Card deleted" : "Karte gelöscht",
|
||||||
"seconds ago" : "Gerade eben",
|
"seconds ago" : "Gerade eben",
|
||||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Beschleunigen Sie die Verwendung von Deck mit einfachen Tastaturkürzeln.",
|
|
||||||
"Board actions" : "Board-Aktionen",
|
|
||||||
"Keyboard shortcut" : "Tastaturkürzel",
|
|
||||||
"Action" : "Aktion",
|
|
||||||
"Shift" : "Umschalttaste",
|
|
||||||
"Scroll" : "Scrollen",
|
|
||||||
"Scroll sideways" : "Seitwärts scrollen",
|
|
||||||
"Navigate between cards" : "Zwischen Karten navigieren",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Karten-Details schließen",
|
|
||||||
"Ctrl" : "Strg",
|
|
||||||
"Search" : "Suche",
|
|
||||||
"Show card filters" : "Kartenfilter anzeigen",
|
|
||||||
"Clear card filters" : "Kartenfilter löschen",
|
|
||||||
"Show help dialog" : "Hilfedialog anzeigen",
|
|
||||||
"Card actions" : "Kartenaktionen",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Leerzeichen",
|
|
||||||
"Open card details" : "Kartendetails öffnen",
|
|
||||||
"Edit the card title" : "Kartentitel bearbeiten",
|
|
||||||
"Assign yourself to the current card" : "Weisen Sie sich der aktuellen Karte zu",
|
|
||||||
"Archive/unarchive the current card" : "Die aktuelle Karte archivieren/dearchivieren",
|
|
||||||
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
|
|
||||||
"Open card menu" : "Kartenmenü öffnen",
|
|
||||||
"All boards" : "Alle Boards",
|
"All boards" : "Alle Boards",
|
||||||
"Archived boards" : "Archivierte Boards",
|
"Archived boards" : "Archivierte Boards",
|
||||||
"Shared with you" : "Mit Ihnen geteilt",
|
"Shared with you" : "Mit Ihnen geteilt",
|
||||||
@@ -370,12 +344,12 @@
|
|||||||
"Share" : "Freigeben",
|
"Share" : "Freigeben",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
|
||||||
"Timeline" : "Zeitachse",
|
"Timeline" : "Zeitachse",
|
||||||
|
"Add a new list" : "Eine neue Liste hinzufügen",
|
||||||
"Assign to users" : "Benutzern zuweisen",
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Due date" : "Fälligkeitsdatum",
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächsten Monat",
|
"Next month" : "Nächsten Monat",
|
||||||
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
|
||||||
"Assign yorself to the current card" : "Weisen Sie sich der aktuellen Karte zu"
|
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
@@ -251,12 +251,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "Η λίστα είναι κενή",
|
"List is empty" : "Η λίστα είναι κενή",
|
||||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||||
"seconds ago" : " δευτερόλεπτα πριν ",
|
"seconds ago" : " δευτερόλεπτα πριν ",
|
||||||
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
|
||||||
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
|
||||||
"Action" : "Ενέργεια",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Αναζήτηση",
|
|
||||||
"All boards" : "Όλοι οι πίνακες",
|
"All boards" : "Όλοι οι πίνακες",
|
||||||
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
||||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||||
@@ -317,6 +311,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Μοιραστείτε",
|
"Share" : "Μοιραστείτε",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Η <strong>περιγραφή καρτέλας </strong>στην εφαρμογή Deck άλλαξε",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Η <strong>περιγραφή καρτέλας </strong>στην εφαρμογή Deck άλλαξε",
|
||||||
"Timeline" : "Χρονολόγιο",
|
"Timeline" : "Χρονολόγιο",
|
||||||
|
"Add a new list" : "Προσθήκη νέας λίστας",
|
||||||
"Assign to users" : "Ανάθεση σε χρήστες",
|
"Assign to users" : "Ανάθεση σε χρήστες",
|
||||||
"Due date" : "Ημερομηνία λήξης",
|
"Due date" : "Ημερομηνία λήξης",
|
||||||
"Next week" : "Επόμενη εβδομάδα",
|
"Next week" : "Επόμενη εβδομάδα",
|
||||||
|
|||||||
@@ -249,12 +249,6 @@
|
|||||||
"List is empty" : "Η λίστα είναι κενή",
|
"List is empty" : "Η λίστα είναι κενή",
|
||||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||||
"seconds ago" : " δευτερόλεπτα πριν ",
|
"seconds ago" : " δευτερόλεπτα πριν ",
|
||||||
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
|
||||||
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
|
||||||
"Action" : "Ενέργεια",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Αναζήτηση",
|
|
||||||
"All boards" : "Όλοι οι πίνακες",
|
"All boards" : "Όλοι οι πίνακες",
|
||||||
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
||||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||||
@@ -315,6 +309,7 @@
|
|||||||
"Share" : "Μοιραστείτε",
|
"Share" : "Μοιραστείτε",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Η <strong>περιγραφή καρτέλας </strong>στην εφαρμογή Deck άλλαξε",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Η <strong>περιγραφή καρτέλας </strong>στην εφαρμογή Deck άλλαξε",
|
||||||
"Timeline" : "Χρονολόγιο",
|
"Timeline" : "Χρονολόγιο",
|
||||||
|
"Add a new list" : "Προσθήκη νέας λίστας",
|
||||||
"Assign to users" : "Ανάθεση σε χρήστες",
|
"Assign to users" : "Ανάθεση σε χρήστες",
|
||||||
"Due date" : "Ημερομηνία λήξης",
|
"Due date" : "Ημερομηνία λήξης",
|
||||||
"Next week" : "Επόμενη εβδομάδα",
|
"Next week" : "Επόμενη εβδομάδα",
|
||||||
|
|||||||
@@ -37,10 +37,6 @@ OC.L10N.register(
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "You have marked the card {card} as done in list {stack} on board {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} has marked card {card} as done in list {stack} on board {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "You have marked the card {card} as undone in list {stack} on board {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} has marked the card {card} as undone in list {stack} on board {board}",
|
|
||||||
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
|
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
|
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
|
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
|
||||||
@@ -249,7 +245,6 @@ OC.L10N.register(
|
|||||||
"Choose a date" : "Choose a date",
|
"Choose a date" : "Choose a date",
|
||||||
"Remove due date" : "Remove due date",
|
"Remove due date" : "Remove due date",
|
||||||
"Completed" : "Completed",
|
"Completed" : "Completed",
|
||||||
"Due at:" : "Due at:",
|
|
||||||
"Not completed" : "Not completed",
|
"Not completed" : "Not completed",
|
||||||
"Unarchive card" : "Unarchive card",
|
"Unarchive card" : "Unarchive card",
|
||||||
"Archive card" : "Archive card",
|
"Archive card" : "Archive card",
|
||||||
@@ -259,7 +254,6 @@ OC.L10N.register(
|
|||||||
"Set due date for this weekend" : "Set due date for this weekend",
|
"Set due date for this weekend" : "Set due date for this weekend",
|
||||||
"Set due date for next week" : "Set due date for next week",
|
"Set due date for next week" : "Set due date for next week",
|
||||||
"Assign a tag to this card…" : "Assign a tag to this card…",
|
"Assign a tag to this card…" : "Assign a tag to this card…",
|
||||||
"Create a new tag:" : "Create a new tag:",
|
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
"Next week – {timeLocale}" : "Next week – {timeLocale}",
|
"Next week – {timeLocale}" : "Next week – {timeLocale}",
|
||||||
"Todo items" : "Todo items",
|
"Todo items" : "Todo items",
|
||||||
@@ -268,7 +262,6 @@ OC.L10N.register(
|
|||||||
"Card details" : "Card details",
|
"Card details" : "Card details",
|
||||||
"Assign to me" : "Assign to me",
|
"Assign to me" : "Assign to me",
|
||||||
"Unassign myself" : "Unassign myself",
|
"Unassign myself" : "Unassign myself",
|
||||||
"Mark as not done" : "Mark as not done",
|
|
||||||
"Mark as done" : "Mark as done",
|
"Mark as done" : "Mark as done",
|
||||||
"Move card" : "Move card",
|
"Move card" : "Move card",
|
||||||
"Delete card" : "Delete card",
|
"Delete card" : "Delete card",
|
||||||
@@ -277,32 +270,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "List is empty",
|
"List is empty" : "List is empty",
|
||||||
"Card deleted" : "Card deleted",
|
"Card deleted" : "Card deleted",
|
||||||
"seconds ago" : "seconds ago",
|
"seconds ago" : "seconds ago",
|
||||||
"Keyboard shortcuts" : "Keyboard shortcuts",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Speed up using Deck with simple shortcuts.",
|
|
||||||
"Board actions" : "Board actions",
|
|
||||||
"Keyboard shortcut" : "Keyboard shortcut",
|
|
||||||
"Action" : "Action",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Scroll" : "Scroll",
|
|
||||||
"Scroll sideways" : "Scroll sideways",
|
|
||||||
"Navigate between cards" : "Navigate between cards",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Close card details",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Show card filters" : "Show card filters",
|
|
||||||
"Clear card filters" : "Clear card filters",
|
|
||||||
"Show help dialog" : "Show help dialog",
|
|
||||||
"Card actions" : "Card actions",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "The following actions can be triggered on the currently highlighted card",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Space",
|
|
||||||
"Open card details" : "Open card details",
|
|
||||||
"Edit the card title" : "Edit the card title",
|
|
||||||
"Assign yourself to the current card" : "Assign yourself to the current card",
|
|
||||||
"Archive/unarchive the current card" : "Archive/unarchive the current card",
|
|
||||||
"Mark card as completed/not completed" : "Mark card as completed/not completed",
|
|
||||||
"Open card menu" : "Open card menu",
|
|
||||||
"All boards" : "All boards",
|
"All boards" : "All boards",
|
||||||
"Archived boards" : "Archived boards",
|
"Archived boards" : "Archived boards",
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
@@ -372,12 +339,12 @@ OC.L10N.register(
|
|||||||
"Share" : "Share",
|
"Share" : "Share",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
|
||||||
"Timeline" : "Timeline",
|
"Timeline" : "Timeline",
|
||||||
|
"Add a new list" : "Add a new list",
|
||||||
"Assign to users" : "Assign to users",
|
"Assign to users" : "Assign to users",
|
||||||
"Due date" : "Due date",
|
"Due date" : "Due date",
|
||||||
"Next week" : "Next week",
|
"Next week" : "Next week",
|
||||||
"Next month" : "Next month",
|
"Next month" : "Next month",
|
||||||
"Limit deck usage of groups" : "Limit deck usage of groups",
|
"Limit deck usage of groups" : "Limit deck usage of groups",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them."
|
||||||
"Assign yorself to the current card" : "Assign yorself to the current card"
|
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
@@ -35,10 +35,6 @@
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "You have marked the card {card} as done in list {stack} on board {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} has marked card {card} as done in list {stack} on board {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "You have marked the card {card} as undone in list {stack} on board {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} has marked the card {card} as undone in list {stack} on board {board}",
|
|
||||||
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
|
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
|
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
|
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
|
||||||
@@ -247,7 +243,6 @@
|
|||||||
"Choose a date" : "Choose a date",
|
"Choose a date" : "Choose a date",
|
||||||
"Remove due date" : "Remove due date",
|
"Remove due date" : "Remove due date",
|
||||||
"Completed" : "Completed",
|
"Completed" : "Completed",
|
||||||
"Due at:" : "Due at:",
|
|
||||||
"Not completed" : "Not completed",
|
"Not completed" : "Not completed",
|
||||||
"Unarchive card" : "Unarchive card",
|
"Unarchive card" : "Unarchive card",
|
||||||
"Archive card" : "Archive card",
|
"Archive card" : "Archive card",
|
||||||
@@ -257,7 +252,6 @@
|
|||||||
"Set due date for this weekend" : "Set due date for this weekend",
|
"Set due date for this weekend" : "Set due date for this weekend",
|
||||||
"Set due date for next week" : "Set due date for next week",
|
"Set due date for next week" : "Set due date for next week",
|
||||||
"Assign a tag to this card…" : "Assign a tag to this card…",
|
"Assign a tag to this card…" : "Assign a tag to this card…",
|
||||||
"Create a new tag:" : "Create a new tag:",
|
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
"Next week – {timeLocale}" : "Next week – {timeLocale}",
|
"Next week – {timeLocale}" : "Next week – {timeLocale}",
|
||||||
"Todo items" : "Todo items",
|
"Todo items" : "Todo items",
|
||||||
@@ -266,7 +260,6 @@
|
|||||||
"Card details" : "Card details",
|
"Card details" : "Card details",
|
||||||
"Assign to me" : "Assign to me",
|
"Assign to me" : "Assign to me",
|
||||||
"Unassign myself" : "Unassign myself",
|
"Unassign myself" : "Unassign myself",
|
||||||
"Mark as not done" : "Mark as not done",
|
|
||||||
"Mark as done" : "Mark as done",
|
"Mark as done" : "Mark as done",
|
||||||
"Move card" : "Move card",
|
"Move card" : "Move card",
|
||||||
"Delete card" : "Delete card",
|
"Delete card" : "Delete card",
|
||||||
@@ -275,32 +268,6 @@
|
|||||||
"List is empty" : "List is empty",
|
"List is empty" : "List is empty",
|
||||||
"Card deleted" : "Card deleted",
|
"Card deleted" : "Card deleted",
|
||||||
"seconds ago" : "seconds ago",
|
"seconds ago" : "seconds ago",
|
||||||
"Keyboard shortcuts" : "Keyboard shortcuts",
|
|
||||||
"Speed up using Deck with simple shortcuts." : "Speed up using Deck with simple shortcuts.",
|
|
||||||
"Board actions" : "Board actions",
|
|
||||||
"Keyboard shortcut" : "Keyboard shortcut",
|
|
||||||
"Action" : "Action",
|
|
||||||
"Shift" : "Shift",
|
|
||||||
"Scroll" : "Scroll",
|
|
||||||
"Scroll sideways" : "Scroll sideways",
|
|
||||||
"Navigate between cards" : "Navigate between cards",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Close card details",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Search",
|
|
||||||
"Show card filters" : "Show card filters",
|
|
||||||
"Clear card filters" : "Clear card filters",
|
|
||||||
"Show help dialog" : "Show help dialog",
|
|
||||||
"Card actions" : "Card actions",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "The following actions can be triggered on the currently highlighted card",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Space",
|
|
||||||
"Open card details" : "Open card details",
|
|
||||||
"Edit the card title" : "Edit the card title",
|
|
||||||
"Assign yourself to the current card" : "Assign yourself to the current card",
|
|
||||||
"Archive/unarchive the current card" : "Archive/unarchive the current card",
|
|
||||||
"Mark card as completed/not completed" : "Mark card as completed/not completed",
|
|
||||||
"Open card menu" : "Open card menu",
|
|
||||||
"All boards" : "All boards",
|
"All boards" : "All boards",
|
||||||
"Archived boards" : "Archived boards",
|
"Archived boards" : "Archived boards",
|
||||||
"Shared with you" : "Shared with you",
|
"Shared with you" : "Shared with you",
|
||||||
@@ -370,12 +337,12 @@
|
|||||||
"Share" : "Share",
|
"Share" : "Share",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
|
||||||
"Timeline" : "Timeline",
|
"Timeline" : "Timeline",
|
||||||
|
"Add a new list" : "Add a new list",
|
||||||
"Assign to users" : "Assign to users",
|
"Assign to users" : "Assign to users",
|
||||||
"Due date" : "Due date",
|
"Due date" : "Due date",
|
||||||
"Next week" : "Next week",
|
"Next week" : "Next week",
|
||||||
"Next month" : "Next month",
|
"Next month" : "Next month",
|
||||||
"Limit deck usage of groups" : "Limit deck usage of groups",
|
"Limit deck usage of groups" : "Limit deck usage of groups",
|
||||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them.",
|
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them."
|
||||||
"Assign yorself to the current card" : "Assign yorself to the current card"
|
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
@@ -113,8 +113,6 @@ OC.L10N.register(
|
|||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"Delete card" : "Forigi karton",
|
"Delete card" : "Forigi karton",
|
||||||
"seconds ago" : "antaŭ kelkaj sekundoj",
|
"seconds ago" : "antaŭ kelkaj sekundoj",
|
||||||
"Keyboard shortcuts" : "Fulmoklavoj",
|
|
||||||
"Search" : "Serĉi",
|
|
||||||
"Archived boards" : "Arĥivigitaj tabuloj",
|
"Archived boards" : "Arĥivigitaj tabuloj",
|
||||||
"Shared with you" : "Kunhavata kun vi",
|
"Shared with you" : "Kunhavata kun vi",
|
||||||
"Edit board" : "Modifi tabulon",
|
"Edit board" : "Modifi tabulon",
|
||||||
|
|||||||
@@ -111,8 +111,6 @@
|
|||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"Delete card" : "Forigi karton",
|
"Delete card" : "Forigi karton",
|
||||||
"seconds ago" : "antaŭ kelkaj sekundoj",
|
"seconds ago" : "antaŭ kelkaj sekundoj",
|
||||||
"Keyboard shortcuts" : "Fulmoklavoj",
|
|
||||||
"Search" : "Serĉi",
|
|
||||||
"Archived boards" : "Arĥivigitaj tabuloj",
|
"Archived boards" : "Arĥivigitaj tabuloj",
|
||||||
"Shared with you" : "Kunhavata kun vi",
|
"Shared with you" : "Kunhavata kun vi",
|
||||||
"Edit board" : "Modifi tabulon",
|
"Edit board" : "Modifi tabulon",
|
||||||
|
|||||||
30
l10n/es.js
30
l10n/es.js
@@ -37,10 +37,6 @@ OC.L10N.register(
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Has marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Has marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
|
||||||
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de {card} como {after}",
|
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de {card} como {after}",
|
||||||
@@ -72,8 +68,6 @@ OC.L10N.register(
|
|||||||
"A <strong>board, list or card</strong> was changed" : "Un <strong>tablero, lista o tarjeta</strong> fue cambiada",
|
"A <strong>board, list or card</strong> was changed" : "Un <strong>tablero, lista o tarjeta</strong> fue cambiada",
|
||||||
"A <strong>comment</strong> was created on a card" : "Un <strong>comentario</strong> ha sido creado en una tarjeta",
|
"A <strong>comment</strong> was created on a card" : "Un <strong>comentario</strong> ha sido creado en una tarjeta",
|
||||||
"A <strong>card description</strong> has been changed" : "Una <strong>descripción de tarjeta</strong> ha sido cambiada",
|
"A <strong>card description</strong> has been changed" : "Una <strong>descripción de tarjeta</strong> ha sido cambiada",
|
||||||
"Cards due today" : "Tarjetas que vencen hoy",
|
|
||||||
"Cards due tomorrow" : "Tarjetas que vencen mañana",
|
|
||||||
"Upcoming cards" : "Próximas tarjetas",
|
"Upcoming cards" : "Próximas tarjetas",
|
||||||
"Load more" : "Cargar más",
|
"Load more" : "Cargar más",
|
||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
@@ -152,13 +146,9 @@ OC.L10N.register(
|
|||||||
"Next 30 days" : "Siguientes 30 días",
|
"Next 30 days" : "Siguientes 30 días",
|
||||||
"No due date" : "Sin fecha de vencimiento",
|
"No due date" : "Sin fecha de vencimiento",
|
||||||
"Clear filter" : "Borrar filtro",
|
"Clear filter" : "Borrar filtro",
|
||||||
"View Modes" : "Modos de visualización",
|
|
||||||
"Toggle View Modes" : "Alternar modos de visualización",
|
|
||||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||||
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
||||||
"Hide card cover images" : "Ocultar la imagen principal de las tarjetas",
|
|
||||||
"Show card cover images" : "Mostrar la imagen principal de las tarjetas",
|
|
||||||
"Open details" : "Abrir detalles",
|
"Open details" : "Abrir detalles",
|
||||||
"Details" : "Detalles",
|
"Details" : "Detalles",
|
||||||
"Currently present people" : "Personas presentes actualmente",
|
"Currently present people" : "Personas presentes actualmente",
|
||||||
@@ -245,21 +235,13 @@ OC.L10N.register(
|
|||||||
"Choose attachment" : "Escoger adjunto",
|
"Choose attachment" : "Escoger adjunto",
|
||||||
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
||||||
"Set a due date" : "Fijar una fecha límite",
|
"Set a due date" : "Fijar una fecha límite",
|
||||||
"Add due date" : "Añadir fecha de vencimiento",
|
|
||||||
"Choose a date" : "Elige una fecha",
|
|
||||||
"Remove due date" : "Eliminar fecha límite",
|
"Remove due date" : "Eliminar fecha límite",
|
||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"Due at:" : "Vence el:",
|
|
||||||
"Not completed" : "No completado",
|
"Not completed" : "No completado",
|
||||||
"Unarchive card" : "Desarchivar tarjeta",
|
"Unarchive card" : "Desarchivar tarjeta",
|
||||||
"Archive card" : "Archivar tarjeta",
|
"Archive card" : "Archivar tarjeta",
|
||||||
"Select Date" : "Seleccione la fecha",
|
"Select Date" : "Seleccione la fecha",
|
||||||
"Set due date for later today" : "Establecer hoy como fecha de vencimiento, más tarde",
|
|
||||||
"Set due date for tomorrow" : "Establecer mañana como fecha de vencimiento",
|
|
||||||
"Set due date for this weekend" : "Establecer este fin de semana como fecha de vencimiento",
|
|
||||||
"Set due date for next week" : "Establecer la próxima semana como fecha de vencimiento",
|
|
||||||
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta...",
|
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta...",
|
||||||
"Create a new tag:" : "Crear una nueva etiqueta:",
|
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
||||||
"Todo items" : "Ítems pendientes",
|
"Todo items" : "Ítems pendientes",
|
||||||
@@ -268,7 +250,6 @@ OC.L10N.register(
|
|||||||
"Card details" : "Detalles de la tarjeta",
|
"Card details" : "Detalles de la tarjeta",
|
||||||
"Assign to me" : "Asignarme a mí",
|
"Assign to me" : "Asignarme a mí",
|
||||||
"Unassign myself" : "Desasignarme a mí mismo",
|
"Unassign myself" : "Desasignarme a mí mismo",
|
||||||
"Mark as not done" : "Marcar como no completado",
|
|
||||||
"Mark as done" : "Marcar como hecho",
|
"Mark as done" : "Marcar como hecho",
|
||||||
"Move card" : "Mover tarjeta",
|
"Move card" : "Mover tarjeta",
|
||||||
"Delete card" : "Eliminar tarjeta",
|
"Delete card" : "Eliminar tarjeta",
|
||||||
@@ -277,14 +258,6 @@ OC.L10N.register(
|
|||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
"Card deleted" : "Tarjeta borrada",
|
"Card deleted" : "Tarjeta borrada",
|
||||||
"seconds ago" : "hace unos segundos",
|
"seconds ago" : "hace unos segundos",
|
||||||
"Keyboard shortcuts" : "Atajos de teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo de teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Shift" : "Mayús",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Espacio",
|
|
||||||
"All boards" : "Todos los tableros",
|
"All boards" : "Todos los tableros",
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido contigo",
|
"Shared with you" : "Compartido contigo",
|
||||||
@@ -334,8 +307,6 @@ OC.L10N.register(
|
|||||||
"Open card" : "Abrir tarjeta",
|
"Open card" : "Abrir tarjeta",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"No upcoming cards" : "No hay tarjetas próximas",
|
"No upcoming cards" : "No hay tarjetas próximas",
|
||||||
"upcoming cards today" : "próximas tarjetas hoy",
|
|
||||||
"upcoming cards tomorrow" : "próximas tarjetas mañana",
|
|
||||||
"upcoming cards" : "próximas tarjetas",
|
"upcoming cards" : "próximas tarjetas",
|
||||||
"New card" : "Nueva tarjeta",
|
"New card" : "Nueva tarjeta",
|
||||||
"Due on {date}" : "Vence en {date}",
|
"Due on {date}" : "Vence en {date}",
|
||||||
@@ -354,6 +325,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Una <strong>descripción de tarjeta</strong> dentro de la app Deck ha cambiado",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Una <strong>descripción de tarjeta</strong> dentro de la app Deck ha cambiado",
|
||||||
"Timeline" : "Línea de tiempo",
|
"Timeline" : "Línea de tiempo",
|
||||||
|
"Add a new list" : "Añadir una lista nueva",
|
||||||
"Assign to users" : "Asignar a usuarios",
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Due date" : "Fecha límite",
|
"Due date" : "Fecha límite",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
|
|||||||
30
l10n/es.json
30
l10n/es.json
@@ -35,10 +35,6 @@
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} del tablero {board}",
|
||||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Has marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
|
||||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como completada en la lista {stack} del tablero {board}",
|
|
||||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Has marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
|
||||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcado la tarjeta {card} como no completada en la lista {stack} del tablero {board}",
|
|
||||||
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de {card} como {after}",
|
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de {card} como {after}",
|
||||||
@@ -70,8 +66,6 @@
|
|||||||
"A <strong>board, list or card</strong> was changed" : "Un <strong>tablero, lista o tarjeta</strong> fue cambiada",
|
"A <strong>board, list or card</strong> was changed" : "Un <strong>tablero, lista o tarjeta</strong> fue cambiada",
|
||||||
"A <strong>comment</strong> was created on a card" : "Un <strong>comentario</strong> ha sido creado en una tarjeta",
|
"A <strong>comment</strong> was created on a card" : "Un <strong>comentario</strong> ha sido creado en una tarjeta",
|
||||||
"A <strong>card description</strong> has been changed" : "Una <strong>descripción de tarjeta</strong> ha sido cambiada",
|
"A <strong>card description</strong> has been changed" : "Una <strong>descripción de tarjeta</strong> ha sido cambiada",
|
||||||
"Cards due today" : "Tarjetas que vencen hoy",
|
|
||||||
"Cards due tomorrow" : "Tarjetas que vencen mañana",
|
|
||||||
"Upcoming cards" : "Próximas tarjetas",
|
"Upcoming cards" : "Próximas tarjetas",
|
||||||
"Load more" : "Cargar más",
|
"Load more" : "Cargar más",
|
||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
@@ -150,13 +144,9 @@
|
|||||||
"Next 30 days" : "Siguientes 30 días",
|
"Next 30 days" : "Siguientes 30 días",
|
||||||
"No due date" : "Sin fecha de vencimiento",
|
"No due date" : "Sin fecha de vencimiento",
|
||||||
"Clear filter" : "Borrar filtro",
|
"Clear filter" : "Borrar filtro",
|
||||||
"View Modes" : "Modos de visualización",
|
|
||||||
"Toggle View Modes" : "Alternar modos de visualización",
|
|
||||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||||
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
"Toggle compact mode" : "Mostrar/ocultar modo compacto",
|
||||||
"Hide card cover images" : "Ocultar la imagen principal de las tarjetas",
|
|
||||||
"Show card cover images" : "Mostrar la imagen principal de las tarjetas",
|
|
||||||
"Open details" : "Abrir detalles",
|
"Open details" : "Abrir detalles",
|
||||||
"Details" : "Detalles",
|
"Details" : "Detalles",
|
||||||
"Currently present people" : "Personas presentes actualmente",
|
"Currently present people" : "Personas presentes actualmente",
|
||||||
@@ -243,21 +233,13 @@
|
|||||||
"Choose attachment" : "Escoger adjunto",
|
"Choose attachment" : "Escoger adjunto",
|
||||||
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
"Assign a due date to this card…" : "Asignar una fecha de caducidad a esta tarjeta…",
|
||||||
"Set a due date" : "Fijar una fecha límite",
|
"Set a due date" : "Fijar una fecha límite",
|
||||||
"Add due date" : "Añadir fecha de vencimiento",
|
|
||||||
"Choose a date" : "Elige una fecha",
|
|
||||||
"Remove due date" : "Eliminar fecha límite",
|
"Remove due date" : "Eliminar fecha límite",
|
||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"Due at:" : "Vence el:",
|
|
||||||
"Not completed" : "No completado",
|
"Not completed" : "No completado",
|
||||||
"Unarchive card" : "Desarchivar tarjeta",
|
"Unarchive card" : "Desarchivar tarjeta",
|
||||||
"Archive card" : "Archivar tarjeta",
|
"Archive card" : "Archivar tarjeta",
|
||||||
"Select Date" : "Seleccione la fecha",
|
"Select Date" : "Seleccione la fecha",
|
||||||
"Set due date for later today" : "Establecer hoy como fecha de vencimiento, más tarde",
|
|
||||||
"Set due date for tomorrow" : "Establecer mañana como fecha de vencimiento",
|
|
||||||
"Set due date for this weekend" : "Establecer este fin de semana como fecha de vencimiento",
|
|
||||||
"Set due date for next week" : "Establecer la próxima semana como fecha de vencimiento",
|
|
||||||
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta...",
|
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta...",
|
||||||
"Create a new tag:" : "Crear una nueva etiqueta:",
|
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
"Next week – {timeLocale}" : "Próxima semana – {timeLocale}",
|
||||||
"Todo items" : "Ítems pendientes",
|
"Todo items" : "Ítems pendientes",
|
||||||
@@ -266,7 +248,6 @@
|
|||||||
"Card details" : "Detalles de la tarjeta",
|
"Card details" : "Detalles de la tarjeta",
|
||||||
"Assign to me" : "Asignarme a mí",
|
"Assign to me" : "Asignarme a mí",
|
||||||
"Unassign myself" : "Desasignarme a mí mismo",
|
"Unassign myself" : "Desasignarme a mí mismo",
|
||||||
"Mark as not done" : "Marcar como no completado",
|
|
||||||
"Mark as done" : "Marcar como hecho",
|
"Mark as done" : "Marcar como hecho",
|
||||||
"Move card" : "Mover tarjeta",
|
"Move card" : "Mover tarjeta",
|
||||||
"Delete card" : "Eliminar tarjeta",
|
"Delete card" : "Eliminar tarjeta",
|
||||||
@@ -275,14 +256,6 @@
|
|||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
"Card deleted" : "Tarjeta borrada",
|
"Card deleted" : "Tarjeta borrada",
|
||||||
"seconds ago" : "hace unos segundos",
|
"seconds ago" : "hace unos segundos",
|
||||||
"Keyboard shortcuts" : "Atajos de teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo de teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Shift" : "Mayús",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Espacio",
|
|
||||||
"All boards" : "Todos los tableros",
|
"All boards" : "Todos los tableros",
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido contigo",
|
"Shared with you" : "Compartido contigo",
|
||||||
@@ -332,8 +305,6 @@
|
|||||||
"Open card" : "Abrir tarjeta",
|
"Open card" : "Abrir tarjeta",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"No upcoming cards" : "No hay tarjetas próximas",
|
"No upcoming cards" : "No hay tarjetas próximas",
|
||||||
"upcoming cards today" : "próximas tarjetas hoy",
|
|
||||||
"upcoming cards tomorrow" : "próximas tarjetas mañana",
|
|
||||||
"upcoming cards" : "próximas tarjetas",
|
"upcoming cards" : "próximas tarjetas",
|
||||||
"New card" : "Nueva tarjeta",
|
"New card" : "Nueva tarjeta",
|
||||||
"Due on {date}" : "Vence en {date}",
|
"Due on {date}" : "Vence en {date}",
|
||||||
@@ -352,6 +323,7 @@
|
|||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "Una <strong>descripción de tarjeta</strong> dentro de la app Deck ha cambiado",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "Una <strong>descripción de tarjeta</strong> dentro de la app Deck ha cambiado",
|
||||||
"Timeline" : "Línea de tiempo",
|
"Timeline" : "Línea de tiempo",
|
||||||
|
"Add a new list" : "Añadir una lista nueva",
|
||||||
"Assign to users" : "Asignar a usuarios",
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Due date" : "Fecha límite",
|
"Due date" : "Fecha límite",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
|
|||||||
@@ -48,10 +48,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -46,10 +46,6 @@
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -82,10 +82,6 @@ OC.L10N.register(
|
|||||||
"Card details" : "Detalles de la tarjeta",
|
"Card details" : "Detalles de la tarjeta",
|
||||||
"Select a list" : "Seleccionar una lista",
|
"Select a list" : "Seleccionar una lista",
|
||||||
"seconds ago" : "segundos",
|
"seconds ago" : "segundos",
|
||||||
"Keyboard shortcuts" : "Atajos de teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"All boards" : "Todos los Tableros",
|
"All boards" : "Todos los Tableros",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Deck settings" : "Configuración del Tablero",
|
"Deck settings" : "Configuración del Tablero",
|
||||||
|
|||||||
@@ -80,10 +80,6 @@
|
|||||||
"Card details" : "Detalles de la tarjeta",
|
"Card details" : "Detalles de la tarjeta",
|
||||||
"Select a list" : "Seleccionar una lista",
|
"Select a list" : "Seleccionar una lista",
|
||||||
"seconds ago" : "segundos",
|
"seconds ago" : "segundos",
|
||||||
"Keyboard shortcuts" : "Atajos de teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"All boards" : "Todos los Tableros",
|
"All boards" : "Todos los Tableros",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Deck settings" : "Configuración del Tablero",
|
"Deck settings" : "Configuración del Tablero",
|
||||||
|
|||||||
@@ -51,10 +51,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -49,10 +49,6 @@
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -52,10 +52,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -50,10 +50,6 @@
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -51,10 +51,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -49,10 +49,6 @@
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
@@ -51,10 +51,6 @@ OC.L10N.register(
|
|||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"(group)" : "(grupo)",
|
"(group)" : "(grupo)",
|
||||||
"seconds ago" : "hace segundos",
|
"seconds ago" : "hace segundos",
|
||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
|
||||||
"Action" : "Acción",
|
|
||||||
"Search" : "Buscar",
|
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
"Board details" : "Detalles del tablero",
|
"Board details" : "Detalles del tablero",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user