Compare commits

..

340 Commits

Author SHA1 Message Date
Julius Härtl
9932a7b972 fix: Revert append to body as it fails on 24
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-23 11:34:17 +02:00
Julius Härtl
e10ab29f28 fix: Properly overwrite z-index of datepicker above modal
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-23 11:25:46 +02:00
Julius Härtl
0ac494df9d Merge pull request #4795 from nextcloud/dependabot/npm_and_yarn/stable24/vue/test-utils-1.3.6 2023-06-10 12:47:17 +02:00
Julius Härtl
a8ce89d487 Merge pull request #4793 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.22.5 2023-06-10 12:47:08 +02:00
dependabot[bot]
2fcbbbbc23 Chore(deps-dev): Bump @vue/test-utils from 1.3.5 to 1.3.6
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

---
updated-dependencies:
- dependency-name: "@vue/test-utils"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 03:40:27 +00:00
dependabot[bot]
4f673fe598 Chore(deps): Bump @babel/runtime from 7.22.3 to 7.22.5
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.22.3 to 7.22.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.5/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 03:30:15 +00:00
Julius Härtl
02ba8f85ce Merge pull request #4759 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.22.3 2023-06-05 07:45:41 +02:00
Julius Härtl
f88d53d7f1 Merge pull request #4762 from nextcloud/dependabot/npm_and_yarn/stable24/url-search-params-polyfill-8.2.2 2023-06-05 07:45:09 +02:00
dependabot[bot]
6a5eecea76 Chore(deps): Bump url-search-params-polyfill from 8.1.1 to 8.2.2
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 8.1.1 to 8.2.2.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/commits)

---
updated-dependencies:
- dependency-name: url-search-params-polyfill
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-03 03:39:30 +00:00
dependabot[bot]
b61667c90b Chore(deps): Bump @babel/runtime from 7.22.0 to 7.22.3
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.22.0 to 7.22.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.3/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-03 03:07:49 +00:00
Julius Härtl
6864846d84 Merge pull request #4745 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.22.0 2023-05-30 10:55:23 +02:00
dependabot[bot]
962256acb0 Chore(deps): Bump @babel/runtime from 7.21.5 to 7.22.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.21.5 to 7.22.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 03:33:27 +00:00
Nextcloud bot
9db8c9af80 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-21 00:29:12 +00:00
Nextcloud bot
88bd868e76 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-18 00:29:48 +00:00
Julius Härtl
3c88551ad5 Merge pull request #4681 from nextcloud/automated/noid/stable24-fix-npm-audit 2023-05-15 08:25:09 +02:00
nextcloud-command
0872b1b606 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-05-14 03:09:57 +00:00
Nextcloud bot
65242c2b6c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-12 02:43:23 +00:00
Julius Härtl
a3527542f9 Bump version to 1.7.4
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-10 15:41:56 +02:00
Nextcloud bot
28e4b12428 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-08 02:40:24 +00:00
Julius Härtl
628cd333f1 Merge pull request #4646 from nextcloud/backport/4643/stable24
[stable24] fix: Append datetime picker to body to avoid cut off
2023-05-03 13:32:01 +02:00
Julius Härtl
ccfaa4886a fix: z-index of datepicker in modal
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 13:10:40 +02:00
Julius Härtl
0ef238da0e Merge pull request #4639 from nextcloud/automated/noid/stable24-fix-npm-audit
[stable24] Fix npm audit
2023-05-03 12:45:05 +02:00
Julius Härtl
333b904335 fix: Append datetime picker to body to avoid cut off
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 10:41:52 +00:00
nextcloud-command
32a956af02 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-05-03 08:12:52 +00:00
Julius Härtl
b7dad3134d Merge pull request #4629 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/webpack-vue-config-5.5.1 2023-05-02 10:31:28 +02:00
Julius Härtl
42f76117f2 Merge pull request #4631 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.21.5 2023-05-02 10:31:15 +02:00
dependabot[bot]
be1c646bd7 Chore(deps): Bump @babel/runtime from 7.21.0 to 7.21.5
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.21.0 to 7.21.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.5/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 01:58:38 +00:00
dependabot[bot]
137fece0b8 Chore(deps-dev): Bump @nextcloud/webpack-vue-config from 5.5.0 to 5.5.1
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v5.5.0...v5.5.1)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 01:58:09 +00:00
Nextcloud bot
81e5922dfd Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-28 02:40:36 +00:00
Nextcloud bot
ccc216d388 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-27 02:40:52 +00:00
Julius Härtl
3f7ab93df9 Update appbuild.yml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-25 08:28:20 +02:00
Julius Härtl
a621aacac0 Update phpunit.yml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-24 12:52:14 +02:00
Julius Härtl
bb7ed1bc31 Merge pull request #4595 from nextcloud/dependabot/npm_and_yarn/stable24/vue/test-utils-1.3.5 2023-04-24 12:26:08 +02:00
Nextcloud bot
4d0f7ddef3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-23 02:40:59 +00:00
Nextcloud bot
bd13cc09d8 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-19 02:40:51 +00:00
Nextcloud bot
cb3925faeb Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-16 02:39:55 +00:00
dependabot[bot]
ac11571a7d Chore(deps-dev): Bump @vue/test-utils from 1.3.4 to 1.3.5
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

---
updated-dependencies:
- dependency-name: "@vue/test-utils"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 01:57:50 +00:00
Nextcloud bot
fd4564450b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-09 02:42:15 +00:00
Nextcloud bot
acbd42d6a4 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-06 02:41:16 +00:00
Nextcloud bot
458831dfc7 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-05 02:42:40 +00:00
Jonas
8a5098951c Merge pull request #4569 from nextcloud/backport/4566/stable24
[stable24] Gracefully handle not found card for a share
2023-03-29 11:17:55 +02:00
Jonas
99260ae966 Gracefully handle not found card for a share
Fixes: #3464
Fixes: #4565

Signed-off-by: Jonas <jonas@freesources.org>
2023-03-29 09:01:10 +00:00
Nextcloud bot
ea592251f9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-28 02:31:42 +00:00
Julius Härtl
6c80674ce0 Merge pull request #4541 from nextcloud/backport/4487/stable24 2023-03-20 07:16:14 +01:00
Julius Härtl
060e8cd7db Merge pull request #4551 from nextcloud/automated/noid/stable24-update-nextcloud-ocp
[stable24] Update nextcloud/ocp dependency
2023-03-20 07:15:33 +01:00
nextcloud-command
f05bd86be9 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-03-19 03:09:00 +00:00
dependabot[bot]
1ce7856cae Merge pull request #4549 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/webpack-vue-config-5.5.0 2023-03-18 05:23:13 +00:00
dependabot[bot]
678e4c9569 Chore(deps-dev): Bump @nextcloud/webpack-vue-config from 5.4.0 to 5.5.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-18 04:11:24 +00:00
Nextcloud bot
4fe4216cb5 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-18 02:39:40 +00:00
Julius Härtl
85e7305d8d fix: Use passed userid when getting attachment folder
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-17 14:05:15 +00:00
Nextcloud bot
090378580c Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-17 02:39:10 +00:00
Nextcloud bot
3f8efb5368 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 02:40:49 +00:00
Julius Härtl
c1f2fd452b Merge pull request #4538 from nextcloud/backport/4535/stable24 2023-03-15 15:32:42 +01:00
Jérôme Herbinet
576c47bdef Fix : Overlapping expiry dates on tags
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-03-15 12:50:37 +00:00
Nextcloud bot
e907aeb8c0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-15 02:38:47 +00:00
Nextcloud bot
c51119d051 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 02:40:09 +00:00
Nextcloud bot
ee72cb4660 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 02:39:16 +00:00
dependabot[bot]
d4f2ed263f Merge pull request #4501 from nextcloud/dependabot/npm_and_yarn/stable24/dompurify-2.4.5 2023-03-04 04:06:06 +00:00
dependabot[bot]
e6f8796b63 Chore(deps): Bump dompurify from 2.4.4 to 2.4.5
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.4 to 2.4.5.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.4...2.4.5)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-04 02:57:56 +00:00
Nextcloud bot
846443d003 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 02:40:29 +00:00
dependabot[bot]
144c27d403 Merge pull request #4475 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.21.0 2023-02-25 04:26:43 +00:00
dependabot[bot]
f374084989 chore(deps): bump @babel/runtime from 7.20.13 to 7.21.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.13 to 7.21.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:57:54 +00:00
Nextcloud bot
0656e53508 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 02:42:13 +00:00
Nextcloud bot
7506126ef7 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-22 02:34:22 +00:00
Nextcloud bot
5214721875 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-21 02:33:48 +00:00
Julius Härtl
34f7b726cd Merge pull request #4465 from nextcloud/automated/noid/stable24-update-nextcloud-ocp 2023-02-20 14:57:17 +01:00
nextcloud-command
ea5baa5339 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-02-19 03:33:35 +00:00
Nextcloud bot
7c3aa301ac Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-19 02:34:29 +00:00
dependabot[bot]
313bc90ce9 Merge pull request #4462 from nextcloud/dependabot/npm_and_yarn/stable24/dompurify-2.4.4 2023-02-18 05:31:36 +00:00
dependabot[bot]
be06c7ab70 Chore(deps): Bump dompurify from 2.4.3 to 2.4.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.3 to 2.4.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.3...2.4.4)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-18 04:46:30 +00:00
Nextcloud bot
5964da382e Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-18 02:34:50 +00:00
Nextcloud bot
eaa2facc29 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-17 02:33:47 +00:00
Nextcloud bot
13e836760a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-16 02:33:30 +00:00
Nextcloud bot
73815827e1 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-15 02:33:45 +00:00
Nextcloud bot
34107ad06f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 02:33:25 +00:00
Nextcloud bot
90535b3c30 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 02:32:44 +00:00
Nextcloud bot
312376e596 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 02:33:25 +00:00
Nextcloud bot
04dbe45f29 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 02:33:40 +00:00
Nextcloud bot
bc38340daf Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 02:34:53 +00:00
Nextcloud bot
9b89897d74 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 02:33:12 +00:00
Nextcloud bot
f411181dcf Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 02:32:16 +00:00
Nextcloud bot
080465d48a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 02:32:52 +00:00
Nextcloud bot
2358645037 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 02:32:45 +00:00
Nextcloud bot
c6545c7c00 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 02:33:59 +00:00
Nextcloud bot
3baa2fc1a0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 02:34:13 +00:00
Julius Härtl
fd297dc92e Merge pull request #4416 from nextcloud/automated/noid/stable24-update-nextcloud-ocp 2023-01-29 08:41:17 +01:00
nextcloud-command
4608e4b77b chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-01-29 02:56:09 +00:00
dependabot[bot]
524b8ba90e Merge pull request #4413 from nextcloud/dependabot/npm_and_yarn/stable24/vue/test-utils-1.3.4 2023-01-28 06:50:48 +00:00
dependabot[bot]
569e568136 Merge pull request #4403 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.20.13 2023-01-28 05:17:01 +00:00
dependabot[bot]
d9c563d5bf Chore(deps-dev): Bump @vue/test-utils from 1.3.3 to 1.3.4
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

---
updated-dependencies:
- dependency-name: "@vue/test-utils"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 03:28:46 +00:00
Nextcloud bot
f51956891e Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 02:33:42 +00:00
dependabot[bot]
053ecdacee Chore(deps): Bump @babel/runtime from 7.20.7 to 7.20.13
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.7 to 7.20.13.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.13/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 02:01:56 +00:00
Nextcloud bot
8f755ee3eb Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 02:51:31 +00:00
Nextcloud bot
fa6d819409 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 02:32:51 +00:00
Nextcloud bot
fa17dfac3a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 02:33:00 +00:00
Nextcloud bot
92b20efa89 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 02:32:42 +00:00
Nextcloud bot
2849177998 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 02:32:35 +00:00
Nextcloud bot
0bbeedb7e3 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 02:34:22 +00:00
Nextcloud bot
918f22f7a6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-16 02:32:13 +00:00
Nextcloud bot
ecac9b772b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-14 02:33:55 +00:00
Nextcloud bot
f0a4469be5 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-13 02:33:55 +00:00
Nextcloud bot
f47f4983d9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-11 02:32:12 +00:00
Nextcloud bot
c9b8735804 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-10 02:33:45 +00:00
Julius Härtl
c9d7647200 Merge pull request #4370 from nextcloud/automated/noid/stable24-update-nextcloud-ocp 2023-01-09 16:38:03 +01:00
Nextcloud bot
4a8410f0fc Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-09 02:32:10 +00:00
nextcloud-command
4fbb383c0f Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-01-08 02:51:52 +00:00
dependabot[bot]
98361ff096 Merge pull request #4364 from nextcloud/dependabot/npm_and_yarn/stable24/dompurify-2.4.3 2023-01-07 03:45:56 +00:00
Nextcloud bot
31f2ca49d5 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-07 02:32:16 +00:00
dependabot[bot]
e0e6f86801 Bump dompurify from 2.4.1 to 2.4.3
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.1 to 2.4.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.1...2.4.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 02:02:47 +00:00
Nextcloud bot
0bc4e1fa7b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-05 02:32:03 +00:00
Nextcloud bot
0d137a372c Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-04 02:25:31 +00:00
Nextcloud bot
2d1ad75f35 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-03 02:47:16 +00:00
Nextcloud bot
e381e021d6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-02 03:17:23 +00:00
Nextcloud bot
59f0813aa5 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-01 03:01:30 +00:00
Nextcloud bot
90d14c544f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-31 03:20:24 +00:00
dependabot[bot]
02ca7acf4f Merge pull request #4346 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/router-2.0.1 2022-12-30 13:32:22 +00:00
dependabot[bot]
0725b55773 Bump @nextcloud/router from 2.0.0 to 2.0.1
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/nextcloud/nextcloud-router/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-router/commits)

---
updated-dependencies:
- dependency-name: "@nextcloud/router"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-30 13:17:49 +00:00
Nextcloud bot
1219c0aed0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-27 03:13:49 +00:00
dependabot[bot]
da57b9c7e1 Merge pull request #4336 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.20.7 2022-12-24 04:46:16 +00:00
Nextcloud bot
e67822167b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-24 03:40:01 +00:00
dependabot[bot]
20e3729b86 Bump @babel/runtime from 7.20.6 to 7.20.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.6 to 7.20.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-24 02:01:47 +00:00
Nextcloud bot
5c3d88dae0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-21 02:38:12 +00:00
Nextcloud bot
2fb86b11ec [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-18 02:27:11 +00:00
Nextcloud bot
5d9c504842 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-16 02:27:05 +00:00
Nextcloud bot
1610968ed7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-14 02:29:30 +00:00
Nextcloud bot
aad4aafc03 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-13 02:40:06 +00:00
Marcel Klehr
40e3987ae6 Merge pull request #4302 from nextcloud/backport/4194/stable24 2022-12-09 16:04:50 +01:00
Michal Polacik
d3a77e4a11 Permanently delete deck cards marked as deleted after 5 min in a cron job
Limit deleted cards in one cron job run to 500

Converted spaces to tabs

Added missing import for CardMapper class

Added another missing import for CardMapper class

Fixed response object in findToDelete method + fixed 2 misspellings in API.md

Fixed invalid parameter type

Fix DeleteCronTest

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

Fix lint errors

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-12-09 14:38:59 +00:00
Nextcloud bot
c93189ff9a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-04 02:22:13 +00:00
dependabot[bot]
bca7b3386c Merge pull request #4283 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.20.6 2022-12-03 03:47:27 +00:00
dependabot[bot]
3c7cc0b09c Bump @babel/runtime from 7.20.1 to 7.20.6
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.1 to 7.20.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.6/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 02:02:26 +00:00
Nextcloud bot
8e35b67a0d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-01 02:23:05 +00:00
Nextcloud bot
bfb292c54d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-30 02:23:28 +00:00
Nextcloud bot
ab6c775f5c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-23 02:26:02 +00:00
Nextcloud bot
e3e9e4596a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-22 02:26:48 +00:00
Nextcloud bot
fefe77c245 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-21 02:22:57 +00:00
Nextcloud bot
42108cb223 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-20 02:24:07 +00:00
dependabot[bot]
72d7a245d2 Merge pull request #4271 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/webpack-vue-config-5.4.0 2022-11-19 08:38:43 +00:00
Nextcloud bot
e187a665d5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-19 02:25:09 +00:00
dependabot[bot]
01ab23dc82 Bump @nextcloud/webpack-vue-config from 5.0.0 to 5.4.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 5.0.0 to 5.4.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v5.0.0...v5.4.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-19 01:53:18 +00:00
dependabot[bot]
004814ace7 Merge pull request #4267 from nextcloud/dependabot/npm_and_yarn/stable24/vue-2.7.14 2022-11-19 01:52:04 +00:00
dependabot[bot]
326a38557b Merge pull request #4264 from nextcloud/dependabot/npm_and_yarn/stable24/relative-ci/agent-3.1.3 2022-11-19 01:50:28 +00:00
dependabot[bot]
6e43ed5fce Merge pull request #4245 from nextcloud/dependabot/npm_and_yarn/stable24/moment-2.29.4 2022-11-18 23:41:59 +00:00
dependabot[bot]
8b92610f67 Merge pull request #4243 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/moment-1.2.1 2022-11-18 23:36:56 +00:00
dependabot[bot]
6cc919b62d Bump vue from 2.6.14 to 2.7.14
Bumps [vue](https://github.com/vuejs/core) from 2.6.14 to 2.7.14.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 22:30:17 +00:00
dependabot[bot]
3ff47580ad Bump @relative-ci/agent from 3.1.2 to 3.1.3
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: "@relative-ci/agent"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 22:29:42 +00:00
dependabot[bot]
a1a2120d43 Merge pull request #4270 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/vue-5.4.0 2022-11-18 22:29:17 +00:00
dependabot[bot]
273222bb21 Merge pull request #4269 from nextcloud/dependabot/npm_and_yarn/stable24/vue-router-3.6.5 2022-11-18 22:29:12 +00:00
dependabot[bot]
1255e5a6c9 Merge pull request #4268 from nextcloud/dependabot/npm_and_yarn/stable24/vue/test-utils-1.3.3 2022-11-18 22:27:26 +00:00
dependabot[bot]
dace366b6c Merge pull request #4260 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/browserslist-config-2.3.0 2022-11-18 21:49:06 +00:00
dependabot[bot]
a2f5414c48 Merge pull request #4257 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/dialogs-3.2.0 2022-11-18 21:47:15 +00:00
dependabot[bot]
1887527197 Merge pull request #4254 from nextcloud/dependabot/npm_and_yarn/stable24/babel/runtime-7.20.1 2022-11-18 21:25:07 +00:00
dependabot[bot]
6d35c2f1c1 Merge pull request #4252 from nextcloud/dependabot/npm_and_yarn/stable24/dompurify-2.4.1 2022-11-18 21:18:01 +00:00
dependabot[bot]
51626698c4 Merge pull request #4266 from nextcloud/dependabot/npm_and_yarn/stable24/vue-at-2.5.1 2022-11-18 21:06:31 +00:00
dependabot[bot]
5ed2b23f76 Merge pull request #4265 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/axios-1.11.0 2022-11-18 21:03:26 +00:00
dependabot[bot]
502b5acb69 Merge pull request #4261 from nextcloud/dependabot/npm_and_yarn/stable24/markdown-it-link-attributes-4.0.1 2022-11-18 20:46:28 +00:00
dependabot[bot]
03b5257fea Bump moment from 2.29.2 to 2.29.4
Bumps [moment](https://github.com/moment/moment) from 2.29.2 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.2...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 20:20:50 +00:00
dependabot[bot]
39b158f92d Bump @nextcloud/moment from 1.2.0 to 1.2.1
Bumps [@nextcloud/moment](https://github.com/nextcloud/nextcloud-moment) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/nextcloud/nextcloud-moment/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-moment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-moment/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: "@nextcloud/moment"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 20:20:49 +00:00
dependabot[bot]
3163136b73 Merge pull request #4248 from nextcloud/dependabot/npm_and_yarn/stable24/nextcloud/l10n-1.6.0 2022-11-18 20:19:42 +00:00
dependabot[bot]
9791444167 Bump @nextcloud/vue from 5.3.1 to 5.4.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v5.3.1...v5.4.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:35:27 +00:00
dependabot[bot]
77acf95106 Bump vue-router from 3.5.3 to 3.6.5
Bumps [vue-router](https://github.com/vuejs/router) from 3.5.3 to 3.6.5.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/commits)

---
updated-dependencies:
- dependency-name: vue-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:35:11 +00:00
dependabot[bot]
6505cc99ce Bump @vue/test-utils from 1.3.0 to 1.3.3
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.0 to 1.3.3.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

---
updated-dependencies:
- dependency-name: "@vue/test-utils"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:35:01 +00:00
dependabot[bot]
54d1a40eeb Bump vue-at from 2.5.0-beta.2 to 2.5.1
Bumps [vue-at](https://github.com/fritx/vue-at) from 2.5.0-beta.2 to 2.5.1.
- [Release notes](https://github.com/fritx/vue-at/releases)
- [Commits](https://github.com/fritx/vue-at/commits)

---
updated-dependencies:
- dependency-name: vue-at
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:32:26 +00:00
dependabot[bot]
ab577a95eb Bump @nextcloud/axios from 1.9.0 to 1.11.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 1.9.0 to 1.11.0.
- [Release notes](https://github.com/nextcloud/nextcloud-axios/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-axios/compare/v1.9.0...v1.11.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/axios"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:32:14 +00:00
dependabot[bot]
8537d4acef Bump markdown-it-link-attributes from 4.0.0 to 4.0.1
Bumps [markdown-it-link-attributes](https://github.com/crookedneighbor/markdown-it-link-attributes) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/crookedneighbor/markdown-it-link-attributes/releases)
- [Changelog](https://github.com/crookedneighbor/markdown-it-link-attributes/blob/main/CHANGELOG.md)
- [Commits](https://github.com/crookedneighbor/markdown-it-link-attributes/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: markdown-it-link-attributes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:31:22 +00:00
dependabot[bot]
d0fda8a546 Bump @nextcloud/browserslist-config from 2.2.0 to 2.3.0
Bumps [@nextcloud/browserslist-config](https://github.com/nextcloud/browserslist-config) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/nextcloud/browserslist-config/releases)
- [Commits](https://github.com/nextcloud/browserslist-config/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/browserslist-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:31:12 +00:00
dependabot[bot]
031f69523d Bump @nextcloud/dialogs from 3.1.2 to 3.2.0
Bumps [@nextcloud/dialogs](https://github.com/nextcloud/nextcloud-dialogs) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/nextcloud/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-dialogs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-dialogs/compare/v3.1.2...v3.2.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/dialogs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:31:00 +00:00
dependabot[bot]
3864f29bbd Bump @babel/runtime from 7.17.9 to 7.20.1
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.17.9 to 7.20.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.1/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:30:49 +00:00
dependabot[bot]
ee1b32fcd7 Bump dompurify from 2.3.6 to 2.4.1
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.6 to 2.4.1.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.6...2.4.1)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:30:38 +00:00
dependabot[bot]
6ad6b1680f Bump @nextcloud/l10n from 1.4.1 to 1.6.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.4.1 to 1.6.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.4.1...v1.6.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/l10n"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:30:24 +00:00
Julius Härtl
b158d79403 Bump version to 1.7.3
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-18 16:29:52 +01:00
Nextcloud bot
2d823e3321 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-17 02:21:30 +00:00
Julius Härtl
9a153356c2 Merge pull request #4207 from nextcloud/automated/noid/stable24-update-nextcloud-ocp 2022-11-13 16:55:55 +01:00
nextcloud-command
eaf5e6ff29 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-11-13 03:36:07 +00:00
Nextcloud bot
585a02a3d2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-12 02:22:17 +00:00
Julius Härtl
30acd27c94 Merge pull request #4202 from nextcloud/backport/4180/stable24 2022-11-11 14:59:23 +01:00
Nextcloud bot
71db398e9a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-11 02:21:22 +00:00
Johannes Szeibert
d8f44e2c94 minor style fixes
Signed-off-by: Johannes Szeibert <johannes@szeibert.de>
2022-11-10 08:31:48 +00:00
Nextcloud bot
20c8cb12e3 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-10 02:23:00 +00:00
Nextcloud bot
60eadb7035 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-09 02:21:47 +00:00
Julius Härtl
17e71c5c9a Merge pull request #4188 from nextcloud/automated/noid/stable24-update-nextcloud-ocp 2022-11-07 08:26:43 +01:00
nextcloud-command
289c0f72dd Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-11-06 03:33:40 +00:00
Nextcloud bot
c2a326d538 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-05 02:22:34 +00:00
Nextcloud bot
438bb8cb0d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-04 02:21:19 +00:00
Julius Härtl
b98f8e3b07 Merge pull request #4178 from nextcloud/backport/4173/stable24 2022-11-03 21:47:23 +01:00
Julius Härtl
333206c549 Fix validation of attachment data
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-03 20:43:47 +01:00
Julius Härtl
5359ec34ef Unify getting the share for attachments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-03 20:43:45 +01:00
Julius Härtl
ab7da85964 Add integration test for attachment handling on cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-03 20:43:45 +01:00
Marcel Klehr
7ecb215957 Merge pull request #4182 from nextcloud/backport/4101/stable24 2022-11-03 18:54:37 +01:00
mokkin
df89839b51 disables autocomplete on card creation
solves https://github.com/nextcloud/deck/issues/4083

Signed-off-by: mokkin <markus@haybach.com>
2022-11-03 18:25:22 +01:00
Nextcloud bot
03ed40df67 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-03 02:21:17 +00:00
Nextcloud bot
ad1429b4a2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-02 02:21:35 +00:00
Nextcloud bot
eb03cd6814 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-01 02:21:41 +00:00
Julius Härtl
566846fe4d Merge pull request #4176 from nextcloud/backport/4059/stable24 2022-10-31 21:17:49 +01:00
Julius Härtl
f4c09fefd9 Add some tests for parameter validation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-31 14:22:23 +01:00
Luka Trovic
bd6e632055 feat: add validators to check values in services
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-10-31 14:22:20 +01:00
Nextcloud bot
75ddc058b8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-31 02:21:06 +00:00
Julius Härtl
8558ce432a Merge pull request #4171 from nextcloud/automated/noid/stable24-update-nextcloud-ocp
[stable24] Update nextcloud/ocp dependency
2022-10-30 08:40:38 +01:00
nextcloud-command
7586084980 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-10-30 03:57:06 +00:00
Nextcloud bot
863de715a4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-30 02:24:11 +00:00
Nextcloud bot
04abf47653 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-29 02:23:25 +00:00
Marcel Klehr
45c9a8ba27 Merge pull request #4158 from nextcloud/release/1.7.2 2022-10-27 11:47:09 +02:00
Nextcloud bot
3d10521524 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 02:21:17 +00:00
Marcel Klehr
ef616f37bd v1.7.2
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-26 16:15:54 +02:00
Nextcloud bot
e64c36ffce [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 02:26:18 +00:00
Nextcloud bot
837d925536 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 02:21:56 +00:00
Julius Härtl
feaeb90f76 Merge pull request #4132 from nextcloud/backport/4065/stable24 2022-10-18 19:22:08 +02:00
Julius Härtl
2ea94a12ad Cache user membership for circles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-18 11:35:19 +02:00
Julius Härtl
c8cf8238b8 Pin postgres to 14
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-18 11:29:51 +02:00
Julius Härtl
16f41f74b3 Merge pull request #4118 from nextcloud/backport/3439/stable24 2022-10-18 11:26:27 +02:00
Nextcloud bot
3a78eea105 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-18 02:21:41 +00:00
Julius Härtl
8e158972f4 Activity: Set event link also for notifications that get emitted from activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-14 10:51:06 +00:00
Nextcloud bot
b12a1306eb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-13 02:22:23 +00:00
Julius Härtl
1175c8b605 Merge pull request #4103 from nextcloud/fix/24-no-card-menu-without-description 2022-10-11 14:53:35 +02:00
Nextcloud bot
4b06ef3ac0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-08 02:21:52 +00:00
Marcel Klehr
5f59f485f2 Merge pull request #4019 from nextcloud/backport/4014/stable24 2022-10-07 12:07:41 +02:00
Marcel Klehr
2f28015b91 Fix Card menu not displaying when description is not set
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-07 11:40:31 +02:00
Nextcloud bot
675aff612d [tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-07 02:21:55 +00:00
Nextcloud bot
9ad65af60e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-06 02:26:16 +00:00
Nextcloud bot
2210c05e28 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-05 02:21:23 +00:00
Côme Chilliet
a189139a04 Merge pull request #4093 from nextcloud/migrate-stable24-christophwurst-package
Migrate to nextcloud/OCP package in stable24
2022-10-02 10:39:09 +02:00
Joas Schilling
c6a209c63a Migrate to nextcloud/OCP package in stable24
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-02 09:18:23 +02:00
Nextcloud bot
1968d8493b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-01 02:24:38 +00:00
Nextcloud bot
a94eb0cd31 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-30 03:23:40 +00:00
Nextcloud bot
b2bbf31f46 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-28 02:46:17 +00:00
Nextcloud bot
2b959c10dd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-26 02:47:18 +00:00
Nextcloud bot
81669635c5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-24 02:47:23 +00:00
Nextcloud bot
7350a2a811 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-23 02:42:09 +00:00
Nextcloud bot
e677cbcdac [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-22 02:45:48 +00:00
Nextcloud bot
6d7461d0d1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-20 02:45:57 +00:00
Nextcloud bot
86d94166f0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-17 02:45:14 +00:00
Nextcloud bot
a664545ebf [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-16 02:39:38 +00:00
Nextcloud bot
360bd4192b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-15 02:45:09 +00:00
Nextcloud bot
da3f2b8ee4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-14 02:39:54 +00:00
Nextcloud bot
78aa411e09 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-13 02:40:41 +00:00
Nextcloud bot
2d318c0ac1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-12 02:39:42 +00:00
Nextcloud bot
b58f598044 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-09 02:40:41 +00:00
Julien Veyssier
bad2a19be6 Merge pull request #4037 from nextcloud/backport/4036/stable24
[stable24] Fix attachment creator name: show display name
2022-09-08 12:23:00 +02:00
Julien Veyssier
a89bdab5e3 fix tests
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-08 12:09:23 +02:00
Julien Veyssier
5b2c03f733 refs #4035 fix attachment creator name: show display name instead of user id
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-08 12:09:23 +02:00
Nextcloud bot
552e10d79d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-08 02:40:32 +00:00
Nextcloud bot
40f39fa21a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-07 02:40:01 +00:00
Nextcloud bot
d5c1833638 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-06 02:39:38 +00:00
Nextcloud bot
36dd98c93e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-05 02:38:59 +00:00
Nextcloud bot
ccbec7f5ac [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-04 02:38:02 +00:00
Nextcloud bot
0359e89b22 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-03 02:44:35 +00:00
Robin Appelman
e9f8634334 disable Create card button while no stack is chosen
make the `isBoardAndStackChoosen` method do what it says

Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-09-02 11:12:41 +00:00
Nextcloud bot
1889c0c4f9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-01 02:50:07 +00:00
Nextcloud bot
1ac501db79 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-28 02:36:32 +00:00
Nextcloud bot
c9ddd4f997 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-27 02:36:44 +00:00
Julius Härtl
e8a0d7c47c Merge pull request #3997 from nextcloud/backport/3980/stable24 2022-08-26 10:50:27 +02:00
Julius Härtl
8ace53bfe2 Make CappedMemoryCache usage compatible with older releases
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-26 10:07:59 +02:00
Raul Ferreira Fuentes
89c3490015 Merge pull request #3995 from nextcloud/backport/3982/stable24
[stable24] Improve CalDAV integration performance
2022-08-25 12:13:48 +00:00
Julius Härtl
72bc2f438a Use capped memory cache for board permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:40 +00:00
Julius Härtl
1183459608 Avoid fetching archived cards for calendars
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:32 +00:00
Julius Härtl
a4e6c7b746 Avoid querying each card when getting the calendars only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:32 +00:00
Nextcloud bot
b99fb6e8f6 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-24 02:39:41 +00:00
Nextcloud bot
f613a60f7c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-22 02:37:15 +00:00
Nextcloud bot
7c77cde669 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-21 02:36:35 +00:00
Nextcloud bot
9a7bde4cbd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-20 02:36:58 +00:00
Nextcloud bot
b807a71f1f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-13 02:37:50 +00:00
Nextcloud bot
33942236f0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-12 02:36:56 +00:00
Nextcloud bot
3dd3301ffc [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-09 02:36:37 +00:00
Julius Härtl
0d310d317e Merge pull request #3959 from nextcloud/backport/3952/stable24 2022-08-08 09:32:39 +02:00
Julius Härtl
82515e5731 Fetch attachment folder for the correct user during cron job
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-08 07:00:52 +00:00
Nextcloud bot
4cd4707559 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-07 02:40:59 +00:00
Nextcloud bot
90c14861c4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-06 02:37:35 +00:00
Nextcloud bot
17a51501ec [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-05 02:13:42 +00:00
Nextcloud bot
86707f18dd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-03 02:13:43 +00:00
Julius Härtl
a28cd746f1 Merge pull request #3925 from nextcloud/backport/3898/stable24
[stable24] Switch to 'markdown-it-task-checkbox' for rendering of task lists
2022-08-01 22:06:14 +02:00
Nextcloud bot
10ad995cd0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-29 02:13:34 +00:00
Nextcloud bot
856c5f50c4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-28 02:13:40 +00:00
Nextcloud bot
0a9d96d964 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-27 02:13:38 +00:00
Nextcloud bot
1d15921a57 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-25 02:39:10 +00:00
Nextcloud bot
b9826cb29f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-24 02:40:48 +00:00
Nextcloud bot
94c13bbbdb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-23 02:38:35 +00:00
Nextcloud bot
549f9c9045 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-21 02:38:53 +00:00
q-wertz
ac16521404 Switch to 'markdown-it-task-checkbox' for rendering of task lists
Signed-off-by: q-wertz <clemens.sonnleitner@web.de>
2022-07-19 09:33:39 +02:00
Nextcloud bot
4be298f537 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-19 02:38:00 +00:00
Nextcloud bot
10dead9d9f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-18 02:37:16 +00:00
Nextcloud bot
f9cb601a99 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-14 02:37:44 +00:00
Julius Härtl
efdd3b0056 Merge pull request #3917 from nextcloud/backport/3916/stable24
[stable24] Prevent opening card and applyLabelFilter on card drag end
2022-07-12 16:37:01 +02:00
Julien Veyssier
a18f550dc1 refs #2594 prevent opening card and applyLabelFilter on card drag end
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-07-12 11:57:22 +00:00
Nextcloud bot
d808b9fef7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-08 02:37:16 +00:00
Nextcloud bot
f4742259f2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-06 02:35:55 +00:00
Julius Härtl
3fe5da0ee1 Merge pull request #3901 from nextcloud/backport/3833/stable24
[stable24] Fix for issue #3637
2022-07-05 14:30:09 +02:00
Thomas Flummer
17ae3a9a39 Fix for issue #3637
Added padding on nested ul, to compensate for the negative margin on the containing li

Signed-off-by: Thomas Flummer <tf@flummer.net>
2022-07-05 10:41:38 +00:00
Nextcloud bot
1ff588a15a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-04 02:35:49 +00:00
Nextcloud bot
2bb04ef298 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-02 02:37:23 +00:00
Raul Ferreira Fuentes
055dda909e Merge pull request #3885 from nextcloud/backport/3884/stable24
[stable24] Fix z-index for deck sidebar
2022-06-28 15:26:18 +02:00
Raul
f364709318 Fix z-index for deck sidebar
The sidebar would previously render above the user menu (logout, settings, etc)

Signed-off-by: Raul <r.ferreira.fuentes@gmail.com>
2022-06-28 12:40:36 +00:00
Nextcloud bot
84de1c0198 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-22 02:40:26 +00:00
Nextcloud bot
413017d333 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-14 02:41:52 +00:00
Nextcloud bot
5c069e5413 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-12 02:41:04 +00:00
Nextcloud bot
9d9cdb0f95 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-09 02:45:32 +00:00
Nextcloud bot
74f45e2e54 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-07 02:44:07 +00:00
Nextcloud bot
f82c48ad29 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-03 02:47:52 +00:00
Nextcloud bot
ece052a20d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-02 02:47:09 +00:00
Luka Trovic
8a9a36ed10 Merge pull request #3847 from nextcloud/release/1.7.1
release/1.7.1
2022-06-01 13:36:59 +02:00
Luka Trovic
82f2a2c363 changes for 1.7.1
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-30 08:21:03 +02:00
Nextcloud bot
3016659c81 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-29 02:46:53 +00:00
Nextcloud bot
b9ab0f14ab [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-28 02:43:24 +00:00
Nextcloud bot
2d90ed7414 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-26 02:44:17 +00:00
Nextcloud bot
5d87f05994 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-24 02:47:12 +00:00
Nextcloud bot
9ef183bcaa [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-23 02:43:45 +00:00
Nextcloud bot
34f18fbd7d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-22 02:43:40 +00:00
Nextcloud bot
27fa2bbc54 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-21 02:47:13 +00:00
Nextcloud bot
03a88327a5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-20 02:46:27 +00:00
Julius Härtl
67ac21e688 Merge pull request #3815 from nextcloud/backport/3811/stable24
[stable24] Align Duedate-delete icon properly - fixes nextcloud/deck#3791
2022-05-13 09:34:37 +02:00
Nextcloud bot
e90f32ca32 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-13 02:41:48 +00:00
ben
b21e65027c Align Duedate-delete icon properly - fixes nextcloud/deck#3791
Signed-off-by: ben <ben@ro.tt>
2022-05-12 14:54:17 +00:00
Julius Härtl
b628532def Merge pull request #3804 from nextcloud/backport/3682/stable24
[stable24] Increase file count after sharing
2022-05-12 09:18:37 +02:00
Julius Härtl
e0b2755b7c Fix php-cs-fixer failure
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-12 09:09:20 +02:00
Julius Härtl
9e1fbb9852 Move all caching to helper
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-11 14:43:32 +00:00
Luka Trovic
047ca3e203 fix: move shares count cache logic to the DeckShareProvider
Signed-off-by: Luka Trovic <luka@nextcloud.com>

fix: conflicts

Signed-off-by: Luka Trovic <luka@nextcloud.com>

fix: conflicts and test issues

Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:31 +00:00
Luka Trovic
bfcd5357e3 fix: update attachments count when sharing
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:30 +00:00
Luka Trovic
461ed6b81f fix: increase file count after sharing
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:29 +00:00
Nextcloud bot
ee2969fc5b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-06 02:41:15 +00:00
Nextcloud bot
ca32ebd9cb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-05 02:41:05 +00:00
Julius Härtl
4a29617fed Merge pull request #3779 from nextcloud/backport/3777/stable24
[stable24] Fetch full board data after cloning
2022-05-04 17:17:07 +02:00
Julius Härtl
8eab97a92a Fetch full board data after cloning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-04 10:29:18 +00:00
Nextcloud bot
f453f69cce [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-04 02:42:57 +00:00
Nextcloud bot
8ca84147e8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-03 02:41:23 +00:00
Julius Härtl
5e3ddd83fc Bump version to 1.7.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-02 16:43:48 +02:00
Julius Härtl
6b985463d8 Merge pull request #3769 from nextcloud/bugfix/noid/stable24-psalm
Handle qb mapper exception messages properly
2022-04-29 17:28:20 +02:00
Julius Härtl
25e0ae2670 Bump version to 1.7.0-rc.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 16:17:24 +02:00
Julius Härtl
614c6fbdba Handle qb mapper exception messages properly
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 15:45:07 +02:00
Julius Härtl
8efe415558 Merge pull request #3765 from nextcloud/backport/3761/stable24
[stable24] Fix text selection in dark mode and modal view
2022-04-29 15:41:06 +02:00
Julius Härtl
f3ad2a3709 Fix text selection in dark mode and modal view
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 09:33:06 +00:00
Julius Härtl
25dd71ba04 Merge pull request #3764 from nextcloud/backport/3762/stable24
[stable24] Adapt the card modal to upstream changes
2022-04-29 11:09:08 +02:00
Julius Härtl
a514e6e168 Adapt modal size to viewer upstream changes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 08:47:21 +00:00
Julius Härtl
cb5553ea94 Merge pull request #3754 from nextcloud/backport/3745/stable24
[stable24] Add missing indices
2022-04-28 10:10:31 +02:00
Julius Härtl
335ee31c7c Add missing indices
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-26 16:26:17 +00:00
Julius Härtl
9b4379727d Merge pull request #3736 from nextcloud/backport/3681/stable24
[stable24] Show cards after moving into another list
2022-04-20 18:14:34 +02:00
Julius Härtl
a5fe2f59be Merge pull request #3733 from nextcloud/backport/3692/stable24
[stable24] Fix hidden attachment icon on archived cards
2022-04-20 18:14:13 +02:00
Luka Trovic
1b58f7854e fix: feedback
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:24:24 +00:00
Luka Trovic
b6effa468f fix: show card after moving into another list
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:24:24 +00:00
Luka Trovic
2b512b88c4 fix: hidden attachment icon on archived cards
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:22:23 +00:00
Julius Härtl
5cb61cba90 Merge pull request #3723 from nextcloud/update-stable24-target-versions
Update stable24 target versions
2022-04-19 15:38:37 +02:00
Joas Schilling
0657efe239 Update stable24 target versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-14 22:09:00 +02:00
528 changed files with 42419 additions and 66323 deletions

View File

@@ -1,29 +0,0 @@
{
"image": "ghcr.io/juliushaertl/nextcloud-dev-php80:latest",
"forwardPorts": [80],
"containerEnv": {
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
"XDEBUG_MODE": "debug"
},
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-intellisense",
"octref.vetur"
],
"settings": {
"php.suggest.basic": false,
"git.alwaysSignOff": true
}
}
},
"workspaceMount": "source=${localWorkspaceFolder},target=/var/www/html/apps-extra/deck,type=bind",
"workspaceFolder": "/var/www/html/apps-extra/deck",
"overrideCommand": true,
"postAttachCommand": "bash ./.devcontainer/setup.sh",
"portsAttributes": {
"80": {
"label": "Webserver"
}
}
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
(
cd /tmp && /usr/local/bin/bootstrap.sh apache2ctl start
)
composer install --no-dev
npm ci
npm run dev

View File

@@ -3,10 +3,7 @@ root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = tab
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.{js,vue}]
indent_style = tab

View File

@@ -1,5 +1,4 @@
module.exports = {
root: true,
extends: [
'@nextcloud',
],
@@ -8,7 +7,6 @@ module.exports = {
'jsdoc/require-param-type': ['off'],
'jsdoc/check-param-names': ['off'],
'jsdoc/no-undefined-types': ['off'],
'jsdoc/require-property-description': ['off'],
'import/no-named-as-default-member': ['off'],
'jsdoc/require-property-description' : ['off']
},
}

View File

@@ -2,7 +2,7 @@ version: 2
updates:
- package-ecosystem: npm
directory: "/"
target-branch: "main"
target-branch: "master"
schedule:
interval: weekly
day: saturday
@@ -11,42 +11,6 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- luka-nextcloud
- package-ecosystem: npm
target-branch: stable28
versioning-strategy: lockfile-only
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 30
labels:
- 3. to review
- dependencies
- package-ecosystem: npm
target-branch: stable27
versioning-strategy: lockfile-only
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:
@@ -57,8 +21,6 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- luka-nextcloud
- package-ecosystem: composer
directory: "/tests/integration"
schedule:
@@ -69,8 +31,6 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- luka-nextcloud
- package-ecosystem: github-actions
directory: "/"
schedule:
@@ -81,4 +41,3 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- luka-nextcloud

View File

@@ -1,6 +1,6 @@
* Resolves: # <!-- related github issue -->
* Target version: main
* Target version: master
### Summary

View File

@@ -1,11 +1,7 @@
name: Package build
on:
push:
branches:
- main
- master
- stable*
pull_request:
jobs:
build:
@@ -13,31 +9,31 @@ jobs:
strategy:
matrix:
node-version: [16.x]
node-version: [14.x]
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.30.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
- name: package
run: |
uname -a
RUST_BACKTRACE=1 krankerl --version
RUST_BACKTRACE=1 krankerl package
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v3
with:
name: Deck app tarball
path: build/artifacts/deck.tar.gz

View File

@@ -10,7 +10,7 @@ on:
types: [published]
env:
PHP_VERSION: 8.2
PHP_VERSION: 7.4
jobs:
build_and_publish:
@@ -21,42 +21,42 @@ jobs:
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
uses: skjnldsv/check-actor-permission@v2
with:
require: write
- name: Set app env
run: |
# Split and keep last
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@v3
with:
path: ${{ env.APP_NAME }}
- name: Get appinfo data
id: appinfo
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
uses: skjnldsv/xpath-action@master
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
expression: "//info//dependencies//nextcloud/@min-version"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
uses: skjnldsv/read-package-engines-version-actions@v1.2
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: '^20'
fallbackNpm: '^9'
fallbackNode: "^12"
fallbackNpm: "^6"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -66,16 +66,14 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ env.PHP_VERSION }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
uses: andstor/file-existence-action@v1
with:
files: "${{ env.APP_NAME }}/composer.json"
@@ -88,36 +86,21 @@ jobs:
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
env:
CYPRESS_INSTALL_BINARY: 0
run: |
cd ${{ env.APP_NAME }}
npm ci
npm run build
- name: Check Krankerl config
id: krankerl
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: ${{ env.APP_NAME }}/krankerl.toml
- name: Install Krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.13.0/krankerl_0.13.0_amd64.deb
sudo dpkg -i krankerl_0.13.0_amd64.deb
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
if: steps.krankerl.outputs.files_exists == 'true'
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }}
# Try krankerl, fallback to makefile
run: |
cd ${{ env.APP_NAME }}
krankerl package
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
if: steps.krankerl.outputs.files_exists != 'true'
run: |
cd ${{ env.APP_NAME }}
make appstore
krankerl package || make appstore
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
continue-on-error: true
@@ -128,10 +111,9 @@ jobs:
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@v3
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
submodules: true
repository: nextcloud/server
path: nextcloud
@@ -151,7 +133,7 @@ jobs:
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
uses: svenstaro/upload-release-action@v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
@@ -161,7 +143,7 @@ jobs:
overwrite: true
- name: Upload app to Nextcloud appstore
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
uses: nextcloud-releases/nextcloud-appstore-push-action@v1
with:
app_name: ${{ env.APP_NAME }}
appstore_token: ${{ secrets.APPSTORE_TOKEN }}

View File

@@ -9,21 +9,16 @@ 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
uses: peter-evans/create-or-update-comment@v2
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -31,18 +26,18 @@ jobs:
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@v4.1.1 # v3.5.2
uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@v2
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -1,122 +0,0 @@
name: Cypress
on:
pull_request:
push:
branches:
- main
- stable*
env:
APP_NAME: deck
CYPRESS_baseUrl: http://localhost:8081/index.php
jobs:
cypress:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [20.x]
# containers: [1, 2, 3]
php-versions: [ '8.0' ]
databases: [ 'sqlite' ]
server-versions: [ 'master' ]
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
- name: Register text Git reference
run: |
text_app_ref="$(if [ "${{ matrix.server-versions }}" = "master" ]; then echo -n "main"; else echo -n "${{ matrix.server-versions }}"; fi)"
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@v4.1.1
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Checkout ${{ env.APP_NAME }}
uses: actions/checkout@v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Checkout text
uses: actions/checkout@v4.1.1
with:
repository: nextcloud/text
ref: ${{ env.text_app_ref }}
path: apps/text
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.30.0
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
ini-values:
apc.enable_cli=on
coverage: none
- name: Set up Nextcloud
env:
DB_PORT: 4444
PHP_CLI_SERVER_WORKERS: 10
run: |
mkdir data
php occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
php occ config:system:set debug --value=true --type=boolean
php -f index.php
php -S 0.0.0.0:8081 &
export OC_PASS=1234561
php occ user:add --password-from-env user1
php occ user:add --password-from-env user2
php occ app:enable deck
php occ app:list
cd apps/deck
composer install --no-dev
npm ci
npm run build
cd ../../
curl -v http://localhost:8081/index.php/login
- name: Cypress run
uses: cypress-io/github-action@v6
with:
record: false
parallel: false
wait-on: '${{ env.CYPRESS_baseUrl }}'
working-directory: 'apps/${{ env.APP_NAME }}'
config: defaultCommandTimeout=10000,video=false
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
npm_package_name: ${{ env.APP_NAME }}
- name: Upload test failure screenshots
uses: actions/upload-artifact@v4
if: failure()
with:
name: Upload screenshots
path: apps/${{ env.APP_NAME }}/cypress/screenshots/
retention-days: 5
- name: Upload nextcloud logs
uses: actions/upload-artifact@v4
if: failure()
with:
name: Upload nextcloud log
path: data/nextcloud.log
retention-days: 5

View File

@@ -8,33 +8,22 @@ name: Dependabot
on:
pull_request_target:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
steps:
# Github actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
- uses: hmarr/auto-approve-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
- uses: ahmadnassri/action-dependabot-auto-merge@v2
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}

View File

@@ -3,31 +3,18 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block fixup and squash commits
name: Pull request checks
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on: pull_request
jobs:
commit-message-check:
if: github.event.pull_request.draft == false
permissions:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
uses: xt0rted/block-autosquash-commits-action@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,17 +2,8 @@ name: Integration tests
on:
pull_request:
paths:
- '.github/workflows/integration.yml'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'composer.json'
- 'composer.lock'
push:
branches:
- main
- master
- stable*
@@ -26,9 +17,9 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
php-versions: ['7.4']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
server-versions: ['stable24']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -52,7 +43,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@v4.1.1
uses: actions/checkout@v3
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
@@ -63,32 +54,24 @@ jobs:
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
cd build/integration && composer require --dev phpunit/phpunit:~9
cd build/integration && composer require --dev phpunit/phpunit:~8
- name: Checkout app
uses: actions/checkout@v4.1.1
uses: actions/checkout@v3
with:
path: apps/${{ env.APP_NAME }}
- name: Checkout activity
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: nextcloud/activity
ref: ${{ matrix.server-versions }}
path: apps/activity
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.30.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu
ini-values:
apc.enable_cli=on
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
coverage: none
- name: Set up dependencies
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i --no-dev
run: composer i
- name: Set up Nextcloud
run: |
@@ -99,63 +82,11 @@ jobs:
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
./occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
./occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu"
cat config/config.php
./occ user:list
./occ app:enable --force ${{ env.APP_NAME }}
./occ config:system:set query_log_file --value "$PWD/query.log"
php -S localhost:8080 &
- name: Run behat
working-directory: apps/${{ env.APP_NAME }}/tests/integration
run: ./run.sh
- name: Query count
if: ${{ matrix.databases == 'mysql' }}
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let myOutput = ''
let myError = ''
const options = {}
options.listeners = {
stdout: (data) => {
myOutput += data.toString()
},
stderr: (data) => {
myError += data.toString()
}
}
await exec.exec(`/bin/bash -c "cat query.log | wc -l"`, [], options)
msg = myOutput
const queryCount = parseInt(myOutput, 10)
myOutput = ''
await exec.exec('cat', ['apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options)
const baseCount = parseInt(myOutput, 10)
const absoluteIncrease = queryCount - baseCount
const relativeIncrease = baseCount <= 0 ? 100 : (parseInt((absoluteIncrease / baseCount * 10000), 10) / 100)
if (absoluteIncrease >= 100 || relativeIncrease > 5) {
const comment = `🐢 Performance warning.\nIt looks like the query count of the integration tests increased with this PR.\nDatabase query count is now ` + queryCount + ' was ' + baseCount + ' (+' + relativeIncrease + '%)\nPlease check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.'
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
}
if (queryCount < 100) {
const comment = `🐈 Performance messuring seems broken. Failed to get query count.`
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
}

View File

@@ -1,95 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM lint
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Lint
run: npm run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: eslint
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi

View File

@@ -1,40 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php-cs
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-cs-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: php-cs
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php8.2
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.2
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )

View File

@@ -1,54 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
php-lint:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: [ '8.0', '8.1', '8.2', '8.3' ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: php-lint
if: always()
name: php-lint-summary
steps:
- name: Summary status
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi

View File

@@ -1,48 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint stylelint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-stylelint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: stylelint
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint
run: npm run stylelint

88
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,88 @@
name: Lint
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
php:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.4', '8.0', '8.1']
name: php${{ matrix.php-versions }} lint
steps:
- uses: actions/checkout@v3
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
coverage: none
- name: Lint
run: composer run lint
php-cs-fixer:
name: php-cs check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up php
uses: shivammathur/setup-php@2.18.0
with:
php-version: 7.4
coverage: none
- name: Install dependencies
run: composer i
- name: Run coding standards check
run: composer run cs:check
node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v3
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint
stylelint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
name: stylelint node${{ matrix.node-version }}
steps:
- uses: actions/checkout@v3
- name: Set up node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run stylelint

64
.github/workflows/nightly.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: Package nightly
on:
push:
branches:
- nightly
schedule:
- cron: '0 1 * * *' # run at 2 AM UTC
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.18.0
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
- name: package
run: |
uname -a
RUST_BACKTRACE=1 krankerl --version
RUST_BACKTRACE=1 krankerl package
- name: Set git config
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag -f nightly
- name: Push tag
uses: juliushaertl/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tags: true
force: true
- name: Create Release
id: create_release
uses: juliushaertl/action-release@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly
files: ./build/artifacts/deck.tar.gz
name: Nightly build
body: |
Nightly release of deck
draft: false
prerelease: true
overwrite: true

View File

@@ -12,9 +12,9 @@ jobs:
node-version: [14.x]
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7

View File

@@ -1,73 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Npm audit fix and compile
on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: '30 2 * * 0'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable28', 'stable27', 'stable26']
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ matrix.branches }}
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Fix npm audit
run: |
npm audit fix
- name: Run npm ci and npm run build
if: always()
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v5
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
title: "[${{ matrix.branches }}] Fix npm audit"
body: |
Auto-generated fix of npm audit
labels: |
dependencies
3. to review

View File

@@ -1,174 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit MySQL
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
server-versions: ['master']
mysql-versions: ['8.1']
name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
services:
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi

View File

@@ -1,168 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit pgsql
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-pgsql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.2']
server-versions: ['master']
services:
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, phpunit-pgsql]
if: always()
name: phpunit-pgsql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi

View File

@@ -1,157 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit sqlite
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.2']
server-versions: ['master']
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, phpunit-sqlite]
if: always()
name: phpunit-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi

94
.github/workflows/phpunit.yml vendored Normal file
View File

@@ -0,0 +1,94 @@
name: PHPUnit
on:
pull_request:
push:
branches:
- master
- stable*
env:
APP_NAME: deck
jobs:
integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: ['7.4', '8.0', '8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable24']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
services:
postgres:
image: postgres:14
ports:
- 4445:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
mysql:
image: mariadb:10.5
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Checkout app
uses: actions/checkout@v3
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
coverage: none
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
run: |
if [ "${{ matrix.databases }}" = "mysql" ]; then
export DB_PORT=4444
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
export DB_PORT=4445
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
- name: PHPUnit integration
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml

View File

@@ -1,34 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
jobs:
pr-feedback:
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
id: scrape
with:
website: 'https://nextcloud.com/team/'
- uses: marcelklehr/pr-feedback-action@601109aa729eb4c8d6d0ece7567b9d4901db4aef
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
days-before-feedback: 14
start-date: "2023-07-10"
exempt-authors: "${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot,skjnldsv,datenangebot"
exempt-bots: true

View File

@@ -5,29 +5,28 @@
name: Static analysis
on: pull_request
concurrency:
group: psalm-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- master
- main
- stable*
jobs:
static-analysis:
runs-on: ubuntu-latest
name: static-psalm-analysis
name: Nextcloud
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@v3
- name: Set up php8.2
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
php-version: 7.4
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i

View File

@@ -1,49 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Auto approve nextcloud/ocp
on:
pull_request_target:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'nextcloud-command'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
steps:
- uses: mdecoleman/pr-branch-name@bab4c71506bcd299fb350af63bb8e53f2940a599 # v2.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@5583839f2b22cf6240044f49fba229cd0540a8b8 # main
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -17,93 +17,42 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable28', 'stable27', 'stable26']
branches: ["master", "stable25", "stable24", "stable23"]
name: update-nextcloud-ocp-${{ matrix.branches }}
steps:
- id: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/checkout@v3
with:
ref: ${{ matrix.branches }}
submodules: true
continue-on-error: true
- name: Set up php8.2
if: steps.checkout.outcome == 'success'
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
- name: Set up php7.4
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
# 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
php-version: 7.4
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Read codeowners
if: steps.checkout.outcome == 'success'
id: codeowners
run: |
grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
continue-on-error: true
- name: Composer install
if: steps.checkout.outcome == 'success'
run: composer install
- name: Composer update nextcloud/ocp
id: update_branch
if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
continue-on-error: true
- name: Raise on issue on failure
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
- name: Composer update nextcloud/ocp
id: update_main
if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
run: composer require --dev nextcloud/ocp:dev-master
- name: Raise on issue on failure
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
- name: Reset checkout 3rdparty
if: steps.checkout.outcome == 'success'
- name: Reset checkout dirs
run: |
git clean -f 3rdparty
git checkout 3rdparty
continue-on-error: true
- name: Reset checkout vendor
if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor
git checkout vendor
continue-on-error: true
- name: Reset checkout vendor-bin
if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor-bin
git checkout vendor-bin
git checkout 3rdparty vendor
continue-on-error: true
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v3
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
commit-message: Update psalm baseline
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true

2
.gitignore vendored
View File

@@ -3,11 +3,9 @@ js/
build/
css/style.css
css/vendor.css
cypress/videos/
tests/integration/vendor/
tests/integration/composer.lock
tests/.phpunit.result.cache
vendor/
.php_cs.cache
\.idea/
settings.json

View File

@@ -1,6 +1,6 @@
[main]
host = https://www.transifex.com
lang_map = hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
[o:nextcloud:p:nextcloud:r:deck]
file_filter = translationfiles/<lang>/deck.po

View File

@@ -1,201 +1,51 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.13.0-beta.1
### Added
- feat: Rename to teams @juliushaertl [#5611](https://github.com/nextcloud/deck/pull/5611)
- feat: Implement a team resource provider @juliushaertl [#5625](https://github.com/nextcloud/deck/pull/5625)
- Interactive board widget @juliushaertl [#5630](https://github.com/nextcloud/deck/pull/5630)
## 1.7.4
### Fixed
- Fix deleted card/board issues @juliushaertl [#5423](https://github.com/nextcloud/deck/pull/5423)
- Fixing #5451 @mintsoft [#5455](https://github.com/nextcloud/deck/pull/5455)
- fix: Add debounce to update due date @juliushaertl [#5458](https://github.com/nextcloud/deck/pull/5458)
- fix(done): Mark card as undone when updating card @stefan-niedermann [#5491](https://github.com/nextcloud/deck/pull/5491)
- fixed sorting for upcoming cards @elzody [#5493](https://github.com/nextcloud/deck/pull/5493)
- fix(PermissionService#getPermissions): Catch exceptions from getBoard method @marcelklehr [#5542](https://github.com/nextcloud/deck/pull/5542)
- fix(activity): Fix permission checks when rendering activities in bac… @nickvergessen [#5533](https://github.com/nextcloud/deck/pull/5533)
- fix: Safeguard sync requests to hopefully not spam then server @juliushaertl [#5590](https://github.com/nextcloud/deck/pull/5590)
- fix: card move dialog auto close @luka-nextcloud [#5537](https://github.com/nextcloud/deck/pull/5537)
- also filter by storage when getting shares in folder @icewind1991 [#5452](https://github.com/nextcloud/deck/pull/5452)
- Gracefully handle not found card for a share [#4569](https://github.com/nextcloud/deck/pull/4569)
- fix: Use passed userid when getting attachment folder [#4541](https://github.com/nextcloud/deck/pull/4541)
- fix: Append datetime picker to body to avoid cut off [#4646](https://github.com/nextcloud/deck/pull/4646)
- Permanently delete deck cards marked as deleted after 5 min in a cron job [#4302](https://github.com/nextcloud/deck/pull/4302)
- Fix : Overlapping expiry dates on tags [#4538](https://github.com/nextcloud/deck/pull/4538)
- Update dependencies
### Other
- fix(i18n): Improved wording @rakekniven [#5496](https://github.com/nextcloud/deck/pull/5496)
## 1.12.0-beta.3
### Added
- feat: Move to contenteditable for inline title editing @juliushaertl [#5282](https://github.com/nextcloud/deck/pull/5282)
## 1.7.3
### Fixed
- fix: Properly get done state for dav @juliushaertl [#5287](https://github.com/nextcloud/deck/pull/5287)
- Fix upcoming cards and label input @juliushaertl [#5290](https://github.com/nextcloud/deck/pull/5290)
- feat: add validators to check values in services @juliushaertl [#4176](https://github.com/nextcloud/deck/pull/4176)
- Add integration test for attachment handling on cards [#4178](https://github.com/nextcloud/deck/pull/4178)
- disables autocomplete on card creation @juliushaertl [#4182](https://github.com/nextcloud/deck/pull/4182)
- minor style fixes [#4202](https://github.com/nextcloud/deck/pull/4202)
## 1.12.0-beta.2
### Added
- Card layout polishing @juliushaertl [#5264](https://github.com/nextcloud/deck/pull/5264)
## 1.7.2
### Fixed
- fix: Properly handle adding new tags through multiselect @juliushaertl [#5285](https://github.com/nextcloud/deck/pull/5285)
- fix: Avoid throwing errors if no token provided on close @juliushaertl [#5284](https://github.com/nextcloud/deck/pull/5284)
- fix: Expose card actions in the card menu (fix #3180) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Use full card menu everywhere (fix #3993) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Detect end of the activity responses (fix #3395) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Add title with absolute date time to activity (fix #4508, fix #2122) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Disable dragging archived cards (fix #3271) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Hide unavailable card menu entries for archived card view [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Use localCompare to sort labels (fix #2736) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: More fitting click target for title editing [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Always load proper dashboard js (fixes a log error) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Set fixed height for card modal (fix #4296) [#5280](https://github.com/nextcloud/deck/pull/5280)
- fix: Make sure to always update card description when navigating away (fix #5254 #2705) [#5280](https://github.com/nextcloud/deck/pull/5280)
- perf: Already pass board list as initial state @juliushaertl [#5281](https://github.com/nextcloud/deck/pull/5281)
- Cache user membership for circles [#4132](https://github.com/nextcloud/deck/pull/4132)
- Set event link also for notifications that get emitted from activities [#4118](https://github.com/nextcloud/deck/pull/4118)
- Fix Card menu not displaying when description is not set [#4103](https://github.com/nextcloud/deck/pull/4103)
- disable Create card button while no stack is chosen [#4019](https://github.com/nextcloud/deck/pull/4019)
- to nextcloud/OCP package in stable24 [#4093](https://github.com/nextcloud/deck/pull/4093)
- Fix attachment creator name: show display name [#4037](https://github.com/nextcloud/deck/pull/4037)
- Use capped memory cache for board permissions [#3997](https://github.com/nextcloud/deck/pull/3997)
- Improve CalDAV integration performance [#3995](https://github.com/nextcloud/deck/pull/3995)
- Fetch attachment folder for the correct user during cron job [#3959](https://github.com/nextcloud/deck/pull/3959)
- Switch to 'markdown-it-task-checkbox' for rendering of task lists [#3925](https://github.com/nextcloud/deck/pull/3925)
- Prevent opening card and applyLabelFilter on card drag end [#3917](https://github.com/nextcloud/deck/pull/3917)
- Fix for issue #3637 [#3901](https://github.com/nextcloud/deck/pull/3901)
- Fix z-index for deck sidebar [#3885](https://github.com/nextcloud/deck/pull/3885)
### Dependencies
- Fix npm audit @nextcloud-command [#5277](https://github.com/nextcloud/deck/pull/5277)
- Update nextcloud/ocp dependency @nextcloud-command [#5275](https://github.com/nextcloud/deck/pull/5275)
- Chore(deps): Bump @nextcloud/dialogs from 4.2.1 to 4.2.2 @dependabot[bot] [#5266](https://github.com/nextcloud/deck/pull/5266)
- Chore(deps-dev): Bump cypress from 13.4.0 to 13.5.0 @dependabot[bot] [#5267](https://github.com/nextcloud/deck/pull/5267)
- Chore(deps): Bump shivammathur/setup-php from 2.27.0 to 2.27.1 @dependabot[bot] [#5268](https://github.com/nextcloud/deck/pull/5268)
## 1.12.0-beta.1
### Added
- Added ability to mark a card as done @TehThanos [#4137](https://github.com/nextcloud/deck/pull/4137)
- Card Cover Images @jszeibert [#5035](https://github.com/nextcloud/deck/pull/5035)
- Upcoming/Today/Tomorrow dashboard widgets @BKapelari [#2658](https://github.com/nextcloud/deck/pull/2658)
- Enabled advanced fields option on tag color picker @faab007nl [#4362](https://github.com/nextcloud/deck/pull/4362)
- Remember last board, list for new card dialog @luka-nextcloud [#5046](https://github.com/nextcloud/deck/pull/5046)
- Add support for bidirectional text @jamazi [#5258](https://github.com/nextcloud/deck/pull/5258)
## 1.7.1
### Fixed
- Deck card comment notification label improvement @Jerome-Herbinet [#4748](https://github.com/nextcloud/deck/pull/4748)
- update smart picker links @luka-nextcloud [#5047](https://github.com/nextcloud/deck/pull/5047)
- feat: Enhance dark mode @juliushaertl [#5045](https://github.com/nextcloud/deck/pull/5045)
- fix: export doesn't handle lists with no cards @magikmw [#5096](https://github.com/nextcloud/deck/pull/5096)
- add attributes aria-label= and title= to Filters & View Modes buttons @privatemaker [#5133](https://github.com/nextcloud/deck/pull/5133)
- fix: Check both card reference url patterns @juliushaertl [#5262](https://github.com/nextcloud/deck/pull/5262)
- fix: Avoid too large index on postgres as indexing just the last_editor column is enough @juliushaertl [#5260](https://github.com/nextcloud/deck/pull/5260)
- feat: error msg on CreateNewCardCustomPicker & only show available bo… @luka-nextcloud [#5029](https://github.com/nextcloud/deck/pull/5029)
- test: add cypress tests for create new deck card @luka-nextcloud [#5025](https://github.com/nextcloud/deck/pull/5025)
- Remove duplicate button @solracsf [#4850](https://github.com/nextcloud/deck/pull/4850)
- [stable27] fix cypress for new file picker [#5088](https://github.com/nextcloud/deck/pull/5088)
- Replace "Timeline" wording with "Activity" in order to be consistent with equivalent contexts throughout Nextcloud @Jerome-Herbinet [#5164](https://github.com/nextcloud/deck/pull/5164)
- Board creation limitation : More understandable wordings @Jerome-Herbinet [#5168](https://github.com/nextcloud/deck/pull/5168)
- ci(cypress): Fix file picker selector @juliushaertl [#5212](https://github.com/nextcloud/deck/pull/5212)
- Switch to native date picker @juliushaertl [#4668](https://github.com/nextcloud/deck/pull/4668)
- fixes minor spelling error @FundreasFrohsinn [#5216](https://github.com/nextcloud/deck/pull/5216)
- feat(card): tooltip for comment timestamp @fitrahfm [#5253](https://github.com/nextcloud/deck/pull/5253)
## 1.10.0-beta.1
### Added
- Compatibility with Nextcloud 27
### Fixed
- fix(references): Mute NoPermissionException as it is expected to happen for references @juliushaertl [#4514](https://github.com/nextcloud/deck/pull/4514)
- fix(cards): Fix card sizing by limiting too wide style rules @juliushaertl [#4512](https://github.com/nextcloud/deck/pull/4512)
- fix: Adapt NcEmptyContent usages to new slots @juliushaertl [#4561](https://github.com/nextcloud/deck/pull/4561)
- Gracefully handle not found card for a share @mejo- [#4566](https://github.com/nextcloud/deck/pull/4566)
- Prevent tag itself being edit button if user lacks permissions @joshtrichards [#4574](https://github.com/nextcloud/deck/pull/4574)
- chore: Remove unused @nextcloud/vue-dashboard @juliushaertl [#4586](https://github.com/nextcloud/deck/pull/4586)
- Update Description.vue: Fixes the issue of hidden text by menu bar @pschopen [#4617](https://github.com/nextcloud/deck/pull/4617)
- allow user to toggle visibility of the calendar for a deck board @schiessle [#4622](https://github.com/nextcloud/deck/pull/4622)
- fix: Append datetime picker to body to avoid cut off @juliushaertl [#4643](https://github.com/nextcloud/deck/pull/4643)
- fix: Bring back overdue column by removing faulty condition @juliushaertl [#4660](https://github.com/nextcloud/deck/pull/4660)
- fix(sessions): Do not send close request without token @juliushaertl [#4510](https://github.com/nextcloud/deck/pull/4510)
- tests(integration): Add test for multiple board shares to the same user @juliushaertl [#4494](https://github.com/nextcloud/deck/pull/4494)
- fix(API): Fix board API details parameter to work as expected @nickvergessen [#4518](https://github.com/nextcloud/deck/pull/4518)
- Fix : Overlapping expiry dates on tags @Jerome-Herbinet [#4535](https://github.com/nextcloud/deck/pull/4535)
- Fix consistency of a "Create card" wording with its equivalent for Notes ("New card") @Jerome-Herbinet [#4534](https://github.com/nextcloud/deck/pull/4534)
- tests(integration): Add integration tests for due dates @juliushaertl [#4489](https://github.com/nextcloud/deck/pull/4489)
- Better display of card dates (creation and change dates) @Jerome-Herbinet [#4604](https://github.com/nextcloud/deck/pull/4604)
- Refactors lib\Activity\DeckProvider.php to improve code readability. @fsamapoor [#4648](https://github.com/nextcloud/deck/pull/4648)
- Converts 'strpos()' calls to improve code readability. @fsamapoor [#4657](https://github.com/nextcloud/deck/pull/4657)
## 1.9.0-beta.1
### Added
- Export Board @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
- basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
- feat(Description): Use text as editor if available @juliushaertl [#4399](https://github.com/nextcloud/deck/pull/4399)
- Improve reference provider and add reference widgets @julien-nc [#4422](https://github.com/nextcloud/deck/pull/4422)
- live updates 🎉 @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
- Tag creation from card view @juliushaertl [#4344](https://github.com/nextcloud/deck/pull/4344)
### Fixed
- Fix component renaming so that acl works on shares again @small1 [#4315](https://github.com/nextcloud/deck/pull/4315)
- fix(Sidebar): Only close sidebar on v-click-outside for specific targets @juliushaertl [#4350](https://github.com/nextcloud/deck/pull/4350)
- add basic e2e tests for stack title @shoetten [#4206](https://github.com/nextcloud/deck/pull/4206)
- App metadata: add links to user and developer documentation @p-bo [#4356](https://github.com/nextcloud/deck/pull/4356)
- Update signature of Entity::markFieldUpdated @nickvergessen [#4398](https://github.com/nextcloud/deck/pull/4398)
- Remove updated nightly information @xf- [#4419](https://github.com/nextcloud/deck/pull/4419)
- perf: Register notifier and resource listener lazy @juliushaertl [#4439](https://github.com/nextcloud/deck/pull/4439)
- perf: Lazy load dashboard components @juliushaertl [#4440](https://github.com/nextcloud/deck/pull/4440)
- Optimise upcomming overview creation @Raudius [#3793](https://github.com/nextcloud/deck/pull/3793)
- Performance boost @juliushaertl [#4452](https://github.com/nextcloud/deck/pull/4452)
### Other
- Dependency updates
## 1.8.0-beta.1
### Enhancements
- Nextcloud 25 compatibility
- Performance improvements
- Use capped memory cache for board permissions @juliushaertl [#3980](https://github.com/nextcloud/deck/pull/3980)
- Improve CalDAV integration performance @juliushaertl [#3982](https://github.com/nextcloud/deck/pull/3982)
- Simpify query for getting shared files @juliushaertl [#3983](https://github.com/nextcloud/deck/pull/3983)
- Accessibility improvements
- Add a11y label for sidebar button @marcelklehr [#3986](https://github.com/nextcloud/deck/pull/3986)
- Improve filter popover accessibility @juliushaertl [#3820](https://github.com/nextcloud/deck/pull/3820)
- Set ids to skip to content/navigation @juliushaertl [#3924](https://github.com/nextcloud/deck/pull/3924)
- Invert icons properly in dark mode @juliushaertl [#3939](https://github.com/nextcloud/deck/pull/3939)
- Bump dependencies
### Fixed
- set last modified when the card was found. Fixes #3763 @ylebre [#3796](https://github.com/nextcloud/deck/pull/3796)
- Increase file count after sharing @luka-nextcloud [#3682](https://github.com/nextcloud/deck/pull/3682)
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 @Ben-Ro [#3811](https://github.com/nextcloud/deck/pull/3811)
- Fix for issue #3637 @flummer [#3833](https://github.com/nextcloud/deck/pull/3833)
- Switch to 'markdown-it-task-checkbox' for rendering of task lists @q-wertz [#3898](https://github.com/nextcloud/deck/pull/3898)
- Make rename functions accessibly by keyboard navigation @juliushaertl [#3813](https://github.com/nextcloud/deck/pull/3813)
- Prevent opening card and applyLabelFilter on card drag end @eneiluj [#3916](https://github.com/nextcloud/deck/pull/3916)
- Inserted required property in the rename list field, to prevent the l… @mstolf [#3862](https://github.com/nextcloud/deck/pull/3862)
- Fix share provider for master changes @nickvergessen [#3942](https://github.com/nextcloud/deck/pull/3942)
- Fetch attachment folder for the correct user during cron job @juliushaertl [#3952](https://github.com/nextcloud/deck/pull/3952)
- Fix z-index for deck sidebar @Raudius [#3884](https://github.com/nextcloud/deck/pull/3884)
### Other
- Switch from OC::$server->get to OCP\Server::get @CarlSchwan [#3801](https://github.com/nextcloud/deck/pull/3801)
- Add performance section in README @eneiluj [#3830](https://github.com/nextcloud/deck/pull/3830)
- Fix static analysis by stubbing more circle methods @juliushaertl [#3900](https://github.com/nextcloud/deck/pull/3900)
- fix(docs): fix links to JSON schemas for Trello @wiktor2200 [#3872](https://github.com/nextcloud/deck/pull/3872)
- Move to OCP\Collaboration\Resources\LoadAdditionalScriptsEvent @juliushaertl [#3818](https://github.com/nextcloud/deck/pull/3818)
- Rename settings to deck settings @PVince81 [#3928](https://github.com/nextcloud/deck/pull/3928)
- SCSS cleanup @juliushaertl [#3803](https://github.com/nextcloud/deck/pull/3803)
- Hide deprecated projects in sidebar and card details by default @Pytal [#3984](https://github.com/nextcloud/deck/pull/3984)
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 [#3817](https://github.com/nextcloud/deck/pull/3817)
- Increase file count after sharing [#3806](https://github.com/nextcloud/deck/pull/3806)
- Fetch full board data after cloning [#3781](https://github.com/nextcloud/deck/pull/3781)
## 1.7.0
@@ -247,7 +97,7 @@ All notable changes to this project will be documented in this file.
- Adapt the card modal to upstream changes [#3764](https://github.com/nextcloud/deck/pull/3764)
- Fix text selection in dark mode and modal view [#3765](https://github.com/nextcloud/deck/pull/3765)
- Add missing indices [#3754](https://github.com/nextcloud/deck/pull/3754)
- Handle qb mapper exception messages properly @juliushaertl [#3769](https://github.com/nextcloud/deck/pull/3769)
## 1.6.0-beta1
@@ -618,7 +468,7 @@ Android app team for helping to improve our REST API:
- Fix comment activities on Nextcloud 15
- Fix issues with Edge
- API: Fix numeric types that were returned as strings
- API: Fix If-Modified-Since header parsing
- API: Fix If-Modified-Since header parsing
## 0.5.1 - 2018-12-05
@@ -745,7 +595,7 @@ Android app team for helping to improve our REST API:
### Fixed
- Various frontend fixes
- Fix sidebar drag issues
- Improvements for IE11
- Improvements for IE11
- Fix bug when draging a card to an empty stack
## 0.2.1 - 2017-07-04
@@ -819,7 +669,7 @@ Android app team for helping to improve our REST API:
### Fixed
- Various styling improvements
- Fix problems with MySQL and PostgreSQL
- Fix problems with MySQL and PostgreSQL
- Select first color by default when creating boards
- Fix error when changing board permissions
@@ -827,9 +677,9 @@ Android app team for helping to improve our REST API:
### Added
- Sharing boards with other users
- Create and manage boards
- Create and manage boards
- Sort cards on stacks by drag-and-drop
- Assign labels
- Markdown notes for each card
- Archive cards
- Archive cards

View File

@@ -30,16 +30,6 @@ build: clean-dist install-deps build-js
release: clean-dist install-deps-nodev build-js
lint: lint-js lint-php
lint-js:
npm run lint
npm run stylelint
lint-php:
composer run lint 1>/dev/null
composer run cs:check
build-js: install-deps-js
npm run build

View File

@@ -1,6 +1,6 @@
# Deck
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=main)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=main)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=main) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=master)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=master)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=master) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
@@ -20,80 +20,68 @@ Deck is a kanban style organization tool aimed at personal planning and project
### Mobile apps
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
- [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
- [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
- [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab
- [QOwnNotes](https://github.com/pbek/QOwnNotes) - Quickly creates cards and links to them in Markdown notes
## Installation/Update
The app can be installed through the app store within Nextcloud. You can also download the latest release from the [release page](https://github.com/nextcloud-releases/deck/releases).
This app is supposed to work on the two latest Nextcloud versions.
## Performance limitations
### Install latest release
Deck is not yet ready for intensive usage.
A lot of database queries are generated when the number of boards, cards and attachments is high.
For example, a user having access to 13 boards, with each board having on average 100 cards,
and each card having on average 5 attachments,
would generate 6500 database queries when doing the file related queries
which would increase the page loading time significantly.
You can download and install the latest release from the [Nextcloud app store](https://apps.nextcloud.com/apps/deck)
Improvements on Nextcloud server and Deck itself will improve the situation.
### Install from git
If you want to run the latest development version from git source, you need to clone the repo to your apps folder:
```
git clone https://github.com/nextcloud/deck.git
cd deck
make install-deps
make build
```
Please make sure you have installed the following dependencies: `make, which, tar, npm, curl, composer`
### Install the nightly builds
Instead of setting everything up manually, you can just [download the nightly build](https://github.com/nextcloud/deck/releases/tag/nightly) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
## Developing
There are multiple ways to develop on Deck. As you will need a Nextcloud server running, the individual options are described below.
### PHP
### General build instructions
Nothing to prepare, just dig into the code.
General build instructions for the app itself are the same for all options.
### JavaScript
To build you will need to have [Node.js](https://nodejs.org/en/) and [Composer](https://getcomposer.org/) installed.
Deck requires running a `make build-js` to install npm dependencies and build the JavaScript code using webpack. While developing you can also use `make watch` to rebuild everytime the code changes.
- Install PHP dependencies: `composer install --no-dev`
- Install JS dependencies: `npm ci`
- Build JavaScript for the frontend
- Development build `npm run dev`
- Watch for changes `npm run watch`
- Production build `npm run build`
#### Hot reloading
### Faster frontend developing with HMR
You can enable HMR (Hot module replacement) to avoid page reloads when working on the frontend:
1. ☑️ Install and enable [`hmr_enabler` app](https://github.com/nextcloud/hmr_enabler)
2. 🏁 Run `npm run serve`
3. 🌍 Open the normal Nextcloud server URL (not the URL given by above command)
### GitHub Codespaces / VS Code devcontainer
- Open code spaces or the repository in VS Code to start the dev container
- The container will automatically install all dependencies and build the app
- Nextcloud will be installed from the master development branch and be available on a port exposed by the container
### Docker: Simple app development container
- Fork the app
- Clone the repository: `git clone https://github.com/nextcloud/deck.git`
- Go into deck directory: `cd deck`
- Build the app as described in the general build instructions
- Run Nextcloud development container and mount the apps source code into it
Enable debug mode in your config.php `'debug' => true,`
Without SSL:
```
docker run --rm \
-p 8080:80 \
-v ~/path/to/app:/var/www/html/apps-extra/app \
ghcr.io/juliushaertl/nextcloud-dev-php80:latest
npx webpack-dev-server --config webpack.hot.js \
--public localhost:3000 \
--output-public-path 'http://localhost:3000/js/'
```
### Full Nextcloud development environment
With SSL:
```
npx webpack-dev-server --config webpack.dev.js --https \
--cert ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.crt \
--key ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.key \
--public nextcloud.local:3000 \
--output-public-path 'https://nextcloud.local:3000/js/'
```
You need to setup a [development environment](https://docs.nextcloud.com/server/latest/developer_manual//getting_started/devenv.html) of the current Nextcloud version. You can also alternatively install & run the [nextcloud docker container](https://github.com/juliushaertl/nextcloud-docker-dev).
After the finished installation, you can clone the deck project directly in the `/[nextcloud-docker-dev-dir]/workspace/server/apps/` folder.
### Running tests
You can use the provided Makefile to run all tests by using:

View File

@@ -20,7 +20,7 @@ Your report should include:
- Reproduction steps
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
The fix will be applied to the main branch, tested, and packaged in the next security release.
The fix will be applied to the master branch, tested, and packaged in the next security release.
The vulnerability will be publicly announced after the release. Finally, your name will be added
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud community. Note our
[threat model](https://nextcloud.com/security/threat-model) to know what is expected behavior.

View File

@@ -16,13 +16,9 @@
- 🚀 Get your project organized
</description>
<version>1.13.0-beta.1</version>
<version>1.7.4</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/>
@@ -38,19 +34,13 @@
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="8.0">mysql</database>
<nextcloud min-version="29" max-version="29"/>
<nextcloud min-version="24" max-version="24"/>
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>
<job>OCA\Deck\Cron\ScheduledNotifications</job>
<job>OCA\Deck\Cron\CardDescriptionActivity</job>
<job>OCA\Deck\Cron\SessionsCleanup</job>
</background-jobs>
<repair-steps>
<live-migration>
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
</live-migration>
</repair-steps>
<commands>
<command>OCA\Deck\Command\UserExport</command>
<command>OCA\Deck\Command\BoardImport</command>
@@ -58,9 +48,9 @@
</commands>
<activity>
<settings>
<setting>OCA\Deck\Activity\SettingChanges</setting>
<setting>OCA\Deck\Activity\SettingDescription</setting>
<setting>OCA\Deck\Activity\Setting</setting>
<setting>OCA\Deck\Activity\SettingComment</setting>
<setting>OCA\Deck\Activity\DescriptionSetting</setting>
</settings>
<filters>
<filter>OCA\Deck\Activity\Filter</filter>

View File

@@ -25,11 +25,6 @@
return [
'routes' => [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'page#indexList', 'url' => '/board', 'verb' => 'GET'],
['name' => 'page#indexBoard', 'url' => '/board/{boardId}', 'verb' => 'GET'],
['name' => 'page#indexBoardDetails', 'url' => '/board/{boardId}/details', 'verb' => 'GET'],
['name' => 'page#indexCard', 'url' => '/board/{boardId}/card/{cardId}', 'verb' => 'GET'],
['name' => 'page#redirectToCard', 'url' => '/card/{cardId}', 'verb' => 'GET'],
// boards
@@ -45,7 +40,6 @@ return [
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
['name' => 'board#transferOwner', 'url' => '/boards/{boardId}/transferOwner', 'verb' => 'PUT'],
['name' => 'board#export', 'url' => '/boards/{boardId}/export', 'verb' => 'GET'],
// stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
@@ -66,8 +60,6 @@ return [
['name' => 'card#reorder', 'url' => '/cards/{cardId}/reorder', 'verb' => 'PUT'],
['name' => 'card#archive', 'url' => '/cards/{cardId}/archive', 'verb' => 'PUT'],
['name' => 'card#unarchive', 'url' => '/cards/{cardId}/unarchive', 'verb' => 'PUT'],
['name' => 'card#done', 'url' => '/cards/{cardId}/done', 'verb' => 'PUT'],
['name' => 'card#undone', 'url' => '/cards/{cardId}/undone', 'verb' => 'PUT'],
['name' => 'card#assignLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'POST'],
['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'],
['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'],
@@ -157,10 +149,5 @@ return [
['name' => 'overview_api#upcomingCards', 'url' => '/api/v{apiVersion}/overview/upcoming', 'verb' => 'GET'],
['name' => 'search#search', 'url' => '/api/v{apiVersion}/search', 'verb' => 'GET'],
// sessions
['name' => 'Session#create', 'url' => '/api/v{apiVersion}/session/create', 'verb' => 'PUT'],
['name' => 'Session#sync', 'url' => '/api/v{apiVersion}/session/sync', 'verb' => 'POST'],
['name' => 'Session#close', 'url' => '/api/v{apiVersion}/session/close', 'verb' => 'POST'],
]
];

View File

@@ -9,38 +9,40 @@
}
],
"require": {
"cogpowered/finediff": "0.3.*",
"justinrainbow/json-schema": "^5.2"
},
"require-dev": {
"roave/security-advisories": "dev-master",
"phpunit/phpunit": "^9",
"nextcloud/coding-standard": "^1.1",
"nextcloud/ocp": "dev-master",
"psalm/phar": "^5.13"
"nextcloud/coding-standard": "^1.0.0",
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^4.3",
"php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-stable24"
},
"config": {
"optimize-autoloader": true,
"classmap-authoritative": true,
"allow-plugins": {
"composer/package-versions-deprecated": true
},
"platform": {
"php": "8.0"
"php": "7.4"
}
},
"scripts": {
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
"cs:check": "php-cs-fixer fix --dry-run --diff",
"cs:fix": "php-cs-fixer fix",
"psalm": "psalm.phar",
"psalm:update-baseline": "psalm.phar --update-baseline",
"psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
"psalm": "psalm",
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType",
"test": [
"@test:unit",
"@test:integration"
],
"test:unit": "vendor/bin/phpunit -c tests/phpunit.xml",
"test:integration": "vendor/bin/phpunit -c tests/phpunit.integration.xml",
"test:api": "cd tests/integration && ./run.sh"
"test:unit": "phpunit -c tests/phpunit.xml",
"test:integration": "phpunit -c tests/phpunit.integration.xml && cd tests/integration && ./run.sh"
},
"autoload-dev": {
"psr-4": {

3900
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
.icon-deck {
background-image: url(../img/deck-dark.svg);
filter: var(--background-invert-if-dark);
}
.icon-deck-white, .icon-deck.icon-white {
background-image: url(../img/deck.svg);
filter: var(--background-invert-if-dark);
}

1
css/deck.scss Normal file
View File

@@ -0,0 +1 @@
@include icon-black-white('deck', 'deck', 1);

View File

@@ -1,8 +1,11 @@
<?php
/**
* @copyright Copyright (c) 2022 Raul Ferreira Fuentes <raul@nextcloud.com>
/*
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Raul Ferreira Fuentes <raul@nextcloud.com>
* @author Julius Härtl <jus@bitgrid.net>
* @author Artem Anufrij <artem.anufrij@live.de>
* @author Marin Treselj <marin@pixelipo.com>
* @author Oskar Kurz <oskar.kurz@gmail.com>
* @author Ryan Fletcher <ryan.fletcher@codepassion.ca>
*
* @license GNU AGPL version 3 or any later version
*
@@ -20,30 +23,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Model;
use OCA\Deck\Db\Board;
class BoardSummary extends Board {
private Board $board;
public function __construct(Board $board) {
parent::__construct();
$this->board = $board;
}
public function jsonSerialize(): array {
return [
'id' => $this->getId(),
'title' => $this->getTitle()
];
}
protected function getter(string $name): mixed {
return $this->board->getter($name);
}
public function __call($name, $arguments) {
return $this->board->__call($name, $arguments);
}
}
@import 'icons';
@import 'print';

41
css/icons.scss Normal file
View File

@@ -0,0 +1,41 @@
/**
* Custom icons
*/
@include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', 'deck', 1);
@include icon-black-white('circles', 'deck', 1);
@include icon-black-white('clone', 'deck', 1);
@include icon-black-white('filter', 'deck', 1);
@include icon-black-white('filter_set', 'deck', 1);
@include icon-black-white('attach', 'deck', 1);
@include icon-black-white('reply', 'deck', 1);
@include icon-black-white('notifications-dark', 'deck', 1);
@include icon-black-white('description', 'deck', 1);
.icon-toggle-compact-collapsed {
@include icon-color('toggle-view-expand', 'deck', $color-black);
}
.icon-toggle-compact-expanded {
@include icon-color('toggle-view-collapse', 'deck', $color-black);
}
.icon-activity {
@include icon-color('activity-dark', 'activity', $color-black);
}
.icon-comment--unread {
@include icon-color('comment', 'actions', $color-primary, 1, true);
}
.avatardiv.circles {
background: var(--color-primary);
}
.icon-circles {
opacity: 1;
background-size: 20px;
background-position: center center;
}
.icon-colorpicker {
background-image: url('../img/color_picker.svg');
}

View File

@@ -1,16 +0,0 @@
const { defineConfig } = require('cypress')
module.exports = defineConfig({
projectId: '1s7wkc',
viewportWidth: 1280,
viewportHeight: 720,
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
return require('./cypress/plugins/index.js')(on, config)
},
baseUrl: 'http://nextcloud.local/index.php',
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
},
})

View File

@@ -1,5 +0,0 @@
module.exports = {
extends: [
'plugin:cypress/recommended',
],
}

View File

@@ -1,56 +0,0 @@
import { randUser } from '../utils/index.js'
const user = randUser()
const recipient = randUser()
describe('Board', function() {
before(function() {
cy.createUser(user)
cy.createUser(recipient)
})
beforeEach(function() {
cy.login(user)
cy.visit('/apps/deck')
})
it('Can create a board', function() {
const board = 'TestBoard'
cy.intercept({
method: 'POST',
url: '/index.php/apps/deck/boards',
}).as('createBoardRequest')
// Click "Add board"
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3).find('a').first().click({ force: true })
// Type the board title
cy.get('.board-create form input[type=text]')
.type(board, { force: true })
// Submit
cy.get('.board-create form input[type=submit]')
.first().click({ force: true })
cy.wait('@createBoardRequest').its('response.statusCode').should('equal', 200)
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
.contains(board).should('be.visible')
})
it('Shows and hides the navigation', () => {
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('be.visible')
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('not.be.visible')
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('be.visible')
})
})

View File

@@ -1,298 +0,0 @@
import { randUser } from '../utils/index.js'
import { sampleBoard } from '../utils/sampleBoard'
import moment from '@nextcloud/moment'
const user = randUser()
const boardData = sampleBoard()
const auth = {
user: user.userId,
password: user.password,
}
const useModal = (useModal) => {
return cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/cardDetailsInModal?format=json`,
auth,
body: { value: useModal },
}).then((response) => {
expect(response.status).to.eq(200)
})
}
describe('Card', function() {
let boardId
before(function() {
cy.createUser(user)
cy.login(user)
cy.createExampleBoard({
user,
board: boardData,
}).then((board) => {
boardId = board.id
})
})
beforeEach(function() {
cy.login(user)
})
it('Can add a card', function() {
cy.visit(`/apps/deck/#/board/${boardId}`)
const newCardTitle = 'Write some cypress tests'
cy.getNavigationEntry(boardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible')
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
cy.get('.stack__card-add form input#new-stack-input-main')
.type(newCardTitle)
cy.get('.stack__card-add form input[type=submit]')
.first().click()
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
})
})
it('Create card from overview', function() {
cy.visit(`/apps/deck/#/`)
const newCardTitle = 'Test create from overview'
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
cy.intercept({ method: 'GET', url: '**/apps/deck/boards/*' }).as('getBoard')
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
cy.get('.modal-mask.card-selector .card-title').should('be.visible').click().type(newCardTitle)
cy.get('.modal-mask.card-selector .multiselect-board').should('be.visible').click()
cy.get('.vs__dropdown-menu [data-cy="board-select-title"]:contains("' + boardData.title + '")').should('be.visible').click()
cy.wait('@getBoard', { timeout: 7000 })
cy.get('.modal-mask.card-selector .multiselect-list').should('be.visible').click()
cy.get('.vs__dropdown-menu span[title="TestList"]').should('be.visible').click()
cy.get('.modal-mask.card-selector button.button-vue--vue-primary').should('be.visible').click()
cy.wait('@save', { timeout: 7000 })
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.reload()
cy.get('.board .stack').eq(0).within(() => {
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
})
})
describe('Modal', () => {
beforeEach(function() {
cy.login(user)
useModal(true).then(() => {
cy.visit(`/apps/deck/#/board/${boardId}`)
})
})
it('Can show card details modal', function() {
cy.getNavigationEntry(boardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
})
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__mainname').contains('Hello world')
})
it('Attachment from files app', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('.modal__card').should('be.visible')
cy.get('#tab-button-attachments').click()
cy.get('button.icon-upload').should('be.visible')
cy.get('button.icon-folder').should('be.visible')
.click()
cy.get('.file-picker__main').should('be.visible')
cy.get('.file-picker__main [data-filename="welcome.txt"]', { timeout: 30000 }).should('be.visible')
.click()
cy.get('.dialog__actions button.button-vue--vue-primary').click()
cy.get('.attachment-list .basename').contains('welcome.txt')
})
it.only('Shows the modal with the editor', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__mainname').contains('Hello world')
cy.get('.modal__card .ProseMirror h1').contains('Hello world').should('be.visible')
cy.get('.modal__card .ProseMirror h1')
.click()
.type(' writing more text{enter}- List item{enter}with entries{enter}{enter}Paragraph')
cy.wait('@save', { timeout: 7000 })
cy.reload()
cy.get('.modal__card').should('be.visible')
cy.get('.modal__card .ProseMirror h1').contains('Hello world writing more text').should('be.visible')
cy.get('.modal__card .ProseMirror li').eq(0).contains('List item').should('be.visible')
cy.get('.modal__card .ProseMirror li').eq(1).contains('with entries').should('be.visible')
cy.get('.modal__card .ProseMirror p').contains('Paragraph').should('be.visible')
})
it('Smart picker', () => {
const newCardTitle = 'Test smart picker'
cy.intercept({ method: 'POST', url: '**/apps/deck/cards' }).as('save')
cy.intercept({ method: 'GET', url: '**/apps/deck/boards/*' }).as('getBoard')
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('.modal__card').should('be.visible')
cy.get('.modal__card .ProseMirror h1')
.click()
.type('{enter}/create')
cy.get('.suggestion-list__item.is-selected').should('be.visible').contains('Create a new deck card')
cy.get('.suggestion-list__item.is-selected .link-picker__item').click()
cy.get('.reference-picker-modal--content .reference-picker').should('be.visible')
cy.get('.reference-picker-modal--content .reference-picker').contains('Create a new card')
cy.get('.reference-picker-modal--content .reference-picker .card-title').should('be.visible').click().type(newCardTitle)
cy.get('.reference-picker-modal--content .reference-picker .multiselect-board').should('be.visible').contains(boardData.title)
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').contains(boardData.stacks[0].title)
cy.get('.reference-picker-modal--content .reference-picker button.button-vue--vue-primary').should('be.visible').click()
cy.wait('@save', { timeout: 7000 })
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('be.visible')
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.reload()
cy.get('.board .stack').eq(0).within(() => {
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
})
})
})
describe('Sidebar', () => {
beforeEach(function() {
cy.login(user)
useModal(false).then(() => {
cy.visit(`/apps/deck/#/board/${boardId}`)
})
})
it('Show the sidebar', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('#app-sidebar-vue')
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
})
it('Set a due date', function() {
const newCardTitle = 'Card with a due date'
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
cy.get('.stack__card-add form input#new-stack-input-main')
.type(newCardTitle)
cy.get('.stack__card-add form input[type=submit]')
.first().click()
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
cy.get('.card:contains("Card with a due date")').should('be.visible').click()
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
// Set a due date through shortcut
cy.get('[data-cy-due-date-shortcut="tomorrow"] button').should('be.visible').click()
const tomorrow = moment().add(1, 'days').hour(8).minutes(0).seconds(0)
cy.get('#card-duedate-picker').should('have.value', tomorrow.format('YYYY-MM-DDTHH:mm'))
const now = moment().hour(11).minutes(0).seconds(0).toDate()
cy.clock(now)
cy.log(now)
cy.tick(60_000)
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state="Now"]').should('be.visible').should('contain', '21 hours')
// Remove the due date again
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
// tick needed to show the popover menu
cy.tick(1_000)
cy.get('[data-cy-due-date-remove] button').should('be.visible').click()
cy.get(`.card:contains("${newCardTitle}")`).find('[data-due-state]').should('not.exist')
})
it('Add a label', function() {
const newCardTitle = 'Card with labels'
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
cy.get('.stack__card-add form input#new-stack-input-main')
.type(newCardTitle)
cy.get('.stack__card-add form input[type=submit]')
.first().click()
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click()
cy.get('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click()
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click()
cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible')
cy.get('.vs__selected .tag:contains("Action needed")')
.parent().find('button').click()
cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Later")')
.should('be.visible')
cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Action needed")')
.should('not.exist')
})
})
describe('Card actions', () => {
beforeEach(function() {
cy.login(user)
useModal(false).then(() => {
cy.visit(`/apps/deck/#/board/${boardId}`)
})
})
it('Custom card actions', () => {
const myAction = {
label: 'Test action',
icon: 'icon-user',
callback(card) {
console.log('Called callback', card)
},
}
cy.spy(myAction, 'callback').as('myAction.callback')
cy.window().then(win => {
win.OCA.Deck.registerCardAction(myAction)
})
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('#app-sidebar-vue')
.find('.ProseMirror h1').contains('Hello world').should('be.visible')
cy.get('.app-sidebar-header .action-item__menutoggle').click()
cy.get('.v-popper__popper button:contains("Test action")').click()
cy.get('@myAction.callback')
.should('be.called')
.its('firstCall.args.0')
.as('args')
cy.url().then(url => {
const cardId = url.split('/').pop()
cy.get('@args').should('have.property', 'name', 'Hello world')
cy.get('@args').should('have.property', 'stackname', 'TestList')
cy.get('@args').should('have.property', 'boardname', 'MyTestBoard')
cy.get('@args').its('link').then((url) => {
expect(url.split('/').pop() === cardId).to.be.true
cy.visit(url)
cy.get('#app-sidebar-vue')
.find('.ProseMirror h1').contains('Hello world').should('be.visible')
})
})
})
})
})

View File

@@ -1,57 +0,0 @@
import { randUser } from '../utils/index.js'
import { sampleBoard } from '../utils/sampleBoard'
const user = randUser()
describe('Deck dashboard', function() {
before(function() {
cy.createUser(user)
})
beforeEach(function() {
cy.login(user)
})
it('Can show the right title on the dashboard', function() {
cy.visit('/apps/deck')
cy.get('.board-title h2')
.should('have.length', 1).first()
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
})
it('Can see the default "Personal Board" created for user by default', function() {
cy.visit('/apps/deck')
const defaultBoard = 'Personal'
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
.first()
.contains(defaultBoard)
.should('be.visible')
})
it('Shows a card with due date on the overview', function() {
cy.createExampleBoard({
user,
board: sampleBoard(),
}).then((board) => {
cy.visit(`/apps/deck/#/board/${board.id}`)
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/**' }).as('updateCard')
const newCardTitle = 'Hello world'
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click()
cy.get('#app-sidebar-vue [data-cy-due-date-actions]').should('be.visible').click()
cy.get('[data-cy-due-date-shortcut="tomorrow"] button').should('be.visible').click()
cy.wait('@updateCard')
cy.get('button[title="Close sidebar"]').click()
cy.get('.app-navigation-entry:contains("Upcoming cards") a').click()
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
cy.get('.dashboard-column:contains("Tomorrow")').should('be.visible')
cy.get('.dashboard-column:contains("Tomorrow") .card:contains("Hello world")').should('be.visible')
})
})
})

View File

@@ -1,53 +0,0 @@
import { randUser } from '../utils/index.js'
import { sampleBoard } from '../utils/sampleBoard'
const user = randUser()
const recipient = randUser()
describe('Board', function() {
before(function() {
cy.createUser(user)
cy.createUser(recipient)
})
beforeEach(function() {
cy.login(user)
})
it('Share a board to a user', function() {
const board = sampleBoard('Read only board')
cy.createExampleBoard({ user, board }).then((board) => {
const boardId = board.id
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.shareBoardWithUi(recipient.userId)
cy.login(recipient)
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.get('.button-vue[aria-label*="Add card"]')
.should('not.exist')
})
})
it('Share a board to a user as writable', function() {
const board = sampleBoard('Editable board')
cy.createExampleBoard({ user, board }).then((board) => {
const boardId = board.id
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.shareBoardWithUi(recipient.userId)
cy.intercept({ method: 'PUT', url: '**/apps/deck/boards/*/acl/*' }).as('setAcl')
cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click()
cy.wait('@setAcl')
cy.login(recipient)
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
})
})
})

View File

@@ -1,68 +0,0 @@
import { randUser } from '../utils/index.js'
const user = randUser()
const boardTitle = 'TestBoard'
const testBoardData = {
title: boardTitle,
stacks: [
{ title: 'Existing Stack1' },
{ title: 'Existing Stack2' },
],
}
describe('Stack', function() {
before(function() {
cy.createUser(user)
cy.login(user)
cy.createExampleBoard({
user,
board: testBoardData,
})
})
beforeEach(function() {
cy.login(user)
cy.visit('/apps/deck')
cy.openLeftSidebar()
cy.getNavigationEntry(boardTitle)
.click({ force: true })
})
it('Can create a stack', function() {
cy.get('#stack-add button').first().click()
cy.focused().type('List 1')
cy.get('#stack-add form input[type=submit]').first().click()
cy.contains('List 1').should('be.visible')
})
it('Can edit a stack title', function() {
cy.contains('Existing Stack1')
cy.get('[data-cy-stack="Existing Stack1"]').within(() => {
cy.contains('Existing Stack1').click()
cy.focused().type(' renamed')
cy.get('[data-cy="editStackTitleForm"] input[type="submit"]').click()
})
cy.contains('Existing Stack1 renamed').should('be.visible')
})
it('Can abort a stack title edit via esc', function() {
cy.contains('Existing Stack2').click()
cy.focused().type(' with a new title, maybe?')
cy.focused().type('{esc}')
cy.contains('Existing Stack2').should('be.visible')
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
})
it('Can abort a stack title edit via click outside', function() {
cy.contains('Existing Stack2').click()
cy.focused().type(' with a new title, maybe?')
cy.get('[data-cy-stack="Existing Stack2"]').click('bottom')
cy.contains('Existing Stack2').should('be.visible')
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
})
})

View File

@@ -1,5 +0,0 @@
{
"name": "Using fixtures to represent data",
"email": "hello@cypress.io",
"body": "Fixtures are a great way to mock data for responses to routes"
}

View File

@@ -1,22 +0,0 @@
/// <reference types="cypress" />
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
/**
* @type {Cypress.PluginConfig}
*/
// eslint-disable-next-line no-unused-vars
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
}

View File

@@ -1,120 +0,0 @@
/**
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import { addCommands } from '@nextcloud/cypress'
addCommands()
const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
Cypress.env('baseUrl', url)
Cypress.Commands.add('openLeftSidebar', () => {
cy.get('.app-navigation button.app-navigation-toggle').click()
})
Cypress.Commands.add('deckCreateBoard', ({ user, password }, title) => {
cy.login(user, password)
cy.get('.app-navigation button.app-navigation-toggle').click()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3)
.find('a')
.first()
.click({ force: true })
cy.get('.board-create form input[type=text]').type(title, { force: true })
cy.get('.board-create form input[type=submit]')
.first()
.click({ force: true })
})
Cypress.Commands.add('deckCreateList', ({ user, password }, title) => {
cy.login(user, password)
cy.get('.app-navigation button.app-navigation-toggle').click()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3)
.find('a.app-navigation-entry-link')
.first()
.click({ force: true })
cy.get('#stack-add button').first().click()
cy.get('#stack-add form input#new-stack-input-main').type(title)
cy.get('#stack-add form input[type=submit]').first().click()
})
Cypress.Commands.add('createExampleBoard', ({ user, board }) => {
const auth = {
user: user.userId,
password: user.password,
}
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards`,
auth,
body: { title: board.title, color: board.color ?? 'ff0000' },
}).then((boardResponse) => {
expect(boardResponse.status).to.eq(200)
const boardData = boardResponse.body
for (const stackIndex in board.stacks) {
const stack = board.stacks[stackIndex]
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks`,
auth,
body: { title: stack.title, order: 0 },
}).then((stackResponse) => {
const stackData = stackResponse.body
for (const cardIndex in stack.cards) {
const card = stack.cards[cardIndex]
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks/${stackData.id}/cards`,
auth,
body: { title: card.title, description: card.description ?? '' },
})
}
})
}
cy.wrap(boardData)
})
})
Cypress.Commands.add('getNavigationEntry', (boardTitle) => {
return cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + boardTitle + ')')
.find('a.app-navigation-entry-link')
})
Cypress.Commands.add('shareBoardWithUi', (userId) => {
cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${userId}*` }).as('fetchRecipients')
cy.get('[aria-label="Open details"]').click()
cy.get('.app-sidebar').should('be.visible')
cy.get('.select input').type(`${userId}`)
cy.wait('@fetchRecipients', { timeout: 7000 })
cy.get('.vs__dropdown-menu .option').first().contains(userId)
cy.get('.select input').type('{enter}')
cy.get('.shareWithList').contains(userId)
})

View File

@@ -1,12 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Components App</title>
</head>
<body>
<div data-cy-root></div>
</body>
</html>

View File

@@ -1,27 +0,0 @@
// ***********************************************************
// This example support/component.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
// Alternatively you can use CommonJS syntax:
// require('./commands')
import { mount } from 'cypress/vue2'
Cypress.Commands.add('mount', mount)
// Example use:
// cy.mount(MyComponent)

View File

@@ -1,24 +0,0 @@
// ***********************************************************
// This example support/index.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands.js'
Cypress.on('uncaught:exception', (err) => {
return !err.message.includes('ResizeObserver loop limit exceeded')
})
// Alternatively you can use CommonJS syntax:
// require('./commands')

View File

@@ -1,4 +0,0 @@
import { User } from '@nextcloud/cypress'
export const randHash = () => Math.random().toString(36).replace(/[^a-z]+/g, '').slice(0, 10)
export const randUser = () => new User(randHash(), randHash())

View File

@@ -1,38 +0,0 @@
/*
* @copyright Copyright (c) 2022 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
export const sampleBoard = (title = 'MyTestBoard') => {
return {
title: title,
color: '00ff00',
stacks: [
{
title: 'TestList',
cards: [
{
title: 'Hello world',
description: '# Hello world',
},
],
},
],
}
}

View File

@@ -80,7 +80,7 @@ An ETag header is returned in order to determine if further child elements have
- Fetch a single card of a board `GET /api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}`
- Fetch attachments of a card `GET /api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments`
If a `If-None-Match` header is provided and the requested element has not changed a `304` Not Modified response will be returned.
If a `If-None-Match` header is provided and the requested element has not changed a `304` Not Modified response will be returned.
Changes of child elements will propagate to their parents and also cause an update of the ETag which will be useful for determining if a sync is necessary on any client integration side. As an example, if a label is added to a card, the ETag of all related entities (the card, stack and board) will change.
@@ -117,7 +117,6 @@ This API version has become available with **Deck 1.3.0**.
- [GET /boards/import/getSystems - Import a board](#get-boardsimportgetsystems-import-a-board)
- [GET /boards/import/config/system/{schema} - Import a board](#get-boardsimportconfigsystemschema-import-a-board)
- [POST /boards/import - Import a board](#post-boardsimport-import-a-board)
- The `done` property was added to cards
# Endpoints
@@ -588,7 +587,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
#### Response
```json
{
{
"title":"Test",
"description":null,
"stackId":6,
@@ -602,7 +601,6 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
"owner":"admin",
"order":999,
"archived":false,
"done":null,
"duedate": "2019-12-24T19:29:30+00:00",
"deletedAt":0,
"commentsUnread":0,
@@ -625,28 +623,22 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
#### Request data
| Parameter | Type | Description |
|-------------|-----------------|-----------------------------------------------------------------------------------------------------|
| title | String | The title of the card, maximum length is limited to 255 characters |
| description | String | The markdown description of the card |
| type | String | Type of the card (for later use) use 'plain' for now |
| owner | String | The user that owns the card |
| order | Integer | Order for sorting the stacks |
| duedate | timestamp | The ISO-8601 formatted duedate of the card or null |
| archived | bool | Whether the card is archived or not |
| done | timestamp\|null | The ISO-8601 formatted date when the card is marked as done (optional, null indicates undone state) |
| Parameter | Type | Description |
|-------------|-----------|------------------------------------------------------|
| title | String | The title of the card, maximum length is limited to 255 characters |
| description | String | The markdown description of the card |
| type | String | Type of the card (for later use) use 'plain' for now |
| order | Integer | Order for sorting the stacks |
| duedate | timestamp | The ISO-8601 formatted duedate of the card or null |
```
{
{
"title": "Test card",
"description": "A card description",
"type": "plain",
"owner": "admin",
"order": 999,
"duedate": "2019-12-24T19:29:30+00:00",
"archived": false,
"done": null,
}
```
@@ -985,7 +977,7 @@ For now only `deck_file` is supported as an attachment type.
### DELETE /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Delete an attachment
#### Request parameters
| Parameter | Type | Description |
@@ -1059,12 +1051,12 @@ Make a request to see the json schema of system
# OCS API
The following endpoints are available through the Nextcloud OCS endpoint, which is available at `/ocs/v2.php/apps/deck/api/v1.0/`.
The following endpoints are available through the Nextcloud OCS endpoint, which is available at `/ocs/v2.php/apps/deck/api/v1.0/`.
This has the benefit that both the web UI as well as external integrations can use the same API.
## Config
Deck stores user and app configuration values globally and per board. The GET endpoint allows to fetch the current global configuration while board settings will be exposed through the board element on the regular API endpoints.
Deck stores user and app configuration values globally and per board. The GET endpoint allows to fetch the current global configuration while board settings will be exposed through the board element on the regular API endpoints.
### GET /api/v1.0/config - Fetch app configuration values
@@ -1072,10 +1064,9 @@ Deck stores user and app configuration values globally and per board. The GET en
| Config key | Description |
| --- | --- |
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
| cardIdBadge | Determines if the ID badges are displayed on cards (boolean) |
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
```
{
@@ -1088,7 +1079,6 @@ Deck stores user and app configuration values globally and per board. The GET en
"data": {
"calendar": true,
"cardDetailsInModal": true,
"cardIdBadge": true,
"groupLimit": [
{
"id": "admin",
@@ -1119,8 +1109,7 @@ Deck stores user and app configuration values globally and per board. The GET en
| notify-due | `off`, `assigned` or `all` |
| calendar | Boolean |
| cardDetailsInModal | Boolean |
| cardIdBadge | Boolean |
#### Example request
```
@@ -1194,7 +1183,7 @@ A list of comments will be provided under the `ocs.data` key. If no or no more c
}
```
In case a comment is marked as a reply to another comment object, the parent comment will be added as `replyTo` entry to the response. Only the next parent node is added, nested replies are not exposed directly.
In case a comment is marked as a reply to another comment object, the parent comment will be added as `replyTo` entry to the response. Only the next parent node is added, nested replies are not exposed directly.
```json
[
@@ -1402,110 +1391,3 @@ A bad request response is returned if invalid input values are provided. The res
A not found response might be returned if:
- The card for the given cardId could not be found
- The comment could not be found
## Sessions
### PUT /session/create - creates a new session
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
```
curl -X PUT 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": {
"token": "+zcJHf4rC6dobVSbuNa3delkCSfTW8OvYWTyLFvSpIv80FjtgLIj0ARlxspsazNQ"
}
}
}
```
### POST /session/sync - notifies the server, that the session is still open
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
| token | String | The session token from the /sessions/create response |
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": []
}
}
```
##### 404 Not Found
the provided token is invalid or expired
### POST /session/close - closes the session
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
| token | String | The session token from the /sessions/create response |
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/close' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": []
}
}
```

View File

@@ -12,12 +12,11 @@ Overall, Deck is easy to use. You can create boards, add users, share the Deck,
1. [Create my first board](#1-create-my-first-board)
2. [Create stacks and cards](#2-create-stacks-and-cards)
3. [Handle cards options](#3-handle-cards-options)
4. [Mark task as done](#4-mark-as-done)
5. [Archive old tasks](#5-archive-old-tasks)
6. [Manage your board](#6-manage-your-board)
7. [Import boards](#7-import-boards)
8. [Search](#8-search)
9. [New owner for the deck entities](#9-new-owner-for-the-deck-entities)
4. [Archive old tasks](#4-archive-old-tasks)
5. [Manage your board](#5-manage-your-board)
6. [Import boards](#6-import-boards)
7. [Search](#7-search)
8. [New owner for the deck entities](#8-new-owner-for-the-deck-entities)
### 1. Create my first board
In this example, we're going to create a board and share it with an other nextcloud user.
@@ -26,7 +25,7 @@ In this example, we're going to create a board and share it with an other nextcl
### 2. Create stacks and cards
Stacks are simply columns with list of cards. It can represent a category of tasks or any step in your projects for example.
Stacks are simply columns with list of cards. It can represent a category of tasks or an y step in your projects for example.
**Check this out :**
![Gif for creating columns](resources/gifs/EN_create_columns.gif)
@@ -54,18 +53,12 @@ And even :
![Gif for puting infos on tasks 2](resources/gifs/EN_put_infos_2.gif)
### 4. Mark as done
Once a task has been completed, you can mark it as done. This will prevent it from becoming overdue and hide it from the upcoming cards.
You can mark it as not done at any time.
### 4. Archive old tasks
Once finished or obsolete, a task could be archived. The tasks is not deleted, it's just archived, and you can retrieve it later
![Gif for marking a card as done](resources/gifs/EN_done.gif)
![Gif for puting infos on tasks 2](resources/gifs/EN_archive.gif)
### 5. Archive old tasks
Once obsolete, a task could be archived. The task is not deleted, it's just archived, and you can retrieve it later
![Gif for archiving a task](resources/gifs/EN_archive.gif)
### 6. Manage your board
### 5. Manage your board
You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right.
Once in this menu, you have access to several things:
@@ -79,7 +72,7 @@ The **sharing tab** allows you to add users or even groups to your boards.
**Deleted objects** allows you to return previously deleted stacks or cards.
The **Timeline** allows you to see everything that happened in your boards. Everything!
### 7. Import boards
### 6. Import boards
Importing can be done using the API or the `occ` `deck:import` command.
@@ -97,7 +90,7 @@ Steps:
* Create the configuration file
* Execute the import informing the import file path, data file and source as `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Example configuration file:
```json
@@ -127,7 +120,7 @@ https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&field
This ID you will use in the configuration file in the `board` property
* Create the configuration file
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Example configuration file:
```json
@@ -145,7 +138,7 @@ Example configuration file:
}
```
### 8. Search
### 7. Search
Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls.
This search allows advanced filtering of cards across all board of the logged in user.
@@ -168,7 +161,7 @@ Other text tokens will be used to perform a case-insensitive search on the card
In addition, quotes can be used to pass a query with spaces, e.g. `"Exact match with spaces"` or `title:"My card"`.
### 9. New owner for the deck entities
### 8. New owner for the deck entities
You can transfer ownership of boards, cards, etc to a new user, using `occ` command `deck:transfer-ownership`
```bash

View File

@@ -1,98 +0,0 @@
## Export
Deck currently supports exporting all boards a user owns in a single JSON file. The format is based on the database schema that deck uses. It can be used to re-import boards on the same or other instances.
The export currently has some kown limitations in terms of specific data not included:
- Activity information
- File attachments to deck cards
- Comments
-
```
occ deck:export > my-file.json
```
## Import boards
Importing can be done using the API or the `occ` `deck:import` command.
It is possible to import from the following sources:
### Deck JSON
A json file that has been obtained from the above described `occ deck:export [userid]` command can be imported.
```
occ deck:import my-file.json
```
In case you are importing from a different instance you may use an additional config file to provide custom user id mapping in case users have different identifiers.
```
{
"owner": "admin",
"uidRelation": {
"johndoe": "test-user-1"
}
}
```
#### Trello JSON
Limitations:
* Comments with more than 1000 characters are placed as attached files to the card.
Steps:
* Create the data file
* Access Trello
* go to the board you want to export
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
* Create the configuration file
* Execute the import informing the import file path, data file and source as `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Example configuration file:
```json
{
"owner": "admin",
"color": "0800fd",
"uidRelation": {
"johndoe": "johndoe"
}
}
```
**Limitations**:
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
#### Trello API
Import using API is recommended for boards with more than 1000 actions.
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
* Get the ID of the board you want to import by making a request to:
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
This ID you will use in the configuration file in the `board` property
* Create the configuration file
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Example configuration file:
```json
{
"owner": "admin",
"color": "0800fd",
"api": {
"key": "0cc175b9c0f1b6a831c399e269772661",
"token": "92eb5ffee6ae2fec3ad71c777531578f4a8a08f09d37b73795649038408b5f33"
},
"board": "8277e0910d750195b4487976",
"uidRelation": {
"johndoe": "johndoe"
}
}
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" viewbox="0 0 32 32">
<path d="m16 1-10 18h11l-1 12 10-18h-11z"/>
</svg>

Before

Width:  |  Height:  |  Size: 205 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" viewBox="0 0 32 32">
<path d="m16 1-10 18h11l-1 12 10-18h-11z" fill="#FFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 217 B

1
img/archive-white.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><g transform="translate(0 -1036.362)" fill="#fff"><path d="M1.93 1041.296c-.185 0-.336.138-.336.31v9.842c0 .172.15.313.336.313h12.517c.185 0 .333-.14.333-.313v-9.842c0-.172-.148-.31-.333-.31H1.93zm4.124 1.507h4.223c.39 0 .705.314.705.704v.43c0 .39-.315.705-.705.705H6.054a.703.703 0 0 1-.705-.705v-.43c0-.39.314-.704.705-.704z"/><rect width="15.742" height="2.296" x=".136" y="1037.543" ry="0"/></g></svg>

After

Width:  |  Height:  |  Size: 488 B

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" style="height: 240px; width: 240px;" viewBox="0 0 24 24">
<path fill="currentColor" d="M12,15H10V13H12V15M18,15H14V13H18V15M8,11H6V9H8V11M18,11H10V9H18V11M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z" />
</svg>

Before

Width:  |  Height:  |  Size: 298 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58" width="512" height="512"><g fill="#000"><path d="M54.319 37.839C54.762 35.918 55 33.96 55 32c0-9.095-4.631-17.377-12.389-22.153a1 1 0 1 0-1.049 1.703C48.724 15.96 53 23.604 53 32c0 1.726-.2 3.451-.573 5.147A6.992 6.992 0 0 0 51 37c-3.86 0-7 3.141-7 7s3.14 7 7 7 7-3.141 7-7a7.006 7.006 0 0 0-3.681-6.161zM38.171 54.182A23.867 23.867 0 0 1 29 56a24.047 24.047 0 0 1-17.017-7.092A6.974 6.974 0 0 0 14 44c0-3.859-3.14-7-7-7s-7 3.141-7 7 3.14 7 7 7a6.952 6.952 0 0 0 3.381-.875C15.26 55.136 21.994 58 29 58c3.435 0 6.778-.663 9.936-1.971.51-.211.753-.796.542-1.307a1.001 1.001 0 0 0-1.307-.54zM4 31.213a1 1 0 0 0 1.068-.927c.712-10.089 7.586-18.52 17.22-21.314C23.142 11.874 25.825 14 29 14c3.86 0 7-3.141 7-7s-3.14-7-7-7c-3.851 0-6.985 3.127-6.999 6.975C11.42 9.922 3.851 19.12 3.073 30.146A.999.999 0 0 0 4 31.213z"/></g></svg>

Before

Width:  |  Height:  |  Size: 885 B

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58" width="512" height="512"><g fill="#fff"><path d="M54.319 37.839C54.762 35.918 55 33.96 55 32c0-9.095-4.631-17.377-12.389-22.153a1 1 0 1 0-1.049 1.703C48.724 15.96 53 23.604 53 32c0 1.726-.2 3.451-.573 5.147A6.992 6.992 0 0 0 51 37c-3.86 0-7 3.141-7 7s3.14 7 7 7 7-3.141 7-7a7.006 7.006 0 0 0-3.681-6.161zM38.171 54.182A23.867 23.867 0 0 1 29 56a24.047 24.047 0 0 1-17.017-7.092A6.974 6.974 0 0 0 14 44c0-3.859-3.14-7-7-7s-7 3.141-7 7 3.14 7 7 7a6.952 6.952 0 0 0 3.381-.875C15.26 55.136 21.994 58 29 58c3.435 0 6.778-.663 9.936-1.971.51-.211.753-.796.542-1.307a1.001 1.001 0 0 0-1.307-.54zM4 31.213a1 1 0 0 0 1.068-.927c.712-10.089 7.586-18.52 17.22-21.314C23.142 11.874 25.825 14 29 14c3.86 0 7-3.141 7-7s-3.14-7-7-7c-3.851 0-6.985 3.127-6.999 6.975C11.42 9.922 3.851 19.12 3.073 30.146A.999.999 0 0 0 4 31.213z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58" width="512" height="512"><g fill="#000"><path d="M54.319 37.839C54.762 35.918 55 33.96 55 32c0-9.095-4.631-17.377-12.389-22.153a1 1 0 1 0-1.049 1.703C48.724 15.96 53 23.604 53 32c0 1.726-.2 3.451-.573 5.147A6.992 6.992 0 0 0 51 37c-3.86 0-7 3.141-7 7s3.14 7 7 7 7-3.141 7-7a7.006 7.006 0 0 0-3.681-6.161zM38.171 54.182A23.867 23.867 0 0 1 29 56a24.047 24.047 0 0 1-17.017-7.092A6.974 6.974 0 0 0 14 44c0-3.859-3.14-7-7-7s-7 3.141-7 7 3.14 7 7 7a6.952 6.952 0 0 0 3.381-.875C15.26 55.136 21.994 58 29 58c3.435 0 6.778-.663 9.936-1.971.51-.211.753-.796.542-1.307a1.001 1.001 0 0 0-1.307-.54zM4 31.213a1 1 0 0 0 1.068-.927c.712-10.089 7.586-18.52 17.22-21.314C23.142 11.874 25.825 14 29 14c3.86 0 7-3.141 7-7s-3.14-7-7-7c-3.851 0-6.985 3.127-6.999 6.975C11.42 9.922 3.851 19.12 3.073 30.146A.999.999 0 0 0 4 31.213z"/></g></svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 885 B

1
img/clone.svg Normal file
View File

@@ -0,0 +1 @@
<svg width="16" height="16" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M11.8 13.8H2.2V4.2h9.6m1.2 0c0-.67-.53-1.2-1.2-1.2H2.2C1.53 3 1 3.53 1 4.2v9.6c0 .67.53 1.2 1.2 1.2h9.6c.67 0 1.2-.53 1.2-1.2"/><path d="m4.2 1c-0.67 0-1.2 0.54-1.2 1.2h10.8v10.8c0.67 0 1.2-0.53 1.2-1.2v-9.6c0-0.67-0.53-1.2-1.2-1.2z"/></svg>

After

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewBox="0 0 16 16">
<g fill="currentColor">
<rect ry="1" height="8" width="14" y="7" x="1"/>
<rect ry=".5" height="1" width="12" y="5" x="2"/>
<rect ry=".5" height="1" width="10" y="3" x="3"/>
<rect ry=".5" height="1" width="8" y="1" x="4"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 372 B

1
img/reply.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16"><path d="M15 15s-.4-7.8-7-10V1L1 8l7 7v-4c5.1 0 7 4 7 4z"/></svg>

After

Width:  |  Height:  |  Size: 128 B

View File

@@ -2,7 +2,6 @@ OC.L10N.register(
"deck",
{
"Personal" : "Persoonlik",
"Later" : "Later",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
@@ -13,6 +12,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Cancel" : "Kanselleer",
"Close" : "Sluit",
"File already exists" : "Lêer bestaan reeds",
"Open details" : "Open besonderhede",
"Details" : "Besonderhede",
@@ -27,24 +27,18 @@ OC.L10N.register(
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Due date" : "Sperdatum",
"Select Date" : "Kies Datum",
"Today" : "Vandag",
"Tomorrow" : "Môre",
"Save" : "Stoor",
"Reply" : "Antwoord",
"Update" : "Werk by",
"Created:" : "Geskep:",
"Description" : "Beskrywing",
"Completed" : "Voltooid",
"Select Date" : "Kies Datum",
"seconds ago" : "sekondes gelede",
"Keyboard shortcuts" : "Sneltoetse",
"Keyboard shortcut" : "Snelsleutel",
"Search" : "Soek",
"Shared with you" : "Met u gedeel",
"No notifications" : "Geen kennisgewings",
"An error occurred" : "'n Fout het voorgekom",
"Today" : "Vandag",
"Tomorrow" : "Môre",
"Close" : "Sluit",
"Share" : "Deel",
"Due date" : "Sperdatum"
"Share" : "Deel"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,6 +1,5 @@
{ "translations": {
"Personal" : "Persoonlik",
"Later" : "Later",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
@@ -11,6 +10,7 @@
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Cancel" : "Kanselleer",
"Close" : "Sluit",
"File already exists" : "Lêer bestaan reeds",
"Open details" : "Open besonderhede",
"Details" : "Besonderhede",
@@ -25,24 +25,18 @@
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Due date" : "Sperdatum",
"Select Date" : "Kies Datum",
"Today" : "Vandag",
"Tomorrow" : "Môre",
"Save" : "Stoor",
"Reply" : "Antwoord",
"Update" : "Werk by",
"Created:" : "Geskep:",
"Description" : "Beskrywing",
"Completed" : "Voltooid",
"Select Date" : "Kies Datum",
"seconds ago" : "sekondes gelede",
"Keyboard shortcuts" : "Sneltoetse",
"Keyboard shortcut" : "Snelsleutel",
"Search" : "Soek",
"Shared with you" : "Met u gedeel",
"No notifications" : "Geen kennisgewings",
"An error occurred" : "'n Fout het voorgekom",
"Today" : "Vandag",
"Tomorrow" : "Môre",
"Close" : "Sluit",
"Share" : "Deel",
"Due date" : "Sperdatum"
"Share" : "Deel"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -11,15 +11,13 @@ OC.L10N.register(
"Could not write file to disk" : "No se podió escribir o fichero en o disco",
"A PHP extension stopped the file upload" : "Una estensión de PHP aturó a carga de fichers",
"Cancel" : "Canzelar",
"Close" : "Zarrar",
"Details" : "Detalles",
"Tags" : "Etiquetas",
"Activity" : "Actividat",
"Delete" : "Borrar",
"Download" : "Escargar",
"Modified" : "Modificau",
"Search" : "Buscar",
"Today" : "Hue",
"Close" : "Zarrar",
"Share" : "Compartir"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -9,15 +9,13 @@
"Could not write file to disk" : "No se podió escribir o fichero en o disco",
"A PHP extension stopped the file upload" : "Una estensión de PHP aturó a carga de fichers",
"Cancel" : "Canzelar",
"Close" : "Zarrar",
"Details" : "Detalles",
"Tags" : "Etiquetas",
"Activity" : "Actividat",
"Delete" : "Borrar",
"Download" : "Escargar",
"Modified" : "Modificau",
"Search" : "Buscar",
"Today" : "Hue",
"Close" : "Zarrar",
"Share" : "Compartir"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -37,10 +37,6 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} قام بأرشفة بطاقة {card} في القائمة {stack} على اللوح {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "لديك بطاقة غير مؤرشفة {card} في القائمة {stack} على اللوح {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} لديه بطاقة غير مؤرشفة {card} في القائمة {stack} على اللوح {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "لقد قُمت بتمييز البطاقة {card} باعتبارها \"منتهية\" في القائمة {stack} على اللوح {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "قام المستخدِم {user} بتمييز البطاقة {card} باعتبارها \"منتهية\" في القائمة {stack} على اللوح {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "لقد قُمت بتمييز البطاقة {card} باعتبارها \"غير منتهية\" في القائمة {stack} على اللوحة {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "قام المستخدِم {user} بتمييز البطاقة {card} باعتبارها \"غير منتهية\" في القائمة {stack} على اللوحة {board}",
"You have removed the due date of card {card}" : "قمت بإزالة التاريخ المحدد من البطاقة {card}",
"{user} has removed the due date of card {card}" : "{user} قام بإزالة التاريخ المحدد من البطاقة {card}",
"You have set the due date of card {card} to {after}" : "قمت بتعيين التاريخ المحدد للبطاقة {card} إلى {after}",
@@ -67,15 +63,11 @@ OC.L10N.register(
"{user} has restored the attachment {attachment} to card {card}" : "{user} قام باسترجاع المرفق {attachment} إلى البطاقة {card}",
"You have commented on card {card}" : "لقد علقت على البطاقة {بطاقة}",
"{user} has commented on card {card}" : "{مستخدم} علق على بطاقة {بطاقة}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "تغييرات في <strong>تطبيق Deck</strong> ",
"A <strong>board, list or card</strong> was changed" : "تمّ تغيير <strong>لوحة board أو قائمة list أو بطاقة card </strong>.",
"A <strong>comment</strong> was created on a card" : "<strong>تعليق</strong> تم إنشاؤه على بطاقة",
"A <strong>card description</strong> has been changed" : "تمّ تغيير <strong>وصف بطاقة</strong>.",
"Cards due today" : "البطاقات المستحقة اليوم",
"Cards due tomorrow" : "البطاقات المستحقة غداً",
"Upcoming cards" : "البطاقات القادمة",
"Load more" : "حمّل أكثر",
"Personal" : "شخصي",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "البطاقة \"%s\" على \"%s\" كُلفت بها من قبل %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} قام بتكليف البطاقة {deck-board} على {deck-board} لك",
@@ -85,14 +77,9 @@ OC.L10N.register(
"{user} has mentioned you in a comment on {deck-card}." : "{user} أشار إليك في تعليق على {deck-card}",
"The board \"%s\" has been shared with you by %s." : "تمت مشاركة اللوح \"%s\" معك من قبل %s.",
"{user} has shared {deck-board} with you." : "{user} قام بمشاركة {deck-board} معك.",
"Deck board" : "رُقعة اللوحات Deck board",
"Owned by %1$s" : "يملكها %1$s",
"Deck boards, cards and comments" : "رُقعة اللوحات و البطاقات و الملاحظات",
"From %1$s, in %2$s/%3$s, owned by %4$s" : " من %1$s، في %2$s/%3$s، يملكها %4$s",
"Create a new deck card" : "إنشاء بطاقة deck card جديدة",
"Deck board" : "لوح Deck",
"Card comments" : "تعليقات البطاقة ",
"%s on %s" : "%s على %s",
"Deck boards and cards" : "رُقَع اللوحات و البطاقات",
"No data was provided to create an attachment." : "لا بيانات تم تقديمها لانشاء مرفق",
"Finished" : "اكتمل",
"To review" : "لإعادة المراجعة",
@@ -114,22 +101,24 @@ OC.L10N.register(
"Could not write file to disk" : "لم يستطع كتابة ملف للقرص",
"A PHP extension stopped the file upload" : "إضافة البي اچ بي PHP أوقفت رفع الملف",
"No file uploaded or file size exceeds maximum of %s" : "لم يتم تحميل أي ملف أو أن يتجاوز حجم الملف الحد الأقصى %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
"Card not found" : "لم يتم العثور على البطاقة ",
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Personal planning and team project organization" : "التخطيط الشخصي و تنظيم مشروع الفريق",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "التطبيق \"رِزَم البطاقات\" Deck هو أداة لتنظيم المهام الشخصية و الجماعية في نكست كلاود على نمط \"خطوط التصنيع أو التجميع في المصانع\" و المعروف بـ kanban.\n\n\n- 📥 أكتب مهمتك او مهمة فريقك على بطاقة و ضع البطاقة في الرُّقعة على كدسة البطاقات من ذات التصنيف أو المرحلة من الإنجاز\n- 📄 دوّن ملاحظاتك الإضافية على البطاقة بصيغة ماركداون markdown\n- 🔖 و يمكنك أيضاً إسناد البطاقة أي المهمة إلى شخص أو أشخاص في فريقك\n- 👥 شارك البطاقة مع من ترغب من أعضاء فريقك أو عائلتك أو أصدقائك\n- 📎 إرفاق ملفات و تضمينها بصيغة ماركداون في البطاقة\n- 💬ناقش البطاقة مع زملائك في خانة الملاحظات\n- ⚡ تابع ما يُستجد من عمليات و تطوّرات على البطاقة أو المهمة\n- 🚀 حافظ على مشروعك مُنسّقاً باستمرار.",
"Add board" : "إضافة لوح",
"Select the board to link to a project" : "تحديد اللوح لربطه بمشروع",
"Search by board title" : "بحث بواسطة عنوان اللوح",
"Select board" : "حدد لوح",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"Create a new card" : "أنشى بطاقة جديدة ",
"Select a board" : "حدد لوح",
"No lists available" : "لا يوجد قائمة متاحه ",
"Select a list" : "اختر قائمة ",
"Move card" : "حرك البطاقة",
"Card title" : "عنوان البطاقة ",
"Cancel" : "إلغاء",
"Creating the new card …" : "أنشى البطاقة الجديدة ",
"Card \"{card}\" was added to \"{board}\"" : "\"{بطاقة}\" تمت إضافتها في \"{اللوح}\"",
"Open card" : "فتح البطاقة ",
"Close" : "إغلاق",
"Create card" : "أنشى بطاقة ",
"Select a card" : "حدد بطاقة",
"Select the card to link to a project" : "حدد البطاقة لربطها بمشروع",
"Link to card" : "اربط بطاقة",
@@ -144,7 +133,6 @@ OC.L10N.register(
"Archived cards" : "البطاقات المؤرشفة",
"Add list" : "إضافة قائمة",
"List name" : "قامة اسماء",
"Active filters" : "فلاتر نشطة",
"Apply filter" : "تطبيق التصفية",
"Filter by tag" : "تصفية بواسطة الوسم",
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
@@ -156,49 +144,38 @@ OC.L10N.register(
"Next 30 days" : "ال 30 يوم القادمة",
"No due date" : "لا تاريخ إنجاز",
"Clear filter" : "ازل التصفية",
"View Modes" : "وضعيات العرض",
"Toggle View Modes" : "التبديل بين وضعيات العرض",
"Hide archived cards" : "إخفاء البطاقات المؤرشفة ",
"Show archived cards" : "اظهر البطاقات المؤرشفة",
"Toggle compact mode" : "تبديل النمط المضغوط",
"Hide card cover images" : "إخفِ صور غلاف البطاقات",
"Show card cover images" : "أظهِر صور غلاف البطاقات",
"Open details" : "افتح التفاصيل",
"Details" : "التفاصيل",
"Currently present people" : "أشخاص معروضون حاليّاً",
"Loading board" : "جارِ تحميل اللوح..",
"Board not found" : "اللوح غير موجود",
"No lists available" : "لا يوجد قائمة متاحه ",
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
"Board not found" : "اللوح غير موجود",
"Sharing" : "المشاركة",
"Tags" : "الوسوم",
"Deleted items" : "العناصر الممسوحة",
"Activity" : "النشاط",
"Timeline" : "الجدول الزمني",
"Deleted lists" : "القوائم المحذوفة",
"Undo" : "تراجع",
"Deleted cards" : "البطاقات المحذوفة",
"Share board with a user, group or team …" : "مشاركة اللوحة مع مستخدِم او مجموعة أو فريق ...",
"Searching for users, groups and teams …" : "البحث عن مستخدِمين، أو مجموعات، أو فِرَق",
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
"No participants found" : "لم يتم العثور على مشاركين",
"Board owner" : "منشئ اللوح",
"(Group)" : "(مجموعة)",
"(Team)" : "(الفريق)",
"(Circle)" : "(دائرة)",
"Can edit" : "يمكن تعديله",
"Can share" : "يمكن مشاركته",
"Can manage" : "يمكن إدارته",
"Owner" : "المالك",
"Delete" : "حذف ",
"Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل اللوحة {title} إلى {user} ؟",
"Transfer the board." : "نقل اللوحة.",
"Transfer" : "نقل",
"The board has been transferred to {user}" : "تمّ نقل اللوحة إلى {user}",
"Failed to transfer the board to {user}" : "تعذّر نقل اللوحة إلى {user}",
"Edit list title" : "عدّل اسم القائمة",
"Archive all cards" : "أرشفة جميع البطاقات ",
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
"Delete list" : "حذف القائمة",
"Archive all cards in this list" : "أرشفة جميع البطاقات في القائمة ",
"Unarchive all cards in this list" : "تراجع عن أرشفة كل البطاقات في هذه القائمة",
"Add a new card" : "إضافة بطاقة جديدة",
"Card name" : "اسم البطاقة ",
"List deleted" : "القائمة حٌذفت ",
@@ -207,16 +184,11 @@ OC.L10N.register(
"title and color value must be provided" : "العنوان و قيمة اللون يجب تقديمها ",
"Board name" : "اسم اللوح",
"Members" : "الاعضاء",
"Assign to users/groups/team" : "إسناد إلى مستخدِمين/مجموعات/فِرَق",
"Assign a user to this card…" : "انسب مستخدم الى هذه البطاقة..",
"Select a user to assign to this card…" : "حدِّد مستخدِماً ليتم إسناد هذه البطاقة له...",
"Upload new files" : "رفع ملفات جديدة",
"Share from Files" : "مشاركة من الملفات",
"Pending share" : "مشاركة مُعلّقة",
"Add this attachment" : "إضافة هذا المرفق",
"Show in Files" : "عرض في الملفات ",
"Download" : "تنزيل",
"Remove attachment" : "حذف المُرفق",
"Delete Attachment" : "مسح المرفق",
"Restore Attachment" : "إستعادة المرفق",
"File to share" : "ملف للمشاركة",
@@ -230,6 +202,18 @@ OC.L10N.register(
"The title cannot be empty." : "لا يمكن ترك العنوان فارغًا.",
"No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!",
"Failed to load comments" : "فشل في تحميل التعليقات ",
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
"Assign to users" : "انسب الى المتسخدمين",
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
"Assign a user to this card…" : "انسب مستخدم الى هذه البطاقة..",
"Due date" : "تاريخ الانجاز",
"Set a due date" : "تعيين تاريخ الانجاز",
"Remove due date" : "ازالة تاريخ الانجاز",
"Select Date" : "اختر التاريخ ",
"Today" : "اليوم",
"Tomorrow" : "غدا",
"Next week" : "الاسبوع القادم",
"Next month" : "الشهر القادم",
"Save" : "حفظ",
"The comment cannot be empty." : "التعليق لايمكن ان يكون فارغا.",
"The comment cannot be longer than 1000 characters." : "التعليق لا يمكن ان يكون اطول من 1000 حرف.",
@@ -237,7 +221,6 @@ OC.L10N.register(
"Cancel reply" : "إلغاء الرد",
"Reply" : "رد",
"Update" : "تحديث",
"Created:" : "تاريخ الإنشاء :",
"Description" : "الوصف",
"(Unsaved)" : "(غير محفوظ)",
"(Saving…)" : "(يُحفظ..)",
@@ -247,78 +230,30 @@ OC.L10N.register(
"Add Attachment" : "أضف ملحق",
"Write a description …" : "كتابة وصف...",
"Choose attachment" : "اختيار مرفق",
"Assign a due date to this card…" : "تعيين تاريخ استحقاق لهذه البطاقة...",
"Set a due date" : "تعيين تاريخ الانجاز",
"Add due date" : "أضِف تاريخ الاستحقاق",
"Choose a date" : "إختَر تاريخاً",
"Remove due date" : "ازالة تاريخ الانجاز",
"Completed" : "مُكتمل",
"Due at:" : "تاريخ الاستحقاق:",
"Not completed" : "غير مكتمل",
"Unarchive card" : "إلغاء أرشفة البطاقة ",
"Archive card" : "أرشفة البطاقة",
"Select Date" : "اختر التاريخ ",
"Set due date for later today" : "عيِّن آخِرَ هذا اليوم كموعدٍ لاستحقاق البطاقة",
"Set due date for tomorrow" : "عيِّن يوم الغد كموعدٍ لاستحقاق البطاقة",
"Set due date for this weekend" : "عيِّن نهاية هذا الأسبوع كموعدٍ لاستحقاق البطاقة",
"Set due date for next week" : "عيِّن الأسبوع المُقبل كموعدٍ لاستحقاق البطاقة",
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
"Select or create a tag…" : "إختَر أو أنشِئْ وسماً ...",
"Create a new tag:" : "إنشاء سِمَةٍ tag جديدة:",
"(group)" : "(مجموعة)",
"Next week {timeLocale}" : "الأسبوع القادم {timeLocale}",
"Todo items" : "قائمة المهام",
"{count} comments, {unread} unread" : "{عدد} التعليقات، {غير مقروءة} غير مقروءة",
"Edit card title" : "تعديل اسم القائمة",
"Card details" : "تفاصيل البطاقة",
"Assign to me" : "ينسب لي",
"Unassign myself" : "إلغاء تعييني ",
"Mark as not done" : "تمييز كـ \"غير منتهٍ\"",
"Mark as done" : مييز كمُنجَز",
"Move card" : "حرك البطاقة",
"Card details" : فاصيل البطاقة",
"Unarchive card" : "إلغاء أرشفة البطاقة ",
"Archive card" : "أرشفة البطاقة",
"Delete card" : "حذف البطاقة",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"Card deleted" : "البطاقة حٌذفت ",
"seconds ago" : "ثوانٍ مضت",
"Keyboard shortcuts" : "إختصارات لوحة المفاتيح",
"Boost your productivity using Deck with keyboard shortcuts." : "ضاعِف إنتاجيتك باستعمال \"رِزَم البطاقات\" Deck، و اختصارات لوحة المفاتيح ",
"Board actions" : "إجراءات اللوحة",
"Keyboard shortcut" : "إختصار لوحة المفاتيح",
"Action" : "الإجراء",
"Shift" : "العالي shift",
"Scroll" : "تحريك",
"Scroll sideways" : "تحريك للجنب",
"Navigate between cards" : "التنقُّل بين البطاقات",
"Esc" : "خروج",
"Close card details" : "أغلِق تفاصيل البطاقة",
"Ctrl" : "تحكم Ctrl",
"Search" : "بحث",
"Show card filters" : "أظهِر فلاتر البطاقة",
"Clear card filters" : "إمحُ فلاتر البطاقة",
"Show help dialog" : "أظهِر نافذة حوار المساعدة",
"Card actions" : "إجراءات البطاقة",
"The following actions can be triggered on the currently highlighted card" : "الإجراءات التالية يمكن تنفيذها على البطاقات المُعلّمة حالياً",
"Enter" : "إدخال",
"Space" : "المدى",
"Open card details" : "إفتَح تفاصيل البطاقة",
"Edit the card title" : "عدِّل عنوان البطاقة",
"Assign yourself to the current card" : "أسنِد هذه البطاقة إلى نفسِك",
"Archive/unarchive the current card" : "أرشِف أو ألغِ ترشيف البطاقة الحالية",
"Mark card as completed/not completed" : "علِّم بطاقة كـ\"منجزة\" أو \"غير منجزة\"",
"Open card menu" : "إفتَح قائمة البطاقات",
"All boards" : "جميع الالواح",
"Archived boards" : "الالواح المؤرشفة",
"Shared with you" : "تم مشاركتها معك",
"Deck settings" : "إعدادات رِزَمِ البطاقات",
"Use bigger card view" : "استخدام بطاقة عرض أكبر ",
"Show card ID badge" : "أعرض شارة رقم البطاقة",
"Show boards in calendar/tasks" : "إظهار اللوح في التقويم/المهام",
"Limit board creation to some groups" : "قَصْرُ حَقِّ إنشاء الألواح على بعض المجموعات ",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "المستخدِمون من خارج تلك المجموعات لن يمكنكم إنشاء لوحاتهم الخاصة؛ لكن يمكنهم العمل على اللوحات التي تتمّ مشاركتها معهم.",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
"Board details" : "تفاصيل لوح",
"Edit board" : "تعديل اللوح",
"Clone board" : "استنسخ اللوح",
"Unarchive board" : "إلغاء أرشفة اللوح",
"Archive board" : "أرشفة اللوح ",
"Export board" : "تصدير اللوحة",
"Turn on due date reminders" : "تفعيل التذكيرات للموعد المحدد ",
"Turn off due date reminders" : "إيقاف تشغيل التذكيرات للموعد المحددد",
"Due date reminders" : "تذكيرات الموعد المحدد ",
@@ -330,36 +265,14 @@ OC.L10N.register(
"Only assigned cards" : "البطاقات المخصصة فقط",
"No reminder" : "لا يوجد تذكير ",
"An error occurred" : "حدث خطأ",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "هل أنت متأكد من حذف اللوحة {title}؟ هذا سيؤدي إلى حذف كل بيانات هذه اللوحة بما في ذلك البطاقات المؤرشفة.",
"Delete the board?" : "مسح اللوح؟",
"Loading filtered view" : "جارِ تحميل التصفية ",
"Today" : "اليوم",
"Tomorrow" : "غدا",
"No due" : "غير محدد",
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
"No results found" : "لا يتم العثور على أي نتائج ",
"This weekend {timeLocale}" : "نهاية هذا الأسبوع {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "اسم اللوحة {name} \n* آخر تعديل لها في {lastMod}",
"{stack} in {board}" : "{stack} في {board}",
"Click to expand description" : "إضعط للتوسّع في الوصف",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* أُنشأت في {created}\n* آخر تعديل لها في {lastMod}\n* {nbAttachments} مُرفقات\n* {nbComments} مُلاحظات",
"{nbCards} cards" : "{nbCards} بطاقات",
"Click to expand comment" : "إضغط للتوسع في الملاحظات",
"Create a new card" : "أنشى بطاقة جديدة ",
"Card title" : "عنوان البطاقة ",
"Create card" : "أنشى بطاقة ",
"Creating the new card …" : "أنشى البطاقة الجديدة ",
"Card \"{card}\" was added to \"{board}\"" : "\"{بطاقة}\" تمت إضافتها في \"{اللوح}\"",
"Open card" : "فتح البطاقة ",
"Close" : "إغلاق",
"No upcoming cards" : "لا يوجد بطاقات قادمة ",
"upcoming cards today" : "البطاقات القادمة اليومَ",
"upcoming cards tomorrow" : "البطاقات القادمة غداً",
"upcoming cards" : "البطاقات القادمة",
"New card" : "بطاقة جديدة",
"Due on {date}" : "مطلوب في {date}",
"Tomorrow {timeLocale}" : "غداً {timeLocale}",
"Later today {timeLocale}" : "في وقت لاحقٍ اليوم {timeLocale}",
"Link to a board" : "ربط بلوح",
"Link to a card" : "ربط ببطاقة",
"Create a card" : "أنشى بطاقة ",
@@ -371,18 +284,7 @@ OC.L10N.register(
"Share with a Deck card" : "مشاركة مع بطاقة Deck",
"Share {file} with a Deck card" : "مشاركة الملف {file} مع بطاقة Deck",
"Share" : "مشاركة ",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
"Timeline" : "الجدول الزمني",
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
"(Circle)" : "(دائرة)",
"Assign to users" : "انسب الى المتسخدمين",
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
"Due date" : "تاريخ الانجاز",
"Next week" : "الاسبوع القادم",
"Next month" : "الشهر القادم",
"List is empty" : "القائمة فارغة",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم."
"Add a new list" : "اضف قائمة جديدة",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "هل انت متأكد تريد مسح اللوح {title}؟ هذا سوف يمسح جميع بيانات هذا اللوح."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");

View File

@@ -35,10 +35,6 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user} قام بأرشفة بطاقة {card} في القائمة {stack} على اللوح {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "لديك بطاقة غير مؤرشفة {card} في القائمة {stack} على اللوح {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} لديه بطاقة غير مؤرشفة {card} في القائمة {stack} على اللوح {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "لقد قُمت بتمييز البطاقة {card} باعتبارها \"منتهية\" في القائمة {stack} على اللوح {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "قام المستخدِم {user} بتمييز البطاقة {card} باعتبارها \"منتهية\" في القائمة {stack} على اللوح {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "لقد قُمت بتمييز البطاقة {card} باعتبارها \"غير منتهية\" في القائمة {stack} على اللوحة {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "قام المستخدِم {user} بتمييز البطاقة {card} باعتبارها \"غير منتهية\" في القائمة {stack} على اللوحة {board}",
"You have removed the due date of card {card}" : "قمت بإزالة التاريخ المحدد من البطاقة {card}",
"{user} has removed the due date of card {card}" : "{user} قام بإزالة التاريخ المحدد من البطاقة {card}",
"You have set the due date of card {card} to {after}" : "قمت بتعيين التاريخ المحدد للبطاقة {card} إلى {after}",
@@ -65,15 +61,11 @@
"{user} has restored the attachment {attachment} to card {card}" : "{user} قام باسترجاع المرفق {attachment} إلى البطاقة {card}",
"You have commented on card {card}" : "لقد علقت على البطاقة {بطاقة}",
"{user} has commented on card {card}" : "{مستخدم} علق على بطاقة {بطاقة}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "تغييرات في <strong>تطبيق Deck</strong> ",
"A <strong>board, list or card</strong> was changed" : "تمّ تغيير <strong>لوحة board أو قائمة list أو بطاقة card </strong>.",
"A <strong>comment</strong> was created on a card" : "<strong>تعليق</strong> تم إنشاؤه على بطاقة",
"A <strong>card description</strong> has been changed" : "تمّ تغيير <strong>وصف بطاقة</strong>.",
"Cards due today" : "البطاقات المستحقة اليوم",
"Cards due tomorrow" : "البطاقات المستحقة غداً",
"Upcoming cards" : "البطاقات القادمة",
"Load more" : "حمّل أكثر",
"Personal" : "شخصي",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "البطاقة \"%s\" على \"%s\" كُلفت بها من قبل %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} قام بتكليف البطاقة {deck-board} على {deck-board} لك",
@@ -83,14 +75,9 @@
"{user} has mentioned you in a comment on {deck-card}." : "{user} أشار إليك في تعليق على {deck-card}",
"The board \"%s\" has been shared with you by %s." : "تمت مشاركة اللوح \"%s\" معك من قبل %s.",
"{user} has shared {deck-board} with you." : "{user} قام بمشاركة {deck-board} معك.",
"Deck board" : "رُقعة اللوحات Deck board",
"Owned by %1$s" : "يملكها %1$s",
"Deck boards, cards and comments" : "رُقعة اللوحات و البطاقات و الملاحظات",
"From %1$s, in %2$s/%3$s, owned by %4$s" : " من %1$s، في %2$s/%3$s، يملكها %4$s",
"Create a new deck card" : "إنشاء بطاقة deck card جديدة",
"Deck board" : "لوح Deck",
"Card comments" : "تعليقات البطاقة ",
"%s on %s" : "%s على %s",
"Deck boards and cards" : "رُقَع اللوحات و البطاقات",
"No data was provided to create an attachment." : "لا بيانات تم تقديمها لانشاء مرفق",
"Finished" : "اكتمل",
"To review" : "لإعادة المراجعة",
@@ -112,22 +99,24 @@
"Could not write file to disk" : "لم يستطع كتابة ملف للقرص",
"A PHP extension stopped the file upload" : "إضافة البي اچ بي PHP أوقفت رفع الملف",
"No file uploaded or file size exceeds maximum of %s" : "لم يتم تحميل أي ملف أو أن يتجاوز حجم الملف الحد الأقصى %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
"Card not found" : "لم يتم العثور على البطاقة ",
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Personal planning and team project organization" : "التخطيط الشخصي و تنظيم مشروع الفريق",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "التطبيق \"رِزَم البطاقات\" Deck هو أداة لتنظيم المهام الشخصية و الجماعية في نكست كلاود على نمط \"خطوط التصنيع أو التجميع في المصانع\" و المعروف بـ kanban.\n\n\n- 📥 أكتب مهمتك او مهمة فريقك على بطاقة و ضع البطاقة في الرُّقعة على كدسة البطاقات من ذات التصنيف أو المرحلة من الإنجاز\n- 📄 دوّن ملاحظاتك الإضافية على البطاقة بصيغة ماركداون markdown\n- 🔖 و يمكنك أيضاً إسناد البطاقة أي المهمة إلى شخص أو أشخاص في فريقك\n- 👥 شارك البطاقة مع من ترغب من أعضاء فريقك أو عائلتك أو أصدقائك\n- 📎 إرفاق ملفات و تضمينها بصيغة ماركداون في البطاقة\n- 💬ناقش البطاقة مع زملائك في خانة الملاحظات\n- ⚡ تابع ما يُستجد من عمليات و تطوّرات على البطاقة أو المهمة\n- 🚀 حافظ على مشروعك مُنسّقاً باستمرار.",
"Add board" : "إضافة لوح",
"Select the board to link to a project" : "تحديد اللوح لربطه بمشروع",
"Search by board title" : "بحث بواسطة عنوان اللوح",
"Select board" : "حدد لوح",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"Create a new card" : "أنشى بطاقة جديدة ",
"Select a board" : "حدد لوح",
"No lists available" : "لا يوجد قائمة متاحه ",
"Select a list" : "اختر قائمة ",
"Move card" : "حرك البطاقة",
"Card title" : "عنوان البطاقة ",
"Cancel" : "إلغاء",
"Creating the new card …" : "أنشى البطاقة الجديدة ",
"Card \"{card}\" was added to \"{board}\"" : "\"{بطاقة}\" تمت إضافتها في \"{اللوح}\"",
"Open card" : "فتح البطاقة ",
"Close" : "إغلاق",
"Create card" : "أنشى بطاقة ",
"Select a card" : "حدد بطاقة",
"Select the card to link to a project" : "حدد البطاقة لربطها بمشروع",
"Link to card" : "اربط بطاقة",
@@ -142,7 +131,6 @@
"Archived cards" : "البطاقات المؤرشفة",
"Add list" : "إضافة قائمة",
"List name" : "قامة اسماء",
"Active filters" : "فلاتر نشطة",
"Apply filter" : "تطبيق التصفية",
"Filter by tag" : "تصفية بواسطة الوسم",
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
@@ -154,49 +142,38 @@
"Next 30 days" : "ال 30 يوم القادمة",
"No due date" : "لا تاريخ إنجاز",
"Clear filter" : "ازل التصفية",
"View Modes" : "وضعيات العرض",
"Toggle View Modes" : "التبديل بين وضعيات العرض",
"Hide archived cards" : "إخفاء البطاقات المؤرشفة ",
"Show archived cards" : "اظهر البطاقات المؤرشفة",
"Toggle compact mode" : "تبديل النمط المضغوط",
"Hide card cover images" : "إخفِ صور غلاف البطاقات",
"Show card cover images" : "أظهِر صور غلاف البطاقات",
"Open details" : "افتح التفاصيل",
"Details" : "التفاصيل",
"Currently present people" : "أشخاص معروضون حاليّاً",
"Loading board" : "جارِ تحميل اللوح..",
"Board not found" : "اللوح غير موجود",
"No lists available" : "لا يوجد قائمة متاحه ",
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
"Board not found" : "اللوح غير موجود",
"Sharing" : "المشاركة",
"Tags" : "الوسوم",
"Deleted items" : "العناصر الممسوحة",
"Activity" : "النشاط",
"Timeline" : "الجدول الزمني",
"Deleted lists" : "القوائم المحذوفة",
"Undo" : "تراجع",
"Deleted cards" : "البطاقات المحذوفة",
"Share board with a user, group or team …" : "مشاركة اللوحة مع مستخدِم او مجموعة أو فريق ...",
"Searching for users, groups and teams …" : "البحث عن مستخدِمين، أو مجموعات، أو فِرَق",
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
"No participants found" : "لم يتم العثور على مشاركين",
"Board owner" : "منشئ اللوح",
"(Group)" : "(مجموعة)",
"(Team)" : "(الفريق)",
"(Circle)" : "(دائرة)",
"Can edit" : "يمكن تعديله",
"Can share" : "يمكن مشاركته",
"Can manage" : "يمكن إدارته",
"Owner" : "المالك",
"Delete" : "حذف ",
"Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل اللوحة {title} إلى {user} ؟",
"Transfer the board." : "نقل اللوحة.",
"Transfer" : "نقل",
"The board has been transferred to {user}" : "تمّ نقل اللوحة إلى {user}",
"Failed to transfer the board to {user}" : "تعذّر نقل اللوحة إلى {user}",
"Edit list title" : "عدّل اسم القائمة",
"Archive all cards" : "أرشفة جميع البطاقات ",
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
"Delete list" : "حذف القائمة",
"Archive all cards in this list" : "أرشفة جميع البطاقات في القائمة ",
"Unarchive all cards in this list" : "تراجع عن أرشفة كل البطاقات في هذه القائمة",
"Add a new card" : "إضافة بطاقة جديدة",
"Card name" : "اسم البطاقة ",
"List deleted" : "القائمة حٌذفت ",
@@ -205,16 +182,11 @@
"title and color value must be provided" : "العنوان و قيمة اللون يجب تقديمها ",
"Board name" : "اسم اللوح",
"Members" : "الاعضاء",
"Assign to users/groups/team" : "إسناد إلى مستخدِمين/مجموعات/فِرَق",
"Assign a user to this card…" : "انسب مستخدم الى هذه البطاقة..",
"Select a user to assign to this card…" : "حدِّد مستخدِماً ليتم إسناد هذه البطاقة له...",
"Upload new files" : "رفع ملفات جديدة",
"Share from Files" : "مشاركة من الملفات",
"Pending share" : "مشاركة مُعلّقة",
"Add this attachment" : "إضافة هذا المرفق",
"Show in Files" : "عرض في الملفات ",
"Download" : "تنزيل",
"Remove attachment" : "حذف المُرفق",
"Delete Attachment" : "مسح المرفق",
"Restore Attachment" : "إستعادة المرفق",
"File to share" : "ملف للمشاركة",
@@ -228,6 +200,18 @@
"The title cannot be empty." : "لا يمكن ترك العنوان فارغًا.",
"No comments yet. Begin the discussion!" : "لا يوجد تعليقات بعد, ابدأ النقاش الآن!",
"Failed to load comments" : "فشل في تحميل التعليقات ",
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
"Assign to users" : "انسب الى المتسخدمين",
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
"Assign a user to this card…" : "انسب مستخدم الى هذه البطاقة..",
"Due date" : "تاريخ الانجاز",
"Set a due date" : "تعيين تاريخ الانجاز",
"Remove due date" : "ازالة تاريخ الانجاز",
"Select Date" : "اختر التاريخ ",
"Today" : "اليوم",
"Tomorrow" : "غدا",
"Next week" : "الاسبوع القادم",
"Next month" : "الشهر القادم",
"Save" : "حفظ",
"The comment cannot be empty." : "التعليق لايمكن ان يكون فارغا.",
"The comment cannot be longer than 1000 characters." : "التعليق لا يمكن ان يكون اطول من 1000 حرف.",
@@ -235,7 +219,6 @@
"Cancel reply" : "إلغاء الرد",
"Reply" : "رد",
"Update" : "تحديث",
"Created:" : "تاريخ الإنشاء :",
"Description" : "الوصف",
"(Unsaved)" : "(غير محفوظ)",
"(Saving…)" : "(يُحفظ..)",
@@ -245,78 +228,30 @@
"Add Attachment" : "أضف ملحق",
"Write a description …" : "كتابة وصف...",
"Choose attachment" : "اختيار مرفق",
"Assign a due date to this card…" : "تعيين تاريخ استحقاق لهذه البطاقة...",
"Set a due date" : "تعيين تاريخ الانجاز",
"Add due date" : "أضِف تاريخ الاستحقاق",
"Choose a date" : "إختَر تاريخاً",
"Remove due date" : "ازالة تاريخ الانجاز",
"Completed" : "مُكتمل",
"Due at:" : "تاريخ الاستحقاق:",
"Not completed" : "غير مكتمل",
"Unarchive card" : "إلغاء أرشفة البطاقة ",
"Archive card" : "أرشفة البطاقة",
"Select Date" : "اختر التاريخ ",
"Set due date for later today" : "عيِّن آخِرَ هذا اليوم كموعدٍ لاستحقاق البطاقة",
"Set due date for tomorrow" : "عيِّن يوم الغد كموعدٍ لاستحقاق البطاقة",
"Set due date for this weekend" : "عيِّن نهاية هذا الأسبوع كموعدٍ لاستحقاق البطاقة",
"Set due date for next week" : "عيِّن الأسبوع المُقبل كموعدٍ لاستحقاق البطاقة",
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
"Select or create a tag…" : "إختَر أو أنشِئْ وسماً ...",
"Create a new tag:" : "إنشاء سِمَةٍ tag جديدة:",
"(group)" : "(مجموعة)",
"Next week {timeLocale}" : "الأسبوع القادم {timeLocale}",
"Todo items" : "قائمة المهام",
"{count} comments, {unread} unread" : "{عدد} التعليقات، {غير مقروءة} غير مقروءة",
"Edit card title" : "تعديل اسم القائمة",
"Card details" : "تفاصيل البطاقة",
"Assign to me" : "ينسب لي",
"Unassign myself" : "إلغاء تعييني ",
"Mark as not done" : "تمييز كـ \"غير منتهٍ\"",
"Mark as done" : مييز كمُنجَز",
"Move card" : "حرك البطاقة",
"Card details" : فاصيل البطاقة",
"Unarchive card" : "إلغاء أرشفة البطاقة ",
"Archive card" : "أرشفة البطاقة",
"Delete card" : "حذف البطاقة",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"Card deleted" : "البطاقة حٌذفت ",
"seconds ago" : "ثوانٍ مضت",
"Keyboard shortcuts" : "إختصارات لوحة المفاتيح",
"Boost your productivity using Deck with keyboard shortcuts." : "ضاعِف إنتاجيتك باستعمال \"رِزَم البطاقات\" Deck، و اختصارات لوحة المفاتيح ",
"Board actions" : "إجراءات اللوحة",
"Keyboard shortcut" : "إختصار لوحة المفاتيح",
"Action" : "الإجراء",
"Shift" : "العالي shift",
"Scroll" : "تحريك",
"Scroll sideways" : "تحريك للجنب",
"Navigate between cards" : "التنقُّل بين البطاقات",
"Esc" : "خروج",
"Close card details" : "أغلِق تفاصيل البطاقة",
"Ctrl" : "تحكم Ctrl",
"Search" : "بحث",
"Show card filters" : "أظهِر فلاتر البطاقة",
"Clear card filters" : "إمحُ فلاتر البطاقة",
"Show help dialog" : "أظهِر نافذة حوار المساعدة",
"Card actions" : "إجراءات البطاقة",
"The following actions can be triggered on the currently highlighted card" : "الإجراءات التالية يمكن تنفيذها على البطاقات المُعلّمة حالياً",
"Enter" : "إدخال",
"Space" : "المدى",
"Open card details" : "إفتَح تفاصيل البطاقة",
"Edit the card title" : "عدِّل عنوان البطاقة",
"Assign yourself to the current card" : "أسنِد هذه البطاقة إلى نفسِك",
"Archive/unarchive the current card" : "أرشِف أو ألغِ ترشيف البطاقة الحالية",
"Mark card as completed/not completed" : "علِّم بطاقة كـ\"منجزة\" أو \"غير منجزة\"",
"Open card menu" : "إفتَح قائمة البطاقات",
"All boards" : "جميع الالواح",
"Archived boards" : "الالواح المؤرشفة",
"Shared with you" : "تم مشاركتها معك",
"Deck settings" : "إعدادات رِزَمِ البطاقات",
"Use bigger card view" : "استخدام بطاقة عرض أكبر ",
"Show card ID badge" : "أعرض شارة رقم البطاقة",
"Show boards in calendar/tasks" : "إظهار اللوح في التقويم/المهام",
"Limit board creation to some groups" : "قَصْرُ حَقِّ إنشاء الألواح على بعض المجموعات ",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "المستخدِمون من خارج تلك المجموعات لن يمكنكم إنشاء لوحاتهم الخاصة؛ لكن يمكنهم العمل على اللوحات التي تتمّ مشاركتها معهم.",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
"Board details" : "تفاصيل لوح",
"Edit board" : "تعديل اللوح",
"Clone board" : "استنسخ اللوح",
"Unarchive board" : "إلغاء أرشفة اللوح",
"Archive board" : "أرشفة اللوح ",
"Export board" : "تصدير اللوحة",
"Turn on due date reminders" : "تفعيل التذكيرات للموعد المحدد ",
"Turn off due date reminders" : "إيقاف تشغيل التذكيرات للموعد المحددد",
"Due date reminders" : "تذكيرات الموعد المحدد ",
@@ -328,36 +263,14 @@
"Only assigned cards" : "البطاقات المخصصة فقط",
"No reminder" : "لا يوجد تذكير ",
"An error occurred" : "حدث خطأ",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "هل أنت متأكد من حذف اللوحة {title}؟ هذا سيؤدي إلى حذف كل بيانات هذه اللوحة بما في ذلك البطاقات المؤرشفة.",
"Delete the board?" : "مسح اللوح؟",
"Loading filtered view" : "جارِ تحميل التصفية ",
"Today" : "اليوم",
"Tomorrow" : "غدا",
"No due" : "غير محدد",
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
"No results found" : "لا يتم العثور على أي نتائج ",
"This weekend {timeLocale}" : "نهاية هذا الأسبوع {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "اسم اللوحة {name} \n* آخر تعديل لها في {lastMod}",
"{stack} in {board}" : "{stack} في {board}",
"Click to expand description" : "إضعط للتوسّع في الوصف",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* أُنشأت في {created}\n* آخر تعديل لها في {lastMod}\n* {nbAttachments} مُرفقات\n* {nbComments} مُلاحظات",
"{nbCards} cards" : "{nbCards} بطاقات",
"Click to expand comment" : "إضغط للتوسع في الملاحظات",
"Create a new card" : "أنشى بطاقة جديدة ",
"Card title" : "عنوان البطاقة ",
"Create card" : "أنشى بطاقة ",
"Creating the new card …" : "أنشى البطاقة الجديدة ",
"Card \"{card}\" was added to \"{board}\"" : "\"{بطاقة}\" تمت إضافتها في \"{اللوح}\"",
"Open card" : "فتح البطاقة ",
"Close" : "إغلاق",
"No upcoming cards" : "لا يوجد بطاقات قادمة ",
"upcoming cards today" : "البطاقات القادمة اليومَ",
"upcoming cards tomorrow" : "البطاقات القادمة غداً",
"upcoming cards" : "البطاقات القادمة",
"New card" : "بطاقة جديدة",
"Due on {date}" : "مطلوب في {date}",
"Tomorrow {timeLocale}" : "غداً {timeLocale}",
"Later today {timeLocale}" : "في وقت لاحقٍ اليوم {timeLocale}",
"Link to a board" : "ربط بلوح",
"Link to a card" : "ربط ببطاقة",
"Create a card" : "أنشى بطاقة ",
@@ -369,18 +282,7 @@
"Share with a Deck card" : "مشاركة مع بطاقة Deck",
"Share {file} with a Deck card" : "مشاركة الملف {file} مع بطاقة Deck",
"Share" : "مشاركة ",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>وصف البطاقة</strong>داخل تطبيق Deck قد تغيرت.",
"Timeline" : "الجدول الزمني",
"Share board with a user, group or circle …" : "مشاركة اللوح مع مستخدم،مجموعة أو دائرة ..",
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
"(Circle)" : "(دائرة)",
"Assign to users" : "انسب الى المتسخدمين",
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
"Due date" : "تاريخ الانجاز",
"Next week" : "الاسبوع القادم",
"Next month" : "الشهر القادم",
"List is empty" : "القائمة فارغة",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم."
"Add a new list" : "اضف قائمة جديدة",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "هل انت متأكد تريد مسح اللوح {title}؟ هذا سوف يمسح جميع بيانات هذا اللوح."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}

View File

@@ -1,59 +0,0 @@
OC.L10N.register(
"deck",
{
"Deck" : "Tarxeteru",
"Load more" : "Cargar más",
"Personal" : "Personal",
"copy" : "copia",
"Done" : "Fecho",
"The file was uploaded" : "Xubióse'l ficheru",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
"No file was uploaded" : "Nun se xubió nengún ficheru",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
"Cancel" : "Encaboxar",
"File already exists" : "El ficheru yá esiste",
"Open details" : "Abrir los detalles",
"Details" : "Detalles",
"Sharing" : "Comparticiñon",
"Tags" : "Etiquetes",
"Activity" : "Actividá",
"Undo" : "Desfacer",
"Owner" : "Propietariu",
"Delete" : "Desaniciar",
"Transfer" : "Tresferir",
"Edit" : "Editar",
"Members" : "Miembros",
"Show in Files" : "Amosar en Ficheros",
"Download" : "Baxar",
"Invalid path selected" : "Seleicionóse un camín inválidu",
"Comments" : "Comentarios",
"Modified" : "Modificóse",
"Failed to load comments" : "Nun se puen cargar los comentarios",
"Save" : "Guardar",
"Update" : "Anovar",
"Created:" : "Creóse'l",
"Description" : "Descripción",
"(Saving…)" : "(Guardando…)",
"Completed" : "Completáu",
"Not completed" : "Nun se completó",
"seconds ago" : "hai segundos",
"Keyboard shortcuts" : "Atayos del tecláu",
"Action" : "Aición",
"Ctrl" : "Ctrl",
"Search" : "Guetar",
"Shared with you" : "Compartióse contigo",
"All cards" : "Toles tarxetes",
"No notifications" : "Nun hai nengún avisu",
"An error occurred" : "Prodúxose un error",
"Today" : "Güei",
"Tomorrow" : "Mañana",
"Close" : "Zarrar",
"Error creating the share" : "Hebo un error al crear la compartición",
"Share" : "Compartir",
"Timeline" : "Llinia de tiempu"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,57 +0,0 @@
{ "translations": {
"Deck" : "Tarxeteru",
"Load more" : "Cargar más",
"Personal" : "Personal",
"copy" : "copia",
"Done" : "Fecho",
"The file was uploaded" : "Xubióse'l ficheru",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu supera la direutiva «upload_max_filesize» del ficheru php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu supera la direutiva «MAX_FILE_SIZE» que s'especificó nel formulariu HTML",
"No file was uploaded" : "Nun se xubió nengún ficheru",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "Nun se pudo escribir el ficheru nel discu",
"A PHP extension stopped the file upload" : "Una estensión PHP paró la xuba de ficheros",
"Invalid date, date format must be YYYY-MM-DD" : "La data ye inválida, el so formatu ha ser AAAA-MM-DD",
"Cancel" : "Encaboxar",
"File already exists" : "El ficheru yá esiste",
"Open details" : "Abrir los detalles",
"Details" : "Detalles",
"Sharing" : "Comparticiñon",
"Tags" : "Etiquetes",
"Activity" : "Actividá",
"Undo" : "Desfacer",
"Owner" : "Propietariu",
"Delete" : "Desaniciar",
"Transfer" : "Tresferir",
"Edit" : "Editar",
"Members" : "Miembros",
"Show in Files" : "Amosar en Ficheros",
"Download" : "Baxar",
"Invalid path selected" : "Seleicionóse un camín inválidu",
"Comments" : "Comentarios",
"Modified" : "Modificóse",
"Failed to load comments" : "Nun se puen cargar los comentarios",
"Save" : "Guardar",
"Update" : "Anovar",
"Created:" : "Creóse'l",
"Description" : "Descripción",
"(Saving…)" : "(Guardando…)",
"Completed" : "Completáu",
"Not completed" : "Nun se completó",
"seconds ago" : "hai segundos",
"Keyboard shortcuts" : "Atayos del tecláu",
"Action" : "Aición",
"Ctrl" : "Ctrl",
"Search" : "Guetar",
"Shared with you" : "Compartióse contigo",
"All cards" : "Toles tarxetes",
"No notifications" : "Nun hai nengún avisu",
"An error occurred" : "Prodúxose un error",
"Today" : "Güei",
"Tomorrow" : "Mañana",
"Close" : "Zarrar",
"Error creating the share" : "Hebo un error al crear la compartición",
"Share" : "Compartir",
"Timeline" : "Llinia de tiempu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -2,42 +2,31 @@ OC.L10N.register(
"deck",
{
"Personal" : "Şəxsi",
"Finished" : "Bitdi",
"Done" : "Done",
"The file was uploaded" : "Fayl yükləndi",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Yüklənmiş fayl php.ini-də upload_max_filesize direktivini aşır",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"The file was only partially uploaded" : "Fayl yalnız qismən yüklənib",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Could not write file to disk" : "Faylı diskə yazmaq mümkün olmadı",
"A PHP extension stopped the file upload" : "PHP uzantısı faylın yüklənməsini dayandırdı",
"Cancel" : "Dayandır",
"Close" : "Bağla",
"Details" : "Detallar",
"Sharing" : "Paylaşılır",
"Tags" : "Işarələr",
"Activity" : "Fəallıq",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Owner",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Download" : "Yüklə",
"Comments" : "Şərhlər",
"Modified" : "Dəyişdirildi",
"Today" : "Bu gün",
"Tomorrow" : "Sabah",
"Save" : "Saxla",
"Reply" : "Cavab",
"Update" : "Yenilənmə",
"Created:" : "Yaradıldı:",
"Description" : "Açıqlanma",
"Completed" : "Bitmişdir",
"(group)" : "(qrup)",
"seconds ago" : "saniyələr öncə",
"Search" : "Axtarış",
"Shared with you" : "Shared with you",
"Today" : "Bu gün",
"Tomorrow" : "Sabah",
"Close" : "Bağla",
"Share" : "Paylaş"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,41 +1,30 @@
{ "translations": {
"Personal" : "Şəxsi",
"Finished" : "Bitdi",
"Done" : "Done",
"The file was uploaded" : "Fayl yükləndi",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Yüklənmiş fayl php.ini-də upload_max_filesize direktivini aşır",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"The file was only partially uploaded" : "Fayl yalnız qismən yüklənib",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Could not write file to disk" : "Faylı diskə yazmaq mümkün olmadı",
"A PHP extension stopped the file upload" : "PHP uzantısı faylın yüklənməsini dayandırdı",
"Cancel" : "Dayandır",
"Close" : "Bağla",
"Details" : "Detallar",
"Sharing" : "Paylaşılır",
"Tags" : "Işarələr",
"Activity" : "Fəallıq",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Owner",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Download" : "Yüklə",
"Comments" : "Şərhlər",
"Modified" : "Dəyişdirildi",
"Today" : "Bu gün",
"Tomorrow" : "Sabah",
"Save" : "Saxla",
"Reply" : "Cavab",
"Update" : "Yenilənmə",
"Created:" : "Yaradıldı:",
"Description" : "Açıqlanma",
"Completed" : "Bitmişdir",
"(group)" : "(qrup)",
"seconds ago" : "saniyələr öncə",
"Search" : "Axtarış",
"Shared with you" : "Shared with you",
"Today" : "Bu gün",
"Tomorrow" : "Sabah",
"Close" : "Bağla",
"Share" : "Paylaş"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -63,6 +63,7 @@ OC.L10N.register(
"{user} has restored the attachment {attachment} to card {card}" : "{user} възстанови прикачения файл {attachment} към карта {card}",
"You have commented on card {card}" : "Коментирали сте карта {card}",
"{user} has commented on card {card}" : "{user} коментира карта {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
"Deck" : "Набор",
"Changes in the <strong>Deck app</strong>" : "Промени в <strong>приложението Deck</strong>",
"A <strong>comment</strong> was created on a card" : "На картата е създаден <strong>коментар</strong>",
@@ -115,12 +116,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Изберете таблото, което да свържете към проект",
"Search by board title" : "Търсене по заглавие на таблото",
"Select board" : "Избор на табло",
"Move card to another board" : "Преместване на картата на друго табло",
"Create a new card" : "Създаване на нова карта",
"Select a board" : "Избор на табло",
"No lists available" : "Няма налична списъци.",
"Select a list" : "Избор на списък",
"Move card" : "Преместване на карта",
"Card title" : "Заглавие на карта",
"Cancel" : "Отказ",
"Creating the new card …" : "Създаване на новата карта ...",
"Card \"{card}\" was added to \"{board}\"" : "Карта \"{card}\" беше добавена към \"{board}\"",
"Open card" : "Отваряне на карта",
"Close" : "Затваряне",
"Create card" : "Създаване на карта",
"Select a card" : "Избор на карта",
"Select the card to link to a project" : "Изберете картата, която да свържете към проект",
"Link to card" : "Връзка към карта",
@@ -154,18 +159,22 @@ OC.L10N.register(
"Details" : "Подробности",
"Currently present people" : "Хора присъстващи в момента",
"Loading board" : "Зареждане на табло",
"Board not found" : "Таблото не е намерено",
"No lists available" : "Няма налична списъци.",
"Create a new list to add cards to this board" : "Създайте нов списък, за да добавите карти към това табло",
"Board not found" : "Таблото не е намерено",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Deleted items" : "Изтрити елементи",
"Activity" : "Активност",
"Timeline" : "Времева линия",
"Deleted lists" : "Изтрити списъци",
"Undo" : "Отмяна",
"Deleted cards" : "Изтрити карти",
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
"No participants found" : "Няма намерени участници",
"Board owner" : "Собственик на табло",
"(Group)" : "(Група)",
"(Circle)" : "(Кръг)",
"Can edit" : "Може да редактира",
"Can share" : "Може да споделя",
"Can manage" : "Може да управлява",
@@ -191,7 +200,6 @@ OC.L10N.register(
"title and color value must be provided" : "трябва да се предоставят заглавие и стойност на цвета",
"Board name" : "Име на табло",
"Members" : "Членове",
"Assign a user to this card…" : "Зачисляване на потребител на тази карта ...",
"Upload new files" : "Качи нови файлове",
"Share from Files" : "Споделяне от Файлове",
"Pending share" : "Чакащо споделяне",
@@ -212,6 +220,18 @@ OC.L10N.register(
"The title cannot be empty." : "Заглавието не може да бъде празно.",
"No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!",
"Failed to load comments" : "Неуспешно зареждане на коментари",
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
"Assign to users" : "Зачисляване към потребители",
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
"Assign a user to this card…" : "Зачисляване на потребител на тази карта ...",
"Due date" : "Крайна дата",
"Set a due date" : "Задаване на крайна дата",
"Remove due date" : "Премахни крайната дата",
"Select Date" : "Изберете дата",
"Today" : "Днес",
"Tomorrow" : "Утре",
"Next week" : "Следваща седмица",
"Next month" : "Следващия месец",
"Save" : "Запазване",
"The comment cannot be empty." : "Коментарът не може да бъде празен.",
"The comment cannot be longer than 1000 characters." : "Коментарът не може да бъде по-дълъг от 1000 знака.",
@@ -219,7 +239,6 @@ OC.L10N.register(
"Cancel reply" : "Отказ на отговор",
"Reply" : "Отговори",
"Update" : "Обновяване",
"Created:" : "Създадено:",
"Description" : "Описание",
"(Unsaved)" : " (Незаписан)",
"(Saving…)" : "(Записване...)",
@@ -229,33 +248,21 @@ OC.L10N.register(
"Add Attachment" : "Добавяне на прикачен файл",
"Write a description …" : "Напишете описание ...",
"Choose attachment" : "Избор на прикачен файл",
"Set a due date" : "Задаване на крайна дата",
"Remove due date" : "Премахни крайната дата",
"Completed" : "Завършен",
"Not completed" : "Незавършен",
"Unarchive card" : "Разархивиране на карта",
"Archive card" : "Архивиране на карта",
"Select Date" : "Изберете дата",
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
"(group)" : "(група)",
"Todo items" : "Елементи на задача за изпълнение",
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочетени",
"Edit card title" : "Редактиране на заглавието на карта",
"Card details" : "Подробности за картата",
"Assign to me" : "Зачисляване към мен",
"Unassign myself" : "Отмяна на зачисляването към мен",
"Mark as done" : "Маркирай като готово",
"Move card" : "Преместване на карта",
"Card details" : "Подробности за картата",
"Unarchive card" : "Разархивиране на карта",
"Archive card" : "Архивиране на карта",
"Delete card" : "Изтриване на карта",
"Move card to another board" : "Преместване на картата на друго табло",
"List is empty" : "Списъкът е празен",
"Card deleted" : "Картата е изтрита",
"seconds ago" : "преди секунди",
"Keyboard shortcuts" : "Бързи клавиши",
"Keyboard shortcut" : "Клавишни комбинации",
"Action" : "Действие",
"Shift" : "Shift /бутон/",
"Ctrl" : "Ctrl /бутон/",
"Search" : "Търсене",
"Enter" : "Въвеждане",
"Space" : "Пространство",
"All boards" : "Всички табла",
"Archived boards" : "Архивирани табла",
"Shared with you" : "Споделени с вас",
@@ -263,6 +270,8 @@ OC.L10N.register(
"Use bigger card view" : "Използва по-голям изглед на картата",
"Show card ID badge" : "Показване на обозначение за самоличност на картата",
"Show boards in calendar/tasks" : "Показване на таблата в календар / задачи",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях.",
"Board details" : "Подробности за табло",
"Edit board" : "Редактиране на табло",
"Clone board" : " Клониране на табло",
@@ -283,8 +292,6 @@ OC.L10N.register(
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Сигурни ли сте, че искате да изтриете таблото {title}? Това ще изтрие всички данни на това табло, включително архивираните карти.",
"Delete the board?" : "Изтриване на таблото?",
"Loading filtered view" : "Зареждане на филтриран изглед",
"Today" : "Днес",
"Tomorrow" : "Утре",
"No due" : "Не се дължи",
"Search for {searchQuery} in all boards" : "Търсене на {searchQuery} във всички табла",
"No results found" : "Няма намерени резултати",
@@ -294,13 +301,6 @@ OC.L10N.register(
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Създаден на {created}\n* Последна промяна на {lastMod} \n* {nbAttachments} прикачени файлове \n* {nbComments} коментара",
"{nbCards} cards" : "{nbCards} карти",
"Click to expand comment" : "Кликване за разширяване на коментара",
"Create a new card" : "Създаване на нова карта",
"Card title" : "Заглавие на карта",
"Create card" : "Създаване на карта",
"Creating the new card …" : "Създаване на новата карта ...",
"Card \"{card}\" was added to \"{board}\"" : "Карта \"{card}\" беше добавена към \"{board}\"",
"Open card" : "Отваряне на карта",
"Close" : "Затваряне",
"No upcoming cards" : "Няма предстоящи карти",
"upcoming cards" : "предстоящи карти",
"New card" : "Нова карта",
@@ -316,18 +316,10 @@ OC.L10N.register(
"Share with a Deck card" : "Споделяне с Deck карта",
"Share {file} with a Deck card" : "Споделяне {file} с Deck карта",
"Share" : "Споделяне",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
"Timeline" : "Времева линия",
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
"(Circle)" : "(Кръг)",
"Assign to users" : "Зачисляване към потребители",
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
"Due date" : "Крайна дата",
"Next week" : "Следваща седмица",
"Next month" : "Следващия месец",
"List is empty" : "Списъкът е празен",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях."
"Are you sure you want to transfer the board {title} for {user}?" : "Сигурни ли сте че искате да прехвърлите таблото {title} на {user}?",
"Transfer the board for {user} successfully" : "Успешно прехвърляне на таблото към {user} ",
"Failed to transfer the board for {user}" : "Неуспешно прехвърляне на таблото към {user}",
"Add a new list" : "Добавяне на нов списък",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Сигурни ли сте, че искате да изтриете таблото {title}? Това ще изтрие всички данни на това табло."
},
"nplurals=2; plural=(n != 1);");

View File

@@ -61,6 +61,7 @@
"{user} has restored the attachment {attachment} to card {card}" : "{user} възстанови прикачения файл {attachment} към карта {card}",
"You have commented on card {card}" : "Коментирали сте карта {card}",
"{user} has commented on card {card}" : "{user} коментира карта {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
"Deck" : "Набор",
"Changes in the <strong>Deck app</strong>" : "Промени в <strong>приложението Deck</strong>",
"A <strong>comment</strong> was created on a card" : "На картата е създаден <strong>коментар</strong>",
@@ -113,12 +114,16 @@
"Select the board to link to a project" : "Изберете таблото, което да свържете към проект",
"Search by board title" : "Търсене по заглавие на таблото",
"Select board" : "Избор на табло",
"Move card to another board" : "Преместване на картата на друго табло",
"Create a new card" : "Създаване на нова карта",
"Select a board" : "Избор на табло",
"No lists available" : "Няма налична списъци.",
"Select a list" : "Избор на списък",
"Move card" : "Преместване на карта",
"Card title" : "Заглавие на карта",
"Cancel" : "Отказ",
"Creating the new card …" : "Създаване на новата карта ...",
"Card \"{card}\" was added to \"{board}\"" : "Карта \"{card}\" беше добавена към \"{board}\"",
"Open card" : "Отваряне на карта",
"Close" : "Затваряне",
"Create card" : "Създаване на карта",
"Select a card" : "Избор на карта",
"Select the card to link to a project" : "Изберете картата, която да свържете към проект",
"Link to card" : "Връзка към карта",
@@ -152,18 +157,22 @@
"Details" : "Подробности",
"Currently present people" : "Хора присъстващи в момента",
"Loading board" : "Зареждане на табло",
"Board not found" : "Таблото не е намерено",
"No lists available" : "Няма налична списъци.",
"Create a new list to add cards to this board" : "Създайте нов списък, за да добавите карти към това табло",
"Board not found" : "Таблото не е намерено",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Deleted items" : "Изтрити елементи",
"Activity" : "Активност",
"Timeline" : "Времева линия",
"Deleted lists" : "Изтрити списъци",
"Undo" : "Отмяна",
"Deleted cards" : "Изтрити карти",
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
"No participants found" : "Няма намерени участници",
"Board owner" : "Собственик на табло",
"(Group)" : "(Група)",
"(Circle)" : "(Кръг)",
"Can edit" : "Може да редактира",
"Can share" : "Може да споделя",
"Can manage" : "Може да управлява",
@@ -189,7 +198,6 @@
"title and color value must be provided" : "трябва да се предоставят заглавие и стойност на цвета",
"Board name" : "Име на табло",
"Members" : "Членове",
"Assign a user to this card…" : "Зачисляване на потребител на тази карта ...",
"Upload new files" : "Качи нови файлове",
"Share from Files" : "Споделяне от Файлове",
"Pending share" : "Чакащо споделяне",
@@ -210,6 +218,18 @@
"The title cannot be empty." : "Заглавието не може да бъде празно.",
"No comments yet. Begin the discussion!" : "Все още няма коментари. Започнете дискусията!",
"Failed to load comments" : "Неуспешно зареждане на коментари",
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
"Assign to users" : "Зачисляване към потребители",
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
"Assign a user to this card…" : "Зачисляване на потребител на тази карта ...",
"Due date" : "Крайна дата",
"Set a due date" : "Задаване на крайна дата",
"Remove due date" : "Премахни крайната дата",
"Select Date" : "Изберете дата",
"Today" : "Днес",
"Tomorrow" : "Утре",
"Next week" : "Следваща седмица",
"Next month" : "Следващия месец",
"Save" : "Запазване",
"The comment cannot be empty." : "Коментарът не може да бъде празен.",
"The comment cannot be longer than 1000 characters." : "Коментарът не може да бъде по-дълъг от 1000 знака.",
@@ -217,7 +237,6 @@
"Cancel reply" : "Отказ на отговор",
"Reply" : "Отговори",
"Update" : "Обновяване",
"Created:" : "Създадено:",
"Description" : "Описание",
"(Unsaved)" : " (Незаписан)",
"(Saving…)" : "(Записване...)",
@@ -227,33 +246,21 @@
"Add Attachment" : "Добавяне на прикачен файл",
"Write a description …" : "Напишете описание ...",
"Choose attachment" : "Избор на прикачен файл",
"Set a due date" : "Задаване на крайна дата",
"Remove due date" : "Премахни крайната дата",
"Completed" : "Завършен",
"Not completed" : "Незавършен",
"Unarchive card" : "Разархивиране на карта",
"Archive card" : "Архивиране на карта",
"Select Date" : "Изберете дата",
"Assign a tag to this card…" : "Присвояване на етикет на тази карта ...",
"(group)" : "(група)",
"Todo items" : "Елементи на задача за изпълнение",
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочетени",
"Edit card title" : "Редактиране на заглавието на карта",
"Card details" : "Подробности за картата",
"Assign to me" : "Зачисляване към мен",
"Unassign myself" : "Отмяна на зачисляването към мен",
"Mark as done" : "Маркирай като готово",
"Move card" : "Преместване на карта",
"Card details" : "Подробности за картата",
"Unarchive card" : "Разархивиране на карта",
"Archive card" : "Архивиране на карта",
"Delete card" : "Изтриване на карта",
"Move card to another board" : "Преместване на картата на друго табло",
"List is empty" : "Списъкът е празен",
"Card deleted" : "Картата е изтрита",
"seconds ago" : "преди секунди",
"Keyboard shortcuts" : "Бързи клавиши",
"Keyboard shortcut" : "Клавишни комбинации",
"Action" : "Действие",
"Shift" : "Shift /бутон/",
"Ctrl" : "Ctrl /бутон/",
"Search" : "Търсене",
"Enter" : "Въвеждане",
"Space" : "Пространство",
"All boards" : "Всички табла",
"Archived boards" : "Архивирани табла",
"Shared with you" : "Споделени с вас",
@@ -261,6 +268,8 @@
"Use bigger card view" : "Използва по-голям изглед на картата",
"Show card ID badge" : "Показване на обозначение за самоличност на картата",
"Show boards in calendar/tasks" : "Показване на таблата в календар / задачи",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях.",
"Board details" : "Подробности за табло",
"Edit board" : "Редактиране на табло",
"Clone board" : " Клониране на табло",
@@ -281,8 +290,6 @@
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Сигурни ли сте, че искате да изтриете таблото {title}? Това ще изтрие всички данни на това табло, включително архивираните карти.",
"Delete the board?" : "Изтриване на таблото?",
"Loading filtered view" : "Зареждане на филтриран изглед",
"Today" : "Днес",
"Tomorrow" : "Утре",
"No due" : "Не се дължи",
"Search for {searchQuery} in all boards" : "Търсене на {searchQuery} във всички табла",
"No results found" : "Няма намерени резултати",
@@ -292,13 +299,6 @@
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Създаден на {created}\n* Последна промяна на {lastMod} \n* {nbAttachments} прикачени файлове \n* {nbComments} коментара",
"{nbCards} cards" : "{nbCards} карти",
"Click to expand comment" : "Кликване за разширяване на коментара",
"Create a new card" : "Създаване на нова карта",
"Card title" : "Заглавие на карта",
"Create card" : "Създаване на карта",
"Creating the new card …" : "Създаване на новата карта ...",
"Card \"{card}\" was added to \"{board}\"" : "Карта \"{card}\" беше добавена към \"{board}\"",
"Open card" : "Отваряне на карта",
"Close" : "Затваряне",
"No upcoming cards" : "Няма предстоящи карти",
"upcoming cards" : "предстоящи карти",
"New card" : "Нова карта",
@@ -314,18 +314,10 @@
"Share with a Deck card" : "Споделяне с Deck карта",
"Share {file} with a Deck card" : "Споделяне {file} с Deck карта",
"Share" : "Споделяне",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описанието на картата</strong> в приложението Deck/набор/ е променено",
"Timeline" : "Времева линия",
"Share board with a user, group or circle …" : "Споделяне на таблото с потребител, група или кръг ...",
"Searching for users, groups and circles …" : "Търсене за потребители, групи и кръгове ...",
"(Circle)" : "(Кръг)",
"Assign to users" : "Зачисляване към потребители",
"Assign to users/groups/circles" : "Зачисляване към потребители/групи/кръгове",
"Due date" : "Крайна дата",
"Next week" : "Следваща седмица",
"Next month" : "Следващия месец",
"List is empty" : "Списъкът е празен",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях."
"Are you sure you want to transfer the board {title} for {user}?" : "Сигурни ли сте че искате да прехвърлите таблото {title} на {user}?",
"Transfer the board for {user} successfully" : "Успешно прехвърляне на таблото към {user} ",
"Failed to transfer the board for {user}" : "Неуспешно прехвърляне на таблото към {user}",
"Add a new list" : "Добавяне на нов списък",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Сигурни ли сте, че искате да изтриете таблото {title}? Това ще изтрие всички данни на това табло."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -7,10 +7,10 @@ OC.L10N.register(
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Cancel" : "বাতির",
"Close" : "বন্ধ",
"Details" : "বিসতারিত",
"Sharing" : "ভাগাভাগিরত",
"Tags" : "ট্যাগ",
"Activity" : "সক্রিয়তা",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Owner",
@@ -18,20 +18,15 @@ OC.L10N.register(
"Edit" : "সম্পাদনা",
"Download" : "ডাউনলোড",
"Modified" : "পরিবর্তিত",
"Today" : "আজ",
"Tomorrow" : "আগামীকাল",
"Save" : "সংরক্ষণ",
"Reply" : "জবাব",
"Update" : "পরিবর্ধন",
"Created:" : "তৈরীর নির্ঘন্টঃ",
"Description" : "বিবরণ",
"Completed" : "সুসম্পন্ন",
"(group)" : "(গোষ্ঠি)",
"seconds ago" : "সেকেন্ড পূর্বে",
"Keyboard shortcuts" : "কী-বোর্ড শর্টকাট",
"Search" : "Search",
"Shared with you" : "Shared with you",
"Today" : "আজ",
"Tomorrow" : "আগামীকাল",
"Close" : "বন্ধ",
"Share" : "ভাগাভাগি কর"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -5,10 +5,10 @@
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Cancel" : "বাতির",
"Close" : "বন্ধ",
"Details" : "বিসতারিত",
"Sharing" : "ভাগাভাগিরত",
"Tags" : "ট্যাগ",
"Activity" : "সক্রিয়তা",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Owner",
@@ -16,20 +16,15 @@
"Edit" : "সম্পাদনা",
"Download" : "ডাউনলোড",
"Modified" : "পরিবর্তিত",
"Today" : "আজ",
"Tomorrow" : "আগামীকাল",
"Save" : "সংরক্ষণ",
"Reply" : "জবাব",
"Update" : "পরিবর্ধন",
"Created:" : "তৈরীর নির্ঘন্টঃ",
"Description" : "বিবরণ",
"Completed" : "সুসম্পন্ন",
"(group)" : "(গোষ্ঠি)",
"seconds ago" : "সেকেন্ড পূর্বে",
"Keyboard shortcuts" : "কী-বোর্ড শর্টকাট",
"Search" : "Search",
"Shared with you" : "Shared with you",
"Today" : "আজ",
"Tomorrow" : "আগামীকাল",
"Close" : "বন্ধ",
"Share" : "ভাগাভাগি কর"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -5,15 +5,13 @@ OC.L10N.register(
"Finished" : "Achuet",
"copy" : "eil",
"Done" : "Graet",
"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" : "Arrest",
"Close" : "Seriñ",
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
"Details" : "Munudoù",
"Sharing" : "Rannan",
"Tags" : "Klavioù",
"Activity" : "Obererezh",
"Can edit" : "Posuple eo embann",
"Can share" : "Galout a ra rannañ",
"Owner" : "Perc'henner",
@@ -27,22 +25,18 @@ OC.L10N.register(
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
"Comments" : "Displegadennoù",
"Modified" : "Cheñchet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Next week" : "Sizhun a zeu",
"Next month" : "Miz a zeu",
"Save" : "Enrollañ",
"Reply" : "Respont",
"Update" : "Adnevesaat",
"Created:" : "Krouet :",
"Description" : "Diskrivadur",
"Completed" : "Achuet",
"(group)" : "(strollad)",
"seconds ago" : "eilenn zo",
"Search" : "Klask",
"Shared with you" : "Rannet ganeoc'h",
"No notifications" : "Kemenaden ebet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Close" : "Seriñ",
"Share" : "Rannan",
"Next week" : "Sizhun a zeu",
"Next month" : "Miz a zeu"
"Share" : "Rannan"
},
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");

View File

@@ -3,15 +3,13 @@
"Finished" : "Achuet",
"copy" : "eil",
"Done" : "Graet",
"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" : "Arrest",
"Close" : "Seriñ",
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
"Details" : "Munudoù",
"Sharing" : "Rannan",
"Tags" : "Klavioù",
"Activity" : "Obererezh",
"Can edit" : "Posuple eo embann",
"Can share" : "Galout a ra rannañ",
"Owner" : "Perc'henner",
@@ -25,22 +23,18 @@
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
"Comments" : "Displegadennoù",
"Modified" : "Cheñchet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Next week" : "Sizhun a zeu",
"Next month" : "Miz a zeu",
"Save" : "Enrollañ",
"Reply" : "Respont",
"Update" : "Adnevesaat",
"Created:" : "Krouet :",
"Description" : "Diskrivadur",
"Completed" : "Achuet",
"(group)" : "(strollad)",
"seconds ago" : "eilenn zo",
"Search" : "Klask",
"Shared with you" : "Rannet ganeoc'h",
"No notifications" : "Kemenaden ebet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Close" : "Seriñ",
"Share" : "Rannan",
"Next week" : "Sizhun a zeu",
"Next month" : "Miz a zeu"
"Share" : "Rannan"
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
}

View File

@@ -7,8 +7,8 @@ OC.L10N.register(
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Cancel" : "Otkaži",
"Close" : "Zatvori",
"Sharing" : "Dijeljenje",
"Activity" : "Aktivnost",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Vlasnik",
@@ -18,16 +18,12 @@ OC.L10N.register(
"Download" : "Preuzmi",
"Comments" : "Komentari",
"Modified" : "Izmijenjeno",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"Save" : "Spremi",
"Update" : "Ažuriraj",
"Description" : "Opis",
"Completed" : "Zavrženo",
"Keyboard shortcuts" : "Tipkovni prečaci",
"Search" : "Search",
"Shared with you" : "Shared with you",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"Close" : "Zatvori",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Share" : "Podjeli"
},

View File

@@ -5,8 +5,8 @@
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Cancel" : "Otkaži",
"Close" : "Zatvori",
"Sharing" : "Dijeljenje",
"Activity" : "Aktivnost",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Owner" : "Vlasnik",
@@ -16,16 +16,12 @@
"Download" : "Preuzmi",
"Comments" : "Komentari",
"Modified" : "Izmijenjeno",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"Save" : "Spremi",
"Update" : "Ažuriraj",
"Description" : "Opis",
"Completed" : "Zavrženo",
"Keyboard shortcuts" : "Tipkovni prečaci",
"Search" : "Search",
"Shared with you" : "Shared with you",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"Close" : "Zatvori",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Share" : "Podjeli"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"

View File

@@ -37,12 +37,8 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} té la targeta arxivada {card} a la llista {stack} al tauler {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Teniu una targeta no-arxchivada {card} a la llista {stack} al tauler {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} té una targeta no-arxivada {card} a la llista {stack} al tauler {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Heu marcat la targeta {card} com a feta a la llista {stack} del tauler {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcat la targeta {card} com a feta a la llista {stack} del tauler {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Heu marcat la targeta {card} com a desfeta a la llista {stack} del tauler {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcat la targeta {card} com a desfeta a la llista {stack} del tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {card}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {card}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de caducitat de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de caducitat de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de caducitat de la targeta {card} a {after}",
@@ -67,13 +63,10 @@ OC.L10N.register(
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}",
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Targetes",
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
"A <strong>board, list or card</strong> was changed" : "S'ha canviat un <strong>tauler, llista o targeta</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha creat un <strong>comentari</strong> a una targeta",
"A <strong>card description</strong> has been changed" : "S'ha canviat la <strong>descripció de la targeta</strong>",
"Cards due today" : "Targetes per avui",
"Cards due tomorrow" : "Targetes amb venciment demà",
"Upcoming cards" : "Pròximes targetes",
"Load more" : "Carrega'n més",
"Personal" : "Personal",
@@ -84,12 +77,11 @@ OC.L10N.register(
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {deck-board}.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {board}.",
"Deck board" : "Tauler de Deck",
"Owned by %1$s" : "Propietat de %1$s",
"Deck boards, cards and comments" : "Taulers, targetes i comentaris",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, a %2$s/%3$s, propietat de %4$s",
"Create a new deck card" : "Crea una nova targeta",
"Card comments" : "Comentaris de la targeta",
"%s on %s" : "%s a %s",
"Deck boards and cards" : "Taulers de piles i targetes",
@@ -124,12 +116,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler",
"Move card to another board" : "Mou la targeta a un altre tauler",
"Create a new card" : "Crea una nova targeta",
"Select a board" : "Selecciona un tauler",
"No lists available" : "No hi ha cap llista disponible",
"Select a list" : "Seleccioneu una llista",
"Move card" : "Mou la targeta",
"Card title" : "Títol de la targeta",
"Cancel" : "Cancel·la",
"Creating the new card …" : "Creant la nova targeta …",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"Create card" : "Crea una targeta",
"Select a card" : "Selecciona una targeta",
"Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte",
"Link to card" : "Enllaç a la targeta",
@@ -156,29 +152,29 @@ OC.L10N.register(
"Next 30 days" : "Pròxims 30 dies",
"No due date" : "Sense venciment",
"Clear filter" : "Esborra el filtre",
"View Modes" : "Modes de visualització",
"Toggle View Modes" : "Commuta els modes de visualització",
"Hide archived cards" : "Amaga les targetes arxivades",
"Show archived cards" : "Mostra les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Hide card cover images" : "Amaga les imatges de la portada de la targeta",
"Show card cover images" : "Mostra les imatges de la portada de la targeta",
"Open details" : "Obre els detalls",
"Details" : "Detalls",
"Currently present people" : "Persones presents actuals",
"Loading board" : "S'està carregant el tauler",
"Board not found" : "Tauler no trobat",
"No lists available" : "No hi ha cap llista disponible",
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
"Board not found" : "Tauler no trobat",
"Sharing" : "Compartició",
"Tags" : "Etiquetes",
"Deleted items" : "Elements suprimits",
"Activity" : "Activitat",
"Timeline" : "Línia de temps",
"Deleted lists" : "Llistes suprimides",
"Undo" : "Desfés",
"Deleted cards" : "Targetes suprimides",
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
"No participants found" : "No s'han trobat participants",
"Board owner" : "Propietari del tauler",
"(Group)" : "(Grup)",
"(Circle)" : "(Cercle)",
"Can edit" : "Pot editar",
"Can share" : "Pot compartir",
"Can manage" : "Pot gestionar",
@@ -190,7 +186,7 @@ OC.L10N.register(
"Transfer" : "Transferència",
"The board has been transferred to {user}" : "El tauler s'ha transferit a {user}",
"Failed to transfer the board to {user}" : "No s'ha pogut transferir el tauler a {user}",
"Edit list title" : "Edició del títol de la llista",
"Edit list title" : "Edita el títol de la llista",
"Archive all cards" : "Arxiva totes les targetes",
"Unarchive all cards" : "Desarxivar totes les targetes",
"Delete list" : "Suprimeix la llista",
@@ -204,7 +200,6 @@ OC.L10N.register(
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell",
"Members" : "Membres",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Upload new files" : "Pujada de nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
@@ -225,6 +220,18 @@ OC.L10N.register(
"The title cannot be empty." : "El títol no pot estar buit.",
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Due date" : "Data de caducitat",
"Set a due date" : "Definir una data de caducitat",
"Remove due date" : "Suprimeix la data de caducitat",
"Select Date" : "Selecciona la data",
"Today" : "Avui",
"Tomorrow" : "Demà",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"Save" : "Desa",
"The comment cannot be empty." : "El comentari no pot estar buit.",
"The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.",
@@ -232,7 +239,6 @@ OC.L10N.register(
"Cancel reply" : "Cancel·la la resposta",
"Reply" : "Respon",
"Update" : "Actualitza",
"Created:" : "Data de creació:",
"Description" : "Descripció",
"(Unsaved)" : "(No desat)",
"(Saving…)" : "(Desant…)",
@@ -242,70 +248,30 @@ OC.L10N.register(
"Add Attachment" : "Afegeix un adjunt",
"Write a description …" : "Escriviu una descripció …",
"Choose attachment" : "Triar adjunt",
"Assign a due date to this card…" : "Assigna una data de caducitat a aquesta targeta…",
"Set a due date" : "Definir una data de caducitat",
"Add due date" : "Afegeix una data de caducitat",
"Choose a date" : "Trieu una data",
"Remove due date" : "Suprimeix la data de caducitat",
"Completed" : "S'ha completat",
"Due at:" : "Venciment a:",
"Not completed" : "No completat",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Select Date" : "Selecciona la data",
"Set due date for later today" : "Estableix una data de caducitat per avui més tard",
"Set due date for tomorrow" : "Estableix data de caducitat per a demà",
"Set due date for this weekend" : "Estableix una data de caducitat per aquest cap de setmana",
"Set due date for next week" : "Estableix una data de caducitat per a la setmana vinent",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Create a new tag:" : "Crea una etiqueta nova:",
"(group)" : "(grup)",
"Next week {timeLocale}" : "La setmana següent: {timeLocale}",
"Todo items" : "Tasques pendents",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Edit card title" : "Edició del títol de la targeta",
"Card details" : "Detalls de la targeta",
"Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix",
"Mark as not done" : "Marca com no fet",
"Mark as done" : "Marcat com a fet",
"Move card" : "Mou la targeta",
"Card details" : "Detalls de la targeta",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Delete card" : "Suprimeix targeta",
"Move card to another board" : "Mou la targeta a un altre tauler",
"List is empty" : "La llista és buida",
"Card deleted" : "Targeta suprimida",
"seconds ago" : "fa uns segons",
"Keyboard shortcuts" : "Dreceres de teclat",
"Board actions" : "Accions de Tauler",
"Keyboard shortcut" : "Drecera de teclat",
"Action" : "Acció",
"Shift" : "Maj",
"Scroll" : "Desplaçament",
"Scroll sideways" : "Desplaçament de costat",
"Navigate between cards" : "Navega entre les targetes",
"Esc" : "Esc",
"Close card details" : "Tanca els detalls de la targeta",
"Ctrl" : "Ctrl",
"Search" : "Cercar",
"Show card filters" : "Mostra els filtres de la targeta",
"Clear card filters" : "Esborra els filtres de la targeta",
"Show help dialog" : "Mostra el diàleg d'ajuda",
"Card actions" : "Accions de la targeta",
"The following actions can be triggered on the currently highlighted card" : "Les accions següents es poden activar a la targeta actualitzada",
"Enter" : "Retorn",
"Space" : "Espai",
"Open card details" : "Obre els detalls de la targeta",
"Edit the card title" : "Edició del títol de la targeta",
"Assign yourself to the current card" : "Assigneu-vos a la targeta actual",
"Archive/unarchive the current card" : "Arxiva/desarxiva la targeta actual",
"Mark card as completed/not completed" : "Marca la targeta com a completada/no completada",
"Open card menu" : "Obre el menú de la targeta",
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres de Targetes",
"Deck settings" : "Paràmetres del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"Limit board creation to some groups" : "Limiteu la creació de taulers a alguns grups",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Els usuaris fora d'aquests grups no podran crear els seus propis taulers, però encara podran treballar en taulers que s'hagin compartit amb ells.",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"Board details" : "Detalls del tauler",
"Edit board" : "Edita el tauler",
"Clone board" : "Clonar tauler",
@@ -326,33 +292,19 @@ OC.L10N.register(
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Esteu segur que voleu suprimir el tauler {title}? Això suprimirà totes les dades d'aquest tauler, incloses les targetes arxivades.",
"Delete the board?" : "Voleu suprimir el tauler?",
"Loading filtered view" : "S'està carregant la visualització filtrada",
"Today" : "Avui",
"Tomorrow" : "Demà",
"No due" : "Sense venciment",
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
"No results found" : "No s'han trobat resultats",
"This weekend {timeLocale}" : "Aquest cap de setmana: {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Tauler de piles {name}\n* Última modificació el dia {lastMod}",
"{stack} in {board}" : "{stack} a {board}",
"Click to expand description" : "Feu clic per ampliar la descripció",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creat el {created}\n* Última modificació el dia {lastMod}\n* {nbAttachments} fitxers adjunts\n* {nbComments} comentaris",
"{nbCards} cards" : "{nbCards} targetes",
"Click to expand comment" : "Feu clic per ampliar el comentari",
"Create a new card" : "Crea una nova targeta",
"Card title" : "Títol de la targeta",
"Create card" : "Crea una targeta",
"Creating the new card …" : "Creant la nova targeta …",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards today" : "properes targetes avui",
"upcoming cards tomorrow" : "properes targetes demà",
"upcoming cards" : "pròximes targetes",
"New card" : "Nova targeta",
"Due on {date}" : "Venciment el dia {date}",
"Tomorrow {timeLocale}" : "Demà: {timeLocale}",
"Later today {timeLocale}" : "Avui més tard: {timeLocale}",
"Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta",
"Create a card" : "Crea una targeta",
@@ -364,18 +316,10 @@ OC.L10N.register(
"Share with a Deck card" : "Compartir amb una targeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} amb una targeta de Deck",
"Share" : "Compartir",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Timeline" : "Línia de temps",
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
"(Circle)" : "(Cercle)",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Due date" : "Data de caducitat",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"List is empty" : "La llista és buida",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells."
"Are you sure you want to transfer the board {title} for {user}?" : "Esteu segur que voleu transferir el tauler {title} per a {user}?",
"Transfer the board for {user} successfully" : "Transfereix el tauler per a {user} correctament",
"Failed to transfer the board for {user}" : "No s'ha pogut transferir el tauler per a {user}",
"Add a new list" : "Afegeix una llista nova",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler."
},
"nplurals=2; plural=(n != 1);");

View File

@@ -35,12 +35,8 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user} té la targeta arxivada {card} a la llista {stack} al tauler {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Teniu una targeta no-arxchivada {card} a la llista {stack} al tauler {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} té una targeta no-arxivada {card} a la llista {stack} al tauler {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Heu marcat la targeta {card} com a feta a la llista {stack} del tauler {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ha marcat la targeta {card} com a feta a la llista {stack} del tauler {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Heu marcat la targeta {card} com a desfeta a la llista {stack} del tauler {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ha marcat la targeta {card} com a desfeta a la llista {stack} del tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {card}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {card}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de caducitat de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de caducitat de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de caducitat de la targeta {card} a {after}",
@@ -65,13 +61,10 @@
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}",
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Targetes",
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
"A <strong>board, list or card</strong> was changed" : "S'ha canviat un <strong>tauler, llista o targeta</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha creat un <strong>comentari</strong> a una targeta",
"A <strong>card description</strong> has been changed" : "S'ha canviat la <strong>descripció de la targeta</strong>",
"Cards due today" : "Targetes per avui",
"Cards due tomorrow" : "Targetes amb venciment demà",
"Upcoming cards" : "Pròximes targetes",
"Load more" : "Carrega'n més",
"Personal" : "Personal",
@@ -82,12 +75,11 @@
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {deck-board}.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {board}.",
"Deck board" : "Tauler de Deck",
"Owned by %1$s" : "Propietat de %1$s",
"Deck boards, cards and comments" : "Taulers, targetes i comentaris",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, a %2$s/%3$s, propietat de %4$s",
"Create a new deck card" : "Crea una nova targeta",
"Card comments" : "Comentaris de la targeta",
"%s on %s" : "%s a %s",
"Deck boards and cards" : "Taulers de piles i targetes",
@@ -122,12 +114,16 @@
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler",
"Move card to another board" : "Mou la targeta a un altre tauler",
"Create a new card" : "Crea una nova targeta",
"Select a board" : "Selecciona un tauler",
"No lists available" : "No hi ha cap llista disponible",
"Select a list" : "Seleccioneu una llista",
"Move card" : "Mou la targeta",
"Card title" : "Títol de la targeta",
"Cancel" : "Cancel·la",
"Creating the new card …" : "Creant la nova targeta …",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"Create card" : "Crea una targeta",
"Select a card" : "Selecciona una targeta",
"Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte",
"Link to card" : "Enllaç a la targeta",
@@ -154,29 +150,29 @@
"Next 30 days" : "Pròxims 30 dies",
"No due date" : "Sense venciment",
"Clear filter" : "Esborra el filtre",
"View Modes" : "Modes de visualització",
"Toggle View Modes" : "Commuta els modes de visualització",
"Hide archived cards" : "Amaga les targetes arxivades",
"Show archived cards" : "Mostra les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Hide card cover images" : "Amaga les imatges de la portada de la targeta",
"Show card cover images" : "Mostra les imatges de la portada de la targeta",
"Open details" : "Obre els detalls",
"Details" : "Detalls",
"Currently present people" : "Persones presents actuals",
"Loading board" : "S'està carregant el tauler",
"Board not found" : "Tauler no trobat",
"No lists available" : "No hi ha cap llista disponible",
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
"Board not found" : "Tauler no trobat",
"Sharing" : "Compartició",
"Tags" : "Etiquetes",
"Deleted items" : "Elements suprimits",
"Activity" : "Activitat",
"Timeline" : "Línia de temps",
"Deleted lists" : "Llistes suprimides",
"Undo" : "Desfés",
"Deleted cards" : "Targetes suprimides",
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
"No participants found" : "No s'han trobat participants",
"Board owner" : "Propietari del tauler",
"(Group)" : "(Grup)",
"(Circle)" : "(Cercle)",
"Can edit" : "Pot editar",
"Can share" : "Pot compartir",
"Can manage" : "Pot gestionar",
@@ -188,7 +184,7 @@
"Transfer" : "Transferència",
"The board has been transferred to {user}" : "El tauler s'ha transferit a {user}",
"Failed to transfer the board to {user}" : "No s'ha pogut transferir el tauler a {user}",
"Edit list title" : "Edició del títol de la llista",
"Edit list title" : "Edita el títol de la llista",
"Archive all cards" : "Arxiva totes les targetes",
"Unarchive all cards" : "Desarxivar totes les targetes",
"Delete list" : "Suprimeix la llista",
@@ -202,7 +198,6 @@
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell",
"Members" : "Membres",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Upload new files" : "Pujada de nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
@@ -223,6 +218,18 @@
"The title cannot be empty." : "El títol no pot estar buit.",
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Due date" : "Data de caducitat",
"Set a due date" : "Definir una data de caducitat",
"Remove due date" : "Suprimeix la data de caducitat",
"Select Date" : "Selecciona la data",
"Today" : "Avui",
"Tomorrow" : "Demà",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"Save" : "Desa",
"The comment cannot be empty." : "El comentari no pot estar buit.",
"The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.",
@@ -230,7 +237,6 @@
"Cancel reply" : "Cancel·la la resposta",
"Reply" : "Respon",
"Update" : "Actualitza",
"Created:" : "Data de creació:",
"Description" : "Descripció",
"(Unsaved)" : "(No desat)",
"(Saving…)" : "(Desant…)",
@@ -240,70 +246,30 @@
"Add Attachment" : "Afegeix un adjunt",
"Write a description …" : "Escriviu una descripció …",
"Choose attachment" : "Triar adjunt",
"Assign a due date to this card…" : "Assigna una data de caducitat a aquesta targeta…",
"Set a due date" : "Definir una data de caducitat",
"Add due date" : "Afegeix una data de caducitat",
"Choose a date" : "Trieu una data",
"Remove due date" : "Suprimeix la data de caducitat",
"Completed" : "S'ha completat",
"Due at:" : "Venciment a:",
"Not completed" : "No completat",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Select Date" : "Selecciona la data",
"Set due date for later today" : "Estableix una data de caducitat per avui més tard",
"Set due date for tomorrow" : "Estableix data de caducitat per a demà",
"Set due date for this weekend" : "Estableix una data de caducitat per aquest cap de setmana",
"Set due date for next week" : "Estableix una data de caducitat per a la setmana vinent",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Create a new tag:" : "Crea una etiqueta nova:",
"(group)" : "(grup)",
"Next week {timeLocale}" : "La setmana següent: {timeLocale}",
"Todo items" : "Tasques pendents",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Edit card title" : "Edició del títol de la targeta",
"Card details" : "Detalls de la targeta",
"Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix",
"Mark as not done" : "Marca com no fet",
"Mark as done" : "Marcat com a fet",
"Move card" : "Mou la targeta",
"Card details" : "Detalls de la targeta",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Delete card" : "Suprimeix targeta",
"Move card to another board" : "Mou la targeta a un altre tauler",
"List is empty" : "La llista és buida",
"Card deleted" : "Targeta suprimida",
"seconds ago" : "fa uns segons",
"Keyboard shortcuts" : "Dreceres de teclat",
"Board actions" : "Accions de Tauler",
"Keyboard shortcut" : "Drecera de teclat",
"Action" : "Acció",
"Shift" : "Maj",
"Scroll" : "Desplaçament",
"Scroll sideways" : "Desplaçament de costat",
"Navigate between cards" : "Navega entre les targetes",
"Esc" : "Esc",
"Close card details" : "Tanca els detalls de la targeta",
"Ctrl" : "Ctrl",
"Search" : "Cercar",
"Show card filters" : "Mostra els filtres de la targeta",
"Clear card filters" : "Esborra els filtres de la targeta",
"Show help dialog" : "Mostra el diàleg d'ajuda",
"Card actions" : "Accions de la targeta",
"The following actions can be triggered on the currently highlighted card" : "Les accions següents es poden activar a la targeta actualitzada",
"Enter" : "Retorn",
"Space" : "Espai",
"Open card details" : "Obre els detalls de la targeta",
"Edit the card title" : "Edició del títol de la targeta",
"Assign yourself to the current card" : "Assigneu-vos a la targeta actual",
"Archive/unarchive the current card" : "Arxiva/desarxiva la targeta actual",
"Mark card as completed/not completed" : "Marca la targeta com a completada/no completada",
"Open card menu" : "Obre el menú de la targeta",
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres de Targetes",
"Deck settings" : "Paràmetres del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"Limit board creation to some groups" : "Limiteu la creació de taulers a alguns grups",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Els usuaris fora d'aquests grups no podran crear els seus propis taulers, però encara podran treballar en taulers que s'hagin compartit amb ells.",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"Board details" : "Detalls del tauler",
"Edit board" : "Edita el tauler",
"Clone board" : "Clonar tauler",
@@ -324,33 +290,19 @@
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Esteu segur que voleu suprimir el tauler {title}? Això suprimirà totes les dades d'aquest tauler, incloses les targetes arxivades.",
"Delete the board?" : "Voleu suprimir el tauler?",
"Loading filtered view" : "S'està carregant la visualització filtrada",
"Today" : "Avui",
"Tomorrow" : "Demà",
"No due" : "Sense venciment",
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
"No results found" : "No s'han trobat resultats",
"This weekend {timeLocale}" : "Aquest cap de setmana: {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Tauler de piles {name}\n* Última modificació el dia {lastMod}",
"{stack} in {board}" : "{stack} a {board}",
"Click to expand description" : "Feu clic per ampliar la descripció",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creat el {created}\n* Última modificació el dia {lastMod}\n* {nbAttachments} fitxers adjunts\n* {nbComments} comentaris",
"{nbCards} cards" : "{nbCards} targetes",
"Click to expand comment" : "Feu clic per ampliar el comentari",
"Create a new card" : "Crea una nova targeta",
"Card title" : "Títol de la targeta",
"Create card" : "Crea una targeta",
"Creating the new card …" : "Creant la nova targeta …",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards today" : "properes targetes avui",
"upcoming cards tomorrow" : "properes targetes demà",
"upcoming cards" : "pròximes targetes",
"New card" : "Nova targeta",
"Due on {date}" : "Venciment el dia {date}",
"Tomorrow {timeLocale}" : "Demà: {timeLocale}",
"Later today {timeLocale}" : "Avui més tard: {timeLocale}",
"Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta",
"Create a card" : "Crea una targeta",
@@ -362,18 +314,10 @@
"Share with a Deck card" : "Compartir amb una targeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} amb una targeta de Deck",
"Share" : "Compartir",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Timeline" : "Línia de temps",
"Share board with a user, group or circle …" : "Compartir tauler amb un usuari, grup o cercle …",
"Searching for users, groups and circles …" : "Buscant usuaris, grups i cercles …",
"(Circle)" : "(Cercle)",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Due date" : "Data de caducitat",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"List is empty" : "La llista és buida",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells."
"Are you sure you want to transfer the board {title} for {user}?" : "Esteu segur que voleu transferir el tauler {title} per a {user}?",
"Transfer the board for {user} successfully" : "Transfereix el tauler per a {user} correctament",
"Failed to transfer the board for {user}" : "No s'ha pogut transferir el tauler per a {user}",
"Add a new list" : "Afegeix una llista nova",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -37,10 +37,6 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} ve sloupci {stack} na tabuli {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Zrušili jste archivacii karty {card} ve sloupci {stack} na tabuli {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} ve sloupci {stack} na tabuli {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Označili jste kartu {card} jako splněnou v seznamu {stack} na tabuli {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} označil(a) {card} jako splněnou {stack} na tabuli {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Zrušili jste označení karty {card} jako splněné v seznamu {stack} na tabuli {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} zrušil(a) označení {card} jako splněné {stack} na tabuli {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín u karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín u karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín u karty {card} na {after}",
@@ -67,13 +63,10 @@ OC.L10N.register(
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>aplikaci Deck</strong>",
"A <strong>board, list or card</strong> was changed" : "<strong>tabule, seznam nebo karta</strong> byla změněna",
"A <strong>comment</strong> was created on a card" : "Na kartě byl vytvořen <strong>komentář</strong>",
"A <strong>card description</strong> has been changed" : "<strong>Popis karty</strong> byl změněn",
"Cards due today" : "Karty, kterým končí termín dnes",
"Cards due tomorrow" : "Karty, které mají termín zítra",
"Upcoming cards" : "Nadcházející karty",
"Load more" : "Načíst více",
"Personal" : "Osobní",
@@ -89,7 +82,6 @@ OC.L10N.register(
"Owned by %1$s" : "Vlastní %1$s",
"Deck boards, cards and comments" : "Tabule, karty a komentáře aplikace Deck",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Od %1$s, v %2$s/%3$s, vlastní %4$s",
"Create a new deck card" : "Vytvořit novou kartu v Deck",
"Card comments" : "Komentáře v kartách",
"%s on %s" : "%s na %s",
"Deck boards and cards" : "Tabule a karty aplikace Deck",
@@ -124,12 +116,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Vyberte tabuli kterou propojit s projektem",
"Search by board title" : "Hledat podle názvu tabule",
"Select board" : "Vybrat tabuli",
"Move card to another board" : "Přesunout kartu na jinou tabuli",
"Create a new card" : "Vytvořit novou kartu",
"Select a board" : "Vybrat tabuli",
"No lists available" : "Nejsou k dispozici žádné seznamy",
"Select a list" : "Vyberte sloupec",
"Move card" : "Přesunout kartu",
"Card title" : "Název karty",
"Cancel" : "Storno",
"Creating the new card …" : "Vytváření nové karty…",
"Card \"{card}\" was added to \"{board}\"" : "Karta „{card}“ byla přidána na „{board}“",
"Open card" : "Otevřít kartu",
"Close" : "Zavřít",
"Create card" : "Vytvořit kartu",
"Select a card" : "Vybrat kartu",
"Select the card to link to a project" : "Vyberte kartu kterou propojit s projektem",
"Link to card" : "Propojit s kartou",
@@ -156,29 +152,29 @@ OC.L10N.register(
"Next 30 days" : "Příštích 30 dnů",
"No due date" : "Žádný termín",
"Clear filter" : "Vyčistit filtr",
"View Modes" : "Zobrazit režimy",
"Toggle View Modes" : "Přepnout mezi režimy zobrazení",
"Hide archived cards" : "Skrýt archivované karty",
"Show archived cards" : "Zobrazit archivované karty",
"Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Hide card cover images" : "Skrýt obrázky přebalu karet",
"Show card cover images" : "Zobrazit obrázky přebalu karet",
"Open details" : "Otevřít podrobnosti",
"Open details" : "Otevřít podorobnosti",
"Details" : "Podrobnosti",
"Currently present people" : "Nyní přítomní lidé",
"Loading board" : "Načítání tabule",
"Board not found" : "Tabule nenalezena",
"No lists available" : "Nejsou k dispozici žádné seznamy",
"Create a new list to add cards to this board" : "Pro přidání karet na tuto tabuli vytvořte nový seznam",
"Board not found" : "Tabule nenalezena",
"Sharing" : "Sdílení",
"Tags" : "Štítky",
"Deleted items" : "Smazané položky",
"Activity" : "Aktivita",
"Timeline" : "Časová osa",
"Deleted lists" : "Smazané seznamy",
"Undo" : "Vrátit zpět",
"Deleted cards" : "Smazané karty",
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
"No participants found" : "Nenalezeni žádní účastníci",
"Board owner" : "Vlastník tabule",
"(Group)" : "(Skupina)",
"(Circle)" : "(Okruh)",
"Can edit" : "Může upravovat",
"Can share" : "Může sdílet",
"Can manage" : "Může spravovat",
@@ -204,7 +200,6 @@ OC.L10N.register(
"title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
"Board name" : "Název tabule",
"Members" : "Členové",
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"Upload new files" : "Nahrát nové soubory",
"Share from Files" : "Sdílet ze Souborů",
"Pending share" : "Čekající sdílení",
@@ -225,6 +220,18 @@ OC.L10N.register(
"The title cannot be empty." : "Nadpis je třeba vyplnit.",
"No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
"Failed to load comments" : "Načtení komentářů se nezdařilo",
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Assign to users" : "Přiřadit k uživatelům",
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"Due date" : "Termín",
"Set a due date" : "Vybrat termín",
"Remove due date" : "Odstranit termín",
"Select Date" : "Vybrat datum",
"Today" : "Dnes",
"Tomorrow" : "Zítra",
"Next week" : "Příští týden",
"Next month" : "Příští měsíc",
"Save" : "Uložit",
"The comment cannot be empty." : "Komentář je třeba vyplnit.",
"The comment cannot be longer than 1000 characters." : "Délka komentáře může být nejvýše 1 000 znaků.",
@@ -232,7 +239,6 @@ OC.L10N.register(
"Cancel reply" : "Zrušit odpověď",
"Reply" : "Odpovědět",
"Update" : "Aktualizovat",
"Created:" : "Vytvořeno:",
"Description" : "Popis",
"(Unsaved)" : "(Neuloženo)",
"(Saving…)" : "(Ukládání…)",
@@ -242,58 +248,21 @@ OC.L10N.register(
"Add Attachment" : "Přidat přílohu",
"Write a description …" : "Zadejte popis…",
"Choose attachment" : "Zvolte přílohu",
"Assign a due date to this card…" : "Přiradit této kartě termín…",
"Set a due date" : "Vybrat termín",
"Add due date" : "Přidat termín",
"Choose a date" : "Zvolit datum",
"Remove due date" : "Odstranit termín",
"Completed" : "Dokončeno",
"Due at:" : "Termín v:",
"Not completed" : "Nedokončeno",
"Unarchive card" : "Zrušit archivaci karty",
"Archive card" : "Archivovat kartu",
"Select Date" : "Vybrat datum",
"Set due date for later today" : "Nastavit termín na dnešek",
"Set due date for tomorrow" : "Nastavit termín na zítřek",
"Set due date for this weekend" : "Nastavit termín na tento týden",
"Set due date for next week" : "Nastavit termín na příští týden",
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Create a new tag:" : "Vytvořit nový štítek:",
"(group)" : "(skupina)",
"Next week {timeLocale}" : "Příští týden {timeLocale}",
"Todo items" : "Položky k udělání",
"{count} comments, {unread} unread" : "{count} komentářů, {unread} nepřečtených",
"Edit card title" : "Upravit nadpis karty",
"Card details" : "Podrobnosti o kartě",
"Assign to me" : "Přiřadit mě",
"Unassign myself" : "Zrušit přiřazení sobě",
"Mark as not done" : "Označit jako nehotové",
"Mark as done" : "Označit jako hotové",
"Move card" : "Přesunout kartu",
"Card details" : "Podrobnosti o kartě",
"Unarchive card" : "Zrušit archivaci karty",
"Archive card" : "Archivovat kartu",
"Delete card" : "Smazat kartu",
"Move card to another board" : "Přesunout kartu na jinou tabuli",
"List is empty" : "Seznam je prázdný",
"Card deleted" : "Karta smazána",
"seconds ago" : "před několika sekundami",
"Keyboard shortcuts" : "Klávesové zkratky",
"Board actions" : "Akce ohledně tabule",
"Keyboard shortcut" : "Klávesová zkratka",
"Action" : "Akce",
"Shift" : "Shift",
"Navigate between cards" : "Pohyb mezi kartami",
"Close card details" : "Zavřít podrobnosti o kartě",
"Ctrl" : "Ctrl",
"Search" : "Hledat",
"Show card filters" : "Zobrazit filtry karty",
"Clear card filters" : "Vyčistit filtry karty",
"Show help dialog" : "Zobrazit dialog nápovědy",
"Card actions" : "Akce ohledně karty",
"The following actions can be triggered on the currently highlighted card" : "Na právě zvýrazněné kartě je možné spustit následující akce",
"Enter" : "Konec řádku",
"Space" : "Mezera",
"Open card details" : "Otevřít podrobnosti o kartě",
"Edit the card title" : "Upravit nadpis karty",
"Assign yourself to the current card" : "Přiřadit stávající kartu sobě",
"Archive/unarchive the current card" : "Zaarchivovat / zrušit archivaci stávající karty",
"Mark card as completed/not completed" : "Označit kartu jako (ne)dokončenou",
"Open card menu" : "Otevřít nabídku karty",
"All boards" : "Všechny tabule",
"Archived boards" : "Archivované tabule",
"Shared with you" : "Sdíleno s vámi",
@@ -301,8 +270,8 @@ OC.L10N.register(
"Use bigger card view" : "Použít větší zobrazení karet",
"Show card ID badge" : "Zobrazit odznáček s identifikátorem karty",
"Show boards in calendar/tasks" : "Zobrazit tabule v kalendáři/úkolech",
"Limit board creation to some groups" : "Umožnit vytváření tabulí pouze vybraným skupinám",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Uživatelé, kteří nejsou členy těchto skupin nebudou moci vytvářet své vlastní tabule, ale pořád budou moci pracovat na tabulích, které jim byly nasdíleny.",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváře vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",
"Board details" : "Podrobnosti o tabuli",
"Edit board" : "Upravit tabuli",
"Clone board" : "Klonovat tabuli",
@@ -323,33 +292,19 @@ OC.L10N.register(
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Opravdu chcete tabuli {title} smazat? Toto smaže veškerá data této tabule, včetně archivovaných karet.",
"Delete the board?" : "Smazat tabuli?",
"Loading filtered view" : "Načítání filtrovaného pohledu",
"Today" : "Dnes",
"Tomorrow" : "Zítra",
"No due" : "Žádný termín",
"Search for {searchQuery} in all boards" : "Hledat {searchQuery} na všech tabulích",
"No results found" : "Nenalezeny žádné výsledky",
"This weekend {timeLocale}" : "Tento víkend {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Deck karta {name}\n* Naposledy změněno {lastMod}",
"{stack} in {board}" : "{stack} v {board}",
"Click to expand description" : "Popis rozbalíte kliknutím",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Vytvořeno {created}\n* Naposledy upraveno {lastMod}\n* {nbAttachments} příloh\n* {nbComments} komentářů",
"{nbCards} cards" : "{nbCards} karet",
"Click to expand comment" : "Komentář rozbalíte kliknutím",
"Create a new card" : "Vytvořit novou kartu",
"Card title" : "Název karty",
"Create card" : "Vytvořit kartu",
"Creating the new card …" : "Vytváření nové karty…",
"Card \"{card}\" was added to \"{board}\"" : "Karta „{card}“ byla přidána na „{board}“",
"Open card" : "Otevřít kartu",
"Close" : "Zavřít",
"No upcoming cards" : "Žádné nadcházející karty",
"upcoming cards today" : "nadcházející karty na dnešek",
"upcoming cards tomorrow" : "nadcházející karty na zítřek",
"upcoming cards" : "nadcházející karty",
"New card" : "Nová karta",
"Due on {date}" : "Termín {date}",
"Tomorrow {timeLocale}" : "Zítra {timeLocale}",
"Later today {timeLocale}" : "Později dnes {timeLocale}",
"Link to a board" : "Propojit s tabulí",
"Link to a card" : "Propojit s kartou",
"Create a card" : "Vytvořit kartu",
@@ -361,18 +316,10 @@ OC.L10N.register(
"Share with a Deck card" : "Sdílet s kartou aplikace Deck",
"Share {file} with a Deck card" : "Sdílet {file} s kartou aplikace Deck",
"Share" : "Sdílet",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Timeline" : "Časová osa",
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
"(Circle)" : "(Okruh)",
"Assign to users" : "Přiřadit k uživatelům",
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
"Due date" : "Termín",
"Next week" : "Příští týden",
"Next month" : "Příští měsíc",
"List is empty" : "Seznam je prázdný",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny."
"Are you sure you want to transfer the board {title} for {user}?" : "Opravdu chcete předat vlastnictví tabule {title} uživateli {user}?",
"Transfer the board for {user} successfully" : "Předání vlastnictví tabule uživateli {user} úspěšné",
"Failed to transfer the board for {user}" : "Nepodařilo se předat vlastnictví tabule uživateli {user}",
"Add a new list" : "Přidat nový sloupec",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");

View File

@@ -35,10 +35,6 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} ve sloupci {stack} na tabuli {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Zrušili jste archivacii karty {card} ve sloupci {stack} na tabuli {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} ve sloupci {stack} na tabuli {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Označili jste kartu {card} jako splněnou v seznamu {stack} na tabuli {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} označil(a) {card} jako splněnou {stack} na tabuli {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Zrušili jste označení karty {card} jako splněné v seznamu {stack} na tabuli {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} zrušil(a) označení {card} jako splněné {stack} na tabuli {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín u karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín u karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín u karty {card} na {after}",
@@ -65,13 +61,10 @@
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>aplikaci Deck</strong>",
"A <strong>board, list or card</strong> was changed" : "<strong>tabule, seznam nebo karta</strong> byla změněna",
"A <strong>comment</strong> was created on a card" : "Na kartě byl vytvořen <strong>komentář</strong>",
"A <strong>card description</strong> has been changed" : "<strong>Popis karty</strong> byl změněn",
"Cards due today" : "Karty, kterým končí termín dnes",
"Cards due tomorrow" : "Karty, které mají termín zítra",
"Upcoming cards" : "Nadcházející karty",
"Load more" : "Načíst více",
"Personal" : "Osobní",
@@ -87,7 +80,6 @@
"Owned by %1$s" : "Vlastní %1$s",
"Deck boards, cards and comments" : "Tabule, karty a komentáře aplikace Deck",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Od %1$s, v %2$s/%3$s, vlastní %4$s",
"Create a new deck card" : "Vytvořit novou kartu v Deck",
"Card comments" : "Komentáře v kartách",
"%s on %s" : "%s na %s",
"Deck boards and cards" : "Tabule a karty aplikace Deck",
@@ -122,12 +114,16 @@
"Select the board to link to a project" : "Vyberte tabuli kterou propojit s projektem",
"Search by board title" : "Hledat podle názvu tabule",
"Select board" : "Vybrat tabuli",
"Move card to another board" : "Přesunout kartu na jinou tabuli",
"Create a new card" : "Vytvořit novou kartu",
"Select a board" : "Vybrat tabuli",
"No lists available" : "Nejsou k dispozici žádné seznamy",
"Select a list" : "Vyberte sloupec",
"Move card" : "Přesunout kartu",
"Card title" : "Název karty",
"Cancel" : "Storno",
"Creating the new card …" : "Vytváření nové karty…",
"Card \"{card}\" was added to \"{board}\"" : "Karta „{card}“ byla přidána na „{board}“",
"Open card" : "Otevřít kartu",
"Close" : "Zavřít",
"Create card" : "Vytvořit kartu",
"Select a card" : "Vybrat kartu",
"Select the card to link to a project" : "Vyberte kartu kterou propojit s projektem",
"Link to card" : "Propojit s kartou",
@@ -154,29 +150,29 @@
"Next 30 days" : "Příštích 30 dnů",
"No due date" : "Žádný termín",
"Clear filter" : "Vyčistit filtr",
"View Modes" : "Zobrazit režimy",
"Toggle View Modes" : "Přepnout mezi režimy zobrazení",
"Hide archived cards" : "Skrýt archivované karty",
"Show archived cards" : "Zobrazit archivované karty",
"Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Hide card cover images" : "Skrýt obrázky přebalu karet",
"Show card cover images" : "Zobrazit obrázky přebalu karet",
"Open details" : "Otevřít podrobnosti",
"Open details" : "Otevřít podorobnosti",
"Details" : "Podrobnosti",
"Currently present people" : "Nyní přítomní lidé",
"Loading board" : "Načítání tabule",
"Board not found" : "Tabule nenalezena",
"No lists available" : "Nejsou k dispozici žádné seznamy",
"Create a new list to add cards to this board" : "Pro přidání karet na tuto tabuli vytvořte nový seznam",
"Board not found" : "Tabule nenalezena",
"Sharing" : "Sdílení",
"Tags" : "Štítky",
"Deleted items" : "Smazané položky",
"Activity" : "Aktivita",
"Timeline" : "Časová osa",
"Deleted lists" : "Smazané seznamy",
"Undo" : "Vrátit zpět",
"Deleted cards" : "Smazané karty",
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
"No participants found" : "Nenalezeni žádní účastníci",
"Board owner" : "Vlastník tabule",
"(Group)" : "(Skupina)",
"(Circle)" : "(Okruh)",
"Can edit" : "Může upravovat",
"Can share" : "Může sdílet",
"Can manage" : "Může spravovat",
@@ -202,7 +198,6 @@
"title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
"Board name" : "Název tabule",
"Members" : "Členové",
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"Upload new files" : "Nahrát nové soubory",
"Share from Files" : "Sdílet ze Souborů",
"Pending share" : "Čekající sdílení",
@@ -223,6 +218,18 @@
"The title cannot be empty." : "Nadpis je třeba vyplnit.",
"No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
"Failed to load comments" : "Načtení komentářů se nezdařilo",
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Assign to users" : "Přiřadit k uživatelům",
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"Due date" : "Termín",
"Set a due date" : "Vybrat termín",
"Remove due date" : "Odstranit termín",
"Select Date" : "Vybrat datum",
"Today" : "Dnes",
"Tomorrow" : "Zítra",
"Next week" : "Příští týden",
"Next month" : "Příští měsíc",
"Save" : "Uložit",
"The comment cannot be empty." : "Komentář je třeba vyplnit.",
"The comment cannot be longer than 1000 characters." : "Délka komentáře může být nejvýše 1 000 znaků.",
@@ -230,7 +237,6 @@
"Cancel reply" : "Zrušit odpověď",
"Reply" : "Odpovědět",
"Update" : "Aktualizovat",
"Created:" : "Vytvořeno:",
"Description" : "Popis",
"(Unsaved)" : "(Neuloženo)",
"(Saving…)" : "(Ukládání…)",
@@ -240,58 +246,21 @@
"Add Attachment" : "Přidat přílohu",
"Write a description …" : "Zadejte popis…",
"Choose attachment" : "Zvolte přílohu",
"Assign a due date to this card…" : "Přiradit této kartě termín…",
"Set a due date" : "Vybrat termín",
"Add due date" : "Přidat termín",
"Choose a date" : "Zvolit datum",
"Remove due date" : "Odstranit termín",
"Completed" : "Dokončeno",
"Due at:" : "Termín v:",
"Not completed" : "Nedokončeno",
"Unarchive card" : "Zrušit archivaci karty",
"Archive card" : "Archivovat kartu",
"Select Date" : "Vybrat datum",
"Set due date for later today" : "Nastavit termín na dnešek",
"Set due date for tomorrow" : "Nastavit termín na zítřek",
"Set due date for this weekend" : "Nastavit termín na tento týden",
"Set due date for next week" : "Nastavit termín na příští týden",
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Create a new tag:" : "Vytvořit nový štítek:",
"(group)" : "(skupina)",
"Next week {timeLocale}" : "Příští týden {timeLocale}",
"Todo items" : "Položky k udělání",
"{count} comments, {unread} unread" : "{count} komentářů, {unread} nepřečtených",
"Edit card title" : "Upravit nadpis karty",
"Card details" : "Podrobnosti o kartě",
"Assign to me" : "Přiřadit mě",
"Unassign myself" : "Zrušit přiřazení sobě",
"Mark as not done" : "Označit jako nehotové",
"Mark as done" : "Označit jako hotové",
"Move card" : "Přesunout kartu",
"Card details" : "Podrobnosti o kartě",
"Unarchive card" : "Zrušit archivaci karty",
"Archive card" : "Archivovat kartu",
"Delete card" : "Smazat kartu",
"Move card to another board" : "Přesunout kartu na jinou tabuli",
"List is empty" : "Seznam je prázdný",
"Card deleted" : "Karta smazána",
"seconds ago" : "před několika sekundami",
"Keyboard shortcuts" : "Klávesové zkratky",
"Board actions" : "Akce ohledně tabule",
"Keyboard shortcut" : "Klávesová zkratka",
"Action" : "Akce",
"Shift" : "Shift",
"Navigate between cards" : "Pohyb mezi kartami",
"Close card details" : "Zavřít podrobnosti o kartě",
"Ctrl" : "Ctrl",
"Search" : "Hledat",
"Show card filters" : "Zobrazit filtry karty",
"Clear card filters" : "Vyčistit filtry karty",
"Show help dialog" : "Zobrazit dialog nápovědy",
"Card actions" : "Akce ohledně karty",
"The following actions can be triggered on the currently highlighted card" : "Na právě zvýrazněné kartě je možné spustit následující akce",
"Enter" : "Konec řádku",
"Space" : "Mezera",
"Open card details" : "Otevřít podrobnosti o kartě",
"Edit the card title" : "Upravit nadpis karty",
"Assign yourself to the current card" : "Přiřadit stávající kartu sobě",
"Archive/unarchive the current card" : "Zaarchivovat / zrušit archivaci stávající karty",
"Mark card as completed/not completed" : "Označit kartu jako (ne)dokončenou",
"Open card menu" : "Otevřít nabídku karty",
"All boards" : "Všechny tabule",
"Archived boards" : "Archivované tabule",
"Shared with you" : "Sdíleno s vámi",
@@ -299,8 +268,8 @@
"Use bigger card view" : "Použít větší zobrazení karet",
"Show card ID badge" : "Zobrazit odznáček s identifikátorem karty",
"Show boards in calendar/tasks" : "Zobrazit tabule v kalendáři/úkolech",
"Limit board creation to some groups" : "Umožnit vytváření tabulí pouze vybraným skupinám",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Uživatelé, kteří nejsou členy těchto skupin nebudou moci vytvářet své vlastní tabule, ale pořád budou moci pracovat na tabulích, které jim byly nasdíleny.",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváře vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",
"Board details" : "Podrobnosti o tabuli",
"Edit board" : "Upravit tabuli",
"Clone board" : "Klonovat tabuli",
@@ -321,33 +290,19 @@
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Opravdu chcete tabuli {title} smazat? Toto smaže veškerá data této tabule, včetně archivovaných karet.",
"Delete the board?" : "Smazat tabuli?",
"Loading filtered view" : "Načítání filtrovaného pohledu",
"Today" : "Dnes",
"Tomorrow" : "Zítra",
"No due" : "Žádný termín",
"Search for {searchQuery} in all boards" : "Hledat {searchQuery} na všech tabulích",
"No results found" : "Nenalezeny žádné výsledky",
"This weekend {timeLocale}" : "Tento víkend {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Deck karta {name}\n* Naposledy změněno {lastMod}",
"{stack} in {board}" : "{stack} v {board}",
"Click to expand description" : "Popis rozbalíte kliknutím",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Vytvořeno {created}\n* Naposledy upraveno {lastMod}\n* {nbAttachments} příloh\n* {nbComments} komentářů",
"{nbCards} cards" : "{nbCards} karet",
"Click to expand comment" : "Komentář rozbalíte kliknutím",
"Create a new card" : "Vytvořit novou kartu",
"Card title" : "Název karty",
"Create card" : "Vytvořit kartu",
"Creating the new card …" : "Vytváření nové karty…",
"Card \"{card}\" was added to \"{board}\"" : "Karta „{card}“ byla přidána na „{board}“",
"Open card" : "Otevřít kartu",
"Close" : "Zavřít",
"No upcoming cards" : "Žádné nadcházející karty",
"upcoming cards today" : "nadcházející karty na dnešek",
"upcoming cards tomorrow" : "nadcházející karty na zítřek",
"upcoming cards" : "nadcházející karty",
"New card" : "Nová karta",
"Due on {date}" : "Termín {date}",
"Tomorrow {timeLocale}" : "Zítra {timeLocale}",
"Later today {timeLocale}" : "Později dnes {timeLocale}",
"Link to a board" : "Propojit s tabulí",
"Link to a card" : "Propojit s kartou",
"Create a card" : "Vytvořit kartu",
@@ -359,18 +314,10 @@
"Share with a Deck card" : "Sdílet s kartou aplikace Deck",
"Share {file} with a Deck card" : "Sdílet {file} s kartou aplikace Deck",
"Share" : "Sdílet",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Timeline" : "Časová osa",
"Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"Searching for users, groups and circles …" : "Hledání v uživatelích, skupinách a okruzích…",
"(Circle)" : "(Okruh)",
"Assign to users" : "Přiřadit k uživatelům",
"Assign to users/groups/circles" : "Přiřadit uživatelům/skupinám/okruhům",
"Due date" : "Termín",
"Next week" : "Příští týden",
"Next month" : "Příští měsíc",
"List is empty" : "Seznam je prázdný",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny."
"Are you sure you want to transfer the board {title} for {user}?" : "Opravdu chcete předat vlastnictví tabule {title} uživateli {user}?",
"Transfer the board for {user} successfully" : "Předání vlastnictví tabule uživateli {user} úspěšné",
"Failed to transfer the board for {user}" : "Nepodařilo se předat vlastnictví tabule uživateli {user}",
"Add a new list" : "Přidat nový sloupec",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}

View File

@@ -2,15 +2,14 @@ OC.L10N.register(
"deck",
{
"Personal" : "Personol",
"%s on %s" : "%s ar %s",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML",
"No file was uploaded" : "Ni lwythwyd ffeil i fyny",
"Missing a temporary folder" : "Plygell dros dro yn eisiau",
"Cancel" : "Diddymu",
"Close" : "Cau",
"Details" : "Manylion",
"Tags" : "Tagiau",
"Activity" : "Gweithred",
"Undo" : "Dadwneud",
"Can edit" : "Can edit",
"Can share" : "Can share",
@@ -19,21 +18,17 @@ OC.L10N.register(
"Edit" : "Golygu",
"Download" : "Llwytho i lawr",
"Modified" : "Addaswyd",
"Select Date" : "Dewis Dyddiad",
"Today" : "Heddiw",
"Next week" : "Wythnos nesaf",
"Next month" : "Mis nesaf",
"Save" : "Cadw",
"Update" : "Diweddaru",
"Created:" : "Crewyd:",
"Description" : "Disgrifiad",
"Select Date" : "Dewis Dyddiad",
"seconds ago" : "eiliad yn ôl",
"Keyboard shortcuts" : "Llwybrau byr bysellfwrdd",
"Search" : "Chwilio",
"Shared with you" : "Shared with you",
"No reminder" : "Dim nodyn atgoffa",
"An error occurred" : "Digwyddodd gwall",
"Today" : "Heddiw",
"Close" : "Cau",
"Share" : "Rhannu",
"Next week" : "Wythnos nesaf",
"Next month" : "Mis nesaf"
"Share" : "Rhannu"
},
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");

View File

@@ -1,14 +1,13 @@
{ "translations": {
"Personal" : "Personol",
"%s on %s" : "%s ar %s",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML",
"No file was uploaded" : "Ni lwythwyd ffeil i fyny",
"Missing a temporary folder" : "Plygell dros dro yn eisiau",
"Cancel" : "Diddymu",
"Close" : "Cau",
"Details" : "Manylion",
"Tags" : "Tagiau",
"Activity" : "Gweithred",
"Undo" : "Dadwneud",
"Can edit" : "Can edit",
"Can share" : "Can share",
@@ -17,21 +16,17 @@
"Edit" : "Golygu",
"Download" : "Llwytho i lawr",
"Modified" : "Addaswyd",
"Select Date" : "Dewis Dyddiad",
"Today" : "Heddiw",
"Next week" : "Wythnos nesaf",
"Next month" : "Mis nesaf",
"Save" : "Cadw",
"Update" : "Diweddaru",
"Created:" : "Crewyd:",
"Description" : "Disgrifiad",
"Select Date" : "Dewis Dyddiad",
"seconds ago" : "eiliad yn ôl",
"Keyboard shortcuts" : "Llwybrau byr bysellfwrdd",
"Search" : "Chwilio",
"Shared with you" : "Shared with you",
"No reminder" : "Dim nodyn atgoffa",
"An error occurred" : "Digwyddodd gwall",
"Today" : "Heddiw",
"Close" : "Cau",
"Share" : "Rhannu",
"Next week" : "Wythnos nesaf",
"Next month" : "Mis nesaf"
"Share" : "Rhannu"
},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
}

View File

@@ -67,12 +67,11 @@ OC.L10N.register(
"Select the board to link to a project" : "Vælg en tavle at linke til et projekt",
"Search by board title" : "Søg efter tavle titel",
"Select board" : "Vælg tavle",
"Move card to another board" : "Flyt kort til en anden tavle",
"Select a board" : "Vælg én tavle",
"No lists available" : "Ingen kolonner tilgængelige",
"Select a list" : "Vælg en kolonne",
"Move card" : "Flyt kort",
"Cancel" : "Annullér",
"Close" : "Luk",
"Create card" : "Opret kort",
"Select a card" : "Vælg et kort",
"Select the card to link to a project" : "Vælg et kort at linke til et projekt",
"Link to card" : "Link til kort",
@@ -104,18 +103,22 @@ OC.L10N.register(
"Open details" : "Mere information",
"Details" : "Detaljer",
"Loading board" : "Indlæser tavle",
"Board not found" : "Tavle ikke fundet.",
"No lists available" : "Ingen kolonner tilgængelige",
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
"Board not found" : "Tavle ikke fundet.",
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Deleted items" : "Slettede objekter",
"Activity" : "Aktivitet",
"Timeline" : "Tidslinje",
"Deleted lists" : "Slettede kolonner",
"Undo" : "Fortryd",
"Deleted cards" : "Sletttede kort",
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
"No participants found" : "Ingen deltagere fundet",
"Board owner" : "Ejer af tavlen",
"(Group)" : "(Gruppe)",
"(Circle)" : "(Cirkel)",
"Can edit" : "Kan redigere",
"Can share" : "Kan dele",
"Can manage" : "Kan administrere",
@@ -134,7 +137,6 @@ OC.L10N.register(
"title and color value must be provided" : "Titel og farve skal angives.",
"Board name" : "Tavle navn",
"Members" : "Medlemmer",
"Assign a user to this card…" : "Tildel en bruger til dette kort",
"Upload new files" : "Upload nye filer",
"Share from Files" : "Del fra Filer",
"Add this attachment" : "Tilføj denne vedhæftning",
@@ -152,13 +154,24 @@ OC.L10N.register(
"Created" : "Oprettet",
"The title cannot be empty." : "Titlen kan ikke være tom",
"No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!",
"Assign a tag to this card…" : "Tilføj et mærkat til dette kort ...",
"Assign to users" : "Tildel til brugere",
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
"Assign a user to this card…" : "Tildel en bruger til dette kort",
"Due date" : "Forfaldsdato",
"Set a due date" : "Sæt en forfaldsdato",
"Remove due date" : "Fjern forfaldsdato",
"Select Date" : "Vælg dato",
"Today" : "I dag",
"Tomorrow" : "I morgen",
"Next week" : "Næste uge",
"Next month" : "Næste måned",
"Save" : "Gem",
"The comment cannot be empty." : "Kommentaren kan ikke være tom.",
"The comment cannot be longer than 1000 characters." : "Kommentaren kan ikke være længere end 1000 tegn.",
"In reply to" : "som svar til",
"Reply" : "Besvar",
"Update" : "Opdatér",
"Created:" : "Oprettet:",
"Description" : "Beskrivelse",
"(Unsaved)" : "(Ikke gemt)",
"(Saving…)" : "(Gemmer...)",
@@ -168,33 +181,24 @@ OC.L10N.register(
"Add Attachment" : "Tilføj vedhæftning",
"Write a description …" : "Tilføj en beskrivelse...",
"Choose attachment" : "Vælg en vedhæftning",
"Set a due date" : "Sæt en forfaldsdato",
"Remove due date" : "Fjern forfaldsdato",
"Completed" : "Fuldført",
"Not completed" : "Ikke afsluttet",
"Unarchive card" : "Gen-aktivér kort",
"Archive card" : "Arkivér kort",
"Select Date" : "Vælg dato",
"Assign a tag to this card…" : "Tilføj et mærkat til dette kort ...",
"(group)" : "(gruppe)",
"Card details" : "Kort detaljer",
"Assign to me" : "Tildel til mig",
"Unassign myself" : "Fjern mig selv",
"Mark as done" : "Marker som færdig",
"Move card" : "Flyt kort",
"Card details" : "Kort detaljer",
"Unarchive card" : "Gen-aktivér kort",
"Archive card" : "Arkivér kort",
"Delete card" : "Slet kort",
"Move card to another board" : "Flyt kort til en anden tavle",
"Card deleted" : "Kort slettet",
"seconds ago" : "sekunder siden",
"Keyboard shortcuts" : "Tastaturgenveje",
"Keyboard shortcut" : "Tastaturgenvej",
"Action" : "Handling",
"Shift" : "Shift",
"Ctrl" : "Ctrl",
"Search" : "Søg",
"seconds ago" : "sekunder siden",
"All boards" : "Alle tavler",
"Archived boards" : "Arkiverede lister",
"Shared with you" : "Shared with you",
"Use bigger card view" : "Brug større kort visning",
"Show boards in calendar/tasks" : "Vis tavler i kalender/opgaver",
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Begrænsning af Deck vil blokere brugere som ikke er en del af de valgte grupper fra at oprette deres egne tavler. Brugere vil stadig kunne arbejde på tavler der er blevet delt med dem. ",
"Board details" : "Liste detaljer",
"Edit board" : "Rediger liste",
"Clone board" : "Klon tavle",
@@ -213,11 +217,7 @@ OC.L10N.register(
"An error occurred" : "Der var en fejl",
"Delete the board?" : "Slet tavlen?",
"Loading filtered view" : "Indlæser filtreret visning",
"Today" : "I dag",
"Tomorrow" : "I morgen",
"No due" : "Ikke forfalden",
"Create card" : "Opret kort",
"Close" : "Luk",
"No upcoming cards" : "Ingen kommende kort",
"upcoming cards" : "kommende kort",
"Link to a board" : "Link til tavle",
@@ -230,16 +230,7 @@ OC.L10N.register(
"Share with a Deck card" : "Del med et Deck kort",
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
"Share" : "Del",
"Timeline" : "Tidslinje",
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
"(Circle)" : "(Cirkel)",
"Assign to users" : "Tildel til brugere",
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
"Due date" : "Forfaldsdato",
"Next week" : "Næste uge",
"Next month" : "Næste måned",
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Begrænsning af Deck vil blokere brugere som ikke er en del af de valgte grupper fra at oprette deres egne tavler. Brugere vil stadig kunne arbejde på tavler der er blevet delt med dem. "
"Add a new list" : "Tilføj en ny kolonne",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Er du sikker på du vil slette tavlen {title}? Dette vil slette alt data på tavlen."
},
"nplurals=2; plural=(n != 1);");

View File

@@ -65,12 +65,11 @@
"Select the board to link to a project" : "Vælg en tavle at linke til et projekt",
"Search by board title" : "Søg efter tavle titel",
"Select board" : "Vælg tavle",
"Move card to another board" : "Flyt kort til en anden tavle",
"Select a board" : "Vælg én tavle",
"No lists available" : "Ingen kolonner tilgængelige",
"Select a list" : "Vælg en kolonne",
"Move card" : "Flyt kort",
"Cancel" : "Annullér",
"Close" : "Luk",
"Create card" : "Opret kort",
"Select a card" : "Vælg et kort",
"Select the card to link to a project" : "Vælg et kort at linke til et projekt",
"Link to card" : "Link til kort",
@@ -102,18 +101,22 @@
"Open details" : "Mere information",
"Details" : "Detaljer",
"Loading board" : "Indlæser tavle",
"Board not found" : "Tavle ikke fundet.",
"No lists available" : "Ingen kolonner tilgængelige",
"Create a new list to add cards to this board" : "Opret en ny kolonne for at tilføje kort til denne tavle ",
"Board not found" : "Tavle ikke fundet.",
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Deleted items" : "Slettede objekter",
"Activity" : "Aktivitet",
"Timeline" : "Tidslinje",
"Deleted lists" : "Slettede kolonner",
"Undo" : "Fortryd",
"Deleted cards" : "Sletttede kort",
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
"No participants found" : "Ingen deltagere fundet",
"Board owner" : "Ejer af tavlen",
"(Group)" : "(Gruppe)",
"(Circle)" : "(Cirkel)",
"Can edit" : "Kan redigere",
"Can share" : "Kan dele",
"Can manage" : "Kan administrere",
@@ -132,7 +135,6 @@
"title and color value must be provided" : "Titel og farve skal angives.",
"Board name" : "Tavle navn",
"Members" : "Medlemmer",
"Assign a user to this card…" : "Tildel en bruger til dette kort",
"Upload new files" : "Upload nye filer",
"Share from Files" : "Del fra Filer",
"Add this attachment" : "Tilføj denne vedhæftning",
@@ -150,13 +152,24 @@
"Created" : "Oprettet",
"The title cannot be empty." : "Titlen kan ikke være tom",
"No comments yet. Begin the discussion!" : "Ingen kommentarer endnu. Begynd diskussionen!",
"Assign a tag to this card…" : "Tilføj et mærkat til dette kort ...",
"Assign to users" : "Tildel til brugere",
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
"Assign a user to this card…" : "Tildel en bruger til dette kort",
"Due date" : "Forfaldsdato",
"Set a due date" : "Sæt en forfaldsdato",
"Remove due date" : "Fjern forfaldsdato",
"Select Date" : "Vælg dato",
"Today" : "I dag",
"Tomorrow" : "I morgen",
"Next week" : "Næste uge",
"Next month" : "Næste måned",
"Save" : "Gem",
"The comment cannot be empty." : "Kommentaren kan ikke være tom.",
"The comment cannot be longer than 1000 characters." : "Kommentaren kan ikke være længere end 1000 tegn.",
"In reply to" : "som svar til",
"Reply" : "Besvar",
"Update" : "Opdatér",
"Created:" : "Oprettet:",
"Description" : "Beskrivelse",
"(Unsaved)" : "(Ikke gemt)",
"(Saving…)" : "(Gemmer...)",
@@ -166,33 +179,24 @@
"Add Attachment" : "Tilføj vedhæftning",
"Write a description …" : "Tilføj en beskrivelse...",
"Choose attachment" : "Vælg en vedhæftning",
"Set a due date" : "Sæt en forfaldsdato",
"Remove due date" : "Fjern forfaldsdato",
"Completed" : "Fuldført",
"Not completed" : "Ikke afsluttet",
"Unarchive card" : "Gen-aktivér kort",
"Archive card" : "Arkivér kort",
"Select Date" : "Vælg dato",
"Assign a tag to this card…" : "Tilføj et mærkat til dette kort ...",
"(group)" : "(gruppe)",
"Card details" : "Kort detaljer",
"Assign to me" : "Tildel til mig",
"Unassign myself" : "Fjern mig selv",
"Mark as done" : "Marker som færdig",
"Move card" : "Flyt kort",
"Card details" : "Kort detaljer",
"Unarchive card" : "Gen-aktivér kort",
"Archive card" : "Arkivér kort",
"Delete card" : "Slet kort",
"Move card to another board" : "Flyt kort til en anden tavle",
"Card deleted" : "Kort slettet",
"seconds ago" : "sekunder siden",
"Keyboard shortcuts" : "Tastaturgenveje",
"Keyboard shortcut" : "Tastaturgenvej",
"Action" : "Handling",
"Shift" : "Shift",
"Ctrl" : "Ctrl",
"Search" : "Søg",
"seconds ago" : "sekunder siden",
"All boards" : "Alle tavler",
"Archived boards" : "Arkiverede lister",
"Shared with you" : "Shared with you",
"Use bigger card view" : "Brug større kort visning",
"Show boards in calendar/tasks" : "Vis tavler i kalender/opgaver",
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Begrænsning af Deck vil blokere brugere som ikke er en del af de valgte grupper fra at oprette deres egne tavler. Brugere vil stadig kunne arbejde på tavler der er blevet delt med dem. ",
"Board details" : "Liste detaljer",
"Edit board" : "Rediger liste",
"Clone board" : "Klon tavle",
@@ -211,11 +215,7 @@
"An error occurred" : "Der var en fejl",
"Delete the board?" : "Slet tavlen?",
"Loading filtered view" : "Indlæser filtreret visning",
"Today" : "I dag",
"Tomorrow" : "I morgen",
"No due" : "Ikke forfalden",
"Create card" : "Opret kort",
"Close" : "Luk",
"No upcoming cards" : "Ingen kommende kort",
"upcoming cards" : "kommende kort",
"Link to a board" : "Link til tavle",
@@ -228,16 +228,7 @@
"Share with a Deck card" : "Del med et Deck kort",
"Share {file} with a Deck card" : "Del {file} med et Deck kort",
"Share" : "Del",
"Timeline" : "Tidslinje",
"Share board with a user, group or circle …" : "Del tavle med en bruger, gruppe eller cirkel ...",
"Searching for users, groups and circles …" : "Leder efter brugere, grupper og cirkler ...",
"(Circle)" : "(Cirkel)",
"Assign to users" : "Tildel til brugere",
"Assign to users/groups/circles" : "Tildel til brugere/grupper/cirkler",
"Due date" : "Forfaldsdato",
"Next week" : "Næste uge",
"Next month" : "Næste måned",
"Limit deck usage of groups" : "Begræns Deck brug til grupper",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Begrænsning af Deck vil blokere brugere som ikke er en del af de valgte grupper fra at oprette deres egne tavler. Brugere vil stadig kunne arbejde på tavler der er blevet delt med dem. "
"Add a new list" : "Tilføj en ny kolonne",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Er du sikker på du vil slette tavlen {title}? Dette vil slette alt data på tavlen."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -37,10 +37,6 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"You have marked the card {card} as done in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} als erledigt markiert.",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} als erledigt markiert.",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} als nicht erledigt markiert.",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} als nicht erledigt markiert.",
"You have removed the due date of card {card}" : "Du hast das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
@@ -67,13 +63,10 @@ OC.L10N.register(
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Du hast die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"A <strong>board, list or card</strong> was changed" : "Ein <strong>Bord, eine Liste oder Karte</strong> wurde geändert.",
"A <strong>comment</strong> was created on a card" : "Ein <strong>Kommentar</strong> zu einer Karte wurde erstellt",
"A <strong>card description</strong> has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde geändert.",
"Cards due today" : "Karten, die heute fällig sind",
"Cards due tomorrow" : "Karten, die morgen fällig sind",
"Upcoming cards" : "Anstehende Karten",
"Load more" : "Mehr laden",
"Personal" : "Persönlich",
@@ -89,7 +82,6 @@ OC.L10N.register(
"Owned by %1$s" : "Im Besitz von %1$s",
"Deck boards, cards and comments" : "Deck-Boards, Karten und Kommentare",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Von %1$s, in %2$s / %3$s, Besitzer %4$s",
"Create a new deck card" : "Neue Deck-Karte erstellen",
"Card comments" : "Kommentare zur Karte",
"%s on %s" : "%s von %s",
"Deck boards and cards" : "Deck-Boards und Karten",
@@ -124,12 +116,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
"Search by board title" : "Nach einem Board suchen",
"Select board" : "Board auswählen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"Create a new card" : "Neue Karte erstellen",
"Select a board" : "Ein Board auswählen",
"No lists available" : "Keine Listen verfügbar",
"Select a list" : "Eine Liste auswählen",
"Move card" : "Karte verschieben",
"Card title" : "Titel der Karte",
"Cancel" : "Abbrechen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"Create card" : "Karte erstellen",
"Select a card" : "Eine Karte auswählen",
"Select the card to link to a project" : "Wähle die Karte aus, um diese mit einem Projekt zu verknüpfen",
"Link to card" : "Mit dieser Karte verknüpfen",
@@ -156,32 +152,29 @@ OC.L10N.register(
"Next 30 days" : "Die nächsten 30 Tage",
"No due date" : "Kein Fälligkeitsdatum",
"Clear filter" : "Filter zurücksetzen",
"View Modes" : "Ansichtsmodi",
"Toggle View Modes" : "Ansichtsmodi wechseln",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Show archived cards" : "Archivierte Karten anzeigen",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Hide card cover images" : "Bilder auf den Karten ausblenden",
"Show card cover images" : "Bilder auf den Karten anzeigen",
"Open details" : "Details öffnen",
"Details" : "Details",
"Currently present people" : "Aktuell Anwesende",
"Loading board" : "Lade Board",
"Board not found" : "Board nicht gefunden",
"No lists available" : "Keine Listen verfügbar",
"Create a new list to add cards to this board" : "Erstelle eine neue Liste, um diesem Board Karten hinzuzufügen",
"Board not found" : "Board nicht gefunden",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Deleted items" : "Gelöschte Objekte",
"Activity" : "Aktivität",
"Timeline" : "Zeitachse",
"Deleted lists" : "Gelöschte Listen",
"Undo" : "Rückgängig",
"Deleted cards" : "Gelöschte Karten",
"Share board with a user, group or team …" : "Board mit einem Benutzer, einer Gruppe oder einem Team teilen …",
"Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"No participants found" : "Keine Teilnehmer gefunden",
"Board owner" : "Board-Besitzer",
"(Group)" : "(Gruppe)",
"(Team)" : "(Team)",
"(Circle)" : "(Kreis)",
"Can edit" : "kann bearbeiten",
"Can share" : "kann teilen",
"Can manage" : "kann verwalten",
@@ -207,9 +200,6 @@ OC.L10N.register(
"title and color value must be provided" : "Titel und Farbwert müssen angegeben werden",
"Board name" : "Boardname",
"Members" : "Mitglieder",
"Assign to users/groups/team" : "Benutzern/Gruppen/Teams zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Select a user to assign to this card…" : "Wähle einen Benutzer aus, der dieser Karte zugewiesen werden soll.",
"Upload new files" : "Neue Dateien hochladen",
"Share from Files" : "Aus Dateien heraus teilen",
"Pending share" : "Ausstehende Freigabe",
@@ -230,6 +220,18 @@ OC.L10N.register(
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Due date" : "Fälligkeitsdatum",
"Set a due date" : "Ein Ablaufdatum setzen",
"Remove due date" : "Fälligkeitsdatum löschen",
"Select Date" : "Datum auswählen",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"Next week" : "Nächste Woche",
"Next month" : "Nächster Monat",
"Save" : "Speichern",
"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.",
@@ -237,7 +239,6 @@ OC.L10N.register(
"Cancel reply" : "Antwort abbrechen",
"Reply" : "Antworten",
"Update" : "Aktualisieren",
"Created:" : "Erstellt:",
"Description" : "Beschreibung",
"(Unsaved)" : "(nicht gespeichert)",
"(Saving…)" : "(Speichere …)",
@@ -247,63 +248,21 @@ OC.L10N.register(
"Add Attachment" : "Anhang anhängen",
"Write a description …" : "Beschreibung schreiben …",
"Choose attachment" : "Anhang auswählen",
"Assign a due date to this card…" : "Dieser Karte ein Fälligkeitsdatum zuweisen …",
"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 löschen",
"Completed" : "Fertiggestellt",
"Due at:" : "Fallig am:",
"Not completed" : "Nicht fertiggestellt",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Select Date" : "Datum auswählen",
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
"Set due date for this weekend" : "Fälligkeitsdatum auf kommendes Wochenende setzen",
"Set due date for next week" : "Fälligkeitsdatum auf nächste Woche setzen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Select or create a tag…" : "Schlagwort auswählen oder erstellen",
"Create a new tag:" : "Neues Schlagwort erstellen:",
"(group)" : "(Gruppe)",
"Next week {timeLocale}" : "Nächste Woche {timeLocale}",
"Todo items" : "Aufgaben-Elemente",
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
"Edit card title" : "Kartentitel bearbeiten",
"Card details" : "Kartendetails",
"Assign to me" : "Mir zuweisen",
"Unassign myself" : "Nicht mehr mir zuweisen",
"Mark as not done" : "Als nicht erledigt markieren",
"Mark as done" : "Als erledigt markieren",
"Move card" : "Karte verschieben",
"Card details" : "Karten-Details",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Delete card" : "Karte löschen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"List is empty" : "Liste ist leer",
"Card deleted" : "Karte gelöscht",
"seconds ago" : "Gerade eben",
"Keyboard shortcuts" : "Tastaturkürzel",
"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",
"Shift" : "Umschalttaste",
"Scroll" : "Scrollen",
"Scroll sideways" : "Seitwärts scrollen",
"Navigate between cards" : "Zwischen Karten navigieren",
"Esc" : "Esc",
"Close card details" : "Kartendetails schließen",
"Ctrl" : "Strg",
"Search" : "Suche",
"Show card filters" : "Kartenfilter anzeigen",
"Clear card filters" : "Kartenfilter löschen",
"Show help dialog" : "Hilfedialog anzeigen",
"Card actions" : "Kartenaktionen",
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
"Enter" : "Enter",
"Space" : "Leerzeichen",
"Open card details" : "Kartendetails öffnen",
"Edit the card title" : "Kartentitel bearbeiten",
"Assign yourself to the current card" : "Aktuelle Karte dir zuweisen",
"Archive/unarchive the current card" : "Aktuelle Karte archivieren/dearchivieren",
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
"Open card menu" : "Kartenmenü öffnen",
"All boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Shared with you" : "Mit dir geteilt",
@@ -311,9 +270,9 @@ OC.L10N.register(
"Use bigger card view" : "Größere Kartenansicht verwenden",
"Show card ID badge" : "Abzeichen mit Karten-ID zeigen",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
"Board details" : "Boarddetails",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
"Clone board" : "Board klonen",
"Unarchive board" : "Board dearchivieren",
@@ -333,33 +292,19 @@ OC.L10N.register(
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Möchtest du wirklich das Board {title} mit all seinen Daten einschließlich der archivierten Karten löschen?",
"Delete the board?" : "Das Board löschen?",
"Loading filtered view" : "Lade gefilterte Ansicht",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"No due" : "Kein Fälligkeitsdatum",
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
"No results found" : "Keine Ergebnisse gefunden",
"This weekend {timeLocale}" : "Dieses Wochenende {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
"{stack} in {board}" : "{stack} in {board}",
"Click to expand description" : "Klicken, um die Beschreibung zu erweitern",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Erstellt am {created}\n* Zuletzt geändert am {lastMod}\n* {nbAttachments} Anhänge\n* {nbComments} Kommentare",
"{nbCards} cards" : "{nbCards} Karten",
"Click to expand comment" : "Klicken, um den Kommentar zu erweitern",
"Create a new card" : "Neue Karte erstellen",
"Card title" : "Titel der Karte",
"Create card" : "Karte erstellen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"No upcoming cards" : "Keine anstehenden Karten",
"upcoming cards today" : "Heute anstehende Karten",
"upcoming cards tomorrow" : "Morgen anstehende Karten",
"upcoming cards" : "Anstehende Karten",
"New card" : "Neue Karte",
"Due on {date}" : "Fällig am {date}",
"Tomorrow {timeLocale}" : "Morgen {timeLocale}",
"Later today {timeLocale}" : "Heute noch {timeLocale}",
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Create a card" : "Eine Karte erstellen",
@@ -371,18 +316,10 @@ OC.L10N.register(
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
"Share {file} with a Deck card" : "{file} mit einer Deck-Karte teilen",
"Share" : "Freigeben",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Timeline" : "Zeitachse",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"(Circle)" : "(Kreis)",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Due date" : "Fälligkeitsdatum",
"Next week" : "Nächste Woche",
"Next month" : "Nächster Monat",
"List is empty" : "Liste ist leer",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
"Are you sure you want to transfer the board {title} for {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
"Transfer the board for {user} successfully" : "Das Board wurde erfolgreich an {user} übertragen",
"Failed to transfer the board for {user}" : "Board konnte nicht an {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Möchtest du wirklich das Board {title} mit all seinen Daten löschen?"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -35,10 +35,6 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"You have marked the card {card} as done in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} als erledigt markiert.",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} als erledigt markiert.",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Du hast die Karte {card} in der Liste {stack} auf dem Board {board} als nicht erledigt markiert.",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} als nicht erledigt markiert.",
"You have removed the due date of card {card}" : "Du hast das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
@@ -65,13 +61,10 @@
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Du hast die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"A <strong>board, list or card</strong> was changed" : "Ein <strong>Bord, eine Liste oder Karte</strong> wurde geändert.",
"A <strong>comment</strong> was created on a card" : "Ein <strong>Kommentar</strong> zu einer Karte wurde erstellt",
"A <strong>card description</strong> has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde geändert.",
"Cards due today" : "Karten, die heute fällig sind",
"Cards due tomorrow" : "Karten, die morgen fällig sind",
"Upcoming cards" : "Anstehende Karten",
"Load more" : "Mehr laden",
"Personal" : "Persönlich",
@@ -87,7 +80,6 @@
"Owned by %1$s" : "Im Besitz von %1$s",
"Deck boards, cards and comments" : "Deck-Boards, Karten und Kommentare",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Von %1$s, in %2$s / %3$s, Besitzer %4$s",
"Create a new deck card" : "Neue Deck-Karte erstellen",
"Card comments" : "Kommentare zur Karte",
"%s on %s" : "%s von %s",
"Deck boards and cards" : "Deck-Boards und Karten",
@@ -122,12 +114,16 @@
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
"Search by board title" : "Nach einem Board suchen",
"Select board" : "Board auswählen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"Create a new card" : "Neue Karte erstellen",
"Select a board" : "Ein Board auswählen",
"No lists available" : "Keine Listen verfügbar",
"Select a list" : "Eine Liste auswählen",
"Move card" : "Karte verschieben",
"Card title" : "Titel der Karte",
"Cancel" : "Abbrechen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"Create card" : "Karte erstellen",
"Select a card" : "Eine Karte auswählen",
"Select the card to link to a project" : "Wähle die Karte aus, um diese mit einem Projekt zu verknüpfen",
"Link to card" : "Mit dieser Karte verknüpfen",
@@ -154,32 +150,29 @@
"Next 30 days" : "Die nächsten 30 Tage",
"No due date" : "Kein Fälligkeitsdatum",
"Clear filter" : "Filter zurücksetzen",
"View Modes" : "Ansichtsmodi",
"Toggle View Modes" : "Ansichtsmodi wechseln",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Show archived cards" : "Archivierte Karten anzeigen",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Hide card cover images" : "Bilder auf den Karten ausblenden",
"Show card cover images" : "Bilder auf den Karten anzeigen",
"Open details" : "Details öffnen",
"Details" : "Details",
"Currently present people" : "Aktuell Anwesende",
"Loading board" : "Lade Board",
"Board not found" : "Board nicht gefunden",
"No lists available" : "Keine Listen verfügbar",
"Create a new list to add cards to this board" : "Erstelle eine neue Liste, um diesem Board Karten hinzuzufügen",
"Board not found" : "Board nicht gefunden",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Deleted items" : "Gelöschte Objekte",
"Activity" : "Aktivität",
"Timeline" : "Zeitachse",
"Deleted lists" : "Gelöschte Listen",
"Undo" : "Rückgängig",
"Deleted cards" : "Gelöschte Karten",
"Share board with a user, group or team …" : "Board mit einem Benutzer, einer Gruppe oder einem Team teilen …",
"Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"No participants found" : "Keine Teilnehmer gefunden",
"Board owner" : "Board-Besitzer",
"(Group)" : "(Gruppe)",
"(Team)" : "(Team)",
"(Circle)" : "(Kreis)",
"Can edit" : "kann bearbeiten",
"Can share" : "kann teilen",
"Can manage" : "kann verwalten",
@@ -205,9 +198,6 @@
"title and color value must be provided" : "Titel und Farbwert müssen angegeben werden",
"Board name" : "Boardname",
"Members" : "Mitglieder",
"Assign to users/groups/team" : "Benutzern/Gruppen/Teams zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Select a user to assign to this card…" : "Wähle einen Benutzer aus, der dieser Karte zugewiesen werden soll.",
"Upload new files" : "Neue Dateien hochladen",
"Share from Files" : "Aus Dateien heraus teilen",
"Pending share" : "Ausstehende Freigabe",
@@ -228,6 +218,18 @@
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Due date" : "Fälligkeitsdatum",
"Set a due date" : "Ein Ablaufdatum setzen",
"Remove due date" : "Fälligkeitsdatum löschen",
"Select Date" : "Datum auswählen",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"Next week" : "Nächste Woche",
"Next month" : "Nächster Monat",
"Save" : "Speichern",
"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.",
@@ -235,7 +237,6 @@
"Cancel reply" : "Antwort abbrechen",
"Reply" : "Antworten",
"Update" : "Aktualisieren",
"Created:" : "Erstellt:",
"Description" : "Beschreibung",
"(Unsaved)" : "(nicht gespeichert)",
"(Saving…)" : "(Speichere …)",
@@ -245,63 +246,21 @@
"Add Attachment" : "Anhang anhängen",
"Write a description …" : "Beschreibung schreiben …",
"Choose attachment" : "Anhang auswählen",
"Assign a due date to this card…" : "Dieser Karte ein Fälligkeitsdatum zuweisen …",
"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 löschen",
"Completed" : "Fertiggestellt",
"Due at:" : "Fallig am:",
"Not completed" : "Nicht fertiggestellt",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Select Date" : "Datum auswählen",
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
"Set due date for this weekend" : "Fälligkeitsdatum auf kommendes Wochenende setzen",
"Set due date for next week" : "Fälligkeitsdatum auf nächste Woche setzen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Select or create a tag…" : "Schlagwort auswählen oder erstellen",
"Create a new tag:" : "Neues Schlagwort erstellen:",
"(group)" : "(Gruppe)",
"Next week {timeLocale}" : "Nächste Woche {timeLocale}",
"Todo items" : "Aufgaben-Elemente",
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
"Edit card title" : "Kartentitel bearbeiten",
"Card details" : "Kartendetails",
"Assign to me" : "Mir zuweisen",
"Unassign myself" : "Nicht mehr mir zuweisen",
"Mark as not done" : "Als nicht erledigt markieren",
"Mark as done" : "Als erledigt markieren",
"Move card" : "Karte verschieben",
"Card details" : "Karten-Details",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Delete card" : "Karte löschen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"List is empty" : "Liste ist leer",
"Card deleted" : "Karte gelöscht",
"seconds ago" : "Gerade eben",
"Keyboard shortcuts" : "Tastaturkürzel",
"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",
"Shift" : "Umschalttaste",
"Scroll" : "Scrollen",
"Scroll sideways" : "Seitwärts scrollen",
"Navigate between cards" : "Zwischen Karten navigieren",
"Esc" : "Esc",
"Close card details" : "Kartendetails schließen",
"Ctrl" : "Strg",
"Search" : "Suche",
"Show card filters" : "Kartenfilter anzeigen",
"Clear card filters" : "Kartenfilter löschen",
"Show help dialog" : "Hilfedialog anzeigen",
"Card actions" : "Kartenaktionen",
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
"Enter" : "Enter",
"Space" : "Leerzeichen",
"Open card details" : "Kartendetails öffnen",
"Edit the card title" : "Kartentitel bearbeiten",
"Assign yourself to the current card" : "Aktuelle Karte dir zuweisen",
"Archive/unarchive the current card" : "Aktuelle Karte archivieren/dearchivieren",
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
"Open card menu" : "Kartenmenü öffnen",
"All boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Shared with you" : "Mit dir geteilt",
@@ -309,9 +268,9 @@
"Use bigger card view" : "Größere Kartenansicht verwenden",
"Show card ID badge" : "Abzeichen mit Karten-ID zeigen",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit board creation to some groups" : "Erstellung von Boards auf einige Gruppen beschränken",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
"Board details" : "Boarddetails",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
"Clone board" : "Board klonen",
"Unarchive board" : "Board dearchivieren",
@@ -331,33 +290,19 @@
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Möchtest du wirklich das Board {title} mit all seinen Daten einschließlich der archivierten Karten löschen?",
"Delete the board?" : "Das Board löschen?",
"Loading filtered view" : "Lade gefilterte Ansicht",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"No due" : "Kein Fälligkeitsdatum",
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
"No results found" : "Keine Ergebnisse gefunden",
"This weekend {timeLocale}" : "Dieses Wochenende {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
"{stack} in {board}" : "{stack} in {board}",
"Click to expand description" : "Klicken, um die Beschreibung zu erweitern",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Erstellt am {created}\n* Zuletzt geändert am {lastMod}\n* {nbAttachments} Anhänge\n* {nbComments} Kommentare",
"{nbCards} cards" : "{nbCards} Karten",
"Click to expand comment" : "Klicken, um den Kommentar zu erweitern",
"Create a new card" : "Neue Karte erstellen",
"Card title" : "Titel der Karte",
"Create card" : "Karte erstellen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"No upcoming cards" : "Keine anstehenden Karten",
"upcoming cards today" : "Heute anstehende Karten",
"upcoming cards tomorrow" : "Morgen anstehende Karten",
"upcoming cards" : "Anstehende Karten",
"New card" : "Neue Karte",
"Due on {date}" : "Fällig am {date}",
"Tomorrow {timeLocale}" : "Morgen {timeLocale}",
"Later today {timeLocale}" : "Heute noch {timeLocale}",
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Create a card" : "Eine Karte erstellen",
@@ -369,18 +314,10 @@
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
"Share {file} with a Deck card" : "{file} mit einer Deck-Karte teilen",
"Share" : "Freigeben",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Timeline" : "Zeitachse",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen …",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"(Circle)" : "(Kreis)",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Due date" : "Fälligkeitsdatum",
"Next week" : "Nächste Woche",
"Next month" : "Nächster Monat",
"List is empty" : "Liste ist leer",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn du Deck einschränkst, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
"Are you sure you want to transfer the board {title} for {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
"Transfer the board for {user} successfully" : "Das Board wurde erfolgreich an {user} übertragen",
"Failed to transfer the board for {user}" : "Board konnte nicht an {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Möchtest du wirklich das Board {title} mit all seinen Daten löschen?"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -37,10 +37,6 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} dearchiviert",
"You have marked the card {card} as done in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als erledigt markiert",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} im Board {board} als unerledigt markiert",
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
@@ -67,13 +63,10 @@ OC.L10N.register(
"{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",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"A <strong>board, list or card</strong> was changed" : "Ein <strong>Bord, eine Liste oder Karte</strong> wurde geändert",
"A <strong>comment</strong> was created on a card" : "Ein <strong>Kommentar</strong> zu einer Karte wurde erstellt",
"A <strong>card description</strong> has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde geändert",
"Cards due today" : "Karten die heute fällig sind",
"Cards due tomorrow" : "Karten die morgen fällig sind",
"Upcoming cards" : "Anstehende Karten",
"Load more" : "Mehr laden",
"Personal" : "Persönlich",
@@ -89,7 +82,6 @@ OC.L10N.register(
"Owned by %1$s" : "Eigentum von %1$s",
"Deck boards, cards and comments" : "Deck-Boards, Karten und Kommentare",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Von %1$s, in %2$s / %3$s, Eigentum von %4$s",
"Create a new deck card" : "Neue Deck-Karte erstellen",
"Card comments" : "Kartenkommentare",
"%s on %s" : "%s von %s",
"Deck boards and cards" : "Deck-Boards und Karten",
@@ -124,12 +116,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Wählen Sie ein Board aus, um dieses mit einem Projekt zu verknüpfen",
"Search by board title" : "Nach einem Board suchen",
"Select board" : "Board auswählen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"Create a new card" : "Neue Karte erstellen",
"Select a board" : "Ein Board auswählen",
"No lists available" : "Keine Listen verfügbar",
"Select a list" : "Eine Liste auswählen",
"Move card" : "Karte verschieben",
"Card title" : "Titel der Karte",
"Cancel" : "Abbrechen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"Create card" : "Karte erstellen",
"Select a card" : "Eine Karte auswählen",
"Select the card to link to a project" : "Wählen Sie die Karte aus, um diese mit einem Projekt zu verknüpfen",
"Link to card" : "Mit einer Karte verknüpfen",
@@ -156,32 +152,29 @@ OC.L10N.register(
"Next 30 days" : "Die nächsten 30 Tage",
"No due date" : "Kein Fälligkeitsdatum",
"Clear filter" : "Filter zurücksetzen",
"View Modes" : "Ansichtsmodi",
"Toggle View Modes" : "Ansichtsmodi wechseln",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Show archived cards" : "Archivierte Karten anzeigen",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Hide card cover images" : "Kartencoverbilder ausblenden",
"Show card cover images" : "Kartencoverbilder anzeigen",
"Open details" : "Details öffnen",
"Details" : "Details",
"Currently present people" : "Aktuell Anwesende",
"Loading board" : "Lade Board",
"Board not found" : "Board nicht gefunden",
"No lists available" : "Keine Listen verfügbar",
"Create a new list to add cards to this board" : "Erstellen Sie eine neue Liste, um diesem Board Karten hinzuzufügen",
"Board not found" : "Board nicht gefunden",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Deleted items" : "Gelöschte Objekte",
"Activity" : "Aktivität",
"Timeline" : "Zeitachse",
"Deleted lists" : "Gelöschte Listen",
"Undo" : "Rückgängig",
"Deleted cards" : "Gelöschte Karten",
"Share board with a user, group or team …" : "Board mit einem Benutzer, einer Gruppe oder einem Team teilen …",
"Searching for users, groups and teams …" : "Suche nach Benutzern, Gruppen und Teams …",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen…",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"No participants found" : "Keine Teilnehmer gefunden",
"Board owner" : "Board-Besitzer",
"(Group)" : "(Gruppe)",
"(Team)" : "(Team)",
"(Circle)" : "(Kreis)",
"Can edit" : "kann bearbeiten",
"Can share" : "kann teilen",
"Can manage" : "kann verwalten",
@@ -207,9 +200,6 @@ OC.L10N.register(
"title and color value must be provided" : "Titel und Farbwert müssen angegeben werden",
"Board name" : "Boardname",
"Members" : "Mitglieder",
"Assign to users/groups/team" : "Benutzern/Gruppen/Teams zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen…",
"Select a user to assign to this card…" : "Wählen Sie einen Benutzer aus, der dieser Karte zugewiesen werden soll...",
"Upload new files" : "Neue Dateien hochladen",
"Share from Files" : "Aus Dateien heraus teilen",
"Pending share" : "Ausstehende Freigabe",
@@ -230,6 +220,18 @@ OC.L10N.register(
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen…",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen…",
"Due date" : "Fälligkeitsdatum",
"Set a due date" : "Ein Ablaufdatum setzen",
"Remove due date" : "Fälligkeitsdatum löschen",
"Select Date" : "Datum auswählen",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"Next week" : "Nächste Woche",
"Next month" : "Nächsten Monat",
"Save" : "Speichern",
"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.",
@@ -237,7 +239,6 @@ OC.L10N.register(
"Cancel reply" : "Antwort abbrechen",
"Reply" : "Antworten",
"Update" : "Aktualisieren",
"Created:" : "Erstellt:",
"Description" : "Beschreibung",
"(Unsaved)" : "(nicht gespeichert)",
"(Saving…)" : "(Speichere…)",
@@ -247,63 +248,21 @@ OC.L10N.register(
"Add Attachment" : "Anhang anhängen",
"Write a description …" : "Beschreibung schreiben …",
"Choose attachment" : "Anhang auswählen",
"Assign a due date to this card…" : "Dieser Karte ein Fälligkeitsdatum zuweisen…",
"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 löschen",
"Completed" : "Fertiggestellt",
"Due at:" : "Fallig am:",
"Not completed" : "Nicht fertiggestellt",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Select Date" : "Datum auswählen",
"Set due date for later today" : "Fälligkeitsdatum auf später heute setzen",
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
"Set due date for this weekend" : "Fälligkeitsdatum auf kommendes Wochenende setzen",
"Set due date for next week" : "Fälligkeitsdatum auf nächste Woche setzen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen…",
"Select or create a tag…" : "Schlagwort auswählen oder einen erstellen…",
"Create a new tag:" : "Neues Schlagwort erstellen:",
"(group)" : "(Gruppe)",
"Next week {timeLocale}" : "Nächste Woche {timeLocale}",
"Todo items" : "Aufgaben-Elemente",
"{count} comments, {unread} unread" : "{count} Kommentare, {unread} ungelesen",
"Edit card title" : "Kartentitel bearbeiten",
"Card details" : "Karten-Details",
"Assign to me" : "Mir zuweisen",
"Unassign myself" : "Nicht mehr mir zuweisen",
"Mark as not done" : "Als unerledigt markieren",
"Mark as done" : "Als erledigt markieren",
"Move card" : "Karte verschieben",
"Card details" : "Karten-Details",
"Unarchive card" : "Karte dearchivieren",
"Archive card" : "Karte archivieren",
"Delete card" : "Karte löschen",
"Move card to another board" : "Karte auf ein anderes Board verschieben",
"List is empty" : "Liste ist leer",
"Card deleted" : "Karte gelöscht",
"seconds ago" : "Gerade eben",
"Keyboard shortcuts" : "Tastaturkürzel",
"Boost your productivity using Deck with keyboard shortcuts." : "Steigern Sie Ihre Produktivität in Deck mit Tastaturkürzeln.",
"Board actions" : "Board-Aktionen",
"Keyboard shortcut" : "Tastaturkürzel",
"Action" : "Aktion",
"Shift" : "Umschalttaste",
"Scroll" : "Scrollen",
"Scroll sideways" : "Seitwärts scrollen",
"Navigate between cards" : "Zwischen Karten navigieren",
"Esc" : "Esc",
"Close card details" : "Karten-Details schließen",
"Ctrl" : "Strg",
"Search" : "Suche",
"Show card filters" : "Kartenfilter anzeigen",
"Clear card filters" : "Kartenfilter löschen",
"Show help dialog" : "Hilfedialog anzeigen",
"Card actions" : "Kartenaktionen",
"The following actions can be triggered on the currently highlighted card" : "Die folgenden Aktionen können für die aktuell markierten Karte ausgelöst werden",
"Enter" : "Enter",
"Space" : "Leerzeichen",
"Open card details" : "Kartendetails öffnen",
"Edit the card title" : "Kartentitel bearbeiten",
"Assign yourself to the current card" : "Weisen Sie sich der aktuellen Karte zu",
"Archive/unarchive the current card" : "Die aktuelle Karte archivieren/dearchivieren",
"Mark card as completed/not completed" : "Karte als abgeschlossen/nicht abgeschlossen markieren",
"Open card menu" : "Kartenmenü öffnen",
"All boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Shared with you" : "Mit Ihnen geteilt",
@@ -311,8 +270,8 @@ OC.L10N.register(
"Use bigger card view" : "Größere Kartenansicht verwenden",
"Show card ID badge" : "Abzeichen mit Karten-ID zeigen",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit board creation to some groups" : "Boarderstellung auf einige Gruppen beschränken",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Benutzer außerhalb dieser Gruppen können keine eigenen Boards erstellen, aber weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
"Clone board" : "Board klonen",
@@ -333,33 +292,19 @@ OC.L10N.register(
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Möchten Sie das Board {title} wirklich löschen? Dadurch werden alle Daten dieses Boards einschließlich archivierter Karten gelöscht.",
"Delete the board?" : "Das Board löschen?",
"Loading filtered view" : "Lade gefilterte Ansicht",
"Today" : "Heute",
"Tomorrow" : "Morgen",
"No due" : "Kein Fälligkeitsdatum",
"Search for {searchQuery} in all boards" : "Suche nach {searchQuery} in allen Boards",
"No results found" : "Keine Ergebnisse gefunden",
"This weekend {timeLocale}" : "Dieses Wochenende {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "Deck-Board {name}\n* Zuletzt geändert am {lastMod} ",
"{stack} in {board}" : "{stack} auf {board}",
"Click to expand description" : "Klicken, um die Beschreibung zu erweitern",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Erstellt am {created}\n* Zuletzt geändert am {lastMod}\n* {nbAttachments} Anhänge\n* {nbComments} Kommentare",
"{nbCards} cards" : "{nbCards} Karten",
"Click to expand comment" : "Klicken, um den Kommentar zu erweitern",
"Create a new card" : "Neue Karte erstellen",
"Card title" : "Titel der Karte",
"Create card" : "Karte erstellen",
"Creating the new card …" : "Neue Karte wird erstellt …",
"Card \"{card}\" was added to \"{board}\"" : "Karte \"{card}\" wurde \"{board}\" hinzugefügt",
"Open card" : "Karte öffnen",
"Close" : "Schließen",
"No upcoming cards" : "Keine anstehenden Karten",
"upcoming cards today" : "Heute anstehende Karten",
"upcoming cards tomorrow" : "Morgen anstehende Karten",
"upcoming cards" : "Anstehende Karten",
"New card" : "Neue Karte",
"Due on {date}" : "Fällig am {date}",
"Tomorrow {timeLocale}" : "Morgen {timeLocale}",
"Later today {timeLocale}" : "Später heute {timeLocale}",
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Create a card" : "Eine Karte erstellen",
@@ -371,18 +316,10 @@ OC.L10N.register(
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
"Share {file} with a Deck card" : "{file} mit einer Deck-Karte teilen",
"Share" : "Freigeben",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Timeline" : "Zeitachse",
"Share board with a user, group or circle …" : "Board mit Benutzer, Gruppe oder Kreis teilen",
"Searching for users, groups and circles …" : "Suche nach Benutzern, Gruppen und Kreisen …",
"(Circle)" : "(Kreis)",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Due date" : "Fälligkeitsdatum",
"Next week" : "Nächste Woche",
"Next month" : "Nächsten Monat",
"List is empty" : "Liste ist leer",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden."
"Are you sure you want to transfer the board {title} for {user}?" : "Möchten Sie wirklich das Board {title} an {user} übertragen?",
"Transfer the board for {user} successfully" : "Das Board wurde an {user} übertragen",
"Failed to transfer the board for {user}" : "Board konnte nicht an {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Möchten Sie wirklich dieses Board {title} mit all seinen Daten löschen?"
},
"nplurals=2; plural=(n != 1);");

Some files were not shown because too many files have changed in this diff Show More