Compare commits
503 Commits
chore/noid
...
stable26
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f3c0989a8 | ||
|
|
f198571747 | ||
|
|
49225a7941 | ||
|
|
e919597d15 | ||
|
|
413d32f821 | ||
|
|
7593c300ea | ||
|
|
fe666b2cf1 | ||
|
|
9280ed3af8 | ||
|
|
d95e6f0867 | ||
|
|
3a33dfa1bc | ||
|
|
20059ef74f | ||
|
|
2f48a07f62 | ||
|
|
22aad75e88 | ||
|
|
01b607188d | ||
|
|
83bf9743c5 | ||
|
|
6ffbe152a4 | ||
|
|
ac365ea595 | ||
|
|
6700ef9465 | ||
|
|
b9deb3cb82 | ||
|
|
0aefcee205 | ||
|
|
2e74b284ef | ||
|
|
171ca95c51 | ||
|
|
20fffa08bd | ||
|
|
e14b841e3f | ||
|
|
8302d62d67 | ||
|
|
67d41d0071 | ||
|
|
fe11355b23 | ||
|
|
c712fa5bab | ||
|
|
549232c0a4 | ||
|
|
dd1aaa713b | ||
|
|
577bbf2c04 | ||
|
|
878142a01e | ||
|
|
7d34926759 | ||
|
|
b14aa93f33 | ||
|
|
1f3a10d8cb | ||
|
|
f64cb62021 | ||
|
|
5545a8ccc2 | ||
|
|
b6b9472651 | ||
|
|
628d467458 | ||
|
|
8fe7f3814c | ||
|
|
5eb3e65c54 | ||
|
|
444c5d13ba | ||
|
|
e2c2824d47 | ||
|
|
4357e16c9e | ||
|
|
ff9b2a59ad | ||
|
|
a4cfcf6fa0 | ||
|
|
c868b734f8 | ||
|
|
ab582e9f81 | ||
|
|
ef16d4a0e3 | ||
|
|
5b631c9208 | ||
|
|
672616d14a | ||
|
|
caa5464f88 | ||
|
|
78e96962c2 | ||
|
|
a07b0e1d66 | ||
|
|
c7b0b4c4a8 | ||
|
|
1e12559cb2 | ||
|
|
5a3fe55d1b | ||
|
|
95c274c59b | ||
|
|
dda1702afb | ||
|
|
632871ad4d | ||
|
|
6c1f4744cc | ||
|
|
df2beaf5a5 | ||
|
|
a91e0eb1ac | ||
|
|
25875f1c05 | ||
|
|
116e124b2d | ||
|
|
497d06c700 | ||
|
|
cea66746d7 | ||
|
|
c807fcf635 | ||
|
|
73b6053a5e | ||
|
|
2ab4766085 | ||
|
|
9d0f7d6f95 | ||
|
|
a833f4190a | ||
|
|
fa9f220834 | ||
|
|
a07cb8b9db | ||
|
|
833f1ed0df | ||
|
|
8ceb48baef | ||
|
|
33f8e33a9e | ||
|
|
da7af01577 | ||
|
|
6ac95eda6f | ||
|
|
57c8e9b51b | ||
|
|
a1bc2a34b1 | ||
|
|
3a243b4869 | ||
|
|
090e67f473 | ||
|
|
55049ce411 | ||
|
|
2444adf5a1 | ||
|
|
3f71b3e190 | ||
|
|
869ff5bb84 | ||
|
|
3741d53ebf | ||
|
|
6d37fd72d7 | ||
|
|
5447fe69cd | ||
|
|
219a316cb0 | ||
|
|
53bc3b75ef | ||
|
|
4313351ee5 | ||
|
|
70953909f8 | ||
|
|
10b7cd649d | ||
|
|
3aa3d57c3b | ||
|
|
004c55a661 | ||
|
|
4537ca72da | ||
|
|
7399cdc7c8 | ||
|
|
188b42e46f | ||
|
|
c5e4274503 | ||
|
|
62d4b387bb | ||
|
|
e97672a321 | ||
|
|
9c420cdaec | ||
|
|
a590f1407f | ||
|
|
7331d0a77a | ||
|
|
d4189cfb95 | ||
|
|
69fd17df43 | ||
|
|
0204d38b8f | ||
|
|
7081e617fa | ||
|
|
fd87c34a00 | ||
|
|
d6030a3f09 | ||
|
|
7494e35ffb | ||
|
|
9532a5f935 | ||
|
|
5953b8a829 | ||
|
|
2c67766914 | ||
|
|
a0d9c519ee | ||
|
|
f0594aac2e | ||
|
|
71a3c114db | ||
|
|
829189f97d | ||
|
|
2a7e14941e | ||
|
|
2f08b27798 | ||
|
|
a9408f4aa7 | ||
|
|
8e04fb9c09 | ||
|
|
8ef5f7c12a | ||
|
|
f707440080 | ||
|
|
d7ec9d7d0c | ||
|
|
e978a1b518 | ||
|
|
25ab49e0c0 | ||
|
|
56c5b5b7ef | ||
|
|
a82deb6210 | ||
|
|
e66db256cf | ||
|
|
b360d50129 | ||
|
|
8c4b5cc7e5 | ||
|
|
27b135753b | ||
|
|
c77058222a | ||
|
|
78f64f7c04 | ||
|
|
6cd5b1a0aa | ||
|
|
ea009fa1ee | ||
|
|
5d4a4d3520 | ||
|
|
40f98a5883 | ||
|
|
b6fb131cc9 | ||
|
|
cf88330910 | ||
|
|
e47c66a669 | ||
|
|
e7387acd24 | ||
|
|
4d18c1d361 | ||
|
|
cf36de3f10 | ||
|
|
911e7bbeb7 | ||
|
|
47204d57a8 | ||
|
|
cd40a1617b | ||
|
|
3cbf284e4f | ||
|
|
e0d8cbf1ac | ||
|
|
8d91224998 | ||
|
|
0413a56bcd | ||
|
|
6910158bb4 | ||
|
|
48ec850f46 | ||
|
|
e761133022 | ||
|
|
5b051acdae | ||
|
|
7bf07ee0ab | ||
|
|
0dd16e09a9 | ||
|
|
4f3590c067 | ||
|
|
acd6d0d956 | ||
|
|
e3a6adb430 | ||
|
|
6600f133a2 | ||
|
|
3cf976650d | ||
|
|
64fc71aa6d | ||
|
|
cebe7e7409 | ||
|
|
635c68da80 | ||
|
|
595c099b46 | ||
|
|
93411a10e7 | ||
|
|
c77477ab97 | ||
|
|
834e068844 | ||
|
|
f5e36b97d9 | ||
|
|
557e229f79 | ||
|
|
592e4db5bf | ||
|
|
77ab2fe709 | ||
|
|
81c06a8e76 | ||
|
|
f262911dad | ||
|
|
847d21b962 | ||
|
|
752c973082 | ||
|
|
3613316bf4 | ||
|
|
e77b1928b4 | ||
|
|
82c7d13049 | ||
|
|
9a629167d8 | ||
|
|
5714dc17f2 | ||
|
|
d6721cd3ec | ||
|
|
94af83966c | ||
|
|
042b84ff5c | ||
|
|
4d5c09334d | ||
|
|
3a27e94afa | ||
|
|
9243a43082 | ||
|
|
f56bf48446 | ||
|
|
4d5321bfc4 | ||
|
|
36b7f3b491 | ||
|
|
7346142ef2 | ||
|
|
b54e52ce7e | ||
|
|
0d18b82c04 | ||
|
|
ba4f8d13bc | ||
|
|
2a27789854 | ||
|
|
15d07a23e7 | ||
|
|
75ed083c93 | ||
|
|
517641eed2 | ||
|
|
90afe70022 | ||
|
|
c2c0324f58 | ||
|
|
9305a836f9 | ||
|
|
96a0176194 | ||
|
|
fbbbd372c2 | ||
|
|
26fabf2b37 | ||
|
|
240e230c5d | ||
|
|
0f804bb113 | ||
|
|
33faee97eb | ||
|
|
fa842d10df | ||
|
|
587e0f439a | ||
|
|
74c517690d | ||
|
|
6663a522f1 | ||
|
|
27025d2d8e | ||
|
|
58a9ff4e39 | ||
|
|
80ca8f4b15 | ||
|
|
fd838c52b0 | ||
|
|
b9eb84bf05 | ||
|
|
d4019016bc | ||
|
|
eecdcd7a95 | ||
|
|
1e5f8910c7 | ||
|
|
9b73f8436d | ||
|
|
d5750309fe | ||
|
|
5639683ad3 | ||
|
|
c25b8905e6 | ||
|
|
b5d18298f9 | ||
|
|
3d678819f8 | ||
|
|
6a6f9b1aee | ||
|
|
db143b8dd9 | ||
|
|
290f35434f | ||
|
|
6c681355c2 | ||
|
|
4501e98bc3 | ||
|
|
aaae6250ef | ||
|
|
6e9379fd6f | ||
|
|
c081102c13 | ||
|
|
a352aaf924 | ||
|
|
0bdba67953 | ||
|
|
f2e1a24b6b | ||
|
|
e8111ddd2d | ||
|
|
23dfb4debe | ||
|
|
795d68024c | ||
|
|
964acbf02b | ||
|
|
5d4bec2aa4 | ||
|
|
435367ccd4 | ||
|
|
640a4b6ece | ||
|
|
0728342c34 | ||
|
|
6891b80eb2 | ||
|
|
63eb8cf350 | ||
|
|
3a5d5bd449 | ||
|
|
5b81f4b614 | ||
|
|
4ee7203990 | ||
|
|
3039d6dce2 | ||
|
|
60df897bd2 | ||
|
|
b78f8a664f | ||
|
|
9ca442f959 | ||
|
|
fd9883207e | ||
|
|
073093c958 | ||
|
|
f98873093d | ||
|
|
f160ec63c0 | ||
|
|
f5648284f2 | ||
|
|
890893f9e3 | ||
|
|
748f8bee3f | ||
|
|
d93d4af44f | ||
|
|
e98188fbf8 | ||
|
|
2ae9f71483 | ||
|
|
8954569aee | ||
|
|
ef463f32e6 | ||
|
|
72b5e1baf6 | ||
|
|
185699f6d7 | ||
|
|
2f4f7d9fc0 | ||
|
|
9fdfbd7239 | ||
|
|
dc84f29e4f | ||
|
|
f77655ec35 | ||
|
|
5e2f6305fa | ||
|
|
3112301260 | ||
|
|
5da87e3a2e | ||
|
|
dc59f96e59 | ||
|
|
2cc4f133a5 | ||
|
|
14317ef4d5 | ||
|
|
37e459948c | ||
|
|
b507a83ea1 | ||
|
|
3e4c2eb324 | ||
|
|
e127b1ee77 | ||
|
|
3704b17f41 | ||
|
|
3fdd8a4a4d | ||
|
|
1750046eb0 | ||
|
|
e9ab1ae6fc | ||
|
|
f6783f14cd | ||
|
|
6aa824385c | ||
|
|
0a79232bfe | ||
|
|
530b3be82a | ||
|
|
efeb2278f4 | ||
|
|
a3891c792c | ||
|
|
07c219dfa7 | ||
|
|
221fa2eab6 | ||
|
|
3f6d42257d | ||
|
|
81ca7c887e | ||
|
|
99c858e134 | ||
|
|
6644b11af7 | ||
|
|
801259479d | ||
|
|
4dc27f4e7e | ||
|
|
42085fac7f | ||
|
|
a95dc22cba | ||
|
|
6b5bf3c7cd | ||
|
|
2f046a7c80 | ||
|
|
bd5bb01944 | ||
|
|
2ade022deb | ||
|
|
afc3b6c307 | ||
|
|
e396c17828 | ||
|
|
3134607498 | ||
|
|
d5975e6f64 | ||
|
|
b0e67abdc8 | ||
|
|
48bac5b089 | ||
|
|
7e7d4406b9 | ||
|
|
3dc1122c1f | ||
|
|
90f0298cdb | ||
|
|
f57102ef8c | ||
|
|
e75d7bfe1f | ||
|
|
0a78018dd2 | ||
|
|
5e441c72e4 | ||
|
|
5180c3599b | ||
|
|
bd610f1e75 | ||
|
|
fc55d571f8 | ||
|
|
d0234d1a23 | ||
|
|
505bbabe3c | ||
|
|
cc4a3936f4 | ||
|
|
7312e0bc4d | ||
|
|
4965a07ae9 | ||
|
|
47225513e0 | ||
|
|
2dea87d0cc | ||
|
|
fc5bc30400 | ||
|
|
cd711fbcc9 | ||
|
|
ac3ddf5666 | ||
|
|
b02556783e | ||
|
|
9718e523a1 | ||
|
|
e9d057bb3a | ||
|
|
e19d97232e | ||
|
|
67ae0b5fce | ||
|
|
687934fb44 | ||
|
|
0c13ab5060 | ||
|
|
5f6b77bd29 | ||
|
|
27a258bd58 | ||
|
|
777598de30 | ||
|
|
eeb33bd2d4 | ||
|
|
16c34b35dd | ||
|
|
1882cabff4 | ||
|
|
dd4142d47c | ||
|
|
0817e99c0d | ||
|
|
3cef62927a | ||
|
|
a66293eba2 | ||
|
|
0c6f4f7ab8 | ||
|
|
0e7df10872 | ||
|
|
52af5955a3 | ||
|
|
680ed918be | ||
|
|
d06a73b233 | ||
|
|
8d7d35d28a | ||
|
|
3be3c0cef1 | ||
|
|
c302eaf0dc | ||
|
|
257bad8c6c | ||
|
|
db25b83a06 | ||
|
|
7daaf97514 | ||
|
|
1baff63376 | ||
|
|
6fb5ccca15 | ||
|
|
efa097df5b | ||
|
|
0f9cb189a8 | ||
|
|
90ae3130c1 | ||
|
|
a3bfda27e8 | ||
|
|
572b1ba9fa | ||
|
|
e7ac681415 | ||
|
|
907de3c88d | ||
|
|
75f015759d | ||
|
|
c228277453 | ||
|
|
17e07fae08 | ||
|
|
88adbe8514 | ||
|
|
bf022a75e5 | ||
|
|
d21af86dc1 | ||
|
|
4a95e4a7a0 | ||
|
|
e830de6ca1 | ||
|
|
66676e09b0 | ||
|
|
c834b58c9a | ||
|
|
b9ae5e558d | ||
|
|
650ca34399 | ||
|
|
a001ad76b0 | ||
|
|
da93c1a4c6 | ||
|
|
c5cf9a9d95 | ||
|
|
e95936dbcd | ||
|
|
68e066a86c | ||
|
|
986a34176c | ||
|
|
0d941ac960 | ||
|
|
3d08e5c767 | ||
|
|
024fa24cc7 | ||
|
|
f24bda2de2 | ||
|
|
d54471eadd | ||
|
|
70e0247334 | ||
|
|
43c144a9cc | ||
|
|
5ec4e4796d | ||
|
|
9a2a3f0b4c | ||
|
|
8444b510ce | ||
|
|
e4e5c9a651 | ||
|
|
9e813f322a | ||
|
|
70144b9061 | ||
|
|
27af65731e | ||
|
|
2778e5940c | ||
|
|
e20f2eac97 | ||
|
|
a91262b153 | ||
|
|
084c3649b2 | ||
|
|
c6584b93f3 | ||
|
|
57ed57ce23 | ||
|
|
77a81d273a | ||
|
|
b2e3d75b75 | ||
|
|
4de693a402 | ||
|
|
08febcb29a | ||
|
|
c1b6cc1149 | ||
|
|
2f43aabb2e | ||
|
|
50293ffbb4 | ||
|
|
a52bc5dc3f | ||
|
|
5acf52370a | ||
|
|
85e46f2513 | ||
|
|
db485aa713 | ||
|
|
e8aaa7c165 | ||
|
|
281d6c2af7 | ||
|
|
c8714ec821 | ||
|
|
84b2036374 | ||
|
|
5c65bf9b00 | ||
|
|
237f832ad1 | ||
|
|
d019d80efa | ||
|
|
42a2ef39db | ||
|
|
ed7c9fbf05 | ||
|
|
4f4627a600 | ||
|
|
7900c73d90 | ||
|
|
0030b8c20c | ||
|
|
fbc7d3135d | ||
|
|
7350ae2ef3 | ||
|
|
9cebe7ac56 | ||
|
|
bfe45c5af4 | ||
|
|
c3c8faffea | ||
|
|
96508580fd | ||
|
|
ee7fcefd73 | ||
|
|
ac31ff6efe | ||
|
|
af6111b51e | ||
|
|
6700c903eb | ||
|
|
10e48aded1 | ||
|
|
e80ba82d77 | ||
|
|
48202e6d98 | ||
|
|
e3ba870577 | ||
|
|
56fae37144 | ||
|
|
af9177584c | ||
|
|
d850c744cd | ||
|
|
cd60f4bf80 | ||
|
|
eddb6fc460 | ||
|
|
6684023424 | ||
|
|
43bec159ff | ||
|
|
27d960340e | ||
|
|
3cda8eab77 | ||
|
|
aac5c1ff72 | ||
|
|
65c0fcfdc9 | ||
|
|
c71d54a26e | ||
|
|
0224da2127 | ||
|
|
3114e1a477 | ||
|
|
375c78271d | ||
|
|
2b903ecf7f | ||
|
|
9e256921ba | ||
|
|
d7e85ac4da | ||
|
|
4495fc3554 | ||
|
|
6996c862ce | ||
|
|
f81d98fb4b | ||
|
|
cd942a1dfb | ||
|
|
ddd15e7451 | ||
|
|
21908ef534 | ||
|
|
426f1a33dd | ||
|
|
713271d525 | ||
|
|
a43efce576 | ||
|
|
07f2fb7c28 | ||
|
|
72563feaf0 | ||
|
|
763a474d11 | ||
|
|
3977d71892 | ||
|
|
25f3da3603 | ||
|
|
2920ca8c86 | ||
|
|
da7e075ee9 | ||
|
|
c7341bed78 | ||
|
|
d9014903ac | ||
|
|
5dad6bb0b0 | ||
|
|
e7529e2d74 | ||
|
|
c0e07dc202 | ||
|
|
2619219618 | ||
|
|
87a0a4ed4f | ||
|
|
df01d8ef79 | ||
|
|
9f38e51d9b | ||
|
|
3f2e343541 | ||
|
|
ea6006bec0 | ||
|
|
1e625d3955 | ||
|
|
4b0a27d6b5 | ||
|
|
9cc38000fd | ||
|
|
3574abe0cb | ||
|
|
fb5aed2143 | ||
|
|
3506ac2a42 | ||
|
|
1f2f8fe001 | ||
|
|
97d9c4cc2c | ||
|
|
b169ecd0fe | ||
|
|
912376a99d | ||
|
|
3ec2ad99b1 |
@@ -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
|
|
||||||
27
.github/dependabot.yml
vendored
27
.github/dependabot.yml
vendored
@@ -11,10 +11,9 @@ updates:
|
|||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
- juliushaertl
|
- juliushaertl
|
||||||
- luka-nextcloud
|
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable29
|
target-branch: stable25
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
@@ -31,24 +30,7 @@ updates:
|
|||||||
- dependencies
|
- dependencies
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable28
|
target-branch: stable24
|
||||||
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: stable27
|
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
@@ -74,8 +56,6 @@ updates:
|
|||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
- juliushaertl
|
- juliushaertl
|
||||||
- luka-nextcloud
|
|
||||||
|
|
||||||
- package-ecosystem: composer
|
- package-ecosystem: composer
|
||||||
directory: "/tests/integration"
|
directory: "/tests/integration"
|
||||||
schedule:
|
schedule:
|
||||||
@@ -86,8 +66,6 @@ updates:
|
|||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
- juliushaertl
|
- juliushaertl
|
||||||
- luka-nextcloud
|
|
||||||
|
|
||||||
- package-ecosystem: github-actions
|
- package-ecosystem: github-actions
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
@@ -98,4 +76,3 @@ updates:
|
|||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
reviewers:
|
reviewers:
|
||||||
- juliushaertl
|
- juliushaertl
|
||||||
- luka-nextcloud
|
|
||||||
|
|||||||
10
.github/workflows/appbuild.yml
vendored
10
.github/workflows/appbuild.yml
vendored
@@ -13,18 +13,18 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [16.x]
|
node-version: [14.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.3
|
- uses: actions/checkout@v3
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.2
|
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
|
||||||
run: npm i -g npm@7
|
run: npm i -g npm@7
|
||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@2.30.2
|
uses: shivammathur/setup-php@2.24.0
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
php-version: '7.4'
|
||||||
tools: composer
|
tools: composer
|
||||||
@@ -37,7 +37,7 @@ jobs:
|
|||||||
uname -a
|
uname -a
|
||||||
RUST_BACKTRACE=1 krankerl --version
|
RUST_BACKTRACE=1 krankerl --version
|
||||||
RUST_BACKTRACE=1 krankerl package
|
RUST_BACKTRACE=1 krankerl package
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Deck app tarball
|
name: Deck app tarball
|
||||||
path: build/artifacts/deck.tar.gz
|
path: build/artifacts/deck.tar.gz
|
||||||
|
|||||||
27
.github/workflows/appstore-build-publish.yml
vendored
27
.github/workflows/appstore-build-publish.yml
vendored
@@ -10,7 +10,7 @@ on:
|
|||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PHP_VERSION: 8.2
|
PHP_VERSION: 8.1
|
||||||
|
|
||||||
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@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
|
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
|
||||||
with:
|
with:
|
||||||
require: write
|
require: write
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ jobs:
|
|||||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
with:
|
with:
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
|
|
||||||
@@ -44,19 +44,19 @@ jobs:
|
|||||||
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@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # 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: '^20'
|
fallbackNode: "^16"
|
||||||
fallbackNpm: '^9'
|
fallbackNpm: "^7"
|
||||||
|
|
||||||
- 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@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ 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@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
uses: shivammathur/setup-php@2.24.0 # v2
|
||||||
with:
|
with:
|
||||||
php-version: ${{ env.PHP_VERSION }}
|
php-version: ${{ env.PHP_VERSION }}
|
||||||
coverage: none
|
coverage: none
|
||||||
@@ -75,7 +75,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Check composer.json
|
- name: Check composer.json
|
||||||
id: check_composer
|
id: check_composer
|
||||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
|
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||||
with:
|
with:
|
||||||
files: "${{ env.APP_NAME }}/composer.json"
|
files: "${{ env.APP_NAME }}/composer.json"
|
||||||
|
|
||||||
@@ -88,8 +88,6 @@ jobs:
|
|||||||
- name: Build ${{ env.APP_NAME }}
|
- name: Build ${{ env.APP_NAME }}
|
||||||
# Skip if no package.json
|
# Skip if no package.json
|
||||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
env:
|
|
||||||
CYPRESS_INSTALL_BINARY: 0
|
|
||||||
run: |
|
run: |
|
||||||
cd ${{ env.APP_NAME }}
|
cd ${{ env.APP_NAME }}
|
||||||
npm ci
|
npm ci
|
||||||
@@ -97,7 +95,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Check Krankerl config
|
- name: Check Krankerl config
|
||||||
id: krankerl
|
id: krankerl
|
||||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
|
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||||
with:
|
with:
|
||||||
files: ${{ env.APP_NAME }}/krankerl.toml
|
files: ${{ env.APP_NAME }}/krankerl.toml
|
||||||
|
|
||||||
@@ -128,10 +126,9 @@ jobs:
|
|||||||
unzip latest-$NCVERSION.zip
|
unzip latest-$NCVERSION.zip
|
||||||
|
|
||||||
- name: Checkout server master fallback
|
- name: Checkout server master fallback
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # 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
|
||||||
|
|
||||||
@@ -151,7 +148,7 @@ jobs:
|
|||||||
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Attach tarball to github release
|
- name: Attach tarball to github release
|
||||||
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
|
uses: svenstaro/upload-release-action@7319e4733ec7a184d739a6f412c40ffc339b69c7 # v2
|
||||||
id: attach_to_release
|
id: attach_to_release
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # v2.1.1
|
||||||
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.1.3 # v3.5.2
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # 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@6e572f08c244e2f04f9beb85a943eb618218714d # 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@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # v2.1.1
|
||||||
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
@@ -19,17 +19,19 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [20.x]
|
node-version: [14.x]
|
||||||
# containers: [1, 2, 3]
|
# containers: [1, 2, 3]
|
||||||
php-versions: [ '8.1' ]
|
php-versions: [ '8.0' ]
|
||||||
databases: [ 'sqlite' ]
|
databases: [ 'sqlite' ]
|
||||||
server-versions: [ 'master' ]
|
server-versions: [ 'stable26' ]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.2
|
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.1.3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -50,19 +52,19 @@ jobs:
|
|||||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||||
|
|
||||||
- name: Checkout ${{ env.APP_NAME }}
|
- name: Checkout ${{ env.APP_NAME }}
|
||||||
uses: actions/checkout@v4.1.3
|
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.1.3
|
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.30.2
|
uses: shivammathur/setup-php@2.24.0
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||||
@@ -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 }}'
|
||||||
@@ -106,7 +108,7 @@ jobs:
|
|||||||
npm_package_name: ${{ env.APP_NAME }}
|
npm_package_name: ${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Upload test failure screenshots
|
- name: Upload test failure screenshots
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: Upload screenshots
|
name: Upload screenshots
|
||||||
@@ -114,7 +116,7 @@ jobs:
|
|||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
- name: Upload nextcloud logs
|
- name: Upload nextcloud logs
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: Upload nextcloud log
|
name: Upload nextcloud log
|
||||||
|
|||||||
4
.github/workflows/fixup.yml
vendored
4
.github/workflows/fixup.yml
vendored
@@ -3,7 +3,7 @@
|
|||||||
# 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:
|
||||||
@@ -28,6 +28,6 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Run check
|
- name: Run check
|
||||||
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
|
uses: xt0rted/block-autosquash-commits-action@79880c36b4811fe549cfffe20233df88876024e7 # v2
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
12
.github/workflows/integration.yml
vendored
12
.github/workflows/integration.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1']
|
php-versions: ['8.1']
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
server-versions: ['master']
|
server-versions: ['stable26']
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout server
|
- name: Checkout server
|
||||||
uses: actions/checkout@v4.1.3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/server
|
repository: nextcloud/server
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
@@ -66,19 +66,19 @@ jobs:
|
|||||||
cd build/integration && composer require --dev phpunit/phpunit:~9
|
cd build/integration && composer require --dev phpunit/phpunit:~9
|
||||||
|
|
||||||
- name: Checkout app
|
- name: Checkout app
|
||||||
uses: actions/checkout@v4.1.3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: apps/${{ env.APP_NAME }}
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
- name: Checkout activity
|
- name: Checkout activity
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||||
with:
|
with:
|
||||||
repository: nextcloud/activity
|
repository: nextcloud/activity
|
||||||
ref: ${{ matrix.server-versions }}
|
ref: ${{ matrix.server-versions }}
|
||||||
path: apps/activity
|
path: apps/activity
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.30.2
|
uses: shivammathur/setup-php@2.25.5
|
||||||
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: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu
|
||||||
@@ -114,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: |
|
||||||
|
|||||||
69
.github/workflows/lint-eslint.yml
vendored
69
.github/workflows/lint-eslint.yml
vendored
@@ -6,31 +6,11 @@
|
|||||||
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
|
# 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
|
# 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
|
name: Lint
|
||||||
|
|
||||||
on: pull_request
|
on:
|
||||||
|
pull_request:
|
||||||
permissions:
|
paths:
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
changes:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
src: ${{ steps.changes.outputs.src}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
|
||||||
id: changes
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
src:
|
|
||||||
- '.github/workflows/**'
|
- '.github/workflows/**'
|
||||||
- 'src/**'
|
- 'src/**'
|
||||||
- 'appinfo/info.xml'
|
- 'appinfo/info.xml'
|
||||||
@@ -43,27 +23,32 @@ jobs:
|
|||||||
- '**.ts'
|
- '**.ts'
|
||||||
- '**.vue'
|
- '**.vue'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
needs: changes
|
name: eslint
|
||||||
if: needs.changes.outputs.src != 'false'
|
|
||||||
|
|
||||||
name: NPM lint
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
|
|
||||||
- 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@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
|
||||||
id: versions
|
id: versions
|
||||||
with:
|
with:
|
||||||
fallbackNode: '^20'
|
fallbackNode: '^16'
|
||||||
fallbackNpm: '^9'
|
fallbackNpm: '^7'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -71,25 +56,7 @@ jobs:
|
|||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
env:
|
|
||||||
CYPRESS_INSTALL_BINARY: 0
|
|
||||||
PUPPETEER_SKIP_DOWNLOAD: true
|
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
|
|
||||||
summary:
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [changes, lint]
|
|
||||||
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
|
||||||
name: eslint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Summary status
|
|
||||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
|
||||||
|
|||||||
11
.github/workflows/lint-php-cs.yml
vendored
11
.github/workflows/lint-php-cs.yml
vendored
@@ -3,7 +3,7 @@
|
|||||||
# 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: Lint php-cs
|
name: Lint
|
||||||
|
|
||||||
on: pull_request
|
on: pull_request
|
||||||
|
|
||||||
@@ -22,14 +22,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
|
|
||||||
- name: Set up php8.2
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
uses: shivammathur/setup-php@2.24.0 # v2
|
||||||
with:
|
with:
|
||||||
php-version: 8.2
|
php-version: 8.1
|
||||||
coverage: none
|
coverage: none
|
||||||
ini-file: development
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
17
.github/workflows/lint-php.yml
vendored
17
.github/workflows/lint-php.yml
vendored
@@ -3,9 +3,15 @@
|
|||||||
# 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: Lint php
|
name: Lint
|
||||||
|
|
||||||
on: pull_request
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@@ -19,20 +25,19 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: [ '8.1', '8.2', '8.3' ]
|
php-versions: [ "8.0", "8.1", "8.2" ]
|
||||||
|
|
||||||
name: php-lint
|
name: php-lint
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
uses: shivammathur/setup-php@2.24.0 # v2
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
coverage: none
|
coverage: none
|
||||||
ini-file: development
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
14
.github/workflows/lint-stylelint.yml
vendored
14
.github/workflows/lint-stylelint.yml
vendored
@@ -3,7 +3,7 @@
|
|||||||
# 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: Lint stylelint
|
name: Lint
|
||||||
|
|
||||||
on: pull_request
|
on: pull_request
|
||||||
|
|
||||||
@@ -22,17 +22,17 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
|
|
||||||
- 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@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
|
||||||
id: versions
|
id: versions
|
||||||
with:
|
with:
|
||||||
fallbackNode: '^20'
|
fallbackNode: '^16'
|
||||||
fallbackNpm: '^9'
|
fallbackNpm: '^7'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -40,8 +40,6 @@ jobs:
|
|||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
env:
|
|
||||||
CYPRESS_INSTALL_BINARY: 0
|
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
|
|||||||
64
.github/workflows/nightly.yml
vendored
Normal file
64
.github/workflows/nightly.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
name: Package nightly
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- nightly
|
||||||
|
schedule:
|
||||||
|
- cron: '0 1 * * *' # run at 2 AM UTC
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Use Node.js ${{ 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: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@2.24.0
|
||||||
|
with:
|
||||||
|
php-version: '7.4'
|
||||||
|
tools: composer
|
||||||
|
- name: install dependencies
|
||||||
|
run: |
|
||||||
|
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
|
||||||
|
sudo dpkg -i krankerl_0.12.2_amd64.deb
|
||||||
|
- name: package
|
||||||
|
run: |
|
||||||
|
uname -a
|
||||||
|
RUST_BACKTRACE=1 krankerl --version
|
||||||
|
RUST_BACKTRACE=1 krankerl package
|
||||||
|
- name: Set git config
|
||||||
|
run: |
|
||||||
|
git config --local user.email "action@github.com"
|
||||||
|
git config --local user.name "GitHub Action"
|
||||||
|
git tag -f nightly
|
||||||
|
- name: Push tag
|
||||||
|
uses: juliushaertl/github-push-action@main
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
tags: true
|
||||||
|
force: true
|
||||||
|
- name: Create Release
|
||||||
|
id: create_release
|
||||||
|
uses: juliushaertl/action-release@main
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
tag: nightly
|
||||||
|
files: ./build/artifacts/deck.tar.gz
|
||||||
|
name: Nightly build
|
||||||
|
body: |
|
||||||
|
Nightly release of deck
|
||||||
|
draft: false
|
||||||
|
prerelease: true
|
||||||
|
overwrite: true
|
||||||
4
.github/workflows/nodejs.yml
vendored
4
.github/workflows/nodejs.yml
vendored
@@ -12,9 +12,9 @@ jobs:
|
|||||||
node-version: [14.x]
|
node-version: [14.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.3
|
- uses: actions/checkout@v3
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v4.0.2
|
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
|
||||||
|
|||||||
73
.github/workflows/npm-audit-fix.yml
vendored
73
.github/workflows/npm-audit-fix.yml
vendored
@@ -1,73 +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', 'stable29', 'stable28', 'stable27']
|
|
||||||
|
|
||||||
name: npm-audit-fix-${{ matrix.branches }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
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: '^20'
|
|
||||||
fallbackNpm: '^9'
|
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
|
||||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # 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()
|
|
||||||
env:
|
|
||||||
CYPRESS_INSTALL_BINARY: 0
|
|
||||||
run: |
|
|
||||||
npm ci
|
|
||||||
npm run build --if-present
|
|
||||||
|
|
||||||
- name: Create Pull Request
|
|
||||||
if: always()
|
|
||||||
uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 # 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
|
|
||||||
185
.github/workflows/phpunit-mysql.yml
vendored
185
.github/workflows/phpunit-mysql.yml
vendored
@@ -1,185 +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: PHPUnit MySQL
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
matrix:
|
|
||||||
runs-on: ubuntu-latest-low
|
|
||||||
outputs:
|
|
||||||
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout app
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
|
|
||||||
- name: Get version matrix
|
|
||||||
id: versions
|
|
||||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
|
||||||
with:
|
|
||||||
matrix: '{"mysql-versions": ["8.1"]}'
|
|
||||||
|
|
||||||
changes:
|
|
||||||
runs-on: ubuntu-latest-low
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
src: ${{ steps.changes.outputs.src}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
|
||||||
id: changes
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
src:
|
|
||||||
- '.github/workflows/**'
|
|
||||||
- 'appinfo/**'
|
|
||||||
- 'lib/**'
|
|
||||||
- 'templates/**'
|
|
||||||
- 'tests/**'
|
|
||||||
- 'vendor/**'
|
|
||||||
- 'vendor-bin/**'
|
|
||||||
- '.php-cs-fixer.dist.php'
|
|
||||||
- 'composer.json'
|
|
||||||
- 'composer.lock'
|
|
||||||
|
|
||||||
phpunit-mysql:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
needs: [changes, matrix]
|
|
||||||
if: needs.changes.outputs.src != 'false'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
|
||||||
|
|
||||||
name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
services:
|
|
||||||
mysql:
|
|
||||||
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
|
|
||||||
ports:
|
|
||||||
- 4444:3306/tcp
|
|
||||||
env:
|
|
||||||
MYSQL_ROOT_PASSWORD: rootpassword
|
|
||||||
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set app env
|
|
||||||
run: |
|
|
||||||
# Split and keep last
|
|
||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Checkout server
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
repository: nextcloud/server
|
|
||||||
ref: ${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
- name: Checkout app
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
path: apps/${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php-versions }}
|
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
|
|
||||||
coverage: none
|
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Enable ONLY_FULL_GROUP_BY MySQL option
|
|
||||||
run: |
|
|
||||||
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
|
||||||
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
|
||||||
|
|
||||||
- name: Check composer file existence
|
|
||||||
id: check_composer
|
|
||||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
|
||||||
with:
|
|
||||||
files: apps/${{ env.APP_NAME }}/composer.json
|
|
||||||
|
|
||||||
- name: Set up dependencies
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_composer.outputs.files_exists == 'true'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer i
|
|
||||||
|
|
||||||
- name: Set up Nextcloud
|
|
||||||
env:
|
|
||||||
DB_PORT: 4444
|
|
||||||
run: |
|
|
||||||
mkdir data
|
|
||||||
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
|
||||||
./occ app:enable --force ${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Check PHPUnit script is defined
|
|
||||||
id: check_phpunit
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: PHPUnit
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_phpunit.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:unit
|
|
||||||
|
|
||||||
- name: Check PHPUnit integration script is defined
|
|
||||||
id: check_integration
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: Run Nextcloud
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
run: php -S localhost:8080 &
|
|
||||||
|
|
||||||
- name: PHPUnit integration
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:integration
|
|
||||||
|
|
||||||
- name: Print logs
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
cat data/nextcloud.log
|
|
||||||
|
|
||||||
- name: Skipped
|
|
||||||
# Fail the action when neither unit nor integration tests ran
|
|
||||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
|
||||||
run: |
|
|
||||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
summary:
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
runs-on: ubuntu-latest-low
|
|
||||||
needs: [changes, phpunit-mysql]
|
|
||||||
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
name: phpunit-mysql-summary
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Summary status
|
|
||||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
|
|
||||||
168
.github/workflows/phpunit-pgsql.yml
vendored
168
.github/workflows/phpunit-pgsql.yml
vendored
@@ -1,168 +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: PHPUnit pgsql
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
changes:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
src: ${{ steps.changes.outputs.src}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
|
||||||
id: changes
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
src:
|
|
||||||
- '.github/workflows/**'
|
|
||||||
- 'appinfo/**'
|
|
||||||
- 'lib/**'
|
|
||||||
- 'templates/**'
|
|
||||||
- 'tests/**'
|
|
||||||
- 'vendor/**'
|
|
||||||
- 'vendor-bin/**'
|
|
||||||
- '.php-cs-fixer.dist.php'
|
|
||||||
- 'composer.json'
|
|
||||||
- 'composer.lock'
|
|
||||||
|
|
||||||
phpunit-pgsql:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
needs: changes
|
|
||||||
if: needs.changes.outputs.src != 'false'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
php-versions: ['8.2']
|
|
||||||
server-versions: ['master']
|
|
||||||
|
|
||||||
services:
|
|
||||||
postgres:
|
|
||||||
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
|
|
||||||
ports:
|
|
||||||
- 4444:5432/tcp
|
|
||||||
env:
|
|
||||||
POSTGRES_USER: root
|
|
||||||
POSTGRES_PASSWORD: rootpassword
|
|
||||||
POSTGRES_DB: nextcloud
|
|
||||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set app env
|
|
||||||
run: |
|
|
||||||
# Split and keep last
|
|
||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Checkout server
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
repository: nextcloud/server
|
|
||||||
ref: ${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
- name: Checkout app
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
path: apps/${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php-versions }}
|
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
|
||||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
|
|
||||||
coverage: none
|
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Check composer file existence
|
|
||||||
id: check_composer
|
|
||||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
|
|
||||||
with:
|
|
||||||
files: apps/${{ env.APP_NAME }}/composer.json
|
|
||||||
|
|
||||||
- name: Set up dependencies
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_composer.outputs.files_exists == 'true'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer i
|
|
||||||
|
|
||||||
- name: Set up Nextcloud
|
|
||||||
env:
|
|
||||||
DB_PORT: 4444
|
|
||||||
run: |
|
|
||||||
mkdir data
|
|
||||||
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
|
||||||
./occ app:enable --force ${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Check PHPUnit script is defined
|
|
||||||
id: check_phpunit
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: PHPUnit
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_phpunit.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:unit
|
|
||||||
|
|
||||||
- name: Check PHPUnit integration script is defined
|
|
||||||
id: check_integration
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: Run Nextcloud
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
run: php -S localhost:8080 &
|
|
||||||
|
|
||||||
- name: PHPUnit integration
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:integration
|
|
||||||
|
|
||||||
- name: Print logs
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
cat data/nextcloud.log
|
|
||||||
|
|
||||||
- name: Skipped
|
|
||||||
# Fail the action when neither unit nor integration tests ran
|
|
||||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
|
||||||
run: |
|
|
||||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
summary:
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [changes, phpunit-pgsql]
|
|
||||||
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
name: phpunit-pgsql-summary
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Summary status
|
|
||||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
|
|
||||||
157
.github/workflows/phpunit-sqlite.yml
vendored
157
.github/workflows/phpunit-sqlite.yml
vendored
@@ -1,157 +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: PHPUnit sqlite
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
changes:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
src: ${{ steps.changes.outputs.src}}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
|
||||||
id: changes
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
src:
|
|
||||||
- '.github/workflows/**'
|
|
||||||
- 'appinfo/**'
|
|
||||||
- 'lib/**'
|
|
||||||
- 'templates/**'
|
|
||||||
- 'tests/**'
|
|
||||||
- 'vendor/**'
|
|
||||||
- 'vendor-bin/**'
|
|
||||||
- '.php-cs-fixer.dist.php'
|
|
||||||
- 'composer.json'
|
|
||||||
- 'composer.lock'
|
|
||||||
|
|
||||||
phpunit-sqlite:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
needs: changes
|
|
||||||
if: needs.changes.outputs.src != 'false'
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
php-versions: ['8.2']
|
|
||||||
server-versions: ['master']
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set app env
|
|
||||||
run: |
|
|
||||||
# Split and keep last
|
|
||||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Checkout server
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
repository: nextcloud/server
|
|
||||||
ref: ${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
- name: Checkout app
|
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
|
||||||
path: apps/${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php-versions }}
|
|
||||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
|
||||||
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
|
|
||||||
ini-file: development
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Check composer file existence
|
|
||||||
id: check_composer
|
|
||||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
|
|
||||||
with:
|
|
||||||
files: apps/${{ env.APP_NAME }}/composer.json
|
|
||||||
|
|
||||||
- name: Set up dependencies
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_composer.outputs.files_exists == 'true'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer i
|
|
||||||
|
|
||||||
- name: Set up Nextcloud
|
|
||||||
env:
|
|
||||||
DB_PORT: 4444
|
|
||||||
run: |
|
|
||||||
mkdir data
|
|
||||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
|
||||||
./occ app:enable --force ${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Check PHPUnit script is defined
|
|
||||||
id: check_phpunit
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: PHPUnit
|
|
||||||
# Only run if phpunit config file exists
|
|
||||||
if: steps.check_phpunit.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:unit
|
|
||||||
|
|
||||||
- name: Check PHPUnit integration script is defined
|
|
||||||
id: check_integration
|
|
||||||
continue-on-error: true
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: |
|
|
||||||
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
|
||||||
|
|
||||||
- name: Run Nextcloud
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
run: php -S localhost:8080 &
|
|
||||||
|
|
||||||
- name: PHPUnit integration
|
|
||||||
# Only run if phpunit integration config file exists
|
|
||||||
if: steps.check_integration.outcome == 'success'
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer run test:integration
|
|
||||||
|
|
||||||
- name: Print logs
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
cat data/nextcloud.log
|
|
||||||
|
|
||||||
- name: Skipped
|
|
||||||
# Fail the action when neither unit nor integration tests ran
|
|
||||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
|
||||||
run: |
|
|
||||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
summary:
|
|
||||||
permissions:
|
|
||||||
contents: none
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [changes, phpunit-sqlite]
|
|
||||||
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
name: phpunit-sqlite-summary
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Summary status
|
|
||||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
|
|
||||||
102
.github/workflows/phpunit.yml
vendored
Normal file
102
.github/workflows/phpunit.yml
vendored
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
name: PHPUnit
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/phpunit.yml'
|
||||||
|
- 'appinfo/**'
|
||||||
|
- 'lib/**'
|
||||||
|
- 'templates/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
env:
|
||||||
|
APP_NAME: deck
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
integration:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
php-versions: ['8.0', '8.1', '8.2']
|
||||||
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
|
server-versions: ['stable26']
|
||||||
|
|
||||||
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:14
|
||||||
|
ports:
|
||||||
|
- 4445:5432/tcp
|
||||||
|
env:
|
||||||
|
POSTGRES_USER: root
|
||||||
|
POSTGRES_PASSWORD: rootpassword
|
||||||
|
POSTGRES_DB: nextcloud
|
||||||
|
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||||
|
mysql:
|
||||||
|
image: mariadb:10.5
|
||||||
|
ports:
|
||||||
|
- 4444:3306/tcp
|
||||||
|
env:
|
||||||
|
MYSQL_ROOT_PASSWORD: rootpassword
|
||||||
|
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout server
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: nextcloud/server
|
||||||
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
- name: Checkout submodules
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
||||||
|
git submodule sync --recursive
|
||||||
|
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||||
|
|
||||||
|
- name: Checkout app
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@2.24.0
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php-versions }}
|
||||||
|
tools: phpunit
|
||||||
|
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Set up PHPUnit
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer i
|
||||||
|
|
||||||
|
- name: Set up Nextcloud
|
||||||
|
run: |
|
||||||
|
if [ "${{ matrix.databases }}" = "mysql" ]; then
|
||||||
|
export DB_PORT=4444
|
||||||
|
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
|
||||||
|
export DB_PORT=4445
|
||||||
|
fi
|
||||||
|
mkdir data
|
||||||
|
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||||
|
./occ app:enable --force ${{ env.APP_NAME }}
|
||||||
|
php -S localhost:8080 &
|
||||||
|
|
||||||
|
- name: PHPUnit
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
|
||||||
|
|
||||||
|
- name: PHPUnit integration
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
|
||||||
34
.github/workflows/pr-feedback.yml
vendored
34
.github/workflows/pr-feedback.yml
vendored
@@ -1,34 +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: 'Ask for feedback on PRs'
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '30 1 * * *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pr-feedback:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
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 review 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 review 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 }},nextcloud-command,nextcloud-android-bot,skjnldsv,datenangebot"
|
|
||||||
exempt-bots: true
|
|
||||||
19
.github/workflows/psalm.yml
vendored
19
.github/workflows/psalm.yml
vendored
@@ -5,7 +5,13 @@
|
|||||||
|
|
||||||
name: Static analysis
|
name: Static analysis
|
||||||
|
|
||||||
on: pull_request
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
- stable*
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: psalm-${{ github.head_ref || github.run_id }}
|
group: psalm-${{ github.head_ref || github.run_id }}
|
||||||
@@ -15,17 +21,16 @@ jobs:
|
|||||||
static-analysis:
|
static-analysis:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
name: static-psalm-analysis
|
name: Nextcloud
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
|
|
||||||
- name: Set up php8.2
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
uses: shivammathur/setup-php@2.24.0 # v2
|
||||||
with:
|
with:
|
||||||
php-version: 8.2
|
php-version: 8.1
|
||||||
coverage: none
|
coverage: none
|
||||||
ini-file: development
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +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: Auto approve nextcloud/ocp
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- master
|
|
||||||
- stable*
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
auto-approve-merge:
|
|
||||||
if: github.actor == 'nextcloud-command'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
# for hmarr/auto-approve-action to approve PRs
|
|
||||||
pull-requests: write
|
|
||||||
# for alexwilson/enable-github-automerge-action to approve PRs
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: mdecoleman/pr-branch-name@bab4c71506bcd299fb350af63bb8e53f2940a599 # v2.0.0
|
|
||||||
id: branchname
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
# GitHub actions bot approve
|
|
||||||
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
|
|
||||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
# Enable GitHub auto merge
|
|
||||||
- name: Auto merge
|
|
||||||
uses: alexwilson/enable-github-automerge-action@5a508f46e70d6723b62d752352280eb6f7abf9d0 # main
|
|
||||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
68
.github/workflows/update-nextcloud-ocp.yml
vendored
68
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -17,90 +17,42 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
branches: ["master", "stable25", "stable24"]
|
||||||
|
|
||||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- id: checkout
|
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||||
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
|
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
submodules: true
|
submodules: true
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Set up php8.2
|
- name: Set up php8.1
|
||||||
if: steps.checkout.outcome == 'success'
|
uses: shivammathur/setup-php@2.24.0 # v2
|
||||||
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2
|
|
||||||
with:
|
with:
|
||||||
php-version: 8.2
|
php-version: 8.1
|
||||||
# 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:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Read codeowners
|
|
||||||
if: steps.checkout.outcome == 'success'
|
|
||||||
id: codeowners
|
|
||||||
run: |
|
|
||||||
grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Composer install
|
- name: Composer install
|
||||||
if: steps.checkout.outcome == 'success'
|
|
||||||
run: composer install
|
run: composer install
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
- name: Composer update nextcloud/ocp
|
||||||
id: update_branch
|
|
||||||
if: ${{ steps.checkout.outcome == 'success' && 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: Raise on issue on failure
|
- name: Reset checkout dirs
|
||||||
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
|
|
||||||
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
|
|
||||||
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
|
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
|
||||||
id: update_main
|
|
||||||
if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
|
|
||||||
run: composer require --dev nextcloud/ocp:dev-master
|
|
||||||
|
|
||||||
- name: Raise on issue on failure
|
|
||||||
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
|
|
||||||
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
|
|
||||||
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
|
|
||||||
|
|
||||||
- name: Reset checkout 3rdparty
|
|
||||||
if: steps.checkout.outcome == 'success'
|
|
||||||
run: |
|
run: |
|
||||||
git clean -f 3rdparty
|
git clean -f 3rdparty
|
||||||
git checkout 3rdparty
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Reset checkout vendor
|
|
||||||
if: steps.checkout.outcome == 'success'
|
|
||||||
run: |
|
|
||||||
git clean -f vendor
|
git clean -f vendor
|
||||||
git checkout vendor
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Reset checkout vendor-bin
|
|
||||||
if: steps.checkout.outcome == 'success'
|
|
||||||
run: |
|
|
||||||
git clean -f vendor-bin
|
git clean -f vendor-bin
|
||||||
git checkout vendor-bin
|
git checkout 3rdparty vendor vendor-bin
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
if: steps.checkout.outcome == 'success'
|
uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04 # v3
|
||||||
uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 # v3
|
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
|
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
|
||||||
|
|||||||
193
CHANGELOG.md
193
CHANGELOG.md
@@ -1,147 +1,102 @@
|
|||||||
# 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.13.0-beta.1
|
## 1.9.7
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- feat: Rename to teams @juliushaertl [#5611](https://github.com/nextcloud/deck/pull/5611)
|
|
||||||
- feat: Implement a team resource provider @juliushaertl [#5625](https://github.com/nextcloud/deck/pull/5625)
|
|
||||||
- Interactive board widget @juliushaertl [#5630](https://github.com/nextcloud/deck/pull/5630)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fix deleted card/board issues @juliushaertl [#5423](https://github.com/nextcloud/deck/pull/5423)
|
- fix(PermissionService#getPermissions): Catch exceptions from getBoard method @backportbot[bot] [#5548](https://github.com/nextcloud/deck/pull/5548)
|
||||||
- Fixing #5451 @mintsoft [#5455](https://github.com/nextcloud/deck/pull/5455)
|
- fix(activity): Fix permission checks when rendering activities in bac… @backportbot[bot] [#5545](https://github.com/nextcloud/deck/pull/5545)
|
||||||
- fix: Add debounce to update due date @juliushaertl [#5458](https://github.com/nextcloud/deck/pull/5458)
|
|
||||||
- fix(done): Mark card as undone when updating card @stefan-niedermann [#5491](https://github.com/nextcloud/deck/pull/5491)
|
## 1.9.6
|
||||||
- fixed sorting for upcoming cards @elzody [#5493](https://github.com/nextcloud/deck/pull/5493)
|
|
||||||
- fix(PermissionService#getPermissions): Catch exceptions from getBoard method @marcelklehr [#5542](https://github.com/nextcloud/deck/pull/5542)
|
### Fixed
|
||||||
- fix(activity): Fix permission checks when rendering activities in bac… @nickvergessen [#5533](https://github.com/nextcloud/deck/pull/5533)
|
|
||||||
- fix: Safeguard sync requests to hopefully not spam then server @juliushaertl [#5590](https://github.com/nextcloud/deck/pull/5590)
|
- fix: allow null label colors in trello json importer @juliushaertl [#5439](https://github.com/nextcloud/deck/pull/5439)
|
||||||
- fix: card move dialog auto close @luka-nextcloud [#5537](https://github.com/nextcloud/deck/pull/5537)
|
- Fix small issues around delete/undo [#5421](https://github.com/nextcloud/deck/pull/5421)
|
||||||
- also filter by storage when getting shares in folder @icewind1991 [#5452](https://github.com/nextcloud/deck/pull/5452)
|
- Fix deleted card/board issues @juliushaertl [#5443](https://github.com/nextcloud/deck/pull/5443)
|
||||||
|
|
||||||
|
## 1.9.5
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- fix: Use text content as result for comments [#5298](https://github.com/nextcloud/deck/pull/5298)
|
||||||
|
|
||||||
|
## 1.9.4
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- fix: open card in modal on main route [#5289](https://github.com/nextcloud/deck/pull/5289)
|
||||||
|
|
||||||
|
## 1.9.3
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Import of deck JSON data through occ @juliushaertl [#5004](https://github.com/nextcloud/deck/pull/5004)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Prevent tag itself being edit button if user lacks permissions [#4766](https://github.com/nextcloud/deck/pull/4766)
|
||||||
|
- fix: Allow dynamic autoloading for classes added during upgrade [#4805](https://github.com/nextcloud/deck/pull/4805)
|
||||||
|
- Fix(occ): set user id for permission sevice from board service [#4814](https://github.com/nextcloud/deck/pull/4814)
|
||||||
|
- fix(notification): Prevent null in parameters [#4910](https://github.com/nextcloud/deck/pull/4910)
|
||||||
|
- fix: Split query to fetch board ids to avoid slow query join @juliushaertl [#4950](https://github.com/nextcloud/deck/pull/4950)
|
||||||
|
- fix: export doesn't handle lists with no cards [#5117](https://github.com/nextcloud/deck/pull/5117)
|
||||||
|
- Ensure `$boardId` is an integer [#4774](https://github.com/nextcloud/deck/pull/4774)
|
||||||
|
- fix: execute return int for export command [#4812](https://github.com/nextcloud/deck/pull/4812)
|
||||||
|
- fix: crash when leaving out system parameter [#4832](https://github.com/nextcloud/deck/pull/4832)
|
||||||
|
- Remove duplicate button [#5044](https://github.com/nextcloud/deck/pull/5044)
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
- fix(i18n): Improved wording @rakekniven [#5496](https://github.com/nextcloud/deck/pull/5496)
|
- Dependency updates
|
||||||
|
|
||||||
## 1.12.0-beta.3
|
## 1.9.2
|
||||||
|
|
||||||
### 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 [#4665](https://github.com/nextcloud/deck/pull/4665)
|
||||||
- Fix upcoming cards and label input @juliushaertl [#5290](https://github.com/nextcloud/deck/pull/5290)
|
|
||||||
|
|
||||||
## 1.12.0-beta.2
|
|
||||||
|
|
||||||
### Added
|
## 1.9.1
|
||||||
|
|
||||||
- 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)
|
- Gracefully handle not found card for a share [#4567](https://github.com/nextcloud/deck/pull/4567)
|
||||||
- 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 [#4562](https://github.com/nextcloud/deck/pull/4562)
|
||||||
- fix: Expose card actions in the card menu (fix #3180) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- allow user to toggle visibility of the calendar for a deck board [#4625](https://github.com/nextcloud/deck/pull/4625)
|
||||||
- fix: Use full card menu everywhere (fix #3993) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- fix: Append datetime picker to body to avoid cut off [#4644](https://github.com/nextcloud/deck/pull/4644)
|
||||||
- fix: Detect end of the activity responses (fix #3395) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- chore: Remove unused @nextcloud/vue-dashboard @juliushaertl [#4650](https://github.com/nextcloud/deck/pull/4650)
|
||||||
- fix: Add title with absolute date time to activity (fix #4508, fix #2122) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- fix: Bring back overdue column by removing faulty condition [#4662](https://github.com/nextcloud/deck/pull/4662)
|
||||||
- fix: Disable dragging archived cards (fix #3271) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Fix : Overlapping expiry dates on tags [#4537](https://github.com/nextcloud/deck/pull/4537)
|
||||||
- fix: Hide unavailable card menu entries for archived card view [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Better display of card dates (creation and change dates) [#4619](https://github.com/nextcloud/deck/pull/4619)
|
||||||
- fix: Use localCompare to sort labels (fix #2736) [#5280](https://github.com/nextcloud/deck/pull/5280)
|
- Update dependencies
|
||||||
- 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.9.0
|
||||||
|
|
||||||
- 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
|
||||||
|
|
||||||
- Added ability to mark a card as done @TehThanos [#4137](https://github.com/nextcloud/deck/pull/4137)
|
- Live updates on board collaboration using notify_push @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
|
||||||
- Card Cover Images @jszeibert [#5035](https://github.com/nextcloud/deck/pull/5035)
|
- Basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
|
||||||
- Upcoming/Today/Tomorrow dashboard widgets @BKapelari [#2658](https://github.com/nextcloud/deck/pull/2658)
|
- Use text as editor if available [#4399](https://github.com/nextcloud/deck/pull/4399)
|
||||||
- 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
|
|
||||||
|
|
||||||
- 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.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)
|
- 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)
|
- Tag creation from card view @juliushaertl [#4344](https://github.com/nextcloud/deck/pull/4344)
|
||||||
|
- Optimize query performance with larger board or card count @[#4452](https://github.com/nextcloud/deck/pull/4452)
|
||||||
|
- Export Board as CSV @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
|
||||||
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- fix(cards): Fix card sizing by limiting too wide style rules [#4521](https://github.com/nextcloud/deck/pull/4521)
|
||||||
|
- fix(references): Mute NoPermissionException as it is expected to happen for references [#4516](https://github.com/nextcloud/deck/pull/4516)
|
||||||
|
- fix(API): Fix board API details parameter to work as expected [#4519](https://github.com/nextcloud/deck/pull/4519)
|
||||||
|
- fix(sessions): Do not send close request without token [#4525](https://github.com/nextcloud/deck/pull/4525)
|
||||||
|
- fix: Avoid mutating the due date when calculating days @juliushaertl [#4488](https://github.com/nextcloud/deck/pull/4488)
|
||||||
|
- fix: Pass user id along to properly check permissions in background jobs @juliushaertl [#4485](https://github.com/nextcloud/deck/pull/4485)
|
||||||
|
- fix: Use passed userid when getting attachment folder @juliushaertl [#4487](https://github.com/nextcloud/deck/pull/4487)
|
||||||
|
- fix: Use proper z-index for text menubar @juliushaertl [#4490](https://github.com/nextcloud/deck/pull/4490)
|
||||||
|
- fix(dashboard): Fix undefined array index @marcelklehr [#4492](https://github.com/nextcloud/deck/pull/4492)
|
||||||
|
- fix: Always return sorted index array to make sure a json array is the result @juliushaertl [#4493](https://github.com/nextcloud/deck/pull/4493)
|
||||||
- Fix component renaming so that acl works on shares again @small1 [#4315](https://github.com/nextcloud/deck/pull/4315)
|
- 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)
|
- 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)
|
- add basic e2e tests for stack title @shoetten [#4206](https://github.com/nextcloud/deck/pull/4206)
|
||||||
@@ -151,10 +106,6 @@ All notable changes to this project will be documented in this file.
|
|||||||
- perf: Register notifier and resource listener lazy @juliushaertl [#4439](https://github.com/nextcloud/deck/pull/4439)
|
- 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)
|
- 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)
|
- 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
|
|
||||||
|
|
||||||
|
|
||||||
## 1.8.0-beta.1
|
## 1.8.0-beta.1
|
||||||
|
|||||||
99
README.md
99
README.md
@@ -27,11 +27,27 @@ Deck is a kanban style organization tool aimed at personal planning and project
|
|||||||
- [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`
|
||||||
|
|
||||||
## Performance limitations
|
## Performance limitations
|
||||||
|
|
||||||
@@ -46,55 +62,42 @@ 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.
|
### Nextcloud environment
|
||||||
|
|
||||||
### General build instructions
|
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).
|
||||||
|
|
||||||
General build instructions for the app itself are the same for all options.
|
|
||||||
|
|
||||||
To build you will need to have [Node.js](https://nodejs.org/en/) and [Composer](https://getcomposer.org/) installed.
|
|
||||||
|
|
||||||
- Install PHP dependencies: `composer install --no-dev`
|
|
||||||
- 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
|
|
||||||
|
|
||||||
You can enable HMR (Hot module replacement) to avoid page reloads when working on the frontend:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
```
|
|
||||||
docker run --rm \
|
|
||||||
-p 8080:80 \
|
|
||||||
-v ~/path/to/app:/var/www/html/apps-extra/app \
|
|
||||||
ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Full Nextcloud development environment
|
|
||||||
|
|
||||||
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.
|
After the finished installation, you can clone the deck project directly in the `/[nextcloud-docker-dev-dir]/workspace/server/apps/` folder.
|
||||||
|
|
||||||
|
### PHP
|
||||||
|
|
||||||
|
Nothing to prepare, just dig into the code.
|
||||||
|
|
||||||
|
### JavaScript
|
||||||
|
|
||||||
|
This requires at least Node 16 and npm 7 to be installed.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
#### Hot reloading
|
||||||
|
|
||||||
|
Enable debug mode in your config.php `'debug' => true,`
|
||||||
|
|
||||||
|
Without SSL:
|
||||||
|
```
|
||||||
|
npx webpack-dev-server --config webpack.hot.js \
|
||||||
|
--public localhost:3000 \
|
||||||
|
--output-public-path 'http://localhost:3000/js/'
|
||||||
|
```
|
||||||
|
|
||||||
|
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/'
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### 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:
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
- 🚀 Get your project organized
|
- 🚀 Get your project organized
|
||||||
|
|
||||||
</description>
|
</description>
|
||||||
<version>1.14.0-dev</version>
|
<version>1.9.7</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author>Julius Härtl</author>
|
<author>Julius Härtl</author>
|
||||||
<documentation>
|
<documentation>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<database min-version="9.4">pgsql</database>
|
<database min-version="9.4">pgsql</database>
|
||||||
<database>sqlite</database>
|
<database>sqlite</database>
|
||||||
<database min-version="8.0">mysql</database>
|
<database min-version="8.0">mysql</database>
|
||||||
<nextcloud min-version="30" max-version="30"/>
|
<nextcloud min-version="26" max-version="26"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<background-jobs>
|
<background-jobs>
|
||||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||||
@@ -58,9 +58,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
|
||||||
@@ -66,8 +61,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'],
|
||||||
|
|||||||
@@ -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-master",
|
"symfony/event-dispatcher": "^4.0",
|
||||||
"psalm/phar": "^5.13"
|
"vimeo/psalm": "^5.4",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||||
|
"nextcloud/ocp": "dev-stable26"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
@@ -31,9 +34,9 @@
|
|||||||
"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"
|
||||||
|
|||||||
3806
composer.lock
generated
3806
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randUser } from '../utils/index.js'
|
||||||
import { sampleBoard } from '../utils/sampleBoard'
|
import { sampleBoard } from '../utils/sampleBoard'
|
||||||
import moment from '@nextcloud/moment'
|
|
||||||
|
|
||||||
const user = randUser()
|
const user = randUser()
|
||||||
const boardData = sampleBoard()
|
const boardData = sampleBoard()
|
||||||
@@ -59,33 +58,6 @@ 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('.vs__dropdown-menu [data-cy="board-select-title"]: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('.vs__dropdown-menu span[title="TestList"]').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', () => {
|
describe('Modal', () => {
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
@@ -103,28 +75,28 @@ describe('Card', function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
cy.get('.modal__card').should('be.visible')
|
cy.get('.modal__card').should('be.visible')
|
||||||
cy.get('.app-sidebar-header__mainname').contains('Hello world')
|
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Attachment from files app', () => {
|
it('Attachment from files app', () => {
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||||
cy.get('.modal__card').should('be.visible')
|
cy.get('.modal__card').should('be.visible')
|
||||||
cy.get('#tab-button-attachments').click()
|
cy.get('.app-sidebar-tabs__tab [data-id="attachments"]').click()
|
||||||
cy.get('button.icon-upload').should('be.visible')
|
cy.get('button.icon-upload').should('be.visible')
|
||||||
cy.get('button.icon-folder').should('be.visible')
|
cy.get('button.icon-folder').should('be.visible')
|
||||||
.click()
|
.click()
|
||||||
cy.get('.file-picker__main').should('be.visible')
|
cy.get('.file-picker__main').should('be.visible')
|
||||||
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
|
cy.get('.file-picker__main [data-filename="welcome.txt"]').should('be.visible')
|
||||||
.click()
|
.click()
|
||||||
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
||||||
cy.get('.attachment-list .basename').contains('welcome.txt')
|
cy.get('.attachment-list .basename').contains('welcome.txt')
|
||||||
})
|
})
|
||||||
|
|
||||||
it.only('Shows the modal with the editor', () => {
|
it('Shows the modal with the editor', () => {
|
||||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
||||||
cy.get('.modal__card').should('be.visible')
|
cy.get('.modal__card').should('be.visible')
|
||||||
cy.get('.app-sidebar-header__mainname').contains('Hello world')
|
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').contains('Hello world').should('be.visible')
|
||||||
cy.get('.modal__card .ProseMirror h1')
|
cy.get('.modal__card .ProseMirror h1')
|
||||||
.click()
|
.click()
|
||||||
@@ -138,33 +110,6 @@ describe('Card', function() {
|
|||||||
cy.get('.modal__card .ProseMirror li').eq(1).contains('with entries').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')
|
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', () => {
|
describe('Sidebar', () => {
|
||||||
@@ -180,119 +125,6 @@ describe('Card', function() {
|
|||||||
cy.get('#app-sidebar-vue')
|
cy.get('#app-sidebar-vue')
|
||||||
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Set a due date', function() {
|
|
||||||
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('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click()
|
|
||||||
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
|
|
||||||
cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click()
|
|
||||||
|
|
||||||
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
|
|
||||||
cy.get('.vs__selected .tag:contains("Action needed")')
|
|
||||||
.parent().find('button').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,5 +1,4 @@
|
|||||||
import { randUser } from '../utils/index.js'
|
import { randUser } from '../utils/index.js'
|
||||||
import { sampleBoard } from '../utils/sampleBoard'
|
|
||||||
const user = randUser()
|
const user = randUser()
|
||||||
|
|
||||||
describe('Deck dashboard', function() {
|
describe('Deck dashboard', function() {
|
||||||
@@ -9,18 +8,16 @@ describe('Deck dashboard', function() {
|
|||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
cy.login(user)
|
cy.login(user)
|
||||||
|
cy.visit('/apps/deck')
|
||||||
})
|
})
|
||||||
|
|
||||||
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.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
||||||
@@ -29,29 +26,4 @@ describe('Deck dashboard', function() {
|
|||||||
.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')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -38,10 +38,7 @@ describe('Board', function() {
|
|||||||
cy.get('.board-title').contains(board.title)
|
cy.get('.board-title').contains(board.title)
|
||||||
|
|
||||||
cy.shareBoardWithUi(recipient.userId)
|
cy.shareBoardWithUi(recipient.userId)
|
||||||
|
|
||||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/boards/*/acl/*' }).as('setAcl')
|
|
||||||
cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click()
|
cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click()
|
||||||
cy.wait('@setAcl')
|
|
||||||
|
|
||||||
cy.login(recipient)
|
cy.login(recipient)
|
||||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||||
|
|||||||
@@ -107,14 +107,11 @@ Cypress.Commands.add('getNavigationEntry', (boardTitle) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
Cypress.Commands.add('shareBoardWithUi', (userId) => {
|
Cypress.Commands.add('shareBoardWithUi', (userId) => {
|
||||||
cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${userId}*` }).as('fetchRecipients')
|
|
||||||
cy.get('[aria-label="Open details"]').click()
|
cy.get('[aria-label="Open details"]').click()
|
||||||
cy.get('.app-sidebar').should('be.visible')
|
cy.get('.app-sidebar').should('be.visible')
|
||||||
cy.get('.select input').type(`${userId}`)
|
cy.get('.multiselect__input').type(`${userId}`)
|
||||||
cy.wait('@fetchRecipients', { timeout: 7000 })
|
cy.get('.multiselect__content .multiselect__element').first().contains(userId)
|
||||||
|
cy.get('.multiselect__input').type('{enter}')
|
||||||
cy.get('.vs__dropdown-menu .option').first().contains(userId)
|
|
||||||
cy.get('.select input').type('{enter}')
|
|
||||||
|
|
||||||
cy.get('.shareWithList').contains(userId)
|
cy.get('.shareWithList').contains(userId)
|
||||||
})
|
})
|
||||||
|
|||||||
10
docs/API.md
10
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,
|
||||||
@@ -626,15 +624,12 @@ 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,
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 88 KiB |
@@ -1,8 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewBox="0 0 16 16">
|
|
||||||
<g fill="currentColor">
|
|
||||||
<rect ry="1" height="8" width="14" y="7" x="1"/>
|
|
||||||
<rect ry=".5" height="1" width="12" y="5" x="2"/>
|
|
||||||
<rect ry=".5" height="1" width="10" y="3" x="3"/>
|
|
||||||
<rect ry=".5" height="1" width="8" y="1" x="4"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 372 B |
@@ -45,6 +45,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Vandag",
|
"Today" : "Vandag",
|
||||||
"Tomorrow" : "Môre",
|
"Tomorrow" : "Môre",
|
||||||
"Close" : "Sluit",
|
"Close" : "Sluit",
|
||||||
"Share" : "Deel"
|
"Share" : "Deel",
|
||||||
|
"Due date" : "Sperdatum"
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
"Today" : "Vandag",
|
"Today" : "Vandag",
|
||||||
"Tomorrow" : "Môre",
|
"Tomorrow" : "Môre",
|
||||||
"Close" : "Sluit",
|
"Close" : "Sluit",
|
||||||
"Share" : "Deel"
|
"Share" : "Deel",
|
||||||
|
"Due date" : "Sperdatum"
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
@@ -379,7 +379,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
|
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
|
||||||
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
||||||
"(Circle)" : "(دائرة)",
|
"(Circle)" : "(دائرة)",
|
||||||
|
"Assign to users" : "انسب الى المتسخدمين",
|
||||||
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
||||||
|
"Due date" : "تاريخ الانجاز",
|
||||||
"Next week" : "الاسبوع القادم",
|
"Next week" : "الاسبوع القادم",
|
||||||
"Next month" : "الشهر القادم",
|
"Next month" : "الشهر القادم",
|
||||||
"List is empty" : "القائمة فارغة",
|
"List is empty" : "القائمة فارغة",
|
||||||
|
|||||||
@@ -377,7 +377,9 @@
|
|||||||
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
|
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
|
||||||
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
||||||
"(Circle)" : "(دائرة)",
|
"(Circle)" : "(دائرة)",
|
||||||
|
"Assign to users" : "انسب الى المتسخدمين",
|
||||||
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
||||||
|
"Due date" : "تاريخ الانجاز",
|
||||||
"Next week" : "الاسبوع القادم",
|
"Next week" : "الاسبوع القادم",
|
||||||
"Next month" : "الشهر القادم",
|
"Next month" : "الشهر القادم",
|
||||||
"List is empty" : "القائمة فارغة",
|
"List is empty" : "القائمة فارغة",
|
||||||
|
|||||||
58
l10n/ast.js
58
l10n/ast.js
@@ -2,18 +2,10 @@ OC.L10N.register(
|
|||||||
"deck",
|
"deck",
|
||||||
{
|
{
|
||||||
"Deck" : "Tarxeteru",
|
"Deck" : "Tarxeteru",
|
||||||
"Upcoming cards" : "Tarxetes próximes",
|
|
||||||
"Load more" : "Cargar más",
|
"Load more" : "Cargar más",
|
||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
"Deck board" : "Mesa de tarxetes",
|
|
||||||
"%s on %s" : "%s n %s",
|
|
||||||
"Action needed" : "Aición necesaria",
|
|
||||||
"copy" : "copia",
|
"copy" : "copia",
|
||||||
"To do" : "Xera pendiente",
|
|
||||||
"Done" : "Fecho",
|
"Done" : "Fecho",
|
||||||
"Example Task 3" : "Xera d'exemplu 3",
|
|
||||||
"Example Task 2" : "Xera d'exemplu 2",
|
|
||||||
"Example Task 1" : "Xera d'exemplu 1",
|
|
||||||
"The file was uploaded" : "Xubióse'l ficheru",
|
"The file was uploaded" : "Xubióse'l ficheru",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
|
||||||
@@ -21,96 +13,48 @@ OC.L10N.register(
|
|||||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||||
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
|
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
|
||||||
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
|
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Nun se xubió nengún ficheru o'l tamañu del ficheru supera'l máximu de %s",
|
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
||||||
"Move card" : "Mover la tarxeta",
|
|
||||||
"Cancel" : "Encaboxar",
|
"Cancel" : "Encaboxar",
|
||||||
"File already exists" : "El ficheru yá esiste",
|
"File already exists" : "El ficheru yá esiste",
|
||||||
"Drop your files to upload" : "Suelta los ficheros pa xubilos",
|
|
||||||
"Add card" : "Amestar una tarxeta",
|
|
||||||
"Archived cards" : "Tarxetes archivaes",
|
|
||||||
"Add list" : "Amestar una llista",
|
|
||||||
"List name" : "Nome de la llista",
|
|
||||||
"Open" : "Abrir",
|
"Open" : "Abrir",
|
||||||
"Completed" : "Completáu",
|
"Completed" : "Completáu",
|
||||||
"Next 24 hours" : "Les próximes 24 hores",
|
|
||||||
"Next 7 days" : "Los próximos 7 díes",
|
|
||||||
"Next 30 days" : "Los próximos 30 díes",
|
|
||||||
"Open details" : "Abrir los detalles",
|
"Open details" : "Abrir los detalles",
|
||||||
"Details" : "Detalles",
|
"Details" : "Detalles",
|
||||||
"Sharing" : "Comparticiñon",
|
"Sharing" : "Comparticiñon",
|
||||||
"Tags" : "Etiquetes",
|
"Tags" : "Etiquetes",
|
||||||
"Deleted items" : "Elementos desaniciaos",
|
|
||||||
"Activity" : "Actividá",
|
"Activity" : "Actividá",
|
||||||
"Deleted lists" : "Llistes desaniciaes",
|
|
||||||
"Undo" : "Desfacer",
|
"Undo" : "Desfacer",
|
||||||
"Deleted cards" : "Tarxetes desaniciaes",
|
|
||||||
"(Group)" : "(Grupu)",
|
|
||||||
"(Team)" : "(Equipu)",
|
|
||||||
"Can edit" : "Pue editar",
|
|
||||||
"Owner" : "Propietariu",
|
"Owner" : "Propietariu",
|
||||||
"Delete" : "Desaniciar",
|
"Delete" : "Desaniciar",
|
||||||
"Transfer" : "Tresferir",
|
"Transfer" : "Tresferir",
|
||||||
"Edit list title" : "Editar el títulu de la llista",
|
|
||||||
"Archive all cards" : "Archivar toles carpetes",
|
|
||||||
"Unarchive all cards" : "Desarchivar toles tarxetes",
|
|
||||||
"Delete list" : "Desaniciar la llista",
|
|
||||||
"Archive all cards in this list" : "Archivar toles tarxetes d'esta llista",
|
|
||||||
"Unarchive all cards in this list" : "Desarchivar toles tarxetes d'esta llista",
|
|
||||||
"Add a new card" : "Amestar una tarxeta nueva",
|
|
||||||
"Card name" : "Nome de la tarxeta",
|
|
||||||
"List deleted" : "Desanicióse la llista",
|
|
||||||
"Edit" : "Editar",
|
"Edit" : "Editar",
|
||||||
"Add a new tag" : "Amestar una etiqueta nueva",
|
|
||||||
"Members" : "Miembros",
|
"Members" : "Miembros",
|
||||||
"Show in Files" : "Amosar en Ficheros",
|
"Show in Files" : "Amosar en Ficheros",
|
||||||
"Download" : "Baxar",
|
"Download" : "Baxar",
|
||||||
"Invalid path selected" : "Seleicionóse un camín inválidu",
|
"Invalid path selected" : "Seleicionóse un camín inválidu",
|
||||||
"Comments" : "Comentarios",
|
"Comments" : "Comentarios",
|
||||||
"Modified" : "Modificóse",
|
"Modified" : "Modificóse",
|
||||||
"The title cannot be empty." : "El títulu nun pue tar baleru",
|
|
||||||
"No comments yet. Begin the discussion!" : "Nun hai nengún comentariu. ¡Comienza'l discutiniu!",
|
|
||||||
"Failed to load comments" : "Nun se puen cargar los comentarios",
|
"Failed to load comments" : "Nun se puen cargar los comentarios",
|
||||||
"Save" : "Guardar",
|
"Save" : "Guardar",
|
||||||
"The comment cannot be empty." : "El comentariu nun pue tar baleru.",
|
|
||||||
"In reply to" : "En rempuesta a",
|
|
||||||
"Reply" : "Responder",
|
|
||||||
"Update" : "Anovar",
|
"Update" : "Anovar",
|
||||||
"Created:" : "Creóse'l",
|
"Created:" : "Creóse'l",
|
||||||
"Description" : "Descripción",
|
"Description" : "Descripción",
|
||||||
"(Unsaved)" : "(ensin guardar)",
|
|
||||||
"(Saving…)" : "(Guardando…)",
|
"(Saving…)" : "(Guardando…)",
|
||||||
"Formatting help" : "Ayuda del formatu",
|
|
||||||
"Edit description" : "Editar la descripción",
|
|
||||||
"View description" : "Ver la descripción",
|
|
||||||
"Not completed" : "Nun se completó",
|
"Not completed" : "Nun se completó",
|
||||||
"Archive card" : "Archivar la tarxeta",
|
|
||||||
"(group)" : "(grupu)",
|
|
||||||
"Next week – {timeLocale}" : "La próxima selmana – {timeLocale}",
|
|
||||||
"Mark as done" : "Marcar como fecha",
|
|
||||||
"Delete card" : "Desaniciar la tarxeta",
|
|
||||||
"seconds ago" : "hai segundos",
|
"seconds ago" : "hai segundos",
|
||||||
"Keyboard shortcuts" : "Atayos del tecláu",
|
"Keyboard shortcuts" : "Atayos del tecláu",
|
||||||
"Keyboard shortcut" : "Atayos del tecláu",
|
|
||||||
"Action" : "Aición",
|
"Action" : "Aición",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Guetar",
|
"Search" : "Guetar",
|
||||||
"Shared with you" : "Compartióse contigo",
|
"Shared with you" : "Compartióse contigo",
|
||||||
"All cards" : "Toles tarxetes",
|
"All cards" : "Toles tarxetes",
|
||||||
"No notifications" : "Nun hai nengún avisu",
|
"No notifications" : "Nun hai nengún avisu",
|
||||||
"No reminder" : "Nun hai nengún recordatoriu",
|
|
||||||
"An error occurred" : "Prodúxose un error",
|
"An error occurred" : "Prodúxose un error",
|
||||||
"Today" : "Güei",
|
"Today" : "Güei",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"No results found" : "Nun s'atopó nengún resultáu",
|
|
||||||
"This weekend – {timeLocale}" : "Esta fin de selmana – {timeLocale}",
|
|
||||||
"Close" : "Zarrar",
|
"Close" : "Zarrar",
|
||||||
"Tomorrow – {timeLocale}" : "Mañana – {timeLocale}",
|
|
||||||
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
|
|
||||||
"Error creating the share" : "Hebo un error al crear la compartición",
|
"Error creating the share" : "Hebo un error al crear la compartición",
|
||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"Timeline" : "Llinia de tiempu",
|
"Timeline" : "Llinia de tiempu"
|
||||||
"Next week" : "La selmana que vien",
|
|
||||||
"Next month" : "Mes siguiente"
|
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
{ "translations": {
|
{ "translations": {
|
||||||
"Deck" : "Tarxeteru",
|
"Deck" : "Tarxeteru",
|
||||||
"Upcoming cards" : "Tarxetes próximes",
|
|
||||||
"Load more" : "Cargar más",
|
"Load more" : "Cargar más",
|
||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
"Deck board" : "Mesa de tarxetes",
|
|
||||||
"%s on %s" : "%s n %s",
|
|
||||||
"Action needed" : "Aición necesaria",
|
|
||||||
"copy" : "copia",
|
"copy" : "copia",
|
||||||
"To do" : "Xera pendiente",
|
|
||||||
"Done" : "Fecho",
|
"Done" : "Fecho",
|
||||||
"Example Task 3" : "Xera d'exemplu 3",
|
|
||||||
"Example Task 2" : "Xera d'exemplu 2",
|
|
||||||
"Example Task 1" : "Xera d'exemplu 1",
|
|
||||||
"The file was uploaded" : "Xubióse'l ficheru",
|
"The file was uploaded" : "Xubióse'l ficheru",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
|
||||||
@@ -19,96 +11,48 @@
|
|||||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||||
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
|
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
|
||||||
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
|
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Nun se xubió nengún ficheru o'l tamañu del ficheru supera'l máximu de %s",
|
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
|
||||||
"Move card" : "Mover la tarxeta",
|
|
||||||
"Cancel" : "Encaboxar",
|
"Cancel" : "Encaboxar",
|
||||||
"File already exists" : "El ficheru yá esiste",
|
"File already exists" : "El ficheru yá esiste",
|
||||||
"Drop your files to upload" : "Suelta los ficheros pa xubilos",
|
|
||||||
"Add card" : "Amestar una tarxeta",
|
|
||||||
"Archived cards" : "Tarxetes archivaes",
|
|
||||||
"Add list" : "Amestar una llista",
|
|
||||||
"List name" : "Nome de la llista",
|
|
||||||
"Open" : "Abrir",
|
"Open" : "Abrir",
|
||||||
"Completed" : "Completáu",
|
"Completed" : "Completáu",
|
||||||
"Next 24 hours" : "Les próximes 24 hores",
|
|
||||||
"Next 7 days" : "Los próximos 7 díes",
|
|
||||||
"Next 30 days" : "Los próximos 30 díes",
|
|
||||||
"Open details" : "Abrir los detalles",
|
"Open details" : "Abrir los detalles",
|
||||||
"Details" : "Detalles",
|
"Details" : "Detalles",
|
||||||
"Sharing" : "Comparticiñon",
|
"Sharing" : "Comparticiñon",
|
||||||
"Tags" : "Etiquetes",
|
"Tags" : "Etiquetes",
|
||||||
"Deleted items" : "Elementos desaniciaos",
|
|
||||||
"Activity" : "Actividá",
|
"Activity" : "Actividá",
|
||||||
"Deleted lists" : "Llistes desaniciaes",
|
|
||||||
"Undo" : "Desfacer",
|
"Undo" : "Desfacer",
|
||||||
"Deleted cards" : "Tarxetes desaniciaes",
|
|
||||||
"(Group)" : "(Grupu)",
|
|
||||||
"(Team)" : "(Equipu)",
|
|
||||||
"Can edit" : "Pue editar",
|
|
||||||
"Owner" : "Propietariu",
|
"Owner" : "Propietariu",
|
||||||
"Delete" : "Desaniciar",
|
"Delete" : "Desaniciar",
|
||||||
"Transfer" : "Tresferir",
|
"Transfer" : "Tresferir",
|
||||||
"Edit list title" : "Editar el títulu de la llista",
|
|
||||||
"Archive all cards" : "Archivar toles carpetes",
|
|
||||||
"Unarchive all cards" : "Desarchivar toles tarxetes",
|
|
||||||
"Delete list" : "Desaniciar la llista",
|
|
||||||
"Archive all cards in this list" : "Archivar toles tarxetes d'esta llista",
|
|
||||||
"Unarchive all cards in this list" : "Desarchivar toles tarxetes d'esta llista",
|
|
||||||
"Add a new card" : "Amestar una tarxeta nueva",
|
|
||||||
"Card name" : "Nome de la tarxeta",
|
|
||||||
"List deleted" : "Desanicióse la llista",
|
|
||||||
"Edit" : "Editar",
|
"Edit" : "Editar",
|
||||||
"Add a new tag" : "Amestar una etiqueta nueva",
|
|
||||||
"Members" : "Miembros",
|
"Members" : "Miembros",
|
||||||
"Show in Files" : "Amosar en Ficheros",
|
"Show in Files" : "Amosar en Ficheros",
|
||||||
"Download" : "Baxar",
|
"Download" : "Baxar",
|
||||||
"Invalid path selected" : "Seleicionóse un camín inválidu",
|
"Invalid path selected" : "Seleicionóse un camín inválidu",
|
||||||
"Comments" : "Comentarios",
|
"Comments" : "Comentarios",
|
||||||
"Modified" : "Modificóse",
|
"Modified" : "Modificóse",
|
||||||
"The title cannot be empty." : "El títulu nun pue tar baleru",
|
|
||||||
"No comments yet. Begin the discussion!" : "Nun hai nengún comentariu. ¡Comienza'l discutiniu!",
|
|
||||||
"Failed to load comments" : "Nun se puen cargar los comentarios",
|
"Failed to load comments" : "Nun se puen cargar los comentarios",
|
||||||
"Save" : "Guardar",
|
"Save" : "Guardar",
|
||||||
"The comment cannot be empty." : "El comentariu nun pue tar baleru.",
|
|
||||||
"In reply to" : "En rempuesta a",
|
|
||||||
"Reply" : "Responder",
|
|
||||||
"Update" : "Anovar",
|
"Update" : "Anovar",
|
||||||
"Created:" : "Creóse'l",
|
"Created:" : "Creóse'l",
|
||||||
"Description" : "Descripción",
|
"Description" : "Descripción",
|
||||||
"(Unsaved)" : "(ensin guardar)",
|
|
||||||
"(Saving…)" : "(Guardando…)",
|
"(Saving…)" : "(Guardando…)",
|
||||||
"Formatting help" : "Ayuda del formatu",
|
|
||||||
"Edit description" : "Editar la descripción",
|
|
||||||
"View description" : "Ver la descripción",
|
|
||||||
"Not completed" : "Nun se completó",
|
"Not completed" : "Nun se completó",
|
||||||
"Archive card" : "Archivar la tarxeta",
|
|
||||||
"(group)" : "(grupu)",
|
|
||||||
"Next week – {timeLocale}" : "La próxima selmana – {timeLocale}",
|
|
||||||
"Mark as done" : "Marcar como fecha",
|
|
||||||
"Delete card" : "Desaniciar la tarxeta",
|
|
||||||
"seconds ago" : "hai segundos",
|
"seconds ago" : "hai segundos",
|
||||||
"Keyboard shortcuts" : "Atayos del tecláu",
|
"Keyboard shortcuts" : "Atayos del tecláu",
|
||||||
"Keyboard shortcut" : "Atayos del tecláu",
|
|
||||||
"Action" : "Aición",
|
"Action" : "Aición",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Guetar",
|
"Search" : "Guetar",
|
||||||
"Shared with you" : "Compartióse contigo",
|
"Shared with you" : "Compartióse contigo",
|
||||||
"All cards" : "Toles tarxetes",
|
"All cards" : "Toles tarxetes",
|
||||||
"No notifications" : "Nun hai nengún avisu",
|
"No notifications" : "Nun hai nengún avisu",
|
||||||
"No reminder" : "Nun hai nengún recordatoriu",
|
|
||||||
"An error occurred" : "Prodúxose un error",
|
"An error occurred" : "Prodúxose un error",
|
||||||
"Today" : "Güei",
|
"Today" : "Güei",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"No results found" : "Nun s'atopó nengún resultáu",
|
|
||||||
"This weekend – {timeLocale}" : "Esta fin de selmana – {timeLocale}",
|
|
||||||
"Close" : "Zarrar",
|
"Close" : "Zarrar",
|
||||||
"Tomorrow – {timeLocale}" : "Mañana – {timeLocale}",
|
|
||||||
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
|
|
||||||
"Error creating the share" : "Hebo un error al crear la compartición",
|
"Error creating the share" : "Hebo un error al crear la compartición",
|
||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"Timeline" : "Llinia de tiempu",
|
"Timeline" : "Llinia de tiempu"
|
||||||
"Next week" : "La selmana que vien",
|
|
||||||
"Next month" : "Mes siguiente"
|
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
@@ -322,7 +322,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
|
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
|
||||||
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
|
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
|
||||||
"(Circle)" : "(Кръг)",
|
"(Circle)" : "(Кръг)",
|
||||||
|
"Assign to users" : "Зачисляване към потребители",
|
||||||
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
|
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
|
||||||
|
"Due date" : "Крайна дата",
|
||||||
"Next week" : "Следваща седмица",
|
"Next week" : "Следваща седмица",
|
||||||
"Next month" : "Следващия месец",
|
"Next month" : "Следващия месец",
|
||||||
"List is empty" : "Списъкът е празен",
|
"List is empty" : "Списъкът е празен",
|
||||||
|
|||||||
@@ -320,7 +320,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
|
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
|
||||||
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
|
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
|
||||||
"(Circle)" : "(Кръг)",
|
"(Circle)" : "(Кръг)",
|
||||||
|
"Assign to users" : "Зачисляване към потребители",
|
||||||
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
|
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
|
||||||
|
"Due date" : "Крайна дата",
|
||||||
"Next week" : "Следваща седмица",
|
"Next week" : "Следваща седмица",
|
||||||
"Next month" : "Следващия месец",
|
"Next month" : "Следващия месец",
|
||||||
"List is empty" : "Списъкът е празен",
|
"List is empty" : "Списъкът е празен",
|
||||||
|
|||||||
@@ -370,7 +370,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
|
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
|
||||||
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
|
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
|
||||||
"(Circle)" : "(Cercle)",
|
"(Circle)" : "(Cercle)",
|
||||||
|
"Assign to users" : "Assignació als usuaris",
|
||||||
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
|
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
|
||||||
|
"Due date" : "Data de caducitat",
|
||||||
"Next week" : "Setmana següent",
|
"Next week" : "Setmana següent",
|
||||||
"Next month" : "Mes següent",
|
"Next month" : "Mes següent",
|
||||||
"List is empty" : "La llista és buida",
|
"List is empty" : "La llista és buida",
|
||||||
|
|||||||
@@ -368,7 +368,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
|
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
|
||||||
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
|
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
|
||||||
"(Circle)" : "(Cercle)",
|
"(Circle)" : "(Cercle)",
|
||||||
|
"Assign to users" : "Assignació als usuaris",
|
||||||
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
|
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
|
||||||
|
"Due date" : "Data de caducitat",
|
||||||
"Next week" : "Setmana següent",
|
"Next week" : "Setmana següent",
|
||||||
"Next month" : "Mes següent",
|
"Next month" : "Mes següent",
|
||||||
"List is empty" : "La llista és buida",
|
"List is empty" : "La llista és buida",
|
||||||
|
|||||||
@@ -367,7 +367,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
|
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
|
||||||
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
|
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
|
||||||
"(Circle)" : "(Okruh)",
|
"(Circle)" : "(Okruh)",
|
||||||
|
"Assign to users" : "Přiřadit k uživatelům",
|
||||||
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
|
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
|
||||||
|
"Due date" : "Termín",
|
||||||
"Next week" : "Příští týden",
|
"Next week" : "Příští týden",
|
||||||
"Next month" : "Příští měsíc",
|
"Next month" : "Příští měsíc",
|
||||||
"List is empty" : "Seznam je prázdný",
|
"List is empty" : "Seznam je prázdný",
|
||||||
|
|||||||
@@ -365,7 +365,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
|
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
|
||||||
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
|
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
|
||||||
"(Circle)" : "(Okruh)",
|
"(Circle)" : "(Okruh)",
|
||||||
|
"Assign to users" : "Přiřadit k uživatelům",
|
||||||
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
|
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
|
||||||
|
"Due date" : "Termín",
|
||||||
"Next week" : "Příští týden",
|
"Next week" : "Příští týden",
|
||||||
"Next month" : "Příští měsíc",
|
"Next month" : "Příští měsíc",
|
||||||
"List is empty" : "Seznam je prázdný",
|
"List is empty" : "Seznam je prázdný",
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ OC.L10N.register(
|
|||||||
"Board not found" : "Tavle ikke fundet.",
|
"Board not found" : "Tavle ikke fundet.",
|
||||||
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
|
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
|
||||||
"Sharing" : "Deling",
|
"Sharing" : "Deling",
|
||||||
"Tags" : "Tags",
|
"Tags" : "Mærkat",
|
||||||
"Deleted items" : "Slettede objekter",
|
"Deleted items" : "Slettede objekter",
|
||||||
"Activity" : "Aktivitet",
|
"Activity" : "Aktivitet",
|
||||||
"Deleted lists" : "Slettede kolonner",
|
"Deleted lists" : "Slettede kolonner",
|
||||||
@@ -235,7 +235,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
|
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
|
||||||
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
|
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
|
||||||
"(Circle)" : "(Cirkel)",
|
"(Circle)" : "(Cirkel)",
|
||||||
|
"Assign to users" : "Tildel til brugere",
|
||||||
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
|
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
|
||||||
|
"Due date" : "Forfaldsdato",
|
||||||
"Next week" : "Næste uge",
|
"Next week" : "Næste uge",
|
||||||
"Next month" : "Næste måned",
|
"Next month" : "Næste måned",
|
||||||
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
|
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
"Board not found" : "Tavle ikke fundet.",
|
"Board not found" : "Tavle ikke fundet.",
|
||||||
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
|
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
|
||||||
"Sharing" : "Deling",
|
"Sharing" : "Deling",
|
||||||
"Tags" : "Tags",
|
"Tags" : "Mærkat",
|
||||||
"Deleted items" : "Slettede objekter",
|
"Deleted items" : "Slettede objekter",
|
||||||
"Activity" : "Aktivitet",
|
"Activity" : "Aktivitet",
|
||||||
"Deleted lists" : "Slettede kolonner",
|
"Deleted lists" : "Slettede kolonner",
|
||||||
@@ -233,7 +233,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
|
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
|
||||||
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
|
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
|
||||||
"(Circle)" : "(Cirkel)",
|
"(Circle)" : "(Cirkel)",
|
||||||
|
"Assign to users" : "Tildel til brugere",
|
||||||
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
|
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
|
||||||
|
"Due date" : "Forfaldsdato",
|
||||||
"Next week" : "Næste uge",
|
"Next week" : "Næste uge",
|
||||||
"Next month" : "Næste måned",
|
"Next month" : "Næste måned",
|
||||||
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
|
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
|
||||||
|
|||||||
@@ -379,7 +379,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
|
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
|
||||||
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
||||||
"(Circle)" : "(Kreis)",
|
"(Circle)" : "(Kreis)",
|
||||||
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
||||||
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächster Monat",
|
"Next month" : "Nächster Monat",
|
||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
|
|||||||
@@ -377,7 +377,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
|
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
|
||||||
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
||||||
"(Circle)" : "(Kreis)",
|
"(Circle)" : "(Kreis)",
|
||||||
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
||||||
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächster Monat",
|
"Next month" : "Nächster Monat",
|
||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
|
|||||||
@@ -379,7 +379,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen…",
|
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen…",
|
||||||
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
||||||
"(Circle)" : "(Kreis)",
|
"(Circle)" : "(Kreis)",
|
||||||
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
||||||
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächsten Monat",
|
"Next month" : "Nächsten Monat",
|
||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
|
|||||||
@@ -377,7 +377,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen…",
|
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen…",
|
||||||
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
|
||||||
"(Circle)" : "(Kreis)",
|
"(Circle)" : "(Kreis)",
|
||||||
|
"Assign to users" : "Benutzern zuweisen",
|
||||||
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
|
||||||
|
"Due date" : "Fälligkeitsdatum",
|
||||||
"Next week" : "Nächste Woche",
|
"Next week" : "Nächste Woche",
|
||||||
"Next month" : "Nächsten Monat",
|
"Next month" : "Nächsten Monat",
|
||||||
"List is empty" : "Liste ist leer",
|
"List is empty" : "Liste ist leer",
|
||||||
|
|||||||
52
l10n/el.js
52
l10n/el.js
@@ -65,11 +65,7 @@ OC.L10N.register(
|
|||||||
"{user} has commented on card {card}" : "Ο/η {user} σχολίασε την καρτέλα {card}",
|
"{user} has commented on card {card}" : "Ο/η {user} σχολίασε την καρτέλα {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Αλλαγές στην <strong>εφαρμογή Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Αλλαγές στην <strong>εφαρμογή Deck</strong>",
|
||||||
"A <strong>board, list or card</strong> was changed" : "Ένας <strong>πίνακας, λίστα ή κάρτα</strong> άλλαξε",
|
|
||||||
"A <strong>comment</strong> was created on a card" : "Ένα <strong>σχόλιο</strong> δημιουργήθηκε σε μια καρτέλα",
|
"A <strong>comment</strong> was created on a card" : "Ένα <strong>σχόλιο</strong> δημιουργήθηκε σε μια καρτέλα",
|
||||||
"A <strong>card description</strong> has been changed" : "Μια <strong>περιγραφή κάρτας</strong> έχει αλλάξει",
|
|
||||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
|
||||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
|
||||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||||
"Load more" : "Φόρτωση περισσότερων",
|
"Load more" : "Φόρτωση περισσότερων",
|
||||||
"Personal" : "Προσωπικά",
|
"Personal" : "Προσωπικά",
|
||||||
@@ -152,12 +148,9 @@ OC.L10N.register(
|
|||||||
"Next 30 days" : "Επόμενες 30 ημέρες",
|
"Next 30 days" : "Επόμενες 30 ημέρες",
|
||||||
"No due date" : "Χωρίς ημερομηνία λήξης",
|
"No due date" : "Χωρίς ημερομηνία λήξης",
|
||||||
"Clear filter" : "Εκκαθάριση φίλτρου",
|
"Clear filter" : "Εκκαθάριση φίλτρου",
|
||||||
"View Modes" : "Τρόποι προβολής",
|
|
||||||
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
||||||
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
||||||
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
||||||
"Hide card cover images" : "Απόκρυψη εικόνων εξωφύλλου καρτών",
|
|
||||||
"Show card cover images" : "Εμφάνιση εικόνων εξωφύλλου καρτών",
|
|
||||||
"Open details" : "Άνοιγμα λεπτομερειών",
|
"Open details" : "Άνοιγμα λεπτομερειών",
|
||||||
"Details" : "Λεπτομέρειες",
|
"Details" : "Λεπτομέρειες",
|
||||||
"Currently present people" : "Παρόντες αυτή τη στιγμή",
|
"Currently present people" : "Παρόντες αυτή τη στιγμή",
|
||||||
@@ -174,7 +167,6 @@ OC.L10N.register(
|
|||||||
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
||||||
"Board owner" : "Κάτοχος πίνακα",
|
"Board owner" : "Κάτοχος πίνακα",
|
||||||
"(Group)" : "(Ομάδα)",
|
"(Group)" : "(Ομάδα)",
|
||||||
"(Team)" : "(Ομάδα)",
|
|
||||||
"Can edit" : "Μπορεί να επεξεργαστεί",
|
"Can edit" : "Μπορεί να επεξεργαστεί",
|
||||||
"Can share" : "Μπορεί να διαμοιράσει",
|
"Can share" : "Μπορεί να διαμοιράσει",
|
||||||
"Can manage" : "Μπορεί να διαχειριστεί",
|
"Can manage" : "Μπορεί να διαχειριστεί",
|
||||||
@@ -201,7 +193,6 @@ OC.L10N.register(
|
|||||||
"Board name" : "Όνομα πίνακα",
|
"Board name" : "Όνομα πίνακα",
|
||||||
"Members" : "Μέλη",
|
"Members" : "Μέλη",
|
||||||
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
||||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
|
||||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||||
@@ -239,70 +230,35 @@ OC.L10N.register(
|
|||||||
"Add Attachment" : "Προσθήκη συνημμένου",
|
"Add Attachment" : "Προσθήκη συνημμένου",
|
||||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||||
"Choose attachment" : "Επιλογή συνημμένου",
|
"Choose attachment" : "Επιλογή συνημμένου",
|
||||||
"Assign a due date to this card…" : "Ορίστε μια ημερομηνία λήξης σε αυτή την κάρτα...",
|
|
||||||
"Set a due date" : "Καθορίστε ημερομηνίας λήξης",
|
"Set a due date" : "Καθορίστε ημερομηνίας λήξης",
|
||||||
"Add due date" : "Προσθήκη ημερομηνίας λήξης",
|
|
||||||
"Choose a date" : "Επιλέξτε ημερομηνίας",
|
|
||||||
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
||||||
"Due at:" : "Λήγει στις:",
|
|
||||||
"Not completed" : "Μη ολοκληρωμένο",
|
|
||||||
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
||||||
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
||||||
"Select Date" : "Επιλέξτε ημερομηνία",
|
"Select Date" : "Επιλέξτε ημερομηνία",
|
||||||
"Set due date for later today" : "Ορίστε ημερομηνία λήξης για αργότερα σήμερα",
|
|
||||||
"Set due date for tomorrow" : "Ορίστε ημερομηνία λήξης για αύριο",
|
|
||||||
"Set due date for this weekend" : "Ορίστε ημερομηνία λήξης για αυτό το Σαββατοκύριακο",
|
|
||||||
"Set due date for next week" : "Ορίστε ημερομηνία λήξης για την επόμενη εβδομάδα",
|
|
||||||
"Assign a tag to this card…" : "Ορίστε μια ετικέτα σε αυτήν την καρτέλα...",
|
"Assign a tag to this card…" : "Ορίστε μια ετικέτα σε αυτήν την καρτέλα...",
|
||||||
"Select or create a tag…" : "Επιλέξτε ή δημιουργήστε μια ετικέτα...",
|
|
||||||
"Create a new tag:" : "Δημιουργήστε νέα ετικέτα",
|
|
||||||
"(group)" : "(ομάδα)",
|
"(group)" : "(ομάδα)",
|
||||||
"Next week – {timeLocale}" : "Επόμενη εβδομάδα – {timeLocale}",
|
|
||||||
"Todo items" : "Στοιχεία todo",
|
"Todo items" : "Στοιχεία todo",
|
||||||
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
||||||
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
||||||
"Card details" : "Λεπτομέρειες καρτέλας",
|
"Card details" : "Λεπτομέρειες καρτέλας",
|
||||||
"Assign to me" : "Ανάθεση σε εμένα",
|
"Assign to me" : "Ανάθεση σε εμένα",
|
||||||
"Unassign myself" : "Αποδέσμευσή μου",
|
"Unassign myself" : "Αποδέσμευσή μου",
|
||||||
"Mark as not done" : "Σήμανση ως ολοκληρωμένου",
|
|
||||||
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
||||||
"Delete card" : "Διαγραφή καρτέλας",
|
"Delete card" : "Διαγραφή καρτέλας",
|
||||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||||
"seconds ago" : " δευτερόλεπτα πριν ",
|
"seconds ago" : " δευτερόλεπτα πριν ",
|
||||||
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
||||||
"Boost your productivity using Deck with keyboard shortcuts." : "Αυξήστε την παραγωγικότητά σας στο Deck χρησιμοποιώντας συντομεύσεις πληκτρολογίου.",
|
|
||||||
"Board actions" : "Ενέργειες πίνακα",
|
|
||||||
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
||||||
"Action" : "Ενέργεια",
|
"Action" : "Ενέργεια",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Scroll" : "Κύλιση",
|
|
||||||
"Scroll sideways" : "Κύλιση οριζόντια",
|
|
||||||
"Navigate between cards" : "Πλοήγηση μεταξύ καρτών",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Κλείσιμο λεπτομερειών κάρτας",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Αναζήτηση",
|
"Search" : "Αναζήτηση",
|
||||||
"Show card filters" : "Εμφάνιση φίλτρων κάρτας",
|
|
||||||
"Clear card filters" : "Εκκαθάριση φίλτρων κάρτας",
|
|
||||||
"Show help dialog" : "Εμφάνιση διαλόγου βοήθειας",
|
|
||||||
"Card actions" : "Ενέργειες κάρτας",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Οι ακόλουθες ενέργειες μπορούν να ενεργοποιηθούν για την τρέχουσα επιλεγμένη κάρτα",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Space",
|
|
||||||
"Open card details" : "Άνοιγμα λεπτομερειών κάρτας",
|
|
||||||
"Edit the card title" : "Επεξεργασία τίτλου κάρτας",
|
|
||||||
"Assign yourself to the current card" : "Αναθέστε τον εαυτό σας στην τρέχουσα κάρτα",
|
|
||||||
"Archive/unarchive the current card" : "Αρχειοθέτηση/αποαρχειοθέτηση της τρέχουσας κάρτας",
|
|
||||||
"Mark card as completed/not completed" : "Σημειώστε την κάρτα ως ολοκληρωμένη/μη ολοκληρωμένη",
|
|
||||||
"Open card menu" : "Άνοιγμα μενού κάρτας",
|
|
||||||
"All boards" : "Όλοι οι πίνακες",
|
"All boards" : "Όλοι οι πίνακες",
|
||||||
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
||||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||||
"Deck settings" : "Ρυθμίσεις Deck",
|
"Deck settings" : "Ρυθμίσεις Deck",
|
||||||
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
||||||
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
||||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
|
||||||
"Board details" : "Λεπτομέριες πίνακα",
|
"Board details" : "Λεπτομέριες πίνακα",
|
||||||
"Edit board" : "Επεξεργασία πίνακα",
|
"Edit board" : "Επεξεργασία πίνακα",
|
||||||
"Clone board" : "Κλώνος πίνακα",
|
"Clone board" : "Κλώνος πίνακα",
|
||||||
@@ -328,7 +284,6 @@ OC.L10N.register(
|
|||||||
"No due" : "Χωρίς λήξη",
|
"No due" : "Χωρίς λήξη",
|
||||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||||
"This weekend – {timeLocale}" : "Αυτή την εβδομάδα – {timeLocale}",
|
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||||
"{stack} in {board}" : "{stack} στο {board}",
|
"{stack} in {board}" : "{stack} στο {board}",
|
||||||
"Click to expand description" : "Κλικ για επέκταση περιγραφής",
|
"Click to expand description" : "Κλικ για επέκταση περιγραφής",
|
||||||
@@ -343,13 +298,8 @@ OC.L10N.register(
|
|||||||
"Open card" : "Άνοιγμα καρτέλας",
|
"Open card" : "Άνοιγμα καρτέλας",
|
||||||
"Close" : "Κλείσιμο",
|
"Close" : "Κλείσιμο",
|
||||||
"No upcoming cards" : "Δεν υπάρχουν επερχόμενες καρτέλες",
|
"No upcoming cards" : "Δεν υπάρχουν επερχόμενες καρτέλες",
|
||||||
"upcoming cards today" : "επερχόμενες κάρτες σήμερα",
|
|
||||||
"upcoming cards tomorrow" : "επερχόμενες κάρτες αύριο",
|
|
||||||
"upcoming cards" : "επερχόμενες καρτέλες",
|
"upcoming cards" : "επερχόμενες καρτέλες",
|
||||||
"New card" : "Νέα κάρτα",
|
|
||||||
"Due on {date}" : "Προθεσμία στις {date}",
|
"Due on {date}" : "Προθεσμία στις {date}",
|
||||||
"Tomorrow – {timeLocale}" : "Αύριο – {timeLocale}",
|
|
||||||
"Later today – {timeLocale}" : "Αργότερα σήμερα – {timeLocale}",
|
|
||||||
"Link to a board" : "Σύνδεσμος στον πίνακα",
|
"Link to a board" : "Σύνδεσμος στον πίνακα",
|
||||||
"Link to a card" : "Σύνδεσμος σε καρτέλα",
|
"Link to a card" : "Σύνδεσμος σε καρτέλα",
|
||||||
"Create a card" : "Δημιουργία καρτέλας",
|
"Create a card" : "Δημιουργία καρτέλας",
|
||||||
@@ -366,7 +316,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Διαμοιράστε τον πίνακα με χρήστη, ομάδα ή κύκλο ...",
|
"Share board with a user, group or circle …" : "Διαμοιράστε τον πίνακα με χρήστη, ομάδα ή κύκλο ...",
|
||||||
"Searching for users, groups and circles …" : "Αναζήτηση χρηστών, ομάδων και κύκλων…",
|
"Searching for users, groups and circles …" : "Αναζήτηση χρηστών, ομάδων και κύκλων…",
|
||||||
"(Circle)" : "(Κύκλος)",
|
"(Circle)" : "(Κύκλος)",
|
||||||
|
"Assign to users" : "Ανάθεση σε χρήστες",
|
||||||
"Assign to users/groups/circles" : "Ανάθεση σε χρήστες/ομάδες/κύκλους",
|
"Assign to users/groups/circles" : "Ανάθεση σε χρήστες/ομάδες/κύκλους",
|
||||||
|
"Due date" : "Ημερομηνία λήξης",
|
||||||
"Next week" : "Επόμενη εβδομάδα",
|
"Next week" : "Επόμενη εβδομάδα",
|
||||||
"Next month" : "Επόμενος μήνας",
|
"Next month" : "Επόμενος μήνας",
|
||||||
"List is empty" : "Η λίστα είναι κενή",
|
"List is empty" : "Η λίστα είναι κενή",
|
||||||
|
|||||||
52
l10n/el.json
52
l10n/el.json
@@ -63,11 +63,7 @@
|
|||||||
"{user} has commented on card {card}" : "Ο/η {user} σχολίασε την καρτέλα {card}",
|
"{user} has commented on card {card}" : "Ο/η {user} σχολίασε την καρτέλα {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Αλλαγές στην <strong>εφαρμογή Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Αλλαγές στην <strong>εφαρμογή Deck</strong>",
|
||||||
"A <strong>board, list or card</strong> was changed" : "Ένας <strong>πίνακας, λίστα ή κάρτα</strong> άλλαξε",
|
|
||||||
"A <strong>comment</strong> was created on a card" : "Ένα <strong>σχόλιο</strong> δημιουργήθηκε σε μια καρτέλα",
|
"A <strong>comment</strong> was created on a card" : "Ένα <strong>σχόλιο</strong> δημιουργήθηκε σε μια καρτέλα",
|
||||||
"A <strong>card description</strong> has been changed" : "Μια <strong>περιγραφή κάρτας</strong> έχει αλλάξει",
|
|
||||||
"Cards due today" : "Κάρτες που λήγουν σήμερα",
|
|
||||||
"Cards due tomorrow" : "Κάρτες που λήγουν αύριο",
|
|
||||||
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
"Upcoming cards" : "Επερχόμενες καρτέλες",
|
||||||
"Load more" : "Φόρτωση περισσότερων",
|
"Load more" : "Φόρτωση περισσότερων",
|
||||||
"Personal" : "Προσωπικά",
|
"Personal" : "Προσωπικά",
|
||||||
@@ -150,12 +146,9 @@
|
|||||||
"Next 30 days" : "Επόμενες 30 ημέρες",
|
"Next 30 days" : "Επόμενες 30 ημέρες",
|
||||||
"No due date" : "Χωρίς ημερομηνία λήξης",
|
"No due date" : "Χωρίς ημερομηνία λήξης",
|
||||||
"Clear filter" : "Εκκαθάριση φίλτρου",
|
"Clear filter" : "Εκκαθάριση φίλτρου",
|
||||||
"View Modes" : "Τρόποι προβολής",
|
|
||||||
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
||||||
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
||||||
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
||||||
"Hide card cover images" : "Απόκρυψη εικόνων εξωφύλλου καρτών",
|
|
||||||
"Show card cover images" : "Εμφάνιση εικόνων εξωφύλλου καρτών",
|
|
||||||
"Open details" : "Άνοιγμα λεπτομερειών",
|
"Open details" : "Άνοιγμα λεπτομερειών",
|
||||||
"Details" : "Λεπτομέρειες",
|
"Details" : "Λεπτομέρειες",
|
||||||
"Currently present people" : "Παρόντες αυτή τη στιγμή",
|
"Currently present people" : "Παρόντες αυτή τη στιγμή",
|
||||||
@@ -172,7 +165,6 @@
|
|||||||
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
||||||
"Board owner" : "Κάτοχος πίνακα",
|
"Board owner" : "Κάτοχος πίνακα",
|
||||||
"(Group)" : "(Ομάδα)",
|
"(Group)" : "(Ομάδα)",
|
||||||
"(Team)" : "(Ομάδα)",
|
|
||||||
"Can edit" : "Μπορεί να επεξεργαστεί",
|
"Can edit" : "Μπορεί να επεξεργαστεί",
|
||||||
"Can share" : "Μπορεί να διαμοιράσει",
|
"Can share" : "Μπορεί να διαμοιράσει",
|
||||||
"Can manage" : "Μπορεί να διαχειριστεί",
|
"Can manage" : "Μπορεί να διαχειριστεί",
|
||||||
@@ -199,7 +191,6 @@
|
|||||||
"Board name" : "Όνομα πίνακα",
|
"Board name" : "Όνομα πίνακα",
|
||||||
"Members" : "Μέλη",
|
"Members" : "Μέλη",
|
||||||
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
||||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
|
||||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||||
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
"Share from Files" : "Κοινή χρήση από Αρχεία",
|
||||||
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
"Pending share" : "Κοινή χρήση σε εκκρεμότητα",
|
||||||
@@ -237,70 +228,35 @@
|
|||||||
"Add Attachment" : "Προσθήκη συνημμένου",
|
"Add Attachment" : "Προσθήκη συνημμένου",
|
||||||
"Write a description …" : "Γράψτε μια περιγραφή…",
|
"Write a description …" : "Γράψτε μια περιγραφή…",
|
||||||
"Choose attachment" : "Επιλογή συνημμένου",
|
"Choose attachment" : "Επιλογή συνημμένου",
|
||||||
"Assign a due date to this card…" : "Ορίστε μια ημερομηνία λήξης σε αυτή την κάρτα...",
|
|
||||||
"Set a due date" : "Καθορίστε ημερομηνίας λήξης",
|
"Set a due date" : "Καθορίστε ημερομηνίας λήξης",
|
||||||
"Add due date" : "Προσθήκη ημερομηνίας λήξης",
|
|
||||||
"Choose a date" : "Επιλέξτε ημερομηνίας",
|
|
||||||
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
||||||
"Due at:" : "Λήγει στις:",
|
|
||||||
"Not completed" : "Μη ολοκληρωμένο",
|
|
||||||
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
||||||
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
||||||
"Select Date" : "Επιλέξτε ημερομηνία",
|
"Select Date" : "Επιλέξτε ημερομηνία",
|
||||||
"Set due date for later today" : "Ορίστε ημερομηνία λήξης για αργότερα σήμερα",
|
|
||||||
"Set due date for tomorrow" : "Ορίστε ημερομηνία λήξης για αύριο",
|
|
||||||
"Set due date for this weekend" : "Ορίστε ημερομηνία λήξης για αυτό το Σαββατοκύριακο",
|
|
||||||
"Set due date for next week" : "Ορίστε ημερομηνία λήξης για την επόμενη εβδομάδα",
|
|
||||||
"Assign a tag to this card…" : "Ορίστε μια ετικέτα σε αυτήν την καρτέλα...",
|
"Assign a tag to this card…" : "Ορίστε μια ετικέτα σε αυτήν την καρτέλα...",
|
||||||
"Select or create a tag…" : "Επιλέξτε ή δημιουργήστε μια ετικέτα...",
|
|
||||||
"Create a new tag:" : "Δημιουργήστε νέα ετικέτα",
|
|
||||||
"(group)" : "(ομάδα)",
|
"(group)" : "(ομάδα)",
|
||||||
"Next week – {timeLocale}" : "Επόμενη εβδομάδα – {timeLocale}",
|
|
||||||
"Todo items" : "Στοιχεία todo",
|
"Todo items" : "Στοιχεία todo",
|
||||||
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
"{count} comments, {unread} unread" : "{count} σχόλια, {unread} μη αναγνωσμένα",
|
||||||
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
"Edit card title" : "Επεξεργασία τίτλου κάρτας",
|
||||||
"Card details" : "Λεπτομέρειες καρτέλας",
|
"Card details" : "Λεπτομέρειες καρτέλας",
|
||||||
"Assign to me" : "Ανάθεση σε εμένα",
|
"Assign to me" : "Ανάθεση σε εμένα",
|
||||||
"Unassign myself" : "Αποδέσμευσή μου",
|
"Unassign myself" : "Αποδέσμευσή μου",
|
||||||
"Mark as not done" : "Σήμανση ως ολοκληρωμένου",
|
|
||||||
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
||||||
"Delete card" : "Διαγραφή καρτέλας",
|
"Delete card" : "Διαγραφή καρτέλας",
|
||||||
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
"Card deleted" : "Η καρτέλα διαγράφηκε",
|
||||||
"seconds ago" : " δευτερόλεπτα πριν ",
|
"seconds ago" : " δευτερόλεπτα πριν ",
|
||||||
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
"Keyboard shortcuts" : "Συντομεύσεις πληκτρολογίου",
|
||||||
"Boost your productivity using Deck with keyboard shortcuts." : "Αυξήστε την παραγωγικότητά σας στο Deck χρησιμοποιώντας συντομεύσεις πληκτρολογίου.",
|
|
||||||
"Board actions" : "Ενέργειες πίνακα",
|
|
||||||
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
"Keyboard shortcut" : "Συντόμευση πλητρολογίου",
|
||||||
"Action" : "Ενέργεια",
|
"Action" : "Ενέργεια",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Scroll" : "Κύλιση",
|
|
||||||
"Scroll sideways" : "Κύλιση οριζόντια",
|
|
||||||
"Navigate between cards" : "Πλοήγηση μεταξύ καρτών",
|
|
||||||
"Esc" : "Esc",
|
|
||||||
"Close card details" : "Κλείσιμο λεπτομερειών κάρτας",
|
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Αναζήτηση",
|
"Search" : "Αναζήτηση",
|
||||||
"Show card filters" : "Εμφάνιση φίλτρων κάρτας",
|
|
||||||
"Clear card filters" : "Εκκαθάριση φίλτρων κάρτας",
|
|
||||||
"Show help dialog" : "Εμφάνιση διαλόγου βοήθειας",
|
|
||||||
"Card actions" : "Ενέργειες κάρτας",
|
|
||||||
"The following actions can be triggered on the currently highlighted card" : "Οι ακόλουθες ενέργειες μπορούν να ενεργοποιηθούν για την τρέχουσα επιλεγμένη κάρτα",
|
|
||||||
"Enter" : "Enter",
|
|
||||||
"Space" : "Space",
|
|
||||||
"Open card details" : "Άνοιγμα λεπτομερειών κάρτας",
|
|
||||||
"Edit the card title" : "Επεξεργασία τίτλου κάρτας",
|
|
||||||
"Assign yourself to the current card" : "Αναθέστε τον εαυτό σας στην τρέχουσα κάρτα",
|
|
||||||
"Archive/unarchive the current card" : "Αρχειοθέτηση/αποαρχειοθέτηση της τρέχουσας κάρτας",
|
|
||||||
"Mark card as completed/not completed" : "Σημειώστε την κάρτα ως ολοκληρωμένη/μη ολοκληρωμένη",
|
|
||||||
"Open card menu" : "Άνοιγμα μενού κάρτας",
|
|
||||||
"All boards" : "Όλοι οι πίνακες",
|
"All boards" : "Όλοι οι πίνακες",
|
||||||
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
"Archived boards" : "Αρχειοθέτηση πινάκων ",
|
||||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||||
"Deck settings" : "Ρυθμίσεις Deck",
|
"Deck settings" : "Ρυθμίσεις Deck",
|
||||||
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
||||||
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
||||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
|
||||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
|
||||||
"Board details" : "Λεπτομέριες πίνακα",
|
"Board details" : "Λεπτομέριες πίνακα",
|
||||||
"Edit board" : "Επεξεργασία πίνακα",
|
"Edit board" : "Επεξεργασία πίνακα",
|
||||||
"Clone board" : "Κλώνος πίνακα",
|
"Clone board" : "Κλώνος πίνακα",
|
||||||
@@ -326,7 +282,6 @@
|
|||||||
"No due" : "Χωρίς λήξη",
|
"No due" : "Χωρίς λήξη",
|
||||||
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
"Search for {searchQuery} in all boards" : "Αναζήτηση για {searchQuery} σε όλους τους πίνακες",
|
||||||
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
"No results found" : "Δεν βρέθηκαν αποτελέσματα",
|
||||||
"This weekend – {timeLocale}" : "Αυτή την εβδομάδα – {timeLocale}",
|
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "Πίνακας Deck {name}\n* Τελευταία τροποποίηση στις {lastMod}",
|
||||||
"{stack} in {board}" : "{stack} στο {board}",
|
"{stack} in {board}" : "{stack} στο {board}",
|
||||||
"Click to expand description" : "Κλικ για επέκταση περιγραφής",
|
"Click to expand description" : "Κλικ για επέκταση περιγραφής",
|
||||||
@@ -341,13 +296,8 @@
|
|||||||
"Open card" : "Άνοιγμα καρτέλας",
|
"Open card" : "Άνοιγμα καρτέλας",
|
||||||
"Close" : "Κλείσιμο",
|
"Close" : "Κλείσιμο",
|
||||||
"No upcoming cards" : "Δεν υπάρχουν επερχόμενες καρτέλες",
|
"No upcoming cards" : "Δεν υπάρχουν επερχόμενες καρτέλες",
|
||||||
"upcoming cards today" : "επερχόμενες κάρτες σήμερα",
|
|
||||||
"upcoming cards tomorrow" : "επερχόμενες κάρτες αύριο",
|
|
||||||
"upcoming cards" : "επερχόμενες καρτέλες",
|
"upcoming cards" : "επερχόμενες καρτέλες",
|
||||||
"New card" : "Νέα κάρτα",
|
|
||||||
"Due on {date}" : "Προθεσμία στις {date}",
|
"Due on {date}" : "Προθεσμία στις {date}",
|
||||||
"Tomorrow – {timeLocale}" : "Αύριο – {timeLocale}",
|
|
||||||
"Later today – {timeLocale}" : "Αργότερα σήμερα – {timeLocale}",
|
|
||||||
"Link to a board" : "Σύνδεσμος στον πίνακα",
|
"Link to a board" : "Σύνδεσμος στον πίνακα",
|
||||||
"Link to a card" : "Σύνδεσμος σε καρτέλα",
|
"Link to a card" : "Σύνδεσμος σε καρτέλα",
|
||||||
"Create a card" : "Δημιουργία καρτέλας",
|
"Create a card" : "Δημιουργία καρτέλας",
|
||||||
@@ -364,7 +314,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Διαμοιράστε τον πίνακα με χρήστη, ομάδα ή κύκλο ...",
|
"Share board with a user, group or circle …" : "Διαμοιράστε τον πίνακα με χρήστη, ομάδα ή κύκλο ...",
|
||||||
"Searching for users, groups and circles …" : "Αναζήτηση χρηστών, ομάδων και κύκλων…",
|
"Searching for users, groups and circles …" : "Αναζήτηση χρηστών, ομάδων και κύκλων…",
|
||||||
"(Circle)" : "(Κύκλος)",
|
"(Circle)" : "(Κύκλος)",
|
||||||
|
"Assign to users" : "Ανάθεση σε χρήστες",
|
||||||
"Assign to users/groups/circles" : "Ανάθεση σε χρήστες/ομάδες/κύκλους",
|
"Assign to users/groups/circles" : "Ανάθεση σε χρήστες/ομάδες/κύκλους",
|
||||||
|
"Due date" : "Ημερομηνία λήξης",
|
||||||
"Next week" : "Επόμενη εβδομάδα",
|
"Next week" : "Επόμενη εβδομάδα",
|
||||||
"Next month" : "Επόμενος μήνας",
|
"Next month" : "Επόμενος μήνας",
|
||||||
"List is empty" : "Η λίστα είναι κενή",
|
"List is empty" : "Η λίστα είναι κενή",
|
||||||
|
|||||||
@@ -379,7 +379,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
|
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
|
||||||
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
|
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
|
||||||
"(Circle)" : "(Circle)",
|
"(Circle)" : "(Circle)",
|
||||||
|
"Assign to users" : "Assign to users",
|
||||||
"Assign to users/groups/circles" : "Assign to users/groups/circles",
|
"Assign to users/groups/circles" : "Assign to users/groups/circles",
|
||||||
|
"Due date" : "Due date",
|
||||||
"Next week" : "Next week",
|
"Next week" : "Next week",
|
||||||
"Next month" : "Next month",
|
"Next month" : "Next month",
|
||||||
"List is empty" : "List is empty",
|
"List is empty" : "List is empty",
|
||||||
|
|||||||
@@ -377,7 +377,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
|
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
|
||||||
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
|
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
|
||||||
"(Circle)" : "(Circle)",
|
"(Circle)" : "(Circle)",
|
||||||
|
"Assign to users" : "Assign to users",
|
||||||
"Assign to users/groups/circles" : "Assign to users/groups/circles",
|
"Assign to users/groups/circles" : "Assign to users/groups/circles",
|
||||||
|
"Due date" : "Due date",
|
||||||
"Next week" : "Next week",
|
"Next week" : "Next week",
|
||||||
"Next month" : "Next month",
|
"Next month" : "Next month",
|
||||||
"List is empty" : "List is empty",
|
"List is empty" : "List is empty",
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ OC.L10N.register(
|
|||||||
"Share" : "Kunhavigi",
|
"Share" : "Kunhavigi",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Karta priskribo</strong> ene de la aplikaĵo Kartaro ŝanĝiĝis",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Karta priskribo</strong> ene de la aplikaĵo Kartaro ŝanĝiĝis",
|
||||||
"Timeline" : "Kronologio",
|
"Timeline" : "Kronologio",
|
||||||
|
"Due date" : "Limdato",
|
||||||
"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." : "Limigo de Kartaro („Deck“) baros uzantojn, kiuj ne estas en tiuj grupoj, krei iliajn proprajn tabulojn. Uzantoj tamen eblos labori kun tabuloj kunhavigitaj kun ili."
|
"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." : "Limigo de Kartaro („Deck“) baros uzantojn, kiuj ne estas en tiuj grupoj, krei iliajn proprajn tabulojn. Uzantoj tamen eblos labori kun tabuloj kunhavigitaj kun ili."
|
||||||
},
|
},
|
||||||
"nplurals=2; plural=(n != 1);");
|
"nplurals=2; plural=(n != 1);");
|
||||||
|
|||||||
@@ -131,6 +131,7 @@
|
|||||||
"Share" : "Kunhavigi",
|
"Share" : "Kunhavigi",
|
||||||
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Karta priskribo</strong> ene de la aplikaĵo Kartaro ŝanĝiĝis",
|
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Karta priskribo</strong> ene de la aplikaĵo Kartaro ŝanĝiĝis",
|
||||||
"Timeline" : "Kronologio",
|
"Timeline" : "Kronologio",
|
||||||
|
"Due date" : "Limdato",
|
||||||
"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." : "Limigo de Kartaro („Deck“) baros uzantojn, kiuj ne estas en tiuj grupoj, krei iliajn proprajn tabulojn. Uzantoj tamen eblos labori kun tabuloj kunhavigitaj kun ili."
|
"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." : "Limigo de Kartaro („Deck“) baros uzantojn, kiuj ne estas en tiuj grupoj, krei iliajn proprajn tabulojn. Uzantoj tamen eblos labori kun tabuloj kunhavigitaj kun ili."
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
}
|
}
|
||||||
10
l10n/es.js
10
l10n/es.js
@@ -149,8 +149,6 @@ OC.L10N.register(
|
|||||||
"Filter by tag" : "Filtrar por etiqueta",
|
"Filter by tag" : "Filtrar por etiqueta",
|
||||||
"Filter by assigned user" : "Filtrar por usuario asignado",
|
"Filter by assigned user" : "Filtrar por usuario asignado",
|
||||||
"Unassigned" : "No asignado",
|
"Unassigned" : "No asignado",
|
||||||
"Filter by completed" : "Filtrar por completados",
|
|
||||||
"Open and completed" : "Abiertos y completados",
|
|
||||||
"Open" : "Abrir",
|
"Open" : "Abrir",
|
||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"Filter by due date" : "Filtrar por fecha de finalización",
|
"Filter by due date" : "Filtrar por fecha de finalización",
|
||||||
@@ -180,12 +178,9 @@ OC.L10N.register(
|
|||||||
"Deleted lists" : "Listas eliminadas",
|
"Deleted lists" : "Listas eliminadas",
|
||||||
"Undo" : "Deshacer",
|
"Undo" : "Deshacer",
|
||||||
"Deleted cards" : "Cartas eliminadas",
|
"Deleted cards" : "Cartas eliminadas",
|
||||||
"Share board with a user, group or team …" : "Compartir tablero con un usuario, grupo o equipo …",
|
|
||||||
"Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …",
|
|
||||||
"No participants found" : "No se encontraron participantes",
|
"No participants found" : "No se encontraron participantes",
|
||||||
"Board owner" : "Propietario del tablero",
|
"Board owner" : "Propietario del tablero",
|
||||||
"(Group)" : "(Grupo)",
|
"(Group)" : "(Grupo)",
|
||||||
"(Team)" : "(Equipo)",
|
|
||||||
"Can edit" : "Puede editar",
|
"Can edit" : "Puede editar",
|
||||||
"Can share" : "Puede compartir",
|
"Can share" : "Puede compartir",
|
||||||
"Can manage" : "Puede gestionar",
|
"Can manage" : "Puede gestionar",
|
||||||
@@ -211,9 +206,7 @@ OC.L10N.register(
|
|||||||
"title and color value must be provided" : "Se debe indicar un valor para título y color ",
|
"title and color value must be provided" : "Se debe indicar un valor para título y color ",
|
||||||
"Board name" : "Nombre del tablero",
|
"Board name" : "Nombre del tablero",
|
||||||
"Members" : "Miembros",
|
"Members" : "Miembros",
|
||||||
"Assign to users/groups/team" : "Asignar a usuarios/grupos/equipo",
|
|
||||||
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta...",
|
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta...",
|
||||||
"Select a user to assign to this card…" : "Seleccione un usuario para asignar esta tarjeta…",
|
|
||||||
"Upload new files" : "Subir nuevos archivos",
|
"Upload new files" : "Subir nuevos archivos",
|
||||||
"Share from Files" : "Compartir desde Archivos",
|
"Share from Files" : "Compartir desde Archivos",
|
||||||
"Pending share" : "Pendiente de compartir",
|
"Pending share" : "Pendiente de compartir",
|
||||||
@@ -266,7 +259,6 @@ OC.L10N.register(
|
|||||||
"Set due date for this weekend" : "Establecer este fin de semana 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",
|
"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...",
|
||||||
"Select or create a tag…" : "Seleccionar o crear una etiqueta…",
|
|
||||||
"Create a new tag:" : "Crear una nueva etiqueta:",
|
"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}",
|
||||||
@@ -379,7 +371,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo ...",
|
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo ...",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos o círculos...",
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos o círculos...",
|
||||||
"(Circle)" : "(Circle)",
|
"(Circle)" : "(Circle)",
|
||||||
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
||||||
|
"Due date" : "Fecha límite",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
"Next month" : "Mes siguiente",
|
"Next month" : "Mes siguiente",
|
||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
|
|||||||
10
l10n/es.json
10
l10n/es.json
@@ -147,8 +147,6 @@
|
|||||||
"Filter by tag" : "Filtrar por etiqueta",
|
"Filter by tag" : "Filtrar por etiqueta",
|
||||||
"Filter by assigned user" : "Filtrar por usuario asignado",
|
"Filter by assigned user" : "Filtrar por usuario asignado",
|
||||||
"Unassigned" : "No asignado",
|
"Unassigned" : "No asignado",
|
||||||
"Filter by completed" : "Filtrar por completados",
|
|
||||||
"Open and completed" : "Abiertos y completados",
|
|
||||||
"Open" : "Abrir",
|
"Open" : "Abrir",
|
||||||
"Completed" : "Completado",
|
"Completed" : "Completado",
|
||||||
"Filter by due date" : "Filtrar por fecha de finalización",
|
"Filter by due date" : "Filtrar por fecha de finalización",
|
||||||
@@ -178,12 +176,9 @@
|
|||||||
"Deleted lists" : "Listas eliminadas",
|
"Deleted lists" : "Listas eliminadas",
|
||||||
"Undo" : "Deshacer",
|
"Undo" : "Deshacer",
|
||||||
"Deleted cards" : "Cartas eliminadas",
|
"Deleted cards" : "Cartas eliminadas",
|
||||||
"Share board with a user, group or team …" : "Compartir tablero con un usuario, grupo o equipo …",
|
|
||||||
"Searching for users, groups and teams …" : "Buscando usuarios, grupos y equipos …",
|
|
||||||
"No participants found" : "No se encontraron participantes",
|
"No participants found" : "No se encontraron participantes",
|
||||||
"Board owner" : "Propietario del tablero",
|
"Board owner" : "Propietario del tablero",
|
||||||
"(Group)" : "(Grupo)",
|
"(Group)" : "(Grupo)",
|
||||||
"(Team)" : "(Equipo)",
|
|
||||||
"Can edit" : "Puede editar",
|
"Can edit" : "Puede editar",
|
||||||
"Can share" : "Puede compartir",
|
"Can share" : "Puede compartir",
|
||||||
"Can manage" : "Puede gestionar",
|
"Can manage" : "Puede gestionar",
|
||||||
@@ -209,9 +204,7 @@
|
|||||||
"title and color value must be provided" : "Se debe indicar un valor para título y color ",
|
"title and color value must be provided" : "Se debe indicar un valor para título y color ",
|
||||||
"Board name" : "Nombre del tablero",
|
"Board name" : "Nombre del tablero",
|
||||||
"Members" : "Miembros",
|
"Members" : "Miembros",
|
||||||
"Assign to users/groups/team" : "Asignar a usuarios/grupos/equipo",
|
|
||||||
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta...",
|
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta...",
|
||||||
"Select a user to assign to this card…" : "Seleccione un usuario para asignar esta tarjeta…",
|
|
||||||
"Upload new files" : "Subir nuevos archivos",
|
"Upload new files" : "Subir nuevos archivos",
|
||||||
"Share from Files" : "Compartir desde Archivos",
|
"Share from Files" : "Compartir desde Archivos",
|
||||||
"Pending share" : "Pendiente de compartir",
|
"Pending share" : "Pendiente de compartir",
|
||||||
@@ -264,7 +257,6 @@
|
|||||||
"Set due date for this weekend" : "Establecer este fin de semana 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",
|
"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...",
|
||||||
"Select or create a tag…" : "Seleccionar o crear una etiqueta…",
|
|
||||||
"Create a new tag:" : "Crear una nueva etiqueta:",
|
"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}",
|
||||||
@@ -377,7 +369,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo ...",
|
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo ...",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos o círculos...",
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos o círculos...",
|
||||||
"(Circle)" : "(Circle)",
|
"(Circle)" : "(Circle)",
|
||||||
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
||||||
|
"Due date" : "Fecha límite",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
"Next month" : "Mes siguiente",
|
"Next month" : "Mes siguiente",
|
||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -109,6 +109,7 @@ OC.L10N.register(
|
|||||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
||||||
"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",
|
||||||
|
"Due date" : "Fecha de vencimiento",
|
||||||
"Next week" : "Proxima semana",
|
"Next week" : "Proxima semana",
|
||||||
"Next month" : "Proximo mes",
|
"Next month" : "Proximo mes",
|
||||||
"Limit deck usage of groups" : "Limitar el uso del Tablero a grupos",
|
"Limit deck usage of groups" : "Limitar el uso del Tablero a grupos",
|
||||||
|
|||||||
@@ -107,6 +107,7 @@
|
|||||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta del Tablero",
|
||||||
"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",
|
||||||
|
"Due date" : "Fecha de vencimiento",
|
||||||
"Next week" : "Proxima semana",
|
"Next week" : "Proxima semana",
|
||||||
"Next month" : "Proximo mes",
|
"Next month" : "Proximo mes",
|
||||||
"Limit deck usage of groups" : "Limitar el uso del Tablero a grupos",
|
"Limit deck usage of groups" : "Limitar el uso del Tablero a grupos",
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -65,6 +65,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -66,6 +66,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -66,6 +66,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -322,7 +322,9 @@ OC.L10N.register(
|
|||||||
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
|
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||||
"(Circle)" : "(Círculo)",
|
"(Circle)" : "(Círculo)",
|
||||||
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
||||||
|
"Due date" : "Fecha de vencimiento",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
"Next month" : "Mes siguiente",
|
"Next month" : "Mes siguiente",
|
||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
|
|||||||
@@ -320,7 +320,9 @@
|
|||||||
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
|
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||||
"(Circle)" : "(Círculo)",
|
"(Circle)" : "(Círculo)",
|
||||||
|
"Assign to users" : "Asignar a usuarios",
|
||||||
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
|
||||||
|
"Due date" : "Fecha de vencimiento",
|
||||||
"Next week" : "Semana siguiente",
|
"Next week" : "Semana siguiente",
|
||||||
"Next month" : "Mes siguiente",
|
"Next month" : "Mes siguiente",
|
||||||
"List is empty" : "La lista está vacía",
|
"List is empty" : "La lista está vacía",
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,6 @@ OC.L10N.register(
|
|||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
|
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
|
||||||
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
||||||
"Deck board" : "Tablero de Deck",
|
|
||||||
"%s on %s" : "%s en %s",
|
"%s on %s" : "%s en %s",
|
||||||
"Finished" : "Terminado",
|
"Finished" : "Terminado",
|
||||||
"To review" : "Para revisar",
|
"To review" : "Para revisar",
|
||||||
@@ -21,7 +20,6 @@ OC.L10N.register(
|
|||||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||||
"Could not write file to disk" : "No fue posible escribir a disco",
|
"Could not write file to disk" : "No fue posible escribir a disco",
|
||||||
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
|
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "No se ha cargado ningún archivo o el tamaño del archivo excede el máximo de %s",
|
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||||
"Cancel" : "Cancelar",
|
"Cancel" : "Cancelar",
|
||||||
"File already exists" : "El archivo ya existe",
|
"File already exists" : "El archivo ya existe",
|
||||||
@@ -72,10 +70,7 @@ OC.L10N.register(
|
|||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
"Keyboard shortcuts" : "Atajos del teclado",
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
"Keyboard shortcut" : "Atajo del teclado",
|
||||||
"Action" : "Acción",
|
"Action" : "Acción",
|
||||||
"Shift" : "Mayús",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Buscar",
|
"Search" : "Buscar",
|
||||||
"Enter" : "Intro",
|
|
||||||
"Space" : "Espacio",
|
"Space" : "Espacio",
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
@@ -89,8 +84,8 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Error creating the share" : "Error creando el recurso compartido",
|
|
||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
"Personal" : "Personal",
|
"Personal" : "Personal",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
|
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
|
||||||
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
|
||||||
"Deck board" : "Tablero de Deck",
|
|
||||||
"%s on %s" : "%s en %s",
|
"%s on %s" : "%s en %s",
|
||||||
"Finished" : "Terminado",
|
"Finished" : "Terminado",
|
||||||
"To review" : "Para revisar",
|
"To review" : "Para revisar",
|
||||||
@@ -19,7 +18,6 @@
|
|||||||
"Missing a temporary folder" : "Falta una carpeta temporal",
|
"Missing a temporary folder" : "Falta una carpeta temporal",
|
||||||
"Could not write file to disk" : "No fue posible escribir a disco",
|
"Could not write file to disk" : "No fue posible escribir a disco",
|
||||||
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
|
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "No se ha cargado ningún archivo o el tamaño del archivo excede el máximo de %s",
|
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
|
||||||
"Cancel" : "Cancelar",
|
"Cancel" : "Cancelar",
|
||||||
"File already exists" : "El archivo ya existe",
|
"File already exists" : "El archivo ya existe",
|
||||||
@@ -70,10 +68,7 @@
|
|||||||
"Keyboard shortcuts" : "Atajos del teclado",
|
"Keyboard shortcuts" : "Atajos del teclado",
|
||||||
"Keyboard shortcut" : "Atajo del teclado",
|
"Keyboard shortcut" : "Atajo del teclado",
|
||||||
"Action" : "Acción",
|
"Action" : "Acción",
|
||||||
"Shift" : "Mayús",
|
|
||||||
"Ctrl" : "Ctrl",
|
|
||||||
"Search" : "Buscar",
|
"Search" : "Buscar",
|
||||||
"Enter" : "Intro",
|
|
||||||
"Space" : "Espacio",
|
"Space" : "Espacio",
|
||||||
"Archived boards" : "Tableros archivados",
|
"Archived boards" : "Tableros archivados",
|
||||||
"Shared with you" : "Compartido con usted",
|
"Shared with you" : "Compartido con usted",
|
||||||
@@ -87,8 +82,8 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Error creating the share" : "Error creando el recurso compartido",
|
|
||||||
"Share" : "Compartir",
|
"Share" : "Compartir",
|
||||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
|
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -64,6 +64,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -62,6 +62,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -65,6 +65,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -66,6 +66,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -62,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},
|
},
|
||||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"Today" : "Hoy",
|
"Today" : "Hoy",
|
||||||
"Tomorrow" : "Mañana",
|
"Tomorrow" : "Mañana",
|
||||||
"Close" : "Cerrar",
|
"Close" : "Cerrar",
|
||||||
"Share" : "Compartir"
|
"Share" : "Compartir",
|
||||||
|
"Due date" : "Fecha de vencimiento"
|
||||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||||
}
|
}
|
||||||
@@ -53,6 +53,7 @@ OC.L10N.register(
|
|||||||
"Close" : "Sulge",
|
"Close" : "Sulge",
|
||||||
"Share" : "Jaga",
|
"Share" : "Jaga",
|
||||||
"Timeline" : "Ajajoon",
|
"Timeline" : "Ajajoon",
|
||||||
|
"Due date" : "Tähtaeg",
|
||||||
"Next week" : "Järgmine nädal",
|
"Next week" : "Järgmine nädal",
|
||||||
"Next month" : "Järgmine kuu"
|
"Next month" : "Järgmine kuu"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
"Close" : "Sulge",
|
"Close" : "Sulge",
|
||||||
"Share" : "Jaga",
|
"Share" : "Jaga",
|
||||||
"Timeline" : "Ajajoon",
|
"Timeline" : "Ajajoon",
|
||||||
|
"Due date" : "Tähtaeg",
|
||||||
"Next week" : "Järgmine nädal",
|
"Next week" : "Järgmine nädal",
|
||||||
"Next month" : "Järgmine kuu"
|
"Next month" : "Järgmine kuu"
|
||||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user