Compare commits
439 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
042792bfd7 | ||
|
|
5f65d14cbd | ||
|
|
f3545dd677 | ||
|
|
a7d34360b1 | ||
|
|
de907d69c5 | ||
|
|
438376b20a | ||
|
|
0223dd9a3a | ||
|
|
974a4c979a | ||
|
|
51ba51fe33 | ||
|
|
4d5c69f250 | ||
|
|
9bddab4928 | ||
|
|
6dcb1d4b8b | ||
|
|
9ed384fa20 | ||
|
|
7cdc79a9ef | ||
|
|
852770c574 | ||
|
|
74afeb85d0 | ||
|
|
12a494720b | ||
|
|
b3261e0b56 | ||
|
|
88dbb010d0 | ||
|
|
d8adaf5fe6 | ||
|
|
2a36b45072 | ||
|
|
4e6474fa99 | ||
|
|
dbe7536339 | ||
|
|
b5e08110ab | ||
|
|
a7f2558aab | ||
|
|
3c3e6fa7d2 | ||
|
|
6a2b092ad6 | ||
|
|
5f2c300b21 | ||
|
|
439e44128a | ||
|
|
55056e27f1 | ||
|
|
22c36a0d77 | ||
|
|
1ebaa0c41f | ||
|
|
a2dbb94179 | ||
|
|
6f6f54965c | ||
|
|
5a833ec367 | ||
|
|
f1161be49f | ||
|
|
c0731ce142 | ||
|
|
4534ad5a92 | ||
|
|
6788210c27 | ||
|
|
1051dea281 | ||
|
|
eb9fce2e5f | ||
|
|
955a16f1c5 | ||
|
|
f38773473b | ||
|
|
b15254f1ed | ||
|
|
b708f3967b | ||
|
|
a2a8b1ade5 | ||
|
|
6dd623f796 | ||
|
|
41e97d7281 | ||
|
|
1b2a352df1 | ||
|
|
7fcad2425d | ||
|
|
5fb43086b6 | ||
|
|
7b4586a43a | ||
|
|
aaa76f7bd0 | ||
|
|
8260296d64 | ||
|
|
b02bc530f1 | ||
|
|
1b4e859431 | ||
|
|
acc61ad584 | ||
|
|
cb1d5c49e0 | ||
|
|
0c7b1c4731 | ||
|
|
629ef85d64 | ||
|
|
914f1d76ac | ||
|
|
0923070c45 | ||
|
|
bbf51952e0 | ||
|
|
1d1c2df8f3 | ||
|
|
0780b10170 | ||
|
|
fd6ef9b6eb | ||
|
|
da4a54900c | ||
|
|
53bd32d6b6 | ||
|
|
f7fa419105 | ||
|
|
023ab01e93 | ||
|
|
615d5ef871 | ||
|
|
a52b7b9742 | ||
|
|
dcbc6bc604 | ||
|
|
ce13d89e07 | ||
|
|
7114b10871 | ||
|
|
100404d25f | ||
|
|
60bfc192d3 | ||
|
|
fd090c7749 | ||
|
|
d735308bd3 | ||
|
|
4ec068ca62 | ||
|
|
f5e3e5e0f8 | ||
|
|
94aee3e07a | ||
|
|
b1f7c623a1 | ||
|
|
afa95d3c50 | ||
|
|
ba8e77abfe | ||
|
|
8c09047203 | ||
|
|
baa85e8947 | ||
|
|
f1e5acc52e | ||
|
|
d76b7a4667 | ||
|
|
df32a3ee34 | ||
|
|
2fa74662db | ||
|
|
d5fd80d116 | ||
|
|
97afe9fa85 | ||
|
|
141e2dbc08 | ||
|
|
7a0b243885 | ||
|
|
e662e621ad | ||
|
|
98c3e4acbd | ||
|
|
7b21a9a7ea | ||
|
|
90af63d757 | ||
|
|
facca9c7e6 | ||
|
|
37119c22e4 | ||
|
|
be748f5f6f | ||
|
|
fa23a3852f | ||
|
|
c5c8a6ef71 | ||
|
|
047fcb6584 | ||
|
|
75be929077 | ||
|
|
46c4c7d4fd | ||
|
|
aa3a829592 | ||
|
|
351af0bd39 | ||
|
|
66fbaac8d7 | ||
|
|
3b4fc9db20 | ||
|
|
1292f68340 | ||
|
|
2861d9f89f | ||
|
|
a552bde7c7 | ||
|
|
0f593eda27 | ||
|
|
0c71403859 | ||
|
|
facb5f4a33 | ||
|
|
13d6a79b1f | ||
|
|
8104df7c14 | ||
|
|
a35489bee3 | ||
|
|
fe1c4e5b34 | ||
|
|
eeda7b4fb9 | ||
|
|
052774397c | ||
|
|
f2c30afe8a | ||
|
|
ea01d84419 | ||
|
|
e2cc8c3bd9 | ||
|
|
c630d3e809 | ||
|
|
97eb0a2c5e | ||
|
|
59fa3cd11c | ||
|
|
bdaf28eef4 | ||
|
|
00a1fa8b85 | ||
|
|
76792c61a1 | ||
|
|
989db86f83 | ||
|
|
61019d5625 | ||
|
|
ba45022c79 | ||
|
|
1fa8c5ff35 | ||
|
|
e98adcd65c | ||
|
|
92e6659301 | ||
|
|
96957af0ce | ||
|
|
7cd8946e20 | ||
|
|
9c55a2dde0 | ||
|
|
6d81cb3ddd | ||
|
|
5e92394dc7 | ||
|
|
6ceecd4f9b | ||
|
|
774b5f11cd | ||
|
|
fb236edf8c | ||
|
|
5aeebc1ed8 | ||
|
|
60b7357ef4 | ||
|
|
22bb8d65e9 | ||
|
|
8f77cce542 | ||
|
|
be783d244c | ||
|
|
4d17f10675 | ||
|
|
3391a40b77 | ||
|
|
d829a28ddf | ||
|
|
0a48954f18 | ||
|
|
2e0f0d29b6 | ||
|
|
1fe20dcc1d | ||
|
|
838b648ef6 | ||
|
|
55c44ef6d4 | ||
|
|
e436cb921a | ||
|
|
f6df55dd2d | ||
|
|
f8bdc3e864 | ||
|
|
443c7f852e | ||
|
|
86cb011a5c | ||
|
|
b3cdbdced8 | ||
|
|
ba953c9b09 | ||
|
|
e8ed8bc9d3 | ||
|
|
1b781b43a0 | ||
|
|
b79cb2e89d | ||
|
|
517fc14847 | ||
|
|
9058acaa58 | ||
|
|
326fb861a4 | ||
|
|
39097b424a | ||
|
|
5f9fb3c08f | ||
|
|
91458331bc | ||
|
|
368d5e4f63 | ||
|
|
3e52dc0ae2 | ||
|
|
36a1932786 | ||
|
|
53a83a788d | ||
|
|
48d0edd243 | ||
|
|
cc00efb40a | ||
|
|
27ec8beda2 | ||
|
|
a8dd7837c1 | ||
|
|
ae0460e5b7 | ||
|
|
246e270dc6 | ||
|
|
554b1edd52 | ||
|
|
bb78592b70 | ||
|
|
79419cdb96 | ||
|
|
7c22c706b0 | ||
|
|
389d72c30c | ||
|
|
ff2672b8f3 | ||
|
|
0ff9520e22 | ||
|
|
61ed059f13 | ||
|
|
587e2d4dcd | ||
|
|
bd44ea27d3 | ||
|
|
702206b9c3 | ||
|
|
47c4b58468 | ||
|
|
8dbea68b8f | ||
|
|
d44267d06c | ||
|
|
7d04b5a6b7 | ||
|
|
ac02ddfc4d | ||
|
|
606a53aac6 | ||
|
|
c4272d46a5 | ||
|
|
b492f7a6cf | ||
|
|
9cd320188d | ||
|
|
4d8f9763b8 | ||
|
|
a1d5c911e8 | ||
|
|
bf5f5ad09f | ||
|
|
1c0bc1f09a | ||
|
|
32c67cd3fb | ||
|
|
4da6a42bdf | ||
|
|
60dbf606be | ||
|
|
345ca761c7 | ||
|
|
d69a123d0e | ||
|
|
3e4bf0eb99 | ||
|
|
4ad732a7c4 | ||
|
|
f66e3e8172 | ||
|
|
c45a63da02 | ||
|
|
8e111f26f2 | ||
|
|
dc131fc681 | ||
|
|
ca24876463 | ||
|
|
10af76bdf0 | ||
|
|
bc746fec21 | ||
|
|
dc5a2a5914 | ||
|
|
79dfcc7e5a | ||
|
|
5d7913a377 | ||
|
|
dcc912919d | ||
|
|
5738e0851a | ||
|
|
83797f4e4a | ||
|
|
55778a26e6 | ||
|
|
c2c2519601 | ||
|
|
1184f18108 | ||
|
|
c80a087f6d | ||
|
|
d23c7eecd3 | ||
|
|
fb24eddaf8 | ||
|
|
cb09583c0b | ||
|
|
b08f0b80aa | ||
|
|
9f5bfbf8ff | ||
|
|
299e54baa9 | ||
|
|
bd1bd0ac41 | ||
|
|
af680cb37e | ||
|
|
ac68516579 | ||
|
|
876a68eb46 | ||
|
|
4372b4ac27 | ||
|
|
e4fb4655db | ||
|
|
ec76abe744 | ||
|
|
82fe8c8cf2 | ||
|
|
11e01b58eb | ||
|
|
00df27020c | ||
|
|
784a1462da | ||
|
|
abca5d19d7 | ||
|
|
3ceee99a69 | ||
|
|
02b17b8cf6 | ||
|
|
d688090dfc | ||
|
|
d36c127dc8 | ||
|
|
9b5c419c29 | ||
|
|
fff42693df | ||
|
|
192518decd | ||
|
|
51f4e2e415 | ||
|
|
a7eba9dcfd | ||
|
|
fff6395b3a | ||
|
|
4438d775f0 | ||
|
|
69e3e4a80b | ||
|
|
1868e66911 | ||
|
|
b4903c983d | ||
|
|
4bc033a2e9 | ||
|
|
f0a0b8d08e | ||
|
|
6a8784c184 | ||
|
|
f4a70cda51 | ||
|
|
101499df1e | ||
|
|
26f82d9ef6 | ||
|
|
4d9395982e | ||
|
|
12ae50d67b | ||
|
|
90e0cab306 | ||
|
|
7a414a0ca3 | ||
|
|
be4e8438ab | ||
|
|
f9580003cc | ||
|
|
761d0ce4fe | ||
|
|
cb6d8dbaf5 | ||
|
|
9eefd22422 | ||
|
|
7e2c170d1b | ||
|
|
351c72a590 | ||
|
|
ea5f3f2d70 | ||
|
|
4441107360 | ||
|
|
529c4defb3 | ||
|
|
e7a2306268 | ||
|
|
1ffee422b6 | ||
|
|
9fba14f1d3 | ||
|
|
e0185a39a8 | ||
|
|
0e49d72a67 | ||
|
|
786d2583de | ||
|
|
3ebdaf694d | ||
|
|
db50b78cb6 | ||
|
|
60f0719380 | ||
|
|
c68d223670 | ||
|
|
5c1e3ec50a | ||
|
|
e0b11a0171 | ||
|
|
e7a53ce31a | ||
|
|
d83b8b809d | ||
|
|
1020f6e344 | ||
|
|
6591466620 | ||
|
|
4505f2c426 | ||
|
|
1484a1445c | ||
|
|
28fa6a4372 | ||
|
|
a3724d61be | ||
|
|
439c2b422e | ||
|
|
2a7c5b9c9c | ||
|
|
bd6475c93f | ||
|
|
ae14c299f6 | ||
|
|
95ab566607 | ||
|
|
e19b78d5cf | ||
|
|
b20c5821e7 | ||
|
|
1b0f545d06 | ||
|
|
806d1074ea | ||
|
|
789930e10e | ||
|
|
1231e267aa | ||
|
|
b95e9756ab | ||
|
|
deea984d57 | ||
|
|
2b6877e771 | ||
|
|
5274b16253 | ||
|
|
3ef0985ae1 | ||
|
|
da6914d563 | ||
|
|
855d6cc4b9 | ||
|
|
22f1b9076a | ||
|
|
4900aca82e | ||
|
|
dafdf10755 | ||
|
|
ca3f6747e2 | ||
|
|
26129e724b | ||
|
|
93c5a6eb0f | ||
|
|
e91a4698f3 | ||
|
|
5cd2c51d19 | ||
|
|
b87047320a | ||
|
|
93d77fdbec | ||
|
|
37a807c108 | ||
|
|
706b564c01 | ||
|
|
93dc26aa6e | ||
|
|
0bf25619e0 | ||
|
|
fede0908bf | ||
|
|
b0bafb9212 | ||
|
|
ca75c14252 | ||
|
|
0076026fad | ||
|
|
b49ba034a0 | ||
|
|
0b53a4746d | ||
|
|
b636796851 | ||
|
|
46b81edc9e | ||
|
|
9f6f4eb475 | ||
|
|
7e3dc511c0 | ||
|
|
a329df397e | ||
|
|
6f25fc7e19 | ||
|
|
599844a87e | ||
|
|
088905dd7a | ||
|
|
4ffbafdbf2 | ||
|
|
2be3b85b09 | ||
|
|
76c709287b | ||
|
|
1f7b3cc480 | ||
|
|
40ac9b6c3e | ||
|
|
06fcf8f2cd | ||
|
|
2f0241df2e | ||
|
|
34ff6f4aac | ||
|
|
40f7f0907a | ||
|
|
0e5006616e | ||
|
|
792a513bb5 | ||
|
|
a9b65de341 | ||
|
|
a0fc1bbeb8 | ||
|
|
482bcb3149 | ||
|
|
cf0b90369a | ||
|
|
a0bcbc5cc6 | ||
|
|
e73eec8ba4 | ||
|
|
c1ed33848c | ||
|
|
d9d75fdfe4 | ||
|
|
c348b824c8 | ||
|
|
39987a0303 | ||
|
|
0906b06192 | ||
|
|
434f59d06d | ||
|
|
af4c01abd4 | ||
|
|
516bc6d5fc | ||
|
|
d7b3aedab4 | ||
|
|
fb641946d6 | ||
|
|
b3bc532e81 | ||
|
|
fe1006d643 | ||
|
|
9a37d6dbfc | ||
|
|
bf704309ad | ||
|
|
635cf3962f | ||
|
|
e986ca31a1 | ||
|
|
43a0fec9a6 | ||
|
|
c6c41c59d2 | ||
|
|
fb54b8126a | ||
|
|
a4f2a99776 | ||
|
|
dbca6bc0d7 | ||
|
|
e647faf31c | ||
|
|
fdd05853af | ||
|
|
afd8372baa | ||
|
|
f99d1f516c | ||
|
|
1aa23407f1 | ||
|
|
83d59dd3a9 | ||
|
|
2233786605 | ||
|
|
2d2f7c6772 | ||
|
|
ba3e97b73d | ||
|
|
4107481b07 | ||
|
|
6e158992dc | ||
|
|
0e4c60c23f | ||
|
|
702672de28 | ||
|
|
48bdf83887 | ||
|
|
520a0f8c26 | ||
|
|
b84564b0f7 | ||
|
|
ba33a83e9f | ||
|
|
b645c1e974 | ||
|
|
3daad1b9bc | ||
|
|
5416a2b3a1 | ||
|
|
5c3098afa1 | ||
|
|
e25470ece3 | ||
|
|
87a65e9b0f | ||
|
|
4c9459ac57 | ||
|
|
67bd5dcb1f | ||
|
|
beb563e74e | ||
|
|
3e1805b09b | ||
|
|
ee568ec307 | ||
|
|
37b355b530 | ||
|
|
a5de97ff42 | ||
|
|
3f4cdf7293 | ||
|
|
2a35b627a0 | ||
|
|
517347533d | ||
|
|
f0d021560a | ||
|
|
d49093f6b6 | ||
|
|
1c2f3683a5 | ||
|
|
bd0f8fb4c4 | ||
|
|
061a04142b | ||
|
|
092af73794 | ||
|
|
0f3359e417 | ||
|
|
90272cdc12 | ||
|
|
7891f017c9 | ||
|
|
cb5b67ed09 | ||
|
|
201c121e34 | ||
|
|
a1ea3b772b | ||
|
|
4d6a05915c | ||
|
|
0c5b4b0ebe | ||
|
|
be263513b3 | ||
|
|
db4db8a696 | ||
|
|
c2425f3c33 |
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"image": "ghcr.io/juliushaertl/nextcloud-dev-php81:latest",
|
||||
"image": "ghcr.io/juliusknorr/nextcloud-dev-php81:latest",
|
||||
"forwardPorts": [80],
|
||||
"containerEnv": {
|
||||
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
|
||||
|
||||
2
.github/CODEOWNERS
vendored
Normal file
2
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# App maintainers
|
||||
* @luka-nextcloud @grnd-alt @elzody
|
||||
51
.github/dependabot.yml
vendored
51
.github/dependabot.yml
vendored
@@ -13,6 +13,40 @@ updates:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable31
|
||||
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: stable30
|
||||
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: stable29
|
||||
versioning-strategy: lockfile-only
|
||||
@@ -47,23 +81,6 @@ updates:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable27
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
||||
6
.github/workflows/appbuild.yml
vendored
6
.github/workflows/appbuild.yml
vendored
@@ -16,15 +16,15 @@ jobs:
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.2.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer
|
||||
|
||||
26
.github/workflows/appstore-build-publish.yml
vendored
26
.github/workflows/appstore-build-publish.yml
vendored
@@ -12,9 +12,6 @@ on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -35,25 +32,13 @@ jobs:
|
||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: ${{ env.APP_NAME }}
|
||||
|
||||
- name: Get app version number
|
||||
id: app-version
|
||||
uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//version/text()"
|
||||
|
||||
- name: Validate app version against tag
|
||||
run: |
|
||||
[ "${{ env.APP_VERSION }}" = "v${{ fromJSON(steps.app-version.outputs.result).version }}" ]
|
||||
|
||||
- name: Get appinfo data
|
||||
id: appinfo
|
||||
uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
|
||||
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//dependencies//nextcloud/@min-version"
|
||||
@@ -71,7 +56,7 @@ jobs:
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122 # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -87,7 +72,7 @@ jobs:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
@@ -149,10 +134,9 @@ jobs:
|
||||
unzip latest-$NCVERSION.zip
|
||||
|
||||
- name: Checkout server master fallback
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
path: nextcloud
|
||||
|
||||
51
.github/workflows/command-rebase.yml
vendored
51
.github/workflows/command-rebase.yml
vendored
@@ -1,51 +0,0 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
name: Rebase command
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: created
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
rebase:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: none
|
||||
|
||||
# On pull requests and if the comment starts with `/rebase`
|
||||
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
comment-id: ${{ github.event.comment.id }}
|
||||
reaction-type: "+1"
|
||||
|
||||
- name: Checkout the latest code
|
||||
uses: actions/checkout@v4.1.7 # v3.5.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Automatic Rebase
|
||||
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
comment-id: ${{ github.event.comment.id }}
|
||||
reaction-type: "-1"
|
||||
12
.github/workflows/cypress-e2e.yml
vendored
12
.github/workflows/cypress-e2e.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
node-version: [20.x]
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.2' ]
|
||||
server-versions: [ 'stable30' ]
|
||||
server-versions: [ 'master' ]
|
||||
|
||||
env:
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.2.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
@@ -64,12 +64,12 @@ jobs:
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||
|
||||
- name: Checkout ${{ env.APP_NAME }}
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout text
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/text
|
||||
ref: ${{ env.text_app_ref }}
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
restore-keys: ${{ steps.extcache.outputs.key }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ${{ env.extensions }}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
name: Dependabot
|
||||
|
||||
on:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers]
|
||||
pull_request_target:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
@@ -24,7 +24,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
auto-approve-merge:
|
||||
if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
|
||||
if: github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]'
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
# for hmarr/auto-approve-action to approve PRs
|
||||
|
||||
14
.github/workflows/integration.yml
vendored
14
.github/workflows/integration.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
matrix:
|
||||
php-versions: ['8.1']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['stable30']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
@@ -66,19 +66,19 @@ jobs:
|
||||
cd build/integration && composer require --dev phpunit/phpunit:~9
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout activity
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
repository: nextcloud/activity
|
||||
ref: ${{ matrix.server-versions }}
|
||||
path: apps/activity
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
|
||||
@@ -112,6 +112,10 @@ jobs:
|
||||
working-directory: apps/${{ env.APP_NAME }}/tests/integration
|
||||
run: ./run.sh
|
||||
|
||||
- name: Print log
|
||||
if: always()
|
||||
run: cat data/nextcloud.log
|
||||
|
||||
- name: Query count
|
||||
if: ${{ matrix.databases == 'mysql' }}
|
||||
uses: actions/github-script@v7
|
||||
|
||||
4
.github/workflows/lint-eslint.yml
vendored
4
.github/workflows/lint-eslint.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122 # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
10
.github/workflows/lint-php-cs.yml
vendored
10
.github/workflows/lint-php-cs.yml
vendored
@@ -25,16 +25,16 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
php-version: ${{ steps.versions.outputs.php-available }}
|
||||
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
|
||||
@@ -42,9 +42,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
run: composer i
|
||||
|
||||
- name: Lint
|
||||
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
|
||||
|
||||
6
.github/workflows/lint-php.yml
vendored
6
.github/workflows/lint-php.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
php-versions: ${{ steps.versions.outputs.php-versions }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
|
||||
@@ -40,10 +40,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
4
.github/workflows/lint-stylelint.yml
vendored
4
.github/workflows/lint-stylelint.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122 # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
4
.github/workflows/nodejs.yml
vendored
4
.github/workflows/nodejs.yml
vendored
@@ -12,9 +12,9 @@ jobs:
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.2.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
|
||||
18
.github/workflows/npm-audit-fix.yml
vendored
18
.github/workflows/npm-audit-fix.yml
vendored
@@ -14,6 +14,9 @@ on:
|
||||
# At 2:30 on Sundays
|
||||
- cron: '30 2 * * 0'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -21,15 +24,18 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
||||
branches: ['main', 'master', 'stable31', 'stable30', 'stable29']
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
id: checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -39,7 +45,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122 # v4.1.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -51,7 +57,7 @@ jobs:
|
||||
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
|
||||
|
||||
- name: Run npm ci and npm run build
|
||||
if: always()
|
||||
if: steps.checkout.outcome == 'success'
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
@@ -59,8 +65,8 @@ jobs:
|
||||
npm run build --if-present
|
||||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(deps): Fix npm audit'
|
||||
|
||||
17
.github/workflows/phpunit-mysql.yml
vendored
17
.github/workflows/phpunit-mysql.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -81,35 +81,30 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
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
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -128,9 +123,7 @@ jobs:
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
|
||||
17
.github/workflows/phpunit-pgsql.yml
vendored
17
.github/workflows/phpunit-pgsql.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -84,35 +84,30 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
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
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -126,9 +121,7 @@ jobs:
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
|
||||
17
.github/workflows/phpunit-sqlite.yml
vendored
17
.github/workflows/phpunit-sqlite.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -73,35 +73,30 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Set app env
|
||||
if: ${{ env.APP_NAME == '' }}
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
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
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -115,9 +110,7 @@ jobs:
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
run: composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
|
||||
9
.github/workflows/pr-feedback.yml
vendored
9
.github/workflows/pr-feedback.yml
vendored
@@ -15,12 +15,17 @@ on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
pr-feedback:
|
||||
if: ${{ github.repository_owner == 'nextcloud' }}
|
||||
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
|
||||
uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
|
||||
id: scrape
|
||||
with:
|
||||
website: 'https://nextcloud.com/team/'
|
||||
@@ -31,7 +36,7 @@ jobs:
|
||||
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
|
||||
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
|
||||
- uses: marcelklehr/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4
|
||||
with:
|
||||
feedback-message: |
|
||||
Hello there,
|
||||
|
||||
23
.github/workflows/psalm.yml
vendored
23
.github/workflows/psalm.yml
vendored
@@ -14,9 +14,6 @@ concurrency:
|
||||
group: psalm-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
static-analysis:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -24,34 +21,24 @@ jobs:
|
||||
name: static-psalm-analysis
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
|
||||
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
php-version: ${{ steps.versions.outputs.php-available }}
|
||||
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
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev
|
||||
composer i
|
||||
|
||||
- name: Install nextcloud/ocp
|
||||
run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies
|
||||
run: composer i
|
||||
|
||||
- name: Run coding standards check
|
||||
run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github
|
||||
run: composer run psalm
|
||||
|
||||
9
.github/workflows/reuse.yml
vendored
9
.github/workflows/reuse.yml
vendored
@@ -11,15 +11,14 @@ name: REUSE Compliance Check
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
reuse-compliance-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@3ae3c6bdf1257ab19397fab11fd3312144692083 # v4.0.0
|
||||
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
name: Auto approve nextcloud/ocp
|
||||
|
||||
on:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers]
|
||||
pull_request_target:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
|
||||
# Enable GitHub auto merge
|
||||
- name: Auto merge
|
||||
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
|
||||
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # main
|
||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
12
.github/workflows/update-nextcloud-ocp.yml
vendored
12
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -13,9 +13,6 @@ on:
|
||||
schedule:
|
||||
- cron: "5 2 * * 0"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
update-nextcloud-ocp:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -23,22 +20,21 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
||||
branches: ['main', 'master', 'stable31', 'stable30', 'stable29']
|
||||
|
||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- id: checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
continue-on-error: true
|
||||
|
||||
- name: Set up php8.2
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@21e092a3e0c2fabb77bf641337eced34a4bcd3cc # v2.31.1
|
||||
with:
|
||||
php-version: 8.2
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -107,7 +103,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/.editorconfig
|
||||
/.eslintrc.js
|
||||
/.nextcloudignore
|
||||
/webpack.*.js
|
||||
/webpack.js
|
||||
/.codecov.yml
|
||||
/composer.json
|
||||
/composer.lock
|
||||
@@ -26,3 +26,10 @@
|
||||
/package-lock.json
|
||||
/node_modules/
|
||||
/src/
|
||||
/cypress/
|
||||
/cypress.config.js
|
||||
/.devcontainer/
|
||||
/.php-cs-fixer.dist.php
|
||||
/psalm.xml
|
||||
/relativeci.config.js
|
||||
/stylelint.config.js
|
||||
|
||||
80
CHANGELOG.md
80
CHANGELOG.md
@@ -5,74 +5,20 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.14.5
|
||||
## 1.15.0-beta.1
|
||||
### Fixed
|
||||
* [stable30] Clear selected stack when selected board changed by @backportbot in https://github.com/nextcloud/deck/pull/6914
|
||||
* [stable30] perf: Skip doing a query just to check if a board is deleted by @backportbot in https://github.com/nextcloud/deck/pull/6895
|
||||
* [stable30] fix: only delete assignments on unshared board by @grnd-alt in https://github.com/nextcloud/deck/pull/6935
|
||||
* [stable30] fix: Limit label actions to labels of the cards board by @backportbot in https://github.com/nextcloud/deck/pull/6953
|
||||
- fix: Catch not found card @juliusknorr [#6646](https://github.com/nextcloud/deck/pull/6646)
|
||||
- fix: Avoid failing on public dav URLs @juliusknorr [#6642](https://github.com/nextcloud/deck/pull/6642)
|
||||
- fix: Proper rich object formats @juliusknorr [#6641](https://github.com/nextcloud/deck/pull/6641)
|
||||
- fix(notifications): Notifier::prepare() threw \InvalidArgumentExcepti… @nickvergessen [#6623](https://github.com/nextcloud/deck/pull/6623)
|
||||
- fix: close modal after deleting card @ludij [#6617](https://github.com/nextcloud/deck/pull/6617)
|
||||
- fix: Use new query builder @juliusknorr [#6611](https://github.com/nextcloud/deck/pull/6611)
|
||||
- fix: new card input spacing @luka-nextcloud [#6574](https://github.com/nextcloud/deck/pull/6574)
|
||||
|
||||
### Maintenance
|
||||
* Chore(deps): Bump @babel/runtime from 7.26.10 to 7.27.0 by @dependabot in https://github.com/nextcloud/deck/pull/6866
|
||||
* Chore(deps): Bump dompurify from 3.2.4 to 3.2.5 by @dependabot in https://github.com/nextcloud/deck/pull/6881
|
||||
* Chore(deps): Bump @nextcloud/vue from 8.23.1 to 8.24.0 by @dependabot in https://github.com/nextcloud/deck/pull/6882
|
||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6887
|
||||
* Chore(deps-dev): Bump @nextcloud/webpack-vue-config from 6.2.0 to 6.3.0 by @dependabot in https://github.com/nextcloud/deck/pull/6909
|
||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6911
|
||||
* Chore(deps): Bump @nextcloud/vue from 8.24.0 to 8.25.1 by @dependabot in https://github.com/nextcloud/deck/pull/6923
|
||||
* [stable30] chore: update workflows from templates by @backportbot in https://github.com/nextcloud/deck/pull/6921
|
||||
* Chore(deps): Bump @nextcloud/vue from 8.25.1 to 8.26.0 by @dependabot in https://github.com/nextcloud/deck/pull/6939
|
||||
* [stable30] Fix npm audit by @nextcloud-command in https://github.com/nextcloud/deck/pull/6948
|
||||
|
||||
## 1.14.4
|
||||
### Fixed
|
||||
- fix: skip exporting a deleted card #6722
|
||||
- fix: Properly show attachment extension #6673
|
||||
|
||||
### Maintenance
|
||||
- Update nextcloud/ocp dependency #6769
|
||||
- Update nextcloud/ocp dependency #6718
|
||||
- Update nextcloud/ocp dependency #6700
|
||||
- Update nextcloud/ocp dependency #6656
|
||||
|
||||
## 1.14.3
|
||||
### Fixed
|
||||
- fix: two close buttons on card modal @app/backportbot [#6659](https://github.com/nextcloud/deck/pull/6659)
|
||||
- fix: Catch not found card @app/backportbot [#6652](https://github.com/nextcloud/deck/pull/6652)
|
||||
- fix: close modal after deleting card @app/backportbot [#6619](https://github.com/nextcloud/deck/pull/6619)
|
||||
- fix: Use new query builder @app/backportbot [#6612](https://github.com/nextcloud/deck/pull/6612)
|
||||
- fix: new card input spacing @app/backportbot [#6576](https://github.com/nextcloud/deck/pull/6576)
|
||||
- fix(sharing): list accounts with matches in email @app/backportbot [#6524](https://github.com/nextcloud/deck/pull/6524)
|
||||
|
||||
## 1.14.2
|
||||
### Fixed
|
||||
|
||||
- fix: board bubble preview widget [#6477](https://github.com/nextcloud/deck/pull/6477)
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Update nextcloud/ocp dependency @nextcloud-command [#6470](https://github.com/nextcloud/deck/pull/6470)
|
||||
- Fix npm audit @nextcloud-command [#6450](https://github.com/nextcloud/deck/pull/6450)
|
||||
|
||||
## 1.14.1
|
||||
### Fixed
|
||||
- fix: Load archived card if URL is opened directly #6326
|
||||
- Update nextcloud/ocp dependency #6322
|
||||
|
||||
## 1.14.0
|
||||
|
||||
### Added
|
||||
|
||||
- export json data of commments @grnd-alt [#6119](https://github.com/nextcloud/deck/pull/6119)
|
||||
## 1.14.0-beta.1
|
||||
|
||||
### Fixed
|
||||
|
||||
- fix: losing focus while editing title field @luka-nextcloud [#6140](https://github.com/nextcloud/deck/pull/6140)
|
||||
- Fix UI with the new compact design [#6258](https://github.com/nextcloud/deck/pull/6258)
|
||||
- Translation call fix [#6261](https://github.com/nextcloud/deck/pull/6261)
|
||||
- fix: 30 design issues [#6265](https://github.com/nextcloud/deck/pull/6265)
|
||||
- copy labels when moving cards between boards [#6289](https://github.com/nextcloud/deck/pull/6289)
|
||||
- Bug fix collection [#6307](https://github.com/nextcloud/deck/pull/6307)
|
||||
- fix: card details focus issue with screen reader @luka-nextcloud [#5858](https://github.com/nextcloud/deck/pull/5858)
|
||||
- Cleaning up unused indicies @mintsoft [#5612](https://github.com/nextcloud/deck/pull/5612)
|
||||
- Change import command's config default argument @JimMadge [#5722](https://github.com/nextcloud/deck/pull/5722)
|
||||
@@ -85,17 +31,12 @@ All notable changes to this project will be documented in this file.
|
||||
- fix: remove redundant log @luka-nextcloud [#6115](https://github.com/nextcloud/deck/pull/6115)
|
||||
- fix: Adjust dependencies to fix filepicker @susnux [#5964](https://github.com/nextcloud/deck/pull/5964)
|
||||
- fix: Remove bindParam usage with simpler query @juliushaertl [#6065](https://github.com/nextcloud/deck/pull/6065)
|
||||
- add Order when cloning board @grnd-alt [#6117](https://github.com/nextcloud/deck/pull/6117)
|
||||
- use deleted_users for users that do not exist @grnd-alt [#6201](https://github.com/nextcloud/deck/pull/6201)
|
||||
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
|
||||
|
||||
### Other
|
||||
|
||||
- fix(files): fix appstore-build-publish.yml @JuliaKirschenheuter [#6142](https://github.com/nextcloud/deck/pull/6142)
|
||||
- tests: Add environment variable and document commands to run behat tests locally @juliushaertl [#6137](https://github.com/nextcloud/deck/pull/6137)
|
||||
- chore(CI): Adjust testing matrix for Nextcloud 30 on stable30 @nickvergessen [#6205](https://github.com/nextcloud/deck/pull/6205)
|
||||
- Adds link to Nextcloud Deck for iOS in README.md file @StCyr [#5886](https://github.com/nextcloud/deck/pull/5886)
|
||||
- choir(i18n): Change filter title @rakekniven [#5957](https://github.com/nextcloud/deck/pull/5957)
|
||||
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
|
||||
- Update User_documentation_en.md @StCyr [#6029](https://github.com/nextcloud/deck/pull/6029)
|
||||
- chore: Move comments event handler to use proper event dispatcher @juliushaertl [#6008](https://github.com/nextcloud/deck/pull/6008)
|
||||
- Migrate REUSE to TOML format @AndyScherzinger [#6084](https://github.com/nextcloud/deck/pull/6084)
|
||||
@@ -931,3 +872,4 @@ Android app team for helping to improve our REST API:
|
||||
- Assign labels
|
||||
- Markdown notes for each card
|
||||
- Archive cards
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@ Deck is a kanban style organization tool aimed at personal planning and project
|
||||
|
||||
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
|
||||
- [Nextcloud Deck app for iOS](https://github.com/StCyr/deck-react-native) - It is available in [Apple App store](https://apps.apple.com/ml/app/nextcloud-deck/id1570892788)
|
||||
- [deck NG for Android and iOS](https://github.com/meltzow/deck-ng) - It is available in [Google Play Store](https://play.google.com/store/apps/details?id=net.meltzow.deckng) and [Apple App Store](https://apps.apple.com/us/app/deck-ng/id6443334702)
|
||||
|
||||
### 3rd-Party Integrations
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ SPDX-FileCopyrightText = "none"
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
|
||||
[[annotations]]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg"]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "lib/Service/fixtures/default-board.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg", "img/sample-image.jpg"]
|
||||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
|
||||
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -20,17 +20,17 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.14.5</version>
|
||||
<version>2.0.0-dev.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<documentation>
|
||||
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
||||
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
||||
</documentation>
|
||||
<namespace>Deck</namespace>
|
||||
<types>
|
||||
<dav/>
|
||||
</types>
|
||||
<documentation>
|
||||
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
||||
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
||||
</documentation>
|
||||
<category>organization</category>
|
||||
<category>office</category>
|
||||
<website>https://github.com/nextcloud/deck</website>
|
||||
@@ -42,7 +42,7 @@
|
||||
<database min-version="9.4">pgsql</database>
|
||||
<database>sqlite</database>
|
||||
<database min-version="8.0">mysql</database>
|
||||
<nextcloud min-version="30" max-version="30"/>
|
||||
<nextcloud min-version="32" max-version="32"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -102,6 +103,8 @@ return [
|
||||
['name' => 'card_api#assignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'],
|
||||
['name' => 'card_api#unassignUser', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'],
|
||||
['name' => 'card_api#reorder', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'],
|
||||
['name' => 'card_api#archive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/archive', 'verb' => 'PUT'],
|
||||
['name' => 'card_api#unarchive', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unarchive', 'verb' => 'PUT'],
|
||||
['name' => 'card_api#delete', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'],
|
||||
|
||||
['name' => 'card_api#findAllWithDue', 'url' => '/api/v{apiVersion}/dashboard/due', 'verb' => 'GET'],
|
||||
@@ -136,6 +139,8 @@ return [
|
||||
['name' => 'comments_api#update', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'PUT'],
|
||||
['name' => 'comments_api#delete', 'url' => '/api/v{apiVersion}/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
|
||||
|
||||
['name' => 'card#clone', 'url' => '/api/v{apiVersion}/cards/{cardId}/clone', 'verb' => 'POST'],
|
||||
|
||||
['name' => 'overview_api#upcomingCards', 'url' => '/api/v{apiVersion}/overview/upcoming', 'verb' => 'GET'],
|
||||
|
||||
['name' => 'search#search', 'url' => '/api/v{apiVersion}/search', 'verb' => 'GET'],
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"roave/security-advisories": "dev-master",
|
||||
"phpunit/phpunit": "^9",
|
||||
"nextcloud/coding-standard": "^1.1",
|
||||
"nextcloud/ocp": "dev-stable30",
|
||||
"nextcloud/ocp": "dev-master",
|
||||
"psalm/phar": "^5.13"
|
||||
},
|
||||
"config": {
|
||||
@@ -24,7 +24,7 @@
|
||||
"composer/package-versions-deprecated": true
|
||||
},
|
||||
"platform": {
|
||||
"php": "8.0"
|
||||
"php": "8.1"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
748
composer.lock
generated
748
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,7 @@
|
||||
import { randUser } from '../utils/index.js'
|
||||
const user = randUser()
|
||||
const recipient = randUser()
|
||||
import { sampleBoard } from '../utils/sampleBoard'
|
||||
|
||||
describe('Board', function() {
|
||||
|
||||
@@ -58,3 +59,73 @@ describe('Board', function() {
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Board cloning', function() {
|
||||
before(function() {
|
||||
cy.createUser(user)
|
||||
})
|
||||
|
||||
it('Clones a board without cards', function() {
|
||||
const boardName = 'Clone board original'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Clone board")')
|
||||
.click()
|
||||
|
||||
cy.get('.modal-container button:contains("Clone")')
|
||||
.click()
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||
|
||||
cy.get('h3[aria-label="TestList"]')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
it('Clones a board with cards', function() {
|
||||
const boardName = 'Clone with cards'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Clone board")')
|
||||
.click()
|
||||
|
||||
cy.get('.checkbox-content__text:contains("Clone cards")')
|
||||
.click()
|
||||
|
||||
cy.get('.modal-container button:contains("Clone")')
|
||||
.click()
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||
|
||||
cy.get('h3[aria-label="TestList"]')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.card:contains("Hello world")')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -25,9 +25,9 @@ const useModal = (useModal) => {
|
||||
})
|
||||
}
|
||||
|
||||
describe('Card', function() {
|
||||
describe('Card', function () {
|
||||
let boardId
|
||||
before(function() {
|
||||
before(function () {
|
||||
cy.createUser(user)
|
||||
cy.login(user)
|
||||
cy.createExampleBoard({
|
||||
@@ -38,11 +38,11 @@ describe('Card', function() {
|
||||
})
|
||||
})
|
||||
|
||||
beforeEach(function() {
|
||||
beforeEach(function () {
|
||||
cy.login(user)
|
||||
})
|
||||
|
||||
it('Can add a card', function() {
|
||||
it('Can add a card', function () {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
const newCardTitle = 'Write some cypress tests'
|
||||
|
||||
@@ -63,7 +63,7 @@ describe('Card', function() {
|
||||
})
|
||||
})
|
||||
|
||||
it('Create card from overview', function() {
|
||||
it('Create card from overview', function () {
|
||||
cy.visit(`/apps/deck/#/`)
|
||||
const newCardTitle = 'Test create from overview'
|
||||
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
|
||||
@@ -71,6 +71,10 @@ describe('Card', function() {
|
||||
|
||||
cy.get('.button-vue[aria-label*="Add card"]')
|
||||
.first().click()
|
||||
|
||||
// Somehow this avoids the electron crash
|
||||
cy.wait(2000)
|
||||
|
||||
cy.get('.modal-mask.card-selector .card-title').should('be.visible').click().type(newCardTitle)
|
||||
cy.get('.modal-mask.card-selector .multiselect-board').should('be.visible').click()
|
||||
cy.get('.vs__dropdown-menu [data-cy="board-select-title"]:contains("' + boardData.title + '")').should('be.visible').click()
|
||||
@@ -83,22 +87,84 @@ describe('Card', function() {
|
||||
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.visit(`/apps/deck/#/board/${boardId}`)
|
||||
cy.get('.board .stack').eq(0).within(() => {
|
||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
it('Card with link reference', () => {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
const absoluteUrl = `https://example.com`
|
||||
cy.get('.board .stack').eq(0).within(() => {
|
||||
cy.get('.button-vue[aria-label*="Add card"]')
|
||||
.first().click()
|
||||
|
||||
cy.get('.stack__card-add form input#new-stack-input-main')
|
||||
.type(absoluteUrl)
|
||||
cy.get('.stack__card-add form input[type=submit]')
|
||||
.first().click()
|
||||
cy.get('.card:contains("Example Domain")')
|
||||
.should('be.visible')
|
||||
.click()
|
||||
})
|
||||
|
||||
cy.get('.app-sidebar-header', { timeout: 10000 })
|
||||
.should('be.visible')
|
||||
.find('h2').contains('Example Domain').should('be.visible')
|
||||
})
|
||||
|
||||
it('Rename card with link', () => {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
const absoluteUrl = `https://example.com`
|
||||
const plainTitle = 'New title'
|
||||
cy.get('.board .stack').eq(0).within(() => {
|
||||
cy.get('.button-vue[aria-label*="Add card"]')
|
||||
.first().click()
|
||||
|
||||
cy.get('.stack__card-add form input#new-stack-input-main')
|
||||
.type(absoluteUrl)
|
||||
cy.get('.stack__card-add form input[type=submit]')
|
||||
.first().click()
|
||||
cy.get('.card:contains("Example Domain")')
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
// Rename link to plain title
|
||||
cy.get('.card:contains("Example Domain")')
|
||||
.find('.action-item__menutoggle')
|
||||
.click()
|
||||
cy.get('.v-popper__popper button:contains("Edit title")')
|
||||
.click()
|
||||
cy.get(`h4:contains("${absoluteUrl}") span[contenteditable="true"]`)
|
||||
.type(`{selectAll}${plainTitle}{enter}`)
|
||||
cy.get(`.card:contains("${plainTitle}")`)
|
||||
.should('be.visible')
|
||||
|
||||
// Rename plain title to link
|
||||
cy.get('.card:contains("New title")')
|
||||
.find('.action-item__menutoggle')
|
||||
.click()
|
||||
cy.get('.v-popper__popper button:contains("Edit title")')
|
||||
.click()
|
||||
cy.get('h4:contains("New title") span[contenteditable="true"]')
|
||||
.type(`{selectAll}${absoluteUrl}{enter}`)
|
||||
cy.get('.board').click()
|
||||
cy.get('.card:contains("Example Domain")')
|
||||
.should('be.visible')
|
||||
|
||||
})
|
||||
|
||||
describe('Modal', () => {
|
||||
beforeEach(function() {
|
||||
beforeEach(function () {
|
||||
cy.login(user)
|
||||
useModal(true).then(() => {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
})
|
||||
})
|
||||
|
||||
it('Can show card details modal', function() {
|
||||
it('Can show card details modal', function () {
|
||||
cy.getNavigationEntry(boardData.title)
|
||||
.first().click({ force: true })
|
||||
|
||||
@@ -121,10 +187,11 @@ describe('Card', function() {
|
||||
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
|
||||
.click()
|
||||
cy.get('.dialog__actions button.button-vue--vue-primary').click()
|
||||
cy.get('.attachment-list .basename').contains('welcome.txt')
|
||||
cy.get('.attachment-list .filename').contains('welcome')
|
||||
cy.get('.attachment-list .filename .extension').contains('txt')
|
||||
})
|
||||
|
||||
it.only('Shows the modal with the editor', () => {
|
||||
it('Shows the modal with the editor', () => {
|
||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
|
||||
cy.get('.modal__card').should('be.visible')
|
||||
@@ -161,9 +228,9 @@ describe('Card', function() {
|
||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').contains(boardData.stacks[0].title)
|
||||
cy.get('.reference-picker-modal--content .reference-picker 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.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('have.length', 1)
|
||||
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.reload()
|
||||
cy.get('.board .stack').eq(0).within(() => {
|
||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
||||
@@ -172,7 +239,7 @@ describe('Card', function() {
|
||||
})
|
||||
|
||||
describe('Sidebar', () => {
|
||||
beforeEach(function() {
|
||||
beforeEach(function () {
|
||||
cy.login(user)
|
||||
useModal(false).then(() => {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
@@ -185,7 +252,7 @@ describe('Card', function() {
|
||||
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
|
||||
})
|
||||
|
||||
it('Set a due date', function() {
|
||||
it('Set a due date', function () {
|
||||
const newCardTitle = 'Card with a due date'
|
||||
|
||||
cy.get('.button-vue[aria-label*="Add card"]')
|
||||
@@ -223,7 +290,7 @@ describe('Card', function() {
|
||||
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state]').should('not.exist')
|
||||
})
|
||||
|
||||
it('Add a label', function() {
|
||||
it('Add a label', function () {
|
||||
const newCardTitle = 'Card with labels'
|
||||
|
||||
cy.get('.button-vue[aria-label*="Add card"]')
|
||||
@@ -252,7 +319,7 @@ describe('Card', function() {
|
||||
})
|
||||
|
||||
describe('Card actions', () => {
|
||||
beforeEach(function() {
|
||||
beforeEach(function () {
|
||||
cy.login(user)
|
||||
useModal(false).then(() => {
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
@@ -298,5 +365,18 @@ describe('Card', function() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
it('clone card', () => {
|
||||
cy.intercept({ method: 'POST', url: '**/apps/deck/**/cards/*/clone' }).as('clone')
|
||||
cy.get('.card:contains("Hello world")').should('be.visible').click()
|
||||
cy.get('#app-sidebar-vue')
|
||||
.find('.ProseMirror h1').contains('Hello world').should('be.visible')
|
||||
|
||||
cy.get('.app-sidebar-header .action-item__menutoggle').click()
|
||||
cy.get('.v-popper__popper button:contains("Move/copy card")').click()
|
||||
cy.get('.modal-container button:contains("Copy card")').click()
|
||||
cy.wait('@clone', { timeout: 7000 })
|
||||
cy.get('.card:contains("Hello world")').should('have.length', 2)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -22,10 +22,10 @@ describe('Deck dashboard', function() {
|
||||
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
||||
})
|
||||
|
||||
it('Can see the default "Personal Board" created for user by default', function() {
|
||||
it('Can see the default "Welcome Board" created for user by default', function() {
|
||||
cy.visit('/apps/deck')
|
||||
|
||||
const defaultBoard = 'Personal'
|
||||
const defaultBoard = 'Welcome to Nextcloud Deck!'
|
||||
|
||||
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
||||
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
|
||||
|
||||
47
docs/API.md
47
docs/API.md
@@ -347,6 +347,34 @@ A 403 response might be returned if the users ability to create new boards has b
|
||||
|
||||
##### 200 Success
|
||||
|
||||
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/archive - Archive a card
|
||||
|
||||
#### Request parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | --------------------------------------- |
|
||||
| boardId | Integer | The id of the board the card belongs to |
|
||||
| stackId | Integer | The id of the stack the card belongs to |
|
||||
| cardId | Integer | The id of the card |
|
||||
|
||||
#### Response
|
||||
|
||||
##### 200 Success
|
||||
|
||||
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/unarchive - Unarchive a card
|
||||
|
||||
#### Request parameters
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------- | --------------------------------------- |
|
||||
| boardId | Integer | The id of the board the card belongs to |
|
||||
| stackId | Integer | The id of the stack the card belongs to |
|
||||
| cardId | Integer | The id of the card |
|
||||
|
||||
#### Response
|
||||
|
||||
##### 200 Success
|
||||
|
||||
### DELETE /boards/{boardId} - Delete a board
|
||||
|
||||
#### Request parameters
|
||||
@@ -423,6 +451,25 @@ A 403 response might be returned if the users ability to create new boards has b
|
||||
|
||||
##### 200 Success
|
||||
|
||||
### POST /boards/{boardId}/clone - Clone a board
|
||||
|
||||
Creates a copy of the board.
|
||||
|
||||
#### Request body
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ------ | ---------------------------------------------------- |
|
||||
| withCards | Bool | Setting if the cards should be copied (Default: false) |
|
||||
| withAssignments | Bool | Setting if the card assignments should be cloned (Default: false) |
|
||||
| withLabels | Bool | Setting if the card labels should be cloned (Default: false) |
|
||||
| withDueDate | Bool | Setting if the card due dates should be cloned (Default: false) |
|
||||
| moveCardsToLeftStack | Bool | Setting if all cards should be moved to the most left column (useful for To-Do / Doing / Done boards) (Default: false) |
|
||||
| restoreArchivedCards | Bool | Setting if the archived cards should be unarchived (Default: false) |
|
||||
|
||||
#### Response
|
||||
|
||||
##### 200 Success
|
||||
|
||||
### DELETE /boards/{boardId}/acl/{aclId} - Delete an acl rule
|
||||
|
||||
#### Response
|
||||
|
||||
@@ -13,7 +13,7 @@ The Deck application plugin uses the [markdown-it](https://github.com/markdown-i
|
||||
|
||||
## Supported Markdown
|
||||
|
||||
Markdown comes in may flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
||||
Markdown comes in many flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
||||
That same link offers also a comprehensive list of what is supported, and what is not - rendering it unnecessary to duplicate that content in here.
|
||||
|
||||
[CommonMark Markdown Reference](http://commonmark.org/help/)
|
||||
|
||||
@@ -105,17 +105,21 @@ It is possible to import from the following sources:
|
||||
|
||||
#### Trello JSON
|
||||
|
||||
Steps:
|
||||
* Create the data file
|
||||
* Access Trello
|
||||
* go to the board you want to export
|
||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
|
||||
* Create the configuration file
|
||||
* Execute the import informing the import file path, data file and source as `Trello JSON`
|
||||
**Limitations:**
|
||||
* Comments with more than 1000 characters are placed as attached files to the card.
|
||||
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
|
||||
**Steps:**
|
||||
1. Create the data file:
|
||||
* Access Trello.
|
||||
* Go to the board you want to export.
|
||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON.
|
||||
2. Create the configuration file.
|
||||
3. Execute the import, specifying the import file path, data file, and source as `Trello JSON`.
|
||||
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for importing `Trello JSON`.
|
||||
|
||||
Example configuration file:
|
||||
|
||||
```json
|
||||
{
|
||||
"owner": "admin",
|
||||
@@ -126,26 +130,22 @@ Example configuration file:
|
||||
}
|
||||
```
|
||||
|
||||
**Limitations**:
|
||||
|
||||
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
|
||||
**Additional Limitations**:
|
||||
* Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, check the number of actions in the JSON.
|
||||
|
||||
#### Trello API
|
||||
|
||||
Import using API is recommended for boards with more than 1000 actions.
|
||||
Importing via API is recommended for boards with more than 1000 actions. Trello allows attaching links to a card, but Deck does not support this feature. Attachment links are instead added in a markdown table at the end of the description for each imported card.
|
||||
|
||||
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
|
||||
|
||||
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
|
||||
* Get the ID of the board you want to import by making a request to:
|
||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||
|
||||
This ID you will use in the configuration file in the `board` property
|
||||
* Create the configuration file
|
||||
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
|
||||
1. Get the API Key and Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization).
|
||||
2. Obtain the ID of the board you want to import by making a request to:
|
||||
```
|
||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||
```
|
||||
3. Create the configuration file, ensuring it follows the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for `Trello JSON`.
|
||||
|
||||
Example configuration file:
|
||||
|
||||
```json
|
||||
{
|
||||
"owner": "admin",
|
||||
|
||||
@@ -4,18 +4,19 @@
|
||||
-->
|
||||
## Export
|
||||
|
||||
Deck currently supports exporting all boards a user owns in a single JSON file. The format is based on the database schema that deck uses. It can be used to re-import boards on the same or other instances.
|
||||
Deck currently supports exporting all boards a user owns in a single JSON file. The format is based on the database schema that Deck uses. It can be used to re-import boards on the same or other instances.
|
||||
|
||||
The export currently has some kown limitations in terms of specific data not included:
|
||||
The export currently has some known limitations in terms of specific data not included:
|
||||
- Activity information
|
||||
- File attachments to deck cards
|
||||
- File attachments to Deck cards
|
||||
- Comments
|
||||
-
|
||||
```
|
||||
occ deck:export > my-file.json
|
||||
```
|
||||
|
||||
## Import boards
|
||||
```
|
||||
occ deck:export userid > userid-deck-export.json
|
||||
```
|
||||
*(`userid` = username as seen in the admin user accounts page)*
|
||||
|
||||
## Import Boards
|
||||
|
||||
Importing can be done using the API or the `occ` `deck:import` command.
|
||||
|
||||
@@ -23,39 +24,57 @@ It is possible to import from the following sources:
|
||||
|
||||
### Deck JSON
|
||||
|
||||
A json file that has been obtained from the above described `occ deck:export [userid]` command can be imported.
|
||||
A JSON file that has been obtained from the above-described `occ deck:export [userid] > userid-deck-export.json` command can be imported.
|
||||
|
||||
```
|
||||
occ deck:import my-file.json
|
||||
occ deck:import userid-deck-export.json
|
||||
```
|
||||
|
||||
In case you are importing from a different instance you may use an additional config file to provide custom user id mapping in case users have different identifiers.
|
||||
You will be asked to provide a path to a config file.
|
||||
|
||||
```
|
||||
To know what to put in there:
|
||||
- Have a look at your `userid-deck-export.json`
|
||||
- Near the top, you will see `"uid"` with a username.
|
||||
- Search for additional `"uid"` entries to find all the usernames involved and note them.
|
||||
- Search for `"acl"`, where `"uid"`s of groups are also present; note them too.
|
||||
|
||||
If you are importing from a different instance, you must provide custom user ID mapping in case users have different identifiers.
|
||||
|
||||
Create a config file, e.g., `deck-import-config-file-userid.json`, and adjust the content of this example as described above. User IDs on the new instance can be seen in the admin user accounts page.
|
||||
|
||||
```json
|
||||
{
|
||||
"owner": "admin",
|
||||
"owner": "useridofnewownerofallboards",
|
||||
"uidRelation": {
|
||||
"johndoe": "test-user-1"
|
||||
"userid1onoldinstance": "userid1onnewinstance",
|
||||
"userid2onoldinstance": "userid2onnewinstance",
|
||||
"groupid1onoldinstance": "groupid1onnewinstance"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
After pressing enter, everything will be imported.
|
||||
|
||||
Additional info:
|
||||
- If you export a user’s boards, all boards that the user has access to will be exported (including those shared with that user).
|
||||
|
||||
#### Trello JSON
|
||||
|
||||
Limitations:
|
||||
**Limitations:**
|
||||
* Comments with more than 1000 characters are placed as attached files to the card.
|
||||
|
||||
Steps:
|
||||
* Create the data file
|
||||
* Access Trello
|
||||
* go to the board you want to export
|
||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
|
||||
* Create the configuration file
|
||||
* Execute the import informing the import file path, data file and source as `Trello JSON`
|
||||
**Steps:**
|
||||
1. Create the data file:
|
||||
* Access Trello.
|
||||
* Go to the board you want to export.
|
||||
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON.
|
||||
2. Create the configuration file.
|
||||
3. Execute the import, specifying the import file path, data file, and source as `Trello JSON`.
|
||||
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for importing `Trello JSON`.
|
||||
|
||||
Example configuration file:
|
||||
|
||||
```json
|
||||
{
|
||||
"owner": "admin",
|
||||
@@ -66,26 +85,22 @@ Example configuration file:
|
||||
}
|
||||
```
|
||||
|
||||
**Limitations**:
|
||||
|
||||
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
|
||||
**Additional Limitations**:
|
||||
* Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, check the number of actions in the JSON.
|
||||
|
||||
#### Trello API
|
||||
|
||||
Import using API is recommended for boards with more than 1000 actions.
|
||||
Importing via API is recommended for boards with more than 1000 actions. Trello allows attaching links to a card, but Deck does not support this feature. Attachment links are instead added in a markdown table at the end of the description for each imported card.
|
||||
|
||||
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
|
||||
|
||||
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
|
||||
* Get the ID of the board you want to import by making a request to:
|
||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||
|
||||
This ID you will use in the configuration file in the `board` property
|
||||
* Create the configuration file
|
||||
|
||||
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
|
||||
1. Get the API Key and Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization).
|
||||
2. Obtain the ID of the board you want to import by making a request to:
|
||||
```
|
||||
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
|
||||
```
|
||||
3. Create the configuration file, ensuring it follows the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for `Trello JSON`.
|
||||
|
||||
Example configuration file:
|
||||
|
||||
```json
|
||||
{
|
||||
"owner": "admin",
|
||||
|
||||
BIN
img/sample-image.jpg
Normal file
BIN
img/sample-image.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
@@ -8,7 +8,7 @@ OC.L10N.register(
|
||||
"The file was uploaded" : "Kaset eo bet ar restr",
|
||||
"No file was uploaded" : "N'eus restr ebet a zo bet kaset",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Cancel" : "Arrest",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
"Open" : "Digeriñ",
|
||||
"Completed" : "Achuet",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"The file was uploaded" : "Kaset eo bet ar restr",
|
||||
"No file was uploaded" : "N'eus restr ebet a zo bet kaset",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Cancel" : "Arrest",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
"Open" : "Digeriñ",
|
||||
"Completed" : "Achuet",
|
||||
|
||||
@@ -106,7 +106,7 @@ OC.L10N.register(
|
||||
"Done" : "Fet",
|
||||
"1. Open to learn more about boards and cards" : "1. Obre per obtenir més informació sobre taulers i cartes",
|
||||
"2. Drag cards left and right, up and down" : "2. Arrossegueu les targetes a l'esquerra i a la dreta, amunt i avall",
|
||||
"3. Apply rich formatting and link content" : "3. Aplica format ric i contingut d'enllaços",
|
||||
"3. Apply rich formatting and link content" : "3. Apliqueu format ric i contingut d'enllaços",
|
||||
"4. Share, comment and collaborate!" : "4. Comparteix, comenta i col·labora!",
|
||||
"Create your first card!" : "Crea la teva primera targeta!",
|
||||
"The file was uploaded" : "S'ha pujat el fitxer",
|
||||
@@ -351,9 +351,9 @@ OC.L10N.register(
|
||||
"Clone cards" : "Clonar targetes",
|
||||
"Clone assignments" : "Clonar les tasques",
|
||||
"Clone labels" : "Clonar etiquetes",
|
||||
"Clone due dates" : "Clonar les dates de caducitat",
|
||||
"Advanced options" : "Opcions avançades",
|
||||
"Move all cards to the first list" : "Mou totes les targetes a la primera llista",
|
||||
"Clone due dates" : "Clonar les dates de venciment",
|
||||
"Advanced options" : "Paràmetres avançats",
|
||||
"Move all cards to the first list" : "Mou totes les cartes a la primera llista",
|
||||
"Restore archived cards" : "Restaura les targetes arxivades",
|
||||
"Clone" : "Clonar",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
"Done" : "Fet",
|
||||
"1. Open to learn more about boards and cards" : "1. Obre per obtenir més informació sobre taulers i cartes",
|
||||
"2. Drag cards left and right, up and down" : "2. Arrossegueu les targetes a l'esquerra i a la dreta, amunt i avall",
|
||||
"3. Apply rich formatting and link content" : "3. Aplica format ric i contingut d'enllaços",
|
||||
"3. Apply rich formatting and link content" : "3. Apliqueu format ric i contingut d'enllaços",
|
||||
"4. Share, comment and collaborate!" : "4. Comparteix, comenta i col·labora!",
|
||||
"Create your first card!" : "Crea la teva primera targeta!",
|
||||
"The file was uploaded" : "S'ha pujat el fitxer",
|
||||
@@ -349,9 +349,9 @@
|
||||
"Clone cards" : "Clonar targetes",
|
||||
"Clone assignments" : "Clonar les tasques",
|
||||
"Clone labels" : "Clonar etiquetes",
|
||||
"Clone due dates" : "Clonar les dates de caducitat",
|
||||
"Advanced options" : "Opcions avançades",
|
||||
"Move all cards to the first list" : "Mou totes les targetes a la primera llista",
|
||||
"Clone due dates" : "Clonar les dates de venciment",
|
||||
"Advanced options" : "Paràmetres avançats",
|
||||
"Move all cards to the first list" : "Mou totes les cartes a la primera llista",
|
||||
"Restore archived cards" : "Restaura les targetes arxivades",
|
||||
"Clone" : "Clonar",
|
||||
"Loading filtered view" : "S'està carregant la visualització filtrada",
|
||||
|
||||
@@ -201,7 +201,6 @@ OC.L10N.register(
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Enter" : "Indtast",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
|
||||
@@ -199,7 +199,6 @@
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Enter" : "Indtast",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
|
||||
18
l10n/de.js
18
l10n/de.js
@@ -123,7 +123,7 @@ OC.L10N.register(
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert ist.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Card details" : "Kartendetails",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
@@ -186,7 +186,7 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -238,7 +238,7 @@ OC.L10N.register(
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -258,8 +258,8 @@ OC.L10N.register(
|
||||
"Add Attachment" : "Anhang anhängen",
|
||||
"Choose attachment" : "Anhang auswählen",
|
||||
"Select Date" : "Datum auswählen",
|
||||
"Later today – {timeLocale}" : "Später heute – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf später heute setzen",
|
||||
"Later today – {timeLocale}" : "Heute noch – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
|
||||
"Tomorrow – {timeLocale}" : "Morgen – {timeLocale}",
|
||||
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
|
||||
"This weekend – {timeLocale}" : "Dieses Wochenende – {timeLocale}",
|
||||
@@ -270,9 +270,9 @@ OC.L10N.register(
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fällig am:",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
"Unarchive card" : "Karte dearchivieren",
|
||||
"Archive card" : "Karte archivieren",
|
||||
@@ -292,7 +292,7 @@ OC.L10N.register(
|
||||
"Delete card" : "Karte löschen",
|
||||
"seconds ago" : "Gerade eben",
|
||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Mit Tastaturkürzeln die Produktivität in Deck erhöhen.",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Erhöhe mit Tastaturkürzeln deine Produktivität in Deck.",
|
||||
"Board actions" : "Boardaktionen",
|
||||
"Keyboard shortcut" : "Tastaturkürzel",
|
||||
"Action" : "Aktion",
|
||||
@@ -386,7 +386,7 @@ OC.L10N.register(
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
18
l10n/de.json
18
l10n/de.json
@@ -121,7 +121,7 @@
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert ist.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Card details" : "Kartendetails",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
@@ -184,7 +184,7 @@
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -236,7 +236,7 @@
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -256,8 +256,8 @@
|
||||
"Add Attachment" : "Anhang anhängen",
|
||||
"Choose attachment" : "Anhang auswählen",
|
||||
"Select Date" : "Datum auswählen",
|
||||
"Later today – {timeLocale}" : "Später heute – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf später heute setzen",
|
||||
"Later today – {timeLocale}" : "Heute noch – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
|
||||
"Tomorrow – {timeLocale}" : "Morgen – {timeLocale}",
|
||||
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
|
||||
"This weekend – {timeLocale}" : "Dieses Wochenende – {timeLocale}",
|
||||
@@ -268,9 +268,9 @@
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fällig am:",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
"Unarchive card" : "Karte dearchivieren",
|
||||
"Archive card" : "Karte archivieren",
|
||||
@@ -290,7 +290,7 @@
|
||||
"Delete card" : "Karte löschen",
|
||||
"seconds ago" : "Gerade eben",
|
||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Mit Tastaturkürzeln die Produktivität in Deck erhöhen.",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Erhöhe mit Tastaturkürzeln deine Produktivität in Deck.",
|
||||
"Board actions" : "Boardaktionen",
|
||||
"Keyboard shortcut" : "Tastaturkürzel",
|
||||
"Action" : "Aktion",
|
||||
@@ -384,7 +384,7 @@
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -22,7 +22,7 @@ OC.L10N.register(
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Sie haben die Liste {before} auf dem Board {board} in {stack} umbenannt",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} hat die Liste {before} in {stack} auf dem Board {board} umbenannt",
|
||||
"You have deleted list {stack} on board {board}" : "Sie haben die Liste {stack} auf dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} entfernt",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} gelöscht",
|
||||
@@ -61,8 +61,8 @@ OC.L10N.register(
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} gelöscht",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} gelöscht",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
|
||||
@@ -186,7 +186,7 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie wirklich das Board {title} auf {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen.",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -238,7 +238,7 @@ OC.L10N.register(
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -270,7 +270,7 @@ OC.L10N.register(
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
@@ -386,7 +386,7 @@ OC.L10N.register(
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Sie haben die Liste {before} auf dem Board {board} in {stack} umbenannt",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} hat die Liste {before} in {stack} auf dem Board {board} umbenannt",
|
||||
"You have deleted list {stack} on board {board}" : "Sie haben die Liste {stack} auf dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} entfernt",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} gelöscht",
|
||||
@@ -59,8 +59,8 @@
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} gelöscht",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} gelöscht",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
|
||||
@@ -184,7 +184,7 @@
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie wirklich das Board {title} auf {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen.",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -236,7 +236,7 @@
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -268,7 +268,7 @@
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
@@ -384,7 +384,7 @@
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -6,7 +6,6 @@ OC.L10N.register(
|
||||
"Finished" : "Lõpetatud",
|
||||
"Later" : "Hiljem",
|
||||
"copy" : "koopia",
|
||||
"To Do" : "Tegemiseks",
|
||||
"Done" : "Valmis",
|
||||
"The file was uploaded" : "Fail laaditi üles",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Üleslaetud fail on suurem, kui php.ini failis määratud upload_max_filesize",
|
||||
@@ -20,72 +19,41 @@ OC.L10N.register(
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"File already exists" : "Fail on juba olemas",
|
||||
"Add list" : "Lisa loend",
|
||||
"List name" : "Nimekirja nimi",
|
||||
"Active filters" : "Aktiivsed filtrid",
|
||||
"Open" : "Ava",
|
||||
"Completed" : "Lõpetatud",
|
||||
"Clear filter" : "Tühjenda filter",
|
||||
"Open details" : "Ava üksikasjad",
|
||||
"Details" : "Üksikasjad",
|
||||
"Sharing" : "Jagamine",
|
||||
"Tags" : "Sildid",
|
||||
"Activity" : "Tegevus",
|
||||
"Undo" : "Tühista",
|
||||
"Transfer" : "Teisalda",
|
||||
"Can edit" : "Võib redigeerida",
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Omanik",
|
||||
"Delete" : "Kustuta",
|
||||
"Delete list" : "Kustuta loend",
|
||||
"Edit" : "Redigeeri",
|
||||
"Members" : "Liikmed",
|
||||
"Invalid path selected" : "Vigane asukoht on valitud",
|
||||
"Upload new files" : "Laadi uued failid üles",
|
||||
"Share from Files" : "Jaga failirakendusest",
|
||||
"Pending share" : "Ootel jagamine",
|
||||
"Add this attachment" : "Lisa see manus",
|
||||
"Show in Files" : "Näita failirakenduses",
|
||||
"Download" : "Laadi alla",
|
||||
"Remove attachment" : "Eemalda manus",
|
||||
"Delete Attachment" : "Kustuta manus",
|
||||
"Restore Attachment" : "Taasta manus",
|
||||
"Download" : "Lae alla",
|
||||
"Modified" : "Muudetud",
|
||||
"Created" : "Loodud",
|
||||
"The title cannot be empty." : "Pealkiri ei saa olla tühi.",
|
||||
"Open in sidebar view" : "Ava külgriba vaates",
|
||||
"Open in bigger view" : "Ava suuremas vaates",
|
||||
"Attachments" : "Manused",
|
||||
"Comments" : "Kommentaarid",
|
||||
"Save" : "Salvesta",
|
||||
"Created:" : "Loodud:",
|
||||
"Cancel reply" : "Katkesta vastamine",
|
||||
"Reply" : "Vasta",
|
||||
"Update" : "Uuenda",
|
||||
"Description" : "Kirjeldus",
|
||||
"Mark as done" : "Märgi tehtuks",
|
||||
"(group)" : "(grupp)",
|
||||
"Edit title" : "Muuda pealkirja",
|
||||
"Delete card" : "Kustuta kaart",
|
||||
"seconds ago" : "sekundit tagasi",
|
||||
"Keyboard shortcuts" : "Klaviatuuri otseteed",
|
||||
"Keyboard shortcut" : "Klaviatuuri otsetee",
|
||||
"Action" : "Tegevus",
|
||||
"Shift" : "Nihuta",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Otsi",
|
||||
"Shared with you" : "Sinuga jagatud",
|
||||
"Cancel edit" : "Loobu muutmisest",
|
||||
"No reminder" : "Meeldetuletust pole",
|
||||
"An error occurred" : "Tekkis tõrge",
|
||||
"No notifications" : "Märguandeid pole",
|
||||
"Advanced options" : "Täpsemad valikud",
|
||||
"Today" : "Täna",
|
||||
"Tomorrow" : "Homme",
|
||||
"No results found" : "Otsingutulemusi ei leidu",
|
||||
"Due on {date}" : "Tähtaeg: {date}",
|
||||
"Close" : "Sulge",
|
||||
"Error creating the share" : "Viga jaosmeedia loomisel",
|
||||
"Share" : "Jaga",
|
||||
"Personal" : "Isiklik"
|
||||
},
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
"Finished" : "Lõpetatud",
|
||||
"Later" : "Hiljem",
|
||||
"copy" : "koopia",
|
||||
"To Do" : "Tegemiseks",
|
||||
"Done" : "Valmis",
|
||||
"The file was uploaded" : "Fail laaditi üles",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Üleslaetud fail on suurem, kui php.ini failis määratud upload_max_filesize",
|
||||
@@ -18,72 +17,41 @@
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"File already exists" : "Fail on juba olemas",
|
||||
"Add list" : "Lisa loend",
|
||||
"List name" : "Nimekirja nimi",
|
||||
"Active filters" : "Aktiivsed filtrid",
|
||||
"Open" : "Ava",
|
||||
"Completed" : "Lõpetatud",
|
||||
"Clear filter" : "Tühjenda filter",
|
||||
"Open details" : "Ava üksikasjad",
|
||||
"Details" : "Üksikasjad",
|
||||
"Sharing" : "Jagamine",
|
||||
"Tags" : "Sildid",
|
||||
"Activity" : "Tegevus",
|
||||
"Undo" : "Tühista",
|
||||
"Transfer" : "Teisalda",
|
||||
"Can edit" : "Võib redigeerida",
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Omanik",
|
||||
"Delete" : "Kustuta",
|
||||
"Delete list" : "Kustuta loend",
|
||||
"Edit" : "Redigeeri",
|
||||
"Members" : "Liikmed",
|
||||
"Invalid path selected" : "Vigane asukoht on valitud",
|
||||
"Upload new files" : "Laadi uued failid üles",
|
||||
"Share from Files" : "Jaga failirakendusest",
|
||||
"Pending share" : "Ootel jagamine",
|
||||
"Add this attachment" : "Lisa see manus",
|
||||
"Show in Files" : "Näita failirakenduses",
|
||||
"Download" : "Laadi alla",
|
||||
"Remove attachment" : "Eemalda manus",
|
||||
"Delete Attachment" : "Kustuta manus",
|
||||
"Restore Attachment" : "Taasta manus",
|
||||
"Download" : "Lae alla",
|
||||
"Modified" : "Muudetud",
|
||||
"Created" : "Loodud",
|
||||
"The title cannot be empty." : "Pealkiri ei saa olla tühi.",
|
||||
"Open in sidebar view" : "Ava külgriba vaates",
|
||||
"Open in bigger view" : "Ava suuremas vaates",
|
||||
"Attachments" : "Manused",
|
||||
"Comments" : "Kommentaarid",
|
||||
"Save" : "Salvesta",
|
||||
"Created:" : "Loodud:",
|
||||
"Cancel reply" : "Katkesta vastamine",
|
||||
"Reply" : "Vasta",
|
||||
"Update" : "Uuenda",
|
||||
"Description" : "Kirjeldus",
|
||||
"Mark as done" : "Märgi tehtuks",
|
||||
"(group)" : "(grupp)",
|
||||
"Edit title" : "Muuda pealkirja",
|
||||
"Delete card" : "Kustuta kaart",
|
||||
"seconds ago" : "sekundit tagasi",
|
||||
"Keyboard shortcuts" : "Klaviatuuri otseteed",
|
||||
"Keyboard shortcut" : "Klaviatuuri otsetee",
|
||||
"Action" : "Tegevus",
|
||||
"Shift" : "Nihuta",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Otsi",
|
||||
"Shared with you" : "Sinuga jagatud",
|
||||
"Cancel edit" : "Loobu muutmisest",
|
||||
"No reminder" : "Meeldetuletust pole",
|
||||
"An error occurred" : "Tekkis tõrge",
|
||||
"No notifications" : "Märguandeid pole",
|
||||
"Advanced options" : "Täpsemad valikud",
|
||||
"Today" : "Täna",
|
||||
"Tomorrow" : "Homme",
|
||||
"No results found" : "Otsingutulemusi ei leidu",
|
||||
"Due on {date}" : "Tähtaeg: {date}",
|
||||
"Close" : "Sulge",
|
||||
"Error creating the share" : "Viga jaosmeedia loomisel",
|
||||
"Share" : "Jaga",
|
||||
"Personal" : "Isiklik"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
|
||||
@@ -90,7 +90,7 @@ OC.L10N.register(
|
||||
"Deck boards, cards and comments" : "Tableaux, cartes et commentaires de Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, dans %2$s / %3$s, appartenant à %4$s",
|
||||
"Create a new deck card" : "Créer une nouvelle carte Deck",
|
||||
"Card comments" : "Commentaires des cartes",
|
||||
"Card comments" : "Commentaires de la carte",
|
||||
"%s on %s" : "%s sur %s",
|
||||
"Deck boards and cards" : "Tableaux et cartes de Deck",
|
||||
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
|
||||
@@ -347,7 +347,7 @@ OC.L10N.register(
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||
"Clone cards" : "Dupliquer les cartes",
|
||||
"Clone cards" : "Dupliquer des cartes",
|
||||
"Clone assignments" : "Cloner les affectations",
|
||||
"Clone labels" : "Cloner les étiquettes",
|
||||
"Clone due dates" : "Cloner les dates d'échéance",
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
"Deck boards, cards and comments" : "Tableaux, cartes et commentaires de Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, dans %2$s / %3$s, appartenant à %4$s",
|
||||
"Create a new deck card" : "Créer une nouvelle carte Deck",
|
||||
"Card comments" : "Commentaires des cartes",
|
||||
"Card comments" : "Commentaires de la carte",
|
||||
"%s on %s" : "%s sur %s",
|
||||
"Deck boards and cards" : "Tableaux et cartes de Deck",
|
||||
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
|
||||
@@ -345,7 +345,7 @@
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||
"Clone cards" : "Dupliquer les cartes",
|
||||
"Clone cards" : "Dupliquer des cartes",
|
||||
"Clone assignments" : "Cloner les affectations",
|
||||
"Clone labels" : "Cloner les étiquettes",
|
||||
"Clone due dates" : "Cloner les dates d'échéance",
|
||||
|
||||
@@ -43,10 +43,10 @@ OC.L10N.register(
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} nustatė galutinį kortelės {card} terminą į {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "Jūs atnaujinote galutinį kortelės {card} terminą į {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} atnaujino galutinį kortelės {card} terminą į {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymą {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymą {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymą {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymą {label}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymę {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymę {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymę {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymę {label}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Jūs lentoje {board} prie kortelės {card} priskyrėte {assigneduser}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} lentoje {board} prie kortelės {card} priskyrė {assigneduser}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Jūs perkėlėte kortelę {card} iš sąrašo {stackBefore} į sąrašą {stack}",
|
||||
@@ -120,9 +120,8 @@ OC.L10N.register(
|
||||
"List name" : "Sąrašo pavadinimas",
|
||||
"Active filters" : "Aktyvūs filtrai",
|
||||
"Apply filter" : "Taikyti filtrą",
|
||||
"Filter by tag" : "Filtruoti pagal žymą",
|
||||
"Filter by tag" : "Filtruoti pagal žymę",
|
||||
"Filter by assigned user" : "Filtruoti pagal priskirtą naudotoją",
|
||||
"Open and completed" : "Atidaryta ir atlikta",
|
||||
"Open" : "Atverti",
|
||||
"Completed" : "Užbaigta",
|
||||
"Filter by due date" : "Filtruoti pagal galutinio termino datą",
|
||||
@@ -141,7 +140,7 @@ OC.L10N.register(
|
||||
"Board not found" : "Lenta nerasta",
|
||||
"Create a new list to add cards to this board" : "Norėdami pridėti korteles į šią lentą, sukurkite naują sąrašą",
|
||||
"Sharing" : "Bendrinimas",
|
||||
"Tags" : "Žymos",
|
||||
"Tags" : "Žymės",
|
||||
"Deleted items" : "Ištrinti elementai",
|
||||
"Activity" : "Veikla",
|
||||
"Deleted lists" : "Ištrinti sąrašai",
|
||||
@@ -166,7 +165,7 @@ OC.L10N.register(
|
||||
"Card name" : "Kortelės pavadinimas",
|
||||
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
|
||||
"Edit" : "Taisyti",
|
||||
"Add a new tag" : "Pridėti naują žymą",
|
||||
"Add a new tag" : "Pridėti naują žymę",
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Members" : "Nariai",
|
||||
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
|
||||
@@ -214,7 +213,7 @@ OC.L10N.register(
|
||||
"Mark as done" : "Žymėti kaip atliktą",
|
||||
"Unarchive card" : "Išarchyvuoti kortelę",
|
||||
"Archive card" : "Archyvuoti kortelę",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymą…",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
|
||||
"(group)" : "(grupė)",
|
||||
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
|
||||
"Open link" : "Atverti nuorodą",
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} nustatė galutinį kortelės {card} terminą į {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "Jūs atnaujinote galutinį kortelės {card} terminą į {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} atnaujino galutinį kortelės {card} terminą į {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymą {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymą {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymą {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymą {label}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymę {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymę {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymę {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymę {label}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Jūs lentoje {board} prie kortelės {card} priskyrėte {assigneduser}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} lentoje {board} prie kortelės {card} priskyrė {assigneduser}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Jūs perkėlėte kortelę {card} iš sąrašo {stackBefore} į sąrašą {stack}",
|
||||
@@ -118,9 +118,8 @@
|
||||
"List name" : "Sąrašo pavadinimas",
|
||||
"Active filters" : "Aktyvūs filtrai",
|
||||
"Apply filter" : "Taikyti filtrą",
|
||||
"Filter by tag" : "Filtruoti pagal žymą",
|
||||
"Filter by tag" : "Filtruoti pagal žymę",
|
||||
"Filter by assigned user" : "Filtruoti pagal priskirtą naudotoją",
|
||||
"Open and completed" : "Atidaryta ir atlikta",
|
||||
"Open" : "Atverti",
|
||||
"Completed" : "Užbaigta",
|
||||
"Filter by due date" : "Filtruoti pagal galutinio termino datą",
|
||||
@@ -139,7 +138,7 @@
|
||||
"Board not found" : "Lenta nerasta",
|
||||
"Create a new list to add cards to this board" : "Norėdami pridėti korteles į šią lentą, sukurkite naują sąrašą",
|
||||
"Sharing" : "Bendrinimas",
|
||||
"Tags" : "Žymos",
|
||||
"Tags" : "Žymės",
|
||||
"Deleted items" : "Ištrinti elementai",
|
||||
"Activity" : "Veikla",
|
||||
"Deleted lists" : "Ištrinti sąrašai",
|
||||
@@ -164,7 +163,7 @@
|
||||
"Card name" : "Kortelės pavadinimas",
|
||||
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
|
||||
"Edit" : "Taisyti",
|
||||
"Add a new tag" : "Pridėti naują žymą",
|
||||
"Add a new tag" : "Pridėti naują žymę",
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Members" : "Nariai",
|
||||
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
|
||||
@@ -212,7 +211,7 @@
|
||||
"Mark as done" : "Žymėti kaip atliktą",
|
||||
"Unarchive card" : "Išarchyvuoti kortelę",
|
||||
"Archive card" : "Archyvuoti kortelę",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymą…",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
|
||||
"(group)" : "(grupė)",
|
||||
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
|
||||
"Open link" : "Atverti nuorodą",
|
||||
|
||||
@@ -18,14 +18,13 @@ OC.L10N.register(
|
||||
"Could not write file to disk" : "Nevarēja ierakstīt datni diskā",
|
||||
"A PHP extension stopped the file upload" : "PHP paplašinājums apturēja datnes augšupielādi",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nederīgs datums, datuma formātam jābūt YYYY-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ir kanban veida organizēšanas rīks, kas paredzēts personīgai plānošanai un projektu orgenizēšanai komandām, kas ir iekļauts Nextcloud.\n\n\n- 📥 Uzdevumu pievienošana kartītēm un to sakārtošana\n- 📄 Papildu piezīmes var pierakstīt ar Markdown\n- 🔖 Vēl labākai pārraudzībai var piešķirt iezīmes\n- 👥 Koplietošana ar savu komandu, draugiem vai ģimeni\n- 📎 Datņu pievienošana un iekļaušana Markdown aprakstā\n- 💬 Apspriešana ar savu komandu ar piebildēm\n- ⚡ Izmaiņu izsekošana darbību plūsmā\n- 🚀 Sava projekta sakārtošana",
|
||||
"Cancel" : "Atcelt",
|
||||
"File already exists" : "Datne jau pastāv",
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
"Open" : "Atvērt",
|
||||
"Completed" : "Pabeigts",
|
||||
"Clear filter" : "Notīrīt atlasi",
|
||||
"Hide archived cards" : "Paslēpt arhivētās kartes",
|
||||
"Hide archived cards" : "Slēpt arhivētās kartes",
|
||||
"Show archived cards" : "Rādīt arhivētās kartes",
|
||||
"Open details" : "Atvērt detaļas",
|
||||
"Details" : "Detaļas",
|
||||
@@ -38,14 +37,13 @@ OC.L10N.register(
|
||||
"Can edit" : "Var labot",
|
||||
"Can share" : "Var koplietot",
|
||||
"Owner" : "Īpašnieks",
|
||||
"Delete" : "Izdzēst",
|
||||
"Delete" : "Dzēst",
|
||||
"Edit" : "Labot",
|
||||
"Members" : "Biedri",
|
||||
"File to share" : "Kopīgojamā datne",
|
||||
"Download" : "Lejupielādēt",
|
||||
"Modified" : "Mainīts",
|
||||
"Created" : "Izveidots",
|
||||
"Open in sidebar view" : "Atvērt sānjoslas skatā",
|
||||
"Attachments" : "Pielikumi",
|
||||
"Comments" : "Piebildes",
|
||||
"Save" : "Saglabāt",
|
||||
@@ -55,7 +53,6 @@ OC.L10N.register(
|
||||
"Description" : "Apraksts",
|
||||
"Select Date" : "Izvēlieties datumu",
|
||||
"(group)" : "(grupa)",
|
||||
"Open link" : "Atvērt saiti",
|
||||
"seconds ago" : "sekundēm",
|
||||
"Keyboard shortcuts" : "Tastatūras saīsnes",
|
||||
"Keyboard shortcut" : "Tastatūras saīsne",
|
||||
|
||||
@@ -16,14 +16,13 @@
|
||||
"Could not write file to disk" : "Nevarēja ierakstīt datni diskā",
|
||||
"A PHP extension stopped the file upload" : "PHP paplašinājums apturēja datnes augšupielādi",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nederīgs datums, datuma formātam jābūt YYYY-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ir kanban veida organizēšanas rīks, kas paredzēts personīgai plānošanai un projektu orgenizēšanai komandām, kas ir iekļauts Nextcloud.\n\n\n- 📥 Uzdevumu pievienošana kartītēm un to sakārtošana\n- 📄 Papildu piezīmes var pierakstīt ar Markdown\n- 🔖 Vēl labākai pārraudzībai var piešķirt iezīmes\n- 👥 Koplietošana ar savu komandu, draugiem vai ģimeni\n- 📎 Datņu pievienošana un iekļaušana Markdown aprakstā\n- 💬 Apspriešana ar savu komandu ar piebildēm\n- ⚡ Izmaiņu izsekošana darbību plūsmā\n- 🚀 Sava projekta sakārtošana",
|
||||
"Cancel" : "Atcelt",
|
||||
"File already exists" : "Datne jau pastāv",
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
"Open" : "Atvērt",
|
||||
"Completed" : "Pabeigts",
|
||||
"Clear filter" : "Notīrīt atlasi",
|
||||
"Hide archived cards" : "Paslēpt arhivētās kartes",
|
||||
"Hide archived cards" : "Slēpt arhivētās kartes",
|
||||
"Show archived cards" : "Rādīt arhivētās kartes",
|
||||
"Open details" : "Atvērt detaļas",
|
||||
"Details" : "Detaļas",
|
||||
@@ -36,14 +35,13 @@
|
||||
"Can edit" : "Var labot",
|
||||
"Can share" : "Var koplietot",
|
||||
"Owner" : "Īpašnieks",
|
||||
"Delete" : "Izdzēst",
|
||||
"Delete" : "Dzēst",
|
||||
"Edit" : "Labot",
|
||||
"Members" : "Biedri",
|
||||
"File to share" : "Kopīgojamā datne",
|
||||
"Download" : "Lejupielādēt",
|
||||
"Modified" : "Mainīts",
|
||||
"Created" : "Izveidots",
|
||||
"Open in sidebar view" : "Atvērt sānjoslas skatā",
|
||||
"Attachments" : "Pielikumi",
|
||||
"Comments" : "Piebildes",
|
||||
"Save" : "Saglabāt",
|
||||
@@ -53,7 +51,6 @@
|
||||
"Description" : "Apraksts",
|
||||
"Select Date" : "Izvēlieties datumu",
|
||||
"(group)" : "(grupa)",
|
||||
"Open link" : "Atvērt saiti",
|
||||
"seconds ago" : "sekundēm",
|
||||
"Keyboard shortcuts" : "Tastatūras saīsnes",
|
||||
"Keyboard shortcut" : "Tastatūras saīsne",
|
||||
|
||||
@@ -76,7 +76,6 @@ OC.L10N.register(
|
||||
"Cards due tomorrow" : "Cartões com vencimento amanhã",
|
||||
"Upcoming cards" : "Próximos cartões",
|
||||
"Load more" : "Carregar mais",
|
||||
"Welcome to Nextcloud Deck!" : "Bem-vindo ao Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi vinculado com você por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu o cartão {deck-card} no {deck-board} a você.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
|
||||
@@ -85,30 +84,23 @@ OC.L10N.register(
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
|
||||
"Deck board" : "Painel de Deck",
|
||||
"Deck board" : "Painel de deck",
|
||||
"Owned by %1$s" : "Propriedade de %1$s",
|
||||
"Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck",
|
||||
"Deck boards, cards and comments" : "Quadros de aviso Deck, quadros de aviso e comentários",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s",
|
||||
"Create a new deck card" : "Crie um novo cartão de Deck",
|
||||
"Create a new deck card" : "Crie uma nova carta de deck",
|
||||
"Card comments" : "Comentários do cartão",
|
||||
"%s on %s" : "%s em %s",
|
||||
"Deck boards and cards" : "Paineis e cartões de Deck",
|
||||
"Deck boards and cards" : "Quadros de aviso e cartas Deck",
|
||||
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
|
||||
"Finished" : "Terminado",
|
||||
"To review" : "Para revisão",
|
||||
"Action needed" : "Ação necessária",
|
||||
"Later" : "Depois",
|
||||
"copy" : "copiar",
|
||||
"Read more inside" : "Leia mais no interior",
|
||||
"Custom lists - click to rename!" : "Listas personalizadas - clique para renomear!",
|
||||
"To Do" : "A Fazer",
|
||||
"In Progress" : "Em Andamento",
|
||||
"Done" : "Concluído",
|
||||
"1. Open to learn more about boards and cards" : "1. Abra para saber mais sobre cartões e placas",
|
||||
"2. Drag cards left and right, up and down" : "2. Arraste as cartas para a esquerda e para a direita, para cima e para baixo",
|
||||
"3. Apply rich formatting and link content" : "3. Aplique formatação avançada e conteúdo de links",
|
||||
"4. Share, comment and collaborate!" : "4. Compartilhe, comente e colabore!",
|
||||
"Create your first card!" : "Crie seu primeiro cartão!",
|
||||
"The file was uploaded" : "O arquivo foi enviado",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML",
|
||||
@@ -116,7 +108,7 @@ OC.L10N.register(
|
||||
"No file was uploaded" : "Nenhum arquivo foi enviado",
|
||||
"Missing a temporary folder" : "Falta uma pasta temporária",
|
||||
"Could not write file to disk" : "Não foi possível escrever no disco",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o upload do arquivo",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
|
||||
"Card not found" : "Cartão não encontrado",
|
||||
@@ -129,12 +121,10 @@ OC.L10N.register(
|
||||
"Select the board to link to a project" : "Selecione o painel para vincular a um projeto",
|
||||
"Search by board title" : "Pesquisar pelo título do painel",
|
||||
"Select board" : "Selecionar painel",
|
||||
"Move/copy card" : "Mover/copiar cartão",
|
||||
"Select a board" : "Selecionar um painel",
|
||||
"No lists available" : "Nenhuma lista disponível",
|
||||
"Select a list" : "Selecione uma lista",
|
||||
"Move card" : "Mover cartão",
|
||||
"Copy card" : "Copiar o cartão",
|
||||
"Select the card to link to a project" : "Selecione o cartão para vincular a um projeto",
|
||||
"Link to card" : "Vincular ao cartão",
|
||||
"Select a card" : "Selecionar um cartão",
|
||||
@@ -273,7 +263,7 @@ OC.L10N.register(
|
||||
"Remove due date" : "Remover data de vencimento",
|
||||
"Mark as done" : "Marcar como concluído",
|
||||
"Due at:" : "Vencimento em:",
|
||||
"Not done" : "Não concluído",
|
||||
"Not done" : "Não realizado",
|
||||
"Unarchive card" : "Desarquivar cartão",
|
||||
"Archive card" : "Arquivar cartão",
|
||||
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
|
||||
@@ -347,14 +337,8 @@ OC.L10N.register(
|
||||
"Assigned cards" : "Cartões atribuídos",
|
||||
"No notifications" : "Sem notificações",
|
||||
"Delete board" : "Excluir painel",
|
||||
"Clone {boardTitle}" : "Clonar {boardTitle}",
|
||||
"Clone cards" : "Clonar cartões",
|
||||
"Clone assignments" : "Clonar atribuições",
|
||||
"Clone labels" : "Clonar rótulos",
|
||||
"Clone due dates" : "Clonar datas de vencimento",
|
||||
"Advanced options" : "Opções avançadas",
|
||||
"Move all cards to the first list" : "Mova todos os cartões para a primeira lista",
|
||||
"Restore archived cards" : "Restaure cartões arquivados",
|
||||
"Clone" : "Clonar",
|
||||
"Loading filtered view" : "Carregando exibição filtrada",
|
||||
"Today" : "Hoje",
|
||||
@@ -362,7 +346,7 @@ OC.L10N.register(
|
||||
"No due" : "Sem vencimento",
|
||||
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
|
||||
"No results found" : "Nenhum resultado encontrado",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Quadros de aviso Deck {name}\n* Última modificação em {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
|
||||
"{nbCards} cards" : "{nbCards} cartões",
|
||||
"Due on {date}" : "Vencimento em {date}",
|
||||
@@ -380,7 +364,7 @@ OC.L10N.register(
|
||||
"upcoming cards today" : "próximos cartões hoje",
|
||||
"upcoming cards tomorrow" : "próximos cartões amanhã",
|
||||
"upcoming cards" : "próximos cartões",
|
||||
"New card" : "Novo cartão",
|
||||
"New card" : "New card",
|
||||
"Link to a board" : "Vincular a um painel",
|
||||
"Link to a card" : "Vincular a um cartão",
|
||||
"Create a card" : "Criar um cartão",
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
"Cards due tomorrow" : "Cartões com vencimento amanhã",
|
||||
"Upcoming cards" : "Próximos cartões",
|
||||
"Load more" : "Carregar mais",
|
||||
"Welcome to Nextcloud Deck!" : "Bem-vindo ao Nextcloud Deck!",
|
||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi vinculado com você por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu o cartão {deck-card} no {deck-board} a você.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
|
||||
@@ -83,30 +82,23 @@
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
|
||||
"Deck board" : "Painel de Deck",
|
||||
"Deck board" : "Painel de deck",
|
||||
"Owned by %1$s" : "Propriedade de %1$s",
|
||||
"Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck",
|
||||
"Deck boards, cards and comments" : "Quadros de aviso Deck, quadros de aviso e comentários",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s",
|
||||
"Create a new deck card" : "Crie um novo cartão de Deck",
|
||||
"Create a new deck card" : "Crie uma nova carta de deck",
|
||||
"Card comments" : "Comentários do cartão",
|
||||
"%s on %s" : "%s em %s",
|
||||
"Deck boards and cards" : "Paineis e cartões de Deck",
|
||||
"Deck boards and cards" : "Quadros de aviso e cartas Deck",
|
||||
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
|
||||
"Finished" : "Terminado",
|
||||
"To review" : "Para revisão",
|
||||
"Action needed" : "Ação necessária",
|
||||
"Later" : "Depois",
|
||||
"copy" : "copiar",
|
||||
"Read more inside" : "Leia mais no interior",
|
||||
"Custom lists - click to rename!" : "Listas personalizadas - clique para renomear!",
|
||||
"To Do" : "A Fazer",
|
||||
"In Progress" : "Em Andamento",
|
||||
"Done" : "Concluído",
|
||||
"1. Open to learn more about boards and cards" : "1. Abra para saber mais sobre cartões e placas",
|
||||
"2. Drag cards left and right, up and down" : "2. Arraste as cartas para a esquerda e para a direita, para cima e para baixo",
|
||||
"3. Apply rich formatting and link content" : "3. Aplique formatação avançada e conteúdo de links",
|
||||
"4. Share, comment and collaborate!" : "4. Compartilhe, comente e colabore!",
|
||||
"Create your first card!" : "Crie seu primeiro cartão!",
|
||||
"The file was uploaded" : "O arquivo foi enviado",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML",
|
||||
@@ -114,7 +106,7 @@
|
||||
"No file was uploaded" : "Nenhum arquivo foi enviado",
|
||||
"Missing a temporary folder" : "Falta uma pasta temporária",
|
||||
"Could not write file to disk" : "Não foi possível escrever no disco",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o upload do arquivo",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
|
||||
"Card not found" : "Cartão não encontrado",
|
||||
@@ -127,12 +119,10 @@
|
||||
"Select the board to link to a project" : "Selecione o painel para vincular a um projeto",
|
||||
"Search by board title" : "Pesquisar pelo título do painel",
|
||||
"Select board" : "Selecionar painel",
|
||||
"Move/copy card" : "Mover/copiar cartão",
|
||||
"Select a board" : "Selecionar um painel",
|
||||
"No lists available" : "Nenhuma lista disponível",
|
||||
"Select a list" : "Selecione uma lista",
|
||||
"Move card" : "Mover cartão",
|
||||
"Copy card" : "Copiar o cartão",
|
||||
"Select the card to link to a project" : "Selecione o cartão para vincular a um projeto",
|
||||
"Link to card" : "Vincular ao cartão",
|
||||
"Select a card" : "Selecionar um cartão",
|
||||
@@ -271,7 +261,7 @@
|
||||
"Remove due date" : "Remover data de vencimento",
|
||||
"Mark as done" : "Marcar como concluído",
|
||||
"Due at:" : "Vencimento em:",
|
||||
"Not done" : "Não concluído",
|
||||
"Not done" : "Não realizado",
|
||||
"Unarchive card" : "Desarquivar cartão",
|
||||
"Archive card" : "Arquivar cartão",
|
||||
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
|
||||
@@ -345,14 +335,8 @@
|
||||
"Assigned cards" : "Cartões atribuídos",
|
||||
"No notifications" : "Sem notificações",
|
||||
"Delete board" : "Excluir painel",
|
||||
"Clone {boardTitle}" : "Clonar {boardTitle}",
|
||||
"Clone cards" : "Clonar cartões",
|
||||
"Clone assignments" : "Clonar atribuições",
|
||||
"Clone labels" : "Clonar rótulos",
|
||||
"Clone due dates" : "Clonar datas de vencimento",
|
||||
"Advanced options" : "Opções avançadas",
|
||||
"Move all cards to the first list" : "Mova todos os cartões para a primeira lista",
|
||||
"Restore archived cards" : "Restaure cartões arquivados",
|
||||
"Clone" : "Clonar",
|
||||
"Loading filtered view" : "Carregando exibição filtrada",
|
||||
"Today" : "Hoje",
|
||||
@@ -360,7 +344,7 @@
|
||||
"No due" : "Sem vencimento",
|
||||
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
|
||||
"No results found" : "Nenhum resultado encontrado",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Quadros de aviso Deck {name}\n* Última modificação em {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
|
||||
"{nbCards} cards" : "{nbCards} cartões",
|
||||
"Due on {date}" : "Vencimento em {date}",
|
||||
@@ -378,7 +362,7 @@
|
||||
"upcoming cards today" : "próximos cartões hoje",
|
||||
"upcoming cards tomorrow" : "próximos cartões amanhã",
|
||||
"upcoming cards" : "próximos cartões",
|
||||
"New card" : "Novo cartão",
|
||||
"New card" : "New card",
|
||||
"Link to a board" : "Vincular a um painel",
|
||||
"Link to a card" : "Vincular a um cartão",
|
||||
"Create a card" : "Criar um cartão",
|
||||
|
||||
@@ -148,7 +148,6 @@ OC.L10N.register(
|
||||
"Search" : "Pesquisa sobre",
|
||||
"Archived boards" : "Quadros arquivados",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Cancel edit" : "Cancelar edição",
|
||||
"No reminder" : "Nenhum lembrete",
|
||||
"An error occurred" : "Ocorreu um erro",
|
||||
"Board details" : "Detalhes do quadro",
|
||||
|
||||
@@ -146,7 +146,6 @@
|
||||
"Search" : "Pesquisa sobre",
|
||||
"Archived boards" : "Quadros arquivados",
|
||||
"Shared with you" : "Shared with you",
|
||||
"Cancel edit" : "Cancelar edição",
|
||||
"No reminder" : "Nenhum lembrete",
|
||||
"An error occurred" : "Ocorreu um erro",
|
||||
"Board details" : "Detalhes do quadro",
|
||||
|
||||
@@ -86,7 +86,7 @@ OC.L10N.register(
|
||||
"Select a card" : "Вибрати картку",
|
||||
"Cancel" : "Скасувати",
|
||||
"This board is read only" : "Дошка тільки для читання",
|
||||
"Drop your files to upload" : "Перетягнути файли для завантаження",
|
||||
"Drop your files to upload" : "Пересуньте файли сюди для завантаження",
|
||||
"File already exists" : "Файл вже існує",
|
||||
"A file with the name {filename} already exists." : "Файл {filename} вже існує.",
|
||||
"Do you want to overwrite it?" : "Дійсно перезаписати файл?",
|
||||
@@ -97,7 +97,7 @@ OC.L10N.register(
|
||||
"Add list" : "Додати список",
|
||||
"List name" : "Назва списку",
|
||||
"Active filters" : "Активні фільтри",
|
||||
"Apply filter" : "Фільтрувати",
|
||||
"Apply filter" : "Відфільтрувати",
|
||||
"Filter by tag" : "Відібрати за мітками",
|
||||
"Filter by assigned user" : "Відібрати за призначеним користувачем",
|
||||
"Unassigned" : "Скасовано призначення",
|
||||
@@ -127,7 +127,7 @@ OC.L10N.register(
|
||||
"Transfer" : "Передати",
|
||||
"Board owner" : "Власник дошки",
|
||||
"(Group)" : "(група)",
|
||||
"Can edit" : "Може редагувати",
|
||||
"Can edit" : "Можна редагувати",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може керувати",
|
||||
"Owner" : "Власник",
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"Select a card" : "Вибрати картку",
|
||||
"Cancel" : "Скасувати",
|
||||
"This board is read only" : "Дошка тільки для читання",
|
||||
"Drop your files to upload" : "Перетягнути файли для завантаження",
|
||||
"Drop your files to upload" : "Пересуньте файли сюди для завантаження",
|
||||
"File already exists" : "Файл вже існує",
|
||||
"A file with the name {filename} already exists." : "Файл {filename} вже існує.",
|
||||
"Do you want to overwrite it?" : "Дійсно перезаписати файл?",
|
||||
@@ -95,7 +95,7 @@
|
||||
"Add list" : "Додати список",
|
||||
"List name" : "Назва списку",
|
||||
"Active filters" : "Активні фільтри",
|
||||
"Apply filter" : "Фільтрувати",
|
||||
"Apply filter" : "Відфільтрувати",
|
||||
"Filter by tag" : "Відібрати за мітками",
|
||||
"Filter by assigned user" : "Відібрати за призначеним користувачем",
|
||||
"Unassigned" : "Скасовано призначення",
|
||||
@@ -125,7 +125,7 @@
|
||||
"Transfer" : "Передати",
|
||||
"Board owner" : "Власник дошки",
|
||||
"(Group)" : "(група)",
|
||||
"Can edit" : "Може редагувати",
|
||||
"Can edit" : "Можна редагувати",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може керувати",
|
||||
"Owner" : "Власник",
|
||||
|
||||
49
l10n/uz.js
49
l10n/uz.js
@@ -1,75 +1,26 @@
|
||||
OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"Deck" : "Pastki qavat",
|
||||
"Upcoming cards" : "Kelgusi kartalar",
|
||||
"Deck board" : "Pastki taxta",
|
||||
"Later" : "Keyinchalik",
|
||||
"copy" : "copy",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fayl yuklangan edi",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Yuklangan fayl php.ini dagi php-dagi upload_max_filesize direktivasidan oshadi",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yuklangan fayl HTML shaklida ko'rsatilgan MAX_FILE_SIZE direktivasidan oshadi",
|
||||
"The file was only partially uploaded" : "Fayl faqat qisman yuklandi",
|
||||
"No file was uploaded" : "Fayl yuklanmadi",
|
||||
"Missing a temporary folder" : "Vaqtinchalik papka etishmayapti",
|
||||
"Could not write file to disk" : "Faylni diskka yozib bo'lmadi",
|
||||
"A PHP extension stopped the file upload" : "PHP kengaytmasi faylni yuklashni to'xtatdi",
|
||||
"Card not found" : "Karta topilmadi",
|
||||
"Add board" : "Doska qo'shing",
|
||||
"Move card" : "Kartani ko'chirish",
|
||||
"Cancel" : "Cancel",
|
||||
"Add card" : "Karta qo'shing",
|
||||
"Archived cards" : "Arxivlangan kartalar",
|
||||
"Add list" : "Roʻyxat qoʻshish",
|
||||
"Unassigned" : "Tayinlanmagan",
|
||||
"Open" : "Open",
|
||||
"Overdue" : "Muddati o'tgan",
|
||||
"Next 7 days" : "Keyingi 7 kun",
|
||||
"Next 30 days" : "Keyingi 30 kun",
|
||||
"No due date" : "Muddati yo'q",
|
||||
"Details" : "Details",
|
||||
"Sharing" : "Ulashish",
|
||||
"Tags" : "Tags",
|
||||
"Activity" : "Faollik",
|
||||
"Undo" : "Bekor qilish",
|
||||
"Can edit" : "Can edit",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Delete",
|
||||
"Delete list" : "Roʻyxatni oʻchirish",
|
||||
"Edit" : "Tahrirlash",
|
||||
"Download" : "Download",
|
||||
"Modified" : "Modified",
|
||||
"Attachments" : "Qo'shimchalar",
|
||||
"Comments" : "Comments",
|
||||
"Save" : "Save",
|
||||
"In reply to" : "ga javoban",
|
||||
"Reply" : "Javob bering",
|
||||
"Update" : "Update",
|
||||
"Description" : "Tavsif",
|
||||
"Edit description" : "Tavsifni tahrirlash",
|
||||
"Mark as done" : "Bajarildi deb belgilang",
|
||||
"Not done" : "Bajarilmadi",
|
||||
"Archive card" : "Arxiv kartasi",
|
||||
"Edit title" : "Sarlavhani tahrirlash",
|
||||
"Delete card" : "Kartani o'chirish",
|
||||
"seconds ago" : "seconds ago",
|
||||
"Search" : "Search",
|
||||
"Archived boards" : "Arxivlangan taxtalar",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No reminder" : "Eslatma yo'q",
|
||||
"Edit board" : "Tahrirlash paneli",
|
||||
"Clone board" : "Klon taxtasi",
|
||||
"Archive board" : "Arxiv paneli",
|
||||
"No notifications" : "Hech qanday bildirishnoma yo'q",
|
||||
"Delete board" : "Panelni o'chirish",
|
||||
"Clone cards" : "Klon kartalari",
|
||||
"Clone" : "Klonlash",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Ertaga",
|
||||
"No results found" : "Hech qanday natija topilmadi",
|
||||
"Close" : "Close",
|
||||
"Share" : "Ulashish",
|
||||
"Personal" : "Personal"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
49
l10n/uz.json
49
l10n/uz.json
@@ -1,73 +1,24 @@
|
||||
{ "translations": {
|
||||
"Deck" : "Pastki qavat",
|
||||
"Upcoming cards" : "Kelgusi kartalar",
|
||||
"Deck board" : "Pastki taxta",
|
||||
"Later" : "Keyinchalik",
|
||||
"copy" : "copy",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fayl yuklangan edi",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Yuklangan fayl php.ini dagi php-dagi upload_max_filesize direktivasidan oshadi",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yuklangan fayl HTML shaklida ko'rsatilgan MAX_FILE_SIZE direktivasidan oshadi",
|
||||
"The file was only partially uploaded" : "Fayl faqat qisman yuklandi",
|
||||
"No file was uploaded" : "Fayl yuklanmadi",
|
||||
"Missing a temporary folder" : "Vaqtinchalik papka etishmayapti",
|
||||
"Could not write file to disk" : "Faylni diskka yozib bo'lmadi",
|
||||
"A PHP extension stopped the file upload" : "PHP kengaytmasi faylni yuklashni to'xtatdi",
|
||||
"Card not found" : "Karta topilmadi",
|
||||
"Add board" : "Doska qo'shing",
|
||||
"Move card" : "Kartani ko'chirish",
|
||||
"Cancel" : "Cancel",
|
||||
"Add card" : "Karta qo'shing",
|
||||
"Archived cards" : "Arxivlangan kartalar",
|
||||
"Add list" : "Roʻyxat qoʻshish",
|
||||
"Unassigned" : "Tayinlanmagan",
|
||||
"Open" : "Open",
|
||||
"Overdue" : "Muddati o'tgan",
|
||||
"Next 7 days" : "Keyingi 7 kun",
|
||||
"Next 30 days" : "Keyingi 30 kun",
|
||||
"No due date" : "Muddati yo'q",
|
||||
"Details" : "Details",
|
||||
"Sharing" : "Ulashish",
|
||||
"Tags" : "Tags",
|
||||
"Activity" : "Faollik",
|
||||
"Undo" : "Bekor qilish",
|
||||
"Can edit" : "Can edit",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Delete",
|
||||
"Delete list" : "Roʻyxatni oʻchirish",
|
||||
"Edit" : "Tahrirlash",
|
||||
"Download" : "Download",
|
||||
"Modified" : "Modified",
|
||||
"Attachments" : "Qo'shimchalar",
|
||||
"Comments" : "Comments",
|
||||
"Save" : "Save",
|
||||
"In reply to" : "ga javoban",
|
||||
"Reply" : "Javob bering",
|
||||
"Update" : "Update",
|
||||
"Description" : "Tavsif",
|
||||
"Edit description" : "Tavsifni tahrirlash",
|
||||
"Mark as done" : "Bajarildi deb belgilang",
|
||||
"Not done" : "Bajarilmadi",
|
||||
"Archive card" : "Arxiv kartasi",
|
||||
"Edit title" : "Sarlavhani tahrirlash",
|
||||
"Delete card" : "Kartani o'chirish",
|
||||
"seconds ago" : "seconds ago",
|
||||
"Search" : "Search",
|
||||
"Archived boards" : "Arxivlangan taxtalar",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No reminder" : "Eslatma yo'q",
|
||||
"Edit board" : "Tahrirlash paneli",
|
||||
"Clone board" : "Klon taxtasi",
|
||||
"Archive board" : "Arxiv paneli",
|
||||
"No notifications" : "Hech qanday bildirishnoma yo'q",
|
||||
"Delete board" : "Panelni o'chirish",
|
||||
"Clone cards" : "Klon kartalari",
|
||||
"Clone" : "Klonlash",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Ertaga",
|
||||
"No results found" : "Hech qanday natija topilmadi",
|
||||
"Close" : "Close",
|
||||
"Share" : "Ulashish",
|
||||
"Personal" : "Personal"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -100,7 +101,7 @@ class ActivityManager {
|
||||
StackMapper $stackMapper,
|
||||
AclMapper $aclMapper,
|
||||
IFactory $l10nFactory,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->manager = $manager;
|
||||
$this->permissionService = $permissionsService;
|
||||
@@ -484,7 +485,7 @@ class ActivityManager {
|
||||
$objectId = $entity->getObjectId();
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
return $this->cardMapper->find($objectId);
|
||||
}
|
||||
@@ -499,11 +500,11 @@ class ActivityManager {
|
||||
$objectId = $entity->getBoardId();
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
return $this->boardMapper->find($objectId);
|
||||
}
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
|
||||
private function findDetailsForStack($stackId) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -108,7 +109,7 @@ class DeckProvider implements IProvider {
|
||||
}
|
||||
$board = [
|
||||
'type' => 'highlight',
|
||||
'id' => $event->getObjectId(),
|
||||
'id' => (string)$event->getObjectId(),
|
||||
'name' => $event->getObjectName(),
|
||||
'link' => $this->deckUrl('/board/' . $event->getObjectId()),
|
||||
];
|
||||
@@ -125,12 +126,12 @@ class DeckProvider implements IProvider {
|
||||
}
|
||||
$card = [
|
||||
'type' => 'highlight',
|
||||
'id' => $event->getObjectId(),
|
||||
'id' => (string)$event->getObjectId(),
|
||||
'name' => $event->getObjectName(),
|
||||
];
|
||||
|
||||
if (array_key_exists('board', $subjectParams)) {
|
||||
$card['link'] = $this->cardService->getRedirectUrlForCard($event->getObjectId());
|
||||
$card['link'] = $this->cardService->getCardUrl($event->getObjectId());
|
||||
$event->setLink($card['link']);
|
||||
}
|
||||
$params['card'] = $card;
|
||||
@@ -212,7 +213,7 @@ class DeckProvider implements IProvider {
|
||||
if (array_key_exists($paramName, $subjectParams)) {
|
||||
$params[$paramName] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams[$paramName]['id'],
|
||||
'id' => (string)$subjectParams[$paramName]['id'],
|
||||
'name' => $subjectParams[$paramName]['title'],
|
||||
'link' => $this->deckUrl('/board/' . $subjectParams[$paramName]['id'] . '/'),
|
||||
];
|
||||
@@ -223,7 +224,7 @@ class DeckProvider implements IProvider {
|
||||
if (array_key_exists($paramName, $subjectParams)) {
|
||||
$params[$paramName] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams[$paramName]['id'],
|
||||
'id' => (string)$subjectParams[$paramName]['id'],
|
||||
'name' => $subjectParams[$paramName]['title'],
|
||||
];
|
||||
}
|
||||
@@ -234,7 +235,7 @@ class DeckProvider implements IProvider {
|
||||
if (array_key_exists($paramName, $subjectParams)) {
|
||||
$params[$paramName] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams[$paramName]['id'],
|
||||
'id' => (string)$subjectParams[$paramName]['id'],
|
||||
'name' => $subjectParams[$paramName]['data'],
|
||||
'link' => $this->urlGenerator->linkToRoute('deck.attachment.display', ['cardId' => $subjectParams['card']['id'], 'attachmentId' => $subjectParams['attachment']['id']]),
|
||||
];
|
||||
@@ -258,7 +259,7 @@ class DeckProvider implements IProvider {
|
||||
if (array_key_exists('label', $subjectParams)) {
|
||||
$params['label'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['label']['id'],
|
||||
'id' => (string)$subjectParams['label']['id'],
|
||||
'name' => $subjectParams['label']['title']
|
||||
];
|
||||
}
|
||||
@@ -277,7 +278,7 @@ class DeckProvider implements IProvider {
|
||||
} else {
|
||||
$params['acl'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['acl']['participant'],
|
||||
'id' => (string)$subjectParams['acl']['participant'],
|
||||
'name' => $subjectParams['acl']['participant']
|
||||
];
|
||||
}
|
||||
@@ -293,7 +294,7 @@ class DeckProvider implements IProvider {
|
||||
$event->setParsedMessage($comment->getMessage());
|
||||
$params['comment'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['comment'],
|
||||
'id' => (string)$subjectParams['comment'],
|
||||
'name' => $comment->getMessage()
|
||||
];
|
||||
} catch (NotFoundException $e) {
|
||||
@@ -342,28 +343,28 @@ class DeckProvider implements IProvider {
|
||||
if (array_key_exists('before', $subjectParams)) {
|
||||
$params['before'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['before'],
|
||||
'name' => $subjectParams['before']
|
||||
'id' => (string)$subjectParams['before'],
|
||||
'name' => $subjectParams['before'] ?? ''
|
||||
];
|
||||
}
|
||||
if (array_key_exists('after', $subjectParams)) {
|
||||
$params['after'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['after'],
|
||||
'name' => $subjectParams['after']
|
||||
'id' => (string)$subjectParams['after'],
|
||||
'name' => $subjectParams['after'] ?? ''
|
||||
];
|
||||
}
|
||||
if (array_key_exists('card', $subjectParams) && $event->getSubject() === ActivityManager::SUBJECT_CARD_UPDATE_TITLE) {
|
||||
$params['card'] = [
|
||||
'type' => 'highlight',
|
||||
'id' => $subjectParams['after'],
|
||||
'name' => $subjectParams['after']
|
||||
'id' => (string)$subjectParams['after'],
|
||||
'name' => $subjectParams['after'] ?? ''
|
||||
];
|
||||
}
|
||||
return $params;
|
||||
}
|
||||
|
||||
public function deckUrl($endpoint) {
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#' . $endpoint;
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . trim($endpoint, '/');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -15,7 +16,7 @@ class Filter implements \OCP\Activity\IFilter {
|
||||
|
||||
public function __construct(
|
||||
IL10N $l10n,
|
||||
IURLGenerator $urlGenerator
|
||||
IURLGenerator $urlGenerator,
|
||||
) {
|
||||
$this->l10n = $l10n;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
@@ -39,8 +40,8 @@ class Filter implements \OCP\Activity\IFilter {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -47,8 +48,8 @@ abstract class SettingBase extends ActivitySettings {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -25,8 +26,8 @@ class SettingChanges extends SettingBase {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -176,7 +177,7 @@ class Application extends App implements IBootstrap {
|
||||
$permissionService = $this->getContainer()->get(PermissionService::class);
|
||||
|
||||
try {
|
||||
return $permissionService->checkPermission($cardMapper, (int) $name, Acl::PERMISSION_READ);
|
||||
return $permissionService->checkPermission($cardMapper, (int)$name, Acl::PERMISSION_READ);
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -14,7 +15,7 @@ class Capabilities implements ICapability {
|
||||
|
||||
/** @var IAppManager */
|
||||
private $appManager;
|
||||
/** @var PermissionService */
|
||||
/** @var PermissionService */
|
||||
private $permissionService;
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -56,7 +57,7 @@ class ResourceProvider implements IProvider {
|
||||
*/
|
||||
public function getResourceRichObject(IResource $resource): array {
|
||||
$board = $this->getBoard($resource);
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $resource->getId();
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.indexBoard', ['boardId' => $resource->getId()]);
|
||||
|
||||
return [
|
||||
'type' => self::RESOURCE_TYPE,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -65,7 +66,10 @@ class ResourceProviderCard implements IProvider {
|
||||
throw new ResourceException('No unique card found for resource, this should never happen');
|
||||
}
|
||||
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $resource->getId();
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.indexCard', [
|
||||
'boardId' => $board->getId(),
|
||||
'cardId' => $card->getId()
|
||||
]);
|
||||
|
||||
return [
|
||||
'type' => self::RESOURCE_TYPE,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -15,7 +16,7 @@ use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class BoardImport extends Command {
|
||||
public function __construct(
|
||||
private BoardImportCommandService $boardImportCommandService
|
||||
private BoardImportCommandService $boardImportCommandService,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -72,17 +73,17 @@ final class TransferOwnership extends Command {
|
||||
try {
|
||||
$board = $boardId ? $this->boardMapper->find($boardId) : null;
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("Could not find a board for the provided id.");
|
||||
$output->writeln('Could not find a board for the provided id.');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($boardId !== null && $board->getOwner() !== $owner) {
|
||||
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ")");
|
||||
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ')');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($boardId) {
|
||||
$output->writeln("Transfer board " . $board->getTitle() . " from ". $board->getOwner() ." to $newOwner");
|
||||
$output->writeln('Transfer board ' . $board->getTitle() . ' from ' . $board->getOwner() . " to $newOwner");
|
||||
} else {
|
||||
$output->writeln("Transfer all boards from $owner to $newOwner");
|
||||
}
|
||||
@@ -94,12 +95,12 @@ final class TransferOwnership extends Command {
|
||||
|
||||
if ($boardId) {
|
||||
$this->boardService->transferBoardOwnership($boardId, $newOwner, $remapAssignment);
|
||||
$output->writeln("<info>Board " . $board->getTitle() . " from ". $board->getOwner() ." transferred to $newOwner completed</info>");
|
||||
$output->writeln('<info>Board ' . $board->getTitle() . ' from ' . $board->getOwner() . " transferred to $newOwner completed</info>");
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach ($this->boardService->transferOwnership($owner, $newOwner, $remapAssignment) as $board) {
|
||||
$output->writeln(" - " . $board->getTitle() . " transferred");
|
||||
$output->writeln(' - ' . $board->getTitle() . ' transferred');
|
||||
}
|
||||
$output->writeln("<info>All boards from $owner to $newOwner transferred</info>");
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -163,4 +164,13 @@ class BoardApiController extends ApiController {
|
||||
$acl = $this->boardService->deleteAcl($aclId);
|
||||
return new DataResponse($acl, HTTP::STATUS_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
*/
|
||||
public function clone(int $boardId, bool $withCards = false, bool $withAssignments = false, bool $withLabels = false, bool $withDueDate = false, bool $moveCardsToLeftStack = false, bool $restoreArchivedCards = false): DataResponse {
|
||||
return new DataResponse(
|
||||
$this->boardService->clone($boardId, $this->userId, $withCards, $withAssignments, $withLabels, $withDueDate, $moveCardsToLeftStack, $restoreArchivedCards)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -134,11 +135,11 @@ class BoardController extends ApiController {
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @param $boardId
|
||||
* @return Board
|
||||
*/
|
||||
public function clone($boardId) {
|
||||
return $this->boardService->clone($boardId, $this->userId);
|
||||
public function clone(int $boardId, bool $withCards = false, bool $withAssignments = false, bool $withLabels = false, bool $withDueDate = false, bool $moveCardsToLeftStack = false, bool $restoreArchivedCards = false): DataResponse {
|
||||
return new DataResponse(
|
||||
$this->boardService->clone($boardId, $this->userId, $withCards, $withAssignments, $withLabels, $withDueDate, $moveCardsToLeftStack, $restoreArchivedCards)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -152,6 +153,30 @@ class CardApiController extends ApiController {
|
||||
return new DataResponse($card, HTTP::STATUS_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @CORS
|
||||
* @NoCSRFRequired
|
||||
*
|
||||
* Archive card
|
||||
*/
|
||||
public function archive($cardId) {
|
||||
$card = $this->cardService->archive($cardId);
|
||||
return new DataResponse($card, HTTP::STATUS_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @CORS
|
||||
* @NoCSRFRequired
|
||||
*
|
||||
* Unarchive card
|
||||
*/
|
||||
public function unarchive($cardId) {
|
||||
$card = $this->cardService->unarchive($cardId);
|
||||
return new DataResponse($card, HTTP::STATUS_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @CORS
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -89,6 +90,15 @@ class CardController extends Controller {
|
||||
public function update($id, $title, $stackId, $type, $order, $description, $duedate, $deletedAt) {
|
||||
return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt);
|
||||
}
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @param $cardId
|
||||
* @param $targetStackId
|
||||
* @return \OCP\AppFramework\Db\Entity
|
||||
*/
|
||||
public function clone(int $cardId, ?int $targetStackId = null) {
|
||||
return $this->cardService->cloneCard($cardId, $targetStackId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -21,7 +21,8 @@ use OCP\AppFramework\OCSController;
|
||||
use OCP\IRequest;
|
||||
|
||||
class SessionController extends OCSController {
|
||||
public function __construct($appName,
|
||||
public function __construct(
|
||||
$appName,
|
||||
IRequest $request,
|
||||
private SessionService $sessionService,
|
||||
private PermissionService $permissionService,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user