Compare commits

..

128 Commits

Author SHA1 Message Date
Nextcloud bot
4d10663406 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-09 01:06:05 +00:00
Nextcloud bot
ff75b39aca Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-08 00:46:19 +00:00
Julius Härtl
62e06a0d24 Merge pull request #4995 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-08-06 11:54:56 +02:00
nextcloud-command
54be05e448 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-08-06 03:29:46 +00:00
Nextcloud bot
ab6ae1df0d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-06 00:41:20 +00:00
dependabot[bot]
d3d1e0af36 Merge pull request #4979 from nextcloud/dependabot/npm_and_yarn/stable27/jest-29.6.2 2023-08-05 03:38:11 +00:00
dependabot[bot]
59e0ffaf05 Merge pull request #4978 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.17.3 2023-08-05 03:35:10 +00:00
dependabot[bot]
4287bde8ce Merge pull request #4977 from nextcloud/dependabot/npm_and_yarn/stable27/relative-ci/agent-4.1.6 2023-08-05 03:32:44 +00:00
dependabot[bot]
70917f3f65 Chore(deps-dev): Bump jest from 29.6.1 to 29.6.2
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.6.1 to 29.6.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.2/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-05 02:12:10 +00:00
dependabot[bot]
ade0554c70 Chore(deps-dev): Bump cypress from 12.17.2 to 12.17.3
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.17.2 to 12.17.3.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.17.2...v12.17.3)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-05 02:11:35 +00:00
dependabot[bot]
32d4179bdc Chore(deps-dev): Bump @relative-ci/agent from 4.1.5 to 4.1.6
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 4.1.5 to 4.1.6.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v4.1.5...v4.1.6)

---
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>
2023-08-05 02:11:16 +00:00
Nextcloud bot
81e567b680 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-04 00:46:30 +00:00
Nextcloud bot
5819a19a88 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-02 01:09:04 +00:00
Nextcloud bot
188d722bf2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-30 00:41:12 +00:00
Julius Härtl
a6e09adf77 Merge pull request #4949 from nextcloud/backport/4906/stable27 2023-07-24 18:12:53 +02:00
Julius Härtl
4fe38c62dd fix: Split query to fetch board ids to avoid slow query join
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-24 17:38:37 +02:00
Julius Härtl
eec4e614bd ci: Update integration.yml to work on self-hosted runners
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-24 17:36:56 +02:00
Julius Härtl
6714e18889 Merge pull request #4957 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-07-23 20:43:48 +02:00
nextcloud-command
275e8eedaf chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-07-23 03:19:46 +00:00
dependabot[bot]
f921f5d5a6 Merge pull request #4952 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.17.2 2023-07-22 01:30:06 +00:00
dependabot[bot]
856aeb146d Chore(deps-dev): Bump cypress from 12.17.1 to 12.17.2
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.17.1 to 12.17.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.17.1...v12.17.2)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-22 01:17:28 +00:00
Nextcloud bot
0c1ef382aa Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-19 00:41:19 +00:00
Nextcloud bot
36fac54f0f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-18 00:38:53 +00:00
Nextcloud bot
498ab8bd0d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-16 00:39:21 +00:00
dependabot[bot]
9947aa4288 Merge pull request #4918 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/initial-state-2.1.0 2023-07-15 03:47:47 +00:00
dependabot[bot]
754903ccca Merge pull request #4917 from nextcloud/dependabot/npm_and_yarn/stable27/dompurify-3.0.5 2023-07-15 03:46:57 +00:00
dependabot[bot]
13d5289e73 Merge pull request #4916 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/vue-7.12.1 2023-07-15 03:39:54 +00:00
dependabot[bot]
06ccb7b7b9 Merge pull request #4914 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.17.1 2023-07-15 03:36:05 +00:00
dependabot[bot]
91c0704186 Chore(deps): Bump @nextcloud/initial-state from 2.0.0 to 2.1.0
Bumps [@nextcloud/initial-state](https://github.com/nextcloud/nextcloud-initial-state) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-initial-state/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-initial-state/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-initial-state/compare/v2.0.0...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-15 01:11:58 +00:00
dependabot[bot]
228a2bdca9 Chore(deps): Bump dompurify from 3.0.4 to 3.0.5
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.4...3.0.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-07-15 01:11:46 +00:00
dependabot[bot]
9e23a89659 Chore(deps): Bump @nextcloud/vue from 7.12.0 to 7.12.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.12.0 to 7.12.1.
- [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/v7.12.0...v7.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-15 01:11:34 +00:00
dependabot[bot]
5619c683c2 Chore(deps-dev): Bump cypress from 12.17.0 to 12.17.1
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.17.0 to 12.17.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.17.0...v12.17.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-15 01:10:50 +00:00
Julius Härtl
ca347cbc80 Merge pull request #4909 from nextcloud/backport/4908/stable27 2023-07-14 08:52:29 +02:00
Joas Schilling
19a4832caf fix(notification): Prevent null in parameters
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-14 06:25:51 +00:00
Nextcloud bot
9f0783c4c6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-14 00:44:27 +00:00
Nextcloud bot
6e5111b266 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-13 00:44:45 +00:00
Nextcloud bot
bed3096f11 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-12 00:36:30 +00:00
Nextcloud bot
9538cccf50 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-11 00:47:40 +00:00
Julius Härtl
6a3c242176 Merge pull request #4873 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-07-10 12:31:19 +02:00
Nextcloud bot
93959b0efc Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-10 00:44:06 +00:00
nextcloud-command
99a42e7639 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-07-09 03:53:39 +00:00
dependabot[bot]
ed02d93a92 Merge pull request #4882 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.17.0 2023-07-08 01:15:04 +00:00
dependabot[bot]
1dce8b797d Merge pull request #4880 from nextcloud/dependabot/npm_and_yarn/stable27/url-search-params-polyfill-8.2.4 2023-07-08 01:14:57 +00:00
dependabot[bot]
5d17c3167b Merge pull request #4879 from nextcloud/dependabot/npm_and_yarn/stable27/babel/runtime-7.22.6 2023-07-08 01:14:43 +00:00
dependabot[bot]
e0d59c0653 Merge pull request #4883 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/axios-2.4.0 2023-07-08 01:12:11 +00:00
dependabot[bot]
0308599096 Merge pull request #4881 from nextcloud/dependabot/npm_and_yarn/stable27/jest-29.6.1 2023-07-08 01:11:56 +00:00
dependabot[bot]
00e1a1da74 Chore(deps): Bump @nextcloud/axios from 2.3.0 to 2.4.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 2.3.0 to 2.4.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/v2.3.0...v2.4.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>
2023-07-08 01:05:31 +00:00
dependabot[bot]
5783d9ec15 Chore(deps-dev): Bump cypress from 12.16.0 to 12.17.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.16.0 to 12.17.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.16.0...v12.17.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 01:05:14 +00:00
dependabot[bot]
01b4a4d264 Chore(deps-dev): Bump jest from 29.5.0 to 29.6.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.5.0 to 29.6.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 01:04:37 +00:00
dependabot[bot]
fbc703b033 Chore(deps): Bump url-search-params-polyfill from 8.2.3 to 8.2.4
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 8.2.3 to 8.2.4.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/commits/v8.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 01:04:16 +00:00
dependabot[bot]
ee7313beac Chore(deps): Bump @babel/runtime from 7.22.3 to 7.22.6
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.22.3 to 7.22.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.22.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>
2023-07-08 01:04:04 +00:00
Nextcloud bot
3dc99f129c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-08 00:45:02 +00:00
Nextcloud bot
11a5362108 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 00:42:27 +00:00
Nextcloud bot
18343eea89 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 00:45:28 +00:00
dependabot[bot]
6ceb1b3e09 Merge pull request #4864 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.16.0 2023-07-01 02:35:39 +00:00
dependabot[bot]
e5873c566b Merge pull request #4862 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/l10n-2.2.0 2023-07-01 02:24:41 +00:00
dependabot[bot]
93f9db2549 Merge pull request #4863 from nextcloud/dependabot/npm_and_yarn/stable27/dompurify-3.0.4 2023-07-01 02:07:44 +00:00
dependabot[bot]
de78de243f Chore(deps-dev): Bump cypress from 12.15.0 to 12.16.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.15.0 to 12.16.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.15.0...v12.16.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-01 01:09:10 +00:00
dependabot[bot]
e82ba2aebc Chore(deps): Bump dompurify from 3.0.3 to 3.0.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.3...3.0.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-07-01 01:08:45 +00:00
dependabot[bot]
50298b14ff Chore(deps): Bump @nextcloud/l10n from 2.1.0 to 2.2.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 2.1.0 to 2.2.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/v2.1.0...v2.2.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>
2023-07-01 01:08:34 +00:00
Nextcloud bot
697d2ce8d5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-30 00:44:06 +00:00
Nextcloud bot
90e986dfc1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-28 00:46:04 +00:00
Nextcloud bot
6e844b22fd Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-27 00:47:14 +00:00
Nextcloud bot
9ecafadc43 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-26 00:42:53 +00:00
Julius Härtl
08a9714842 Merge pull request #4853 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-06-25 12:31:35 +02:00
nextcloud-command
ed50c9413c chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-25 03:59:37 +00:00
Julius Härtl
b0c026bc83 Merge pull request #4842 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/dialogs-4.1.0 2023-06-24 12:53:51 +02:00
dependabot[bot]
2adec18b1d Merge pull request #4848 from nextcloud/dependabot/npm_and_yarn/stable27/relative-ci/agent-4.1.5 2023-06-24 03:54:19 +00:00
dependabot[bot]
30371b0e06 Chore(deps-dev): Bump @relative-ci/agent from 4.1.4 to 4.1.5
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v4.1.4...v4.1.5)

---
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>
2023-06-24 03:45:22 +00:00
dependabot[bot]
afc0c662d2 Merge pull request #4840 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.15.0 2023-06-24 03:31:41 +00:00
dependabot[bot]
146a5eb602 Chore(deps): Bump @nextcloud/dialogs from 4.0.1 to 4.1.0
Bumps [@nextcloud/dialogs](https://github.com/nextcloud/nextcloud-dialogs) from 4.0.1 to 4.1.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/v4.0.1...v4.1.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>
2023-06-24 02:57:11 +00:00
dependabot[bot]
317ee4901b Chore(deps-dev): Bump cypress from 12.14.0 to 12.15.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.14.0 to 12.15.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.14.0...v12.15.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-24 01:57:49 +00:00
Nextcloud bot
3d254f7d62 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-24 00:40:44 +00:00
Nextcloud bot
948b8f5f84 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-23 01:12:43 +00:00
Julius Härtl
d555bf1cab Merge pull request #4831 from nextcloud/backport/4816/stable27 2023-06-20 11:15:39 +02:00
Max
0456e43378 fix: crash when leaving out system parameter
The `--system` parameter can be supplied via command line
or selected afterwards.

However if none was provided the command would crash with
`TypeError: Cannot assign null to property $system`.

Handle that gracefully and make the type spec more precise
for the setSystem function.

Signed-off-by: Max <max@nextcloud.com>
2023-06-20 08:48:43 +00:00
Nextcloud bot
5cf3f48de9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-20 00:38:11 +00:00
dependabot[bot]
32b4b18868 Merge pull request #4822 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/router-2.1.2 2023-06-17 03:42:55 +00:00
dependabot[bot]
ec937a8edf Chore(deps): Bump @nextcloud/router from 2.1.1 to 2.1.2
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 2.1.1 to 2.1.2.
- [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/compare/v2.1.1...v2.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-17 01:57:40 +00:00
Nextcloud bot
33dae40326 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-17 00:32:04 +00:00
Nextcloud bot
d032f8a820 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-16 00:32:02 +00:00
Nextcloud bot
4b20bfca74 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-15 00:32:05 +00:00
Julius Härtl
e29eb22a49 Merge pull request #4811 from nextcloud/backport/4809/stable27 2023-06-14 16:17:38 +02:00
Julius Härtl
b125e18c52 Merge pull request #4813 from nextcloud/backport/4810/stable27 2023-06-14 16:17:20 +02:00
Max
736222f975 Fix(occ): set user id for permission sevice from board service
Fixes #4010.

Signed-off-by: Max <max@nextcloud.com>
2023-06-14 10:30:53 +00:00
Max
2b33583bd7 fix: execute return int for export command
Signed-off-by: Max <max@nextcloud.com>
2023-06-14 10:29:49 +00:00
Nextcloud bot
b77cb9b270 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-14 00:32:17 +00:00
Nextcloud bot
1c116012ce Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-13 00:32:39 +00:00
Julius Härtl
d7fa2ae265 Merge pull request #4804 from nextcloud/backport/4772/stable27 2023-06-12 12:31:52 +02:00
Julius Härtl
3c407c06ff Merge pull request #4771 from nextcloud/release/1.10.0 2023-06-12 10:53:33 +02:00
Julius Härtl
3fdb70e547 fix: Allow dynamic autoloading for classes added during upgrade
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-12 08:14:19 +00:00
Julius Härtl
febd4b1a0b Merge pull request #4800 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-06-12 09:12:54 +02:00
nextcloud-command
12c3e476f9 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-11 03:36:39 +00:00
Nextcloud bot
ec8c782b5a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-11 00:52:40 +00:00
Julius Härtl
0575926692 Merge pull request #4781 from nextcloud/dependabot/npm_and_yarn/stable27/url-search-params-polyfill-8.2.3 2023-06-10 12:48:48 +02:00
dependabot[bot]
617671c004 Merge pull request #4792 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.14.0 2023-06-10 04:58:49 +00:00
dependabot[bot]
2f9cf4df37 Merge pull request #4778 from nextcloud/dependabot/npm_and_yarn/stable27/vue/test-utils-1.3.6 2023-06-10 03:43:39 +00:00
dependabot[bot]
7e5e0e2814 Chore(deps-dev): Bump cypress from 12.13.0 to 12.14.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.13.0 to 12.14.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.13.0...v12.14.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 03:28:13 +00:00
dependabot[bot]
dd09c2ad69 Merge pull request #4783 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/vue-7.12.0 2023-06-10 03:21:26 +00:00
dependabot[bot]
87dfdd62d4 Chore(deps): Bump @nextcloud/vue from 7.11.6 to 7.12.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.11.6 to 7.12.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.12.0/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.11.6...v7.12.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>
2023-06-10 03:02:09 +00:00
dependabot[bot]
bd77b12f9b Chore(deps): Bump url-search-params-polyfill from 8.2.2 to 8.2.3
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 8.2.2 to 8.2.3.
- [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-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 01:57:56 +00:00
dependabot[bot]
b861f2b1cd 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 01:57:50 +00:00
Julius Härtl
8cf3853387 Merge pull request #4773 from nextcloud/backport/4765/stable27 2023-06-09 17:44:21 +02:00
Git'Fellow
313b5b0e15 Ensure boardId is an integer
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-06-09 07:43:11 +00:00
Julius Härtl
7c81c7237b chore(release): Bump version to 1.10.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-09 09:31:18 +02:00
dependabot[bot]
82eb262433 Merge pull request #4756 from nextcloud/dependabot/npm_and_yarn/stable27/babel/runtime-7.22.3 2023-06-03 03:41:37 +00:00
dependabot[bot]
5ba5eb89b2 Merge pull request #4758 from nextcloud/dependabot/npm_and_yarn/stable27/url-search-params-polyfill-8.2.2 2023-06-03 03:21:04 +00:00
dependabot[bot]
b714be7829 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 01:58:05 +00:00
dependabot[bot]
36e66e4345 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 01:57:51 +00:00
Nextcloud bot
542c70eac1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-03 00:31:46 +00:00
Julius Härtl
f54722cd5a Merge pull request #4736 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/auth-2.1.0 2023-05-30 10:55:55 +02:00
dependabot[bot]
5c29392428 Merge pull request #4738 from nextcloud/dependabot/npm_and_yarn/stable27/babel/runtime-7.22.0 2023-05-27 06:50:57 +00:00
dependabot[bot]
b8071def95 Merge pull request #4733 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.13.0 2023-05-27 03:17:23 +00:00
dependabot[bot]
fba6dc0a45 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:11:38 +00:00
dependabot[bot]
536029e6c6 Chore(deps): Bump @nextcloud/auth from 2.0.0 to 2.1.0
Bumps [@nextcloud/auth](https://github.com/nextcloud/nextcloud-auth) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-auth/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-auth/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-auth/compare/v2.0.0...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 01:58:05 +00:00
dependabot[bot]
77b81f4686 Chore(deps-dev): Bump cypress from 12.12.0 to 12.13.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.12.0 to 12.13.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.12.0...v12.13.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 01:57:49 +00:00
Nextcloud bot
7ba4b2617a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-27 00:32:23 +00:00
Julius Härtl
56e9d5ceb4 Merge pull request #4720 from nextcloud/backport/4688/stable27 2023-05-22 22:36:36 +02:00
Julius Härtl
bb569f7df7 Bump version to 1.10.0-beta.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-22 10:36:42 +02:00
Julius Härtl
4060c7a14a chore(webpack): Remove outdated config for hmr
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-22 08:04:51 +00:00
Julius Härtl
4cebac2306 chore(webpack): Move to shared code for entrypoints and use webpack serve public path
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-22 08:04:51 +00:00
Julius Härtl
2fd8cab627 chore(webpack): Add npm run serve command
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-22 08:04:51 +00:00
dependabot[bot]
4921f3dd62 Merge pull request #4700 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/vue-7.11.6 2023-05-17 21:39:16 +00:00
dependabot[bot]
a268d428bf Merge pull request #4695 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/event-bus-3.1.0 2023-05-17 21:34:45 +00:00
dependabot[bot]
ab11f47afa Chore(deps): Bump @nextcloud/vue from 7.11.4 to 7.11.6
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.11.4 to 7.11.6.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.11.6/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.11.4...v7.11.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 18:11:38 +00:00
dependabot[bot]
0751f604ec Chore(deps): Bump @nextcloud/event-bus from 3.0.2 to 3.1.0
Bumps [@nextcloud/event-bus](https://github.com/nextcloud/nextcloud-event-bus) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-event-bus/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-event-bus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-event-bus/compare/v3.0.2...v3.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 18:11:13 +00:00
Julius Härtl
c2aec9f312 Merge pull request #4691 from nextcloud/update-stable27-target-versions 2023-05-17 20:10:22 +02:00
Joas Schilling
04e9373c58 chore(CI): Adjust testing matrix for Nextcloud 27 on stable27
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-17 13:48:54 +02:00
102 changed files with 35561 additions and 34186 deletions

View File

@@ -12,40 +12,6 @@ updates:
reviewers: reviewers:
- juliushaertl - juliushaertl
- package-ecosystem: npm
target-branch: stable27
versioning-strategy: lockfile-only
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 30
labels:
- 3. to review
- dependencies
- package-ecosystem: npm
target-branch: stable26
versioning-strategy: lockfile-only
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 30
labels:
- 3. to review
- dependencies
- package-ecosystem: npm - package-ecosystem: npm
target-branch: stable25 target-branch: stable25
versioning-strategy: lockfile-only versioning-strategy: lockfile-only

View File

@@ -24,7 +24,7 @@ jobs:
- name: Set up npm7 - name: Set up npm7
run: npm i -g npm@7 run: npm i -g npm@7
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@2.25.4 uses: shivammathur/setup-php@2.25.1
with: with:
php-version: '7.4' php-version: '7.4'
tools: composer tools: composer

View File

@@ -32,7 +32,7 @@ jobs:
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with: with:
path: ${{ env.APP_NAME }} path: ${{ env.APP_NAME }}
@@ -44,7 +44,7 @@ jobs:
expression: "//info//dependencies//nextcloud/@min-version" expression: "//info//dependencies//nextcloud/@min-version"
- name: Read package.json node and npm engines version - name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2 uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions id: versions
# Continue if no package.json # Continue if no package.json
continue-on-error: true continue-on-error: true
@@ -56,7 +56,7 @@ jobs:
- name: Set up node ${{ steps.versions.outputs.nodeVersion }} - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json # Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }} if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
with: with:
node-version: ${{ steps.versions.outputs.nodeVersion }} node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -66,7 +66,7 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}" run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }} - name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@2.25.4 # v2 uses: shivammathur/setup-php@2.25.1 # v2
with: with:
php-version: ${{ env.PHP_VERSION }} php-version: ${{ env.PHP_VERSION }}
coverage: none coverage: none
@@ -126,10 +126,9 @@ jobs:
unzip latest-$NCVERSION.zip unzip latest-$NCVERSION.zip
- name: Checkout server master fallback - name: Checkout server master fallback
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
if: ${{ steps.server-checkout.outcome != 'success' }} if: ${{ steps.server-checkout.outcome != 'success' }}
with: with:
submodules: true
repository: nextcloud/server repository: nextcloud/server
path: nextcloud path: nextcloud
@@ -149,7 +148,7 @@ jobs:
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }} tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release - name: Attach tarball to github release
uses: svenstaro/upload-release-action@2b9d2847a97b04d02ad5c3df2d3a27baa97ce689 # v2 uses: svenstaro/upload-release-action@7319e4733ec7a184d739a6f412c40ffc339b69c7 # v2
id: attach_to_release id: attach_to_release
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -23,7 +23,7 @@ jobs:
steps: steps:
- name: Add reaction on start - name: Add reaction on start
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
with: with:
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }} repository: ${{ github.event.repository.full_name }}
@@ -31,18 +31,18 @@ jobs:
reaction-type: "+1" reaction-type: "+1"
- name: Checkout the latest code - name: Checkout the latest code
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with: with:
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase - name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8 uses: cirrus-actions/rebase@6e572f08c244e2f04f9beb85a943eb618218714d # 1.7
env: env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }} GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure - name: Add reaction on failure
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
if: failure() if: failure()
with: with:
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -5,142 +5,120 @@ on:
push: push:
branches: branches:
- main - main
- master
- stable* - stable*
env: env:
# Adjust APP_NAME if your repository name is different APP_NAME: deck
APP_NAME: ${{ github.event.repository.name }} CYPRESS_baseUrl: http://localhost:8081/index.php
# This represents the server branch to checkout.
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
# e.g. 'main', 'stable27' or 'feature/my-feature
# n.b. server will use head_ref, as we want to test the PR branch.
BRANCH: ${{ github.base_ref || github.ref_name }}
jobs: jobs:
init:
runs-on: ubuntu-latest
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout app
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: "composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: composer install --no-dev
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions
with:
fallbackNode: "^20"
fallbackNpm: "^9"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
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 node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
- name: Save context
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
key: cypress-context-${{ github.run_id }}
path: ./
cypress: cypress:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: init
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
# Run multiple copies of the current job in parallel node-version: [14.x]
# Please increase the number or runners as your tests suite grows # containers: [1, 2, 3]
containers: ["component", 1, 2, 3] php-versions: [ '8.0' ]
databases: [ 'sqlite' ]
name: runner ${{ matrix.containers }} server-versions: [ 'stable27' ]
steps: steps:
- name: Restore context - name: Use Node.js ${{ matrix.node-version }}
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3 uses: actions/setup-node@v3
with: with:
fail-on-cache-miss: true node-version: ${{ matrix.node-version }}
key: cypress-context-${{ github.run_id }} - name: Set up npm7
path: ./ run: npm i -g npm@7
- name: Set up node ${{ needs.init.outputs.nodeVersion }} - name: Register text Git reference
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 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@v3
with: with:
node-version: ${{ needs.init.outputs.nodeVersion }} repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Set up npm ${{ needs.init.outputs.npmVersion }} - name: Checkout submodules
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}" 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: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests - name: Checkout ${{ env.APP_NAME }}
uses: cypress-io/github-action@db1693016f23ccf9043f4b2428f9b04e5d502a73 # v5.8.1 uses: actions/checkout@v3
with:
path: apps/${{ env.APP_NAME }}
- name: Checkout text
uses: actions/checkout@v3
with:
repository: nextcloud/text
ref: ${{ env.text_app_ref }}
path: apps/text
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.1
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@v5
with: with:
record: true record: true
parallel: true parallel: false
# cypress run type wait-on: '${{ env.CYPRESS_baseUrl }}'
component: ${{ matrix.containers == 'component' }} working-directory: 'apps/${{ env.APP_NAME }}'
group: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} config: defaultCommandTimeout=10000,video=false
# cypress env
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
env: env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
# https://github.com/cypress-io/github-action/issues/124
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# Needed for some specific code workarounds
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
npm_package_name: ${{ env.APP_NAME }}
- name: Upload snapshots - name: Upload test failure screenshots
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 uses: actions/upload-artifact@v3
if: always() if: failure()
with: with:
name: snapshots_${{ matrix.containers }} name: Upload screenshots
path: cypress/snapshots path: apps/${{ env.APP_NAME }}/cypress/screenshots/
retention-days: 5
- name: Extract NC logs - name: Upload nextcloud logs
if: failure() && matrix.containers != 'component' uses: actions/upload-artifact@v3
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log if: failure()
- name: Upload NC logs
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: failure() && matrix.containers != 'component'
with: with:
name: nc_logs_${{ matrix.containers }} name: Upload nextcloud log
path: nextcloud.log path: data/nextcloud.log
retention-days: 5
summary:
runs-on: ubuntu-latest
needs: [init, cypress]
if: always()
name: cypress-summary
steps:
- name: Summary status
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi

View File

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

View File

@@ -28,7 +28,7 @@ jobs:
matrix: matrix:
php-versions: ['8.1'] php-versions: ['8.1']
databases: ['sqlite', 'mysql', 'pgsql'] databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master'] server-versions: ['stable27']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }} name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -71,7 +71,7 @@ jobs:
path: apps/${{ env.APP_NAME }} path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.4 uses: shivammathur/setup-php@2.25.1
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu
@@ -98,7 +98,7 @@ jobs:
cat config/config.php cat config/config.php
./occ user:list ./occ user:list
./occ app:enable --force ${{ env.APP_NAME }} ./occ app:enable --force ${{ env.APP_NAME }}
./occ config:system:set query_log_file --value '/home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/query.log' ./occ config:system:set query_log_file --value "$PWD/query.log"
php -S localhost:8080 & php -S localhost:8080 &
- name: Run behat - name: Run behat
@@ -123,12 +123,12 @@ jobs:
myError += data.toString() myError += data.toString()
} }
} }
await exec.exec(`/bin/bash -c "cat /home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/query.log | wc -l"`, [], options) await exec.exec(`/bin/bash -c "cat query.log | wc -l"`, [], options)
msg = myOutput msg = myOutput
const queryCount = parseInt(myOutput, 10) const queryCount = parseInt(myOutput, 10)
myOutput = '' myOutput = ''
await exec.exec('cat', ['/home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options) await exec.exec('cat', ['apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options)
const baseCount = parseInt(myOutput, 10) const baseCount = parseInt(myOutput, 10)
const absoluteIncrease = queryCount - baseCount const absoluteIncrease = queryCount - baseCount
@@ -151,4 +151,4 @@ jobs:
repo: context.repo.repo, repo: context.repo.repo,
body: comment body: comment
}) })
} }

View File

@@ -6,7 +6,7 @@
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions # Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks # https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint name: Lint
on: on:
pull_request: pull_request:
@@ -38,17 +38,17 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Read package.json node and npm engines version - name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2 uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions id: versions
with: with:
fallbackNode: '^16' fallbackNode: '^16'
fallbackNpm: '^7' fallbackNpm: '^7'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }} - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
with: with:
node-version: ${{ steps.versions.outputs.nodeVersion }} node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github # https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php-cs name: Lint
on: pull_request on: pull_request
@@ -22,14 +22,13 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@2.25.4 # v2 uses: shivammathur/setup-php@2.25.1 # v2
with: with:
php-version: 8.1 php-version: 8.1
coverage: none coverage: none
ini-file: development
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github # https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint php name: Lint
on: on:
pull_request: pull_request:
@@ -31,14 +31,13 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.4 # v2 uses: shivammathur/setup-php@2.25.1 # v2
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
coverage: none coverage: none
ini-file: development
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github # https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint stylelint name: Lint
on: pull_request on: pull_request
@@ -22,17 +22,17 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Read package.json node and npm engines version - name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2 uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions id: versions
with: with:
fallbackNode: '^16' fallbackNode: '^16'
fallbackNpm: '^7' fallbackNpm: '^7'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }} - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
with: with:
node-version: ${{ steps.versions.outputs.nodeVersion }} node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -25,7 +25,7 @@ jobs:
- name: Set up npm7 - name: Set up npm7
run: npm i -g npm@7 run: npm i -g npm@7
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@2.25.4 uses: shivammathur/setup-php@2.25.1
with: with:
php-version: '7.4' php-version: '7.4'
tools: composer tools: composer

View File

@@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github # https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Npm audit fix and compile name: npm audit fix and compile
on: on:
workflow_dispatch: workflow_dispatch:
@@ -18,25 +18,25 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"] branches: ["main", "master", "stable26", "stable25", "stable24"]
name: npm-audit-fix-${{ matrix.branches }} name: npm-audit-fix-${{ matrix.branches }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with: with:
ref: ${{ matrix.branches }} ref: ${{ matrix.branches }}
- name: Read package.json node and npm engines version - name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2 uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions id: versions
with: with:
fallbackNode: '^16' fallbackNode: '^16'
fallbackNpm: '^7' fallbackNpm: '^7'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }} - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
with: with:
node-version: ${{ steps.versions.outputs.nodeVersion }} node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -55,7 +55,7 @@ jobs:
- name: Create Pull Request - name: Create Pull Request
if: always() if: always()
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5 uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v3
with: with:
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit" commit-message: "chore(deps): fix npm audit"

View File

@@ -26,9 +26,9 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
php-versions: ['8.0', '8.1', '8.2'] php-versions: ['8.0', '8.1']
databases: ['sqlite', 'mysql', 'pgsql'] databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master'] server-versions: ['stable27']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }} name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -70,7 +70,7 @@ jobs:
path: apps/${{ env.APP_NAME }} path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.4 uses: shivammathur/setup-php@2.25.1
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
tools: phpunit tools: phpunit

View File

@@ -24,14 +24,13 @@ jobs:
name: Nextcloud name: Nextcloud
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@2.25.4 # v2 uses: shivammathur/setup-php@2.25.1 # v2
with: with:
php-version: 8.1 php-version: 8.1
coverage: none coverage: none
ini-file: development
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -17,22 +17,21 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
branches: ["main", "master", "stable27", "stable26", "stable25"] branches: ["master", "stable26", "stable25", "stable24"]
name: update-nextcloud-ocp-${{ matrix.branches }} name: update-nextcloud-ocp-${{ matrix.branches }}
steps: steps:
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with: with:
ref: ${{ matrix.branches }} ref: ${{ matrix.branches }}
submodules: true submodules: true
- name: Set up php8.1 - name: Set up php8.1
uses: shivammathur/setup-php@2.25.4 # v2 uses: shivammathur/setup-php@2.25.1 # v2
with: with:
php-version: 8.1 php-version: 8.1
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none coverage: none
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -41,33 +40,19 @@ jobs:
run: composer install run: composer install
- name: Composer update nextcloud/ocp - name: Composer update nextcloud/ocp
if: matrix.branches != 'main'
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }} run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
continue-on-error: true
- name: Composer update nextcloud/ocp - name: Reset checkout dirs
if: matrix.branches == 'main'
run: composer require --dev nextcloud/ocp:dev-master
- name: Reset checkout 3rdparty
run: | run: |
git clean -f 3rdparty git clean -f 3rdparty
git checkout 3rdparty
continue-on-error: true
- name: Reset checkout vendor
run: |
git clean -f vendor git clean -f vendor
git checkout vendor
continue-on-error: true
- name: Reset checkout vendor-bin
run: |
git clean -f vendor-bin git clean -f vendor-bin
git checkout vendor-bin git checkout 3rdparty vendor vendor-bin
continue-on-error: true continue-on-error: true
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v3 uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v3
with: with:
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(dev-deps): Bump nextcloud/ocp package" commit-message: "chore(dev-deps): Bump nextcloud/ocp package"

View File

@@ -1,7 +1,7 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## 1.10.0-beta.1 ## 1.10.0
### Added ### Added
@@ -9,6 +9,8 @@ All notable changes to this project will be documented in this file.
### Fixed ### Fixed
- fix: Properly overwrite z-index of datepicker above modal @juliushaertl [#4664](https://github.com/nextcloud/deck/pull/4664)
- Use the color-primary-element* variables @szaimen [#4673](https://github.com/nextcloud/deck/pull/4673)
- fix(references): Mute NoPermissionException as it is expected to happen for references @juliushaertl [#4514](https://github.com/nextcloud/deck/pull/4514) - 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(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) - fix: Adapt NcEmptyContent usages to new slots @juliushaertl [#4561](https://github.com/nextcloud/deck/pull/4561)
@@ -28,7 +30,12 @@ All notable changes to this project will be documented in this file.
- Better display of card dates (creation and change dates) @Jerome-Herbinet [#4604](https://github.com/nextcloud/deck/pull/4604) - 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) - 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) - Converts 'strpos()' calls to improve code readability. @fsamapoor [#4657](https://github.com/nextcloud/deck/pull/4657)
- Dependency updates
### Other
- feat: Add devcontainer and update dev docs @juliushaertl [#4683](https://github.com/nextcloud/deck/pull/4683)
- chore(CI): Adjust testing matrix for Nextcloud 27 on stable27 @nickvergessen [#4691](https://github.com/nextcloud/deck/pull/4691)
## 1.9.0-beta.1 ## 1.9.0-beta.1

View File

@@ -27,7 +27,6 @@ Deck is a kanban style organization tool aimed at personal planning and project
- [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello - [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution - [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
- [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab - [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab
- [QOwnNotes](https://github.com/pbek/QOwnNotes) - Quickly creates cards and links to them in Markdown notes
## Installation/Update ## Installation/Update

View File

@@ -16,7 +16,7 @@
- 🚀 Get your project organized - 🚀 Get your project organized
</description> </description>
<version>1.11.0-dev</version> <version>1.10.0</version>
<licence>agpl</licence> <licence>agpl</licence>
<author>Julius Härtl</author> <author>Julius Härtl</author>
<documentation> <documentation>
@@ -38,7 +38,7 @@
<database min-version="9.4">pgsql</database> <database min-version="9.4">pgsql</database>
<database>sqlite</database> <database>sqlite</database>
<database min-version="8.0">mysql</database> <database min-version="8.0">mysql</database>
<nextcloud min-version="28" max-version="28"/> <nextcloud min-version="27" max-version="27"/>
</dependencies> </dependencies>
<background-jobs> <background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job> <job>OCA\Deck\Cron\DeleteCron</job>

View File

@@ -19,7 +19,7 @@
"symfony/event-dispatcher": "^4.0", "symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^5.4", "vimeo/psalm": "^5.4",
"php-parallel-lint/php-parallel-lint": "^1.2", "php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-master" "nextcloud/ocp": "dev-stable27"
}, },
"config": { "config": {
"optimize-autoloader": true, "optimize-autoloader": true,

847
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@ OC.L10N.register(
"deck", "deck",
{ {
"Personal" : "Persoonlik", "Personal" : "Persoonlik",
"Later" : "Later",
"copy" : "kopie", "copy" : "kopie",
"Done" : "Gereed", "Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai", "The file was uploaded" : "Die lêer is opgelaai",

View File

@@ -1,5 +1,6 @@
{ "translations": { { "translations": {
"Personal" : "Persoonlik", "Personal" : "Persoonlik",
"Later" : "Later",
"copy" : "kopie", "copy" : "kopie",
"Done" : "Gereed", "Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai", "The file was uploaded" : "Die lêer is opgelaai",

22
l10n/ast.js Normal file
View File

@@ -0,0 +1,22 @@
OC.L10N.register(
"deck",
{
"Load more" : "Cargar más",
"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",
"Details" : "Detalles",
"Sharing" : "Comparticiñon",
"Tags" : "Etiquetes",
"Delete" : "Desaniciar",
"Members" : "Miembros",
"Download" : "Baxar",
"Today" : "Güei",
"Tomorrow" : "Mañana",
"Description" : "Descripción",
"(Saving…)" : "(Guardando…)",
"All cards" : "Toles tarxetes",
"An error occurred" : "Prodúxose un error"
},
"nplurals=2; plural=(n != 1);");

20
l10n/ast.json Normal file
View File

@@ -0,0 +1,20 @@
{ "translations": {
"Load more" : "Cargar más",
"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",
"Details" : "Detalles",
"Sharing" : "Comparticiñon",
"Tags" : "Etiquetes",
"Delete" : "Desaniciar",
"Members" : "Miembros",
"Download" : "Baxar",
"Today" : "Güei",
"Tomorrow" : "Mañana",
"Description" : "Descripción",
"(Saving…)" : "(Guardando…)",
"All cards" : "Toles tarxetes",
"An error occurred" : "Prodúxose un error"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,16 +1,102 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"You have created a new board {board}" : "Has creado un nuevo tablero {board}",
"{user} has created a new board {board}" : "{user} ha creado un nuevo tablero {board}",
"You have deleted the board {board}" : "Has eliminado el tablero {board}",
"{user} has deleted the board {board}" : "{user} ha eliminado el tablero {board}",
"You have restored the board {board}" : "Has restaurado el tablero {board}",
"{user} has restored the board {board}" : "{user} ha restaurado el tablero {board}",
"You have shared the board {board} with {acl}" : "Has compartido el tablero {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} ha compartido el tablero {board} con {acl}",
"You have removed {acl} from the board {board}" : "Has eliminado {acl} del tablero {board}",
"{user} has removed {acl} from the board {board}" : "{user} ha eliminado {acl} del tablero {board}",
"You have renamed the board {before} to {board}" : "Has cambiado el nombre del tablero {before} a {board}",
"{user} has renamed the board {before} to {board}" : "{user} ha cambiado el nombre del tablero {before} a {board}",
"You have archived the board {board}" : "Has archivado el tablero {board}",
"{user} has archived the board {before}" : "{user} ha archivado el tablero {before}",
"You have unarchived the board {board}" : "Has desarchivado el tablero {board}",
"{user} has unarchived the board {before}" : "{user} ha desarchivado el tablero {before}",
"You have created a new list {stack} on board {board}" : "Has creado una nueva lista {stack} en el tablero {board}",
"{user} has created a new list {stack} on board {board}" : "{user} ha creado una nueva lista {stack} en el tablero {board}",
"You have renamed list {before} to {stack} on board {board}" : "Has cambiado el nombre de la lista {before} a {stack} en el tablero {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ha cambiado el nombre de la lista {before} a {stack} en el tablero {board}",
"You have deleted list {stack} on board {board}" : "Has eliminado la lista {stack} en el tablero {board}",
"{user} has deleted list {stack} on board {board}" : "{user} ha eliminado la lista {stack} en el tablero {board}",
"You have created card {card} in list {stack} on board {board}" : "Has creado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} ha creado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Has eliminado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} ha eliminado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have renamed the card {before} to {card}" : "Has cambiado el nombre de la tarjeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha cambiado el nombre de la tarjeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Has añadido una descripción a la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} ha añadido una descripción a la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Has actualizado la descripción de la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} ha actualizado la descripción de la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have archived card {card} in list {stack} on board {board}" : "Has archivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de la tarjeta {card}",
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de la tarjeta {card}",
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de la tarjeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establecido la fecha de vencimiento de la tarjeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Has actualizado la fecha de vencimiento de la tarjeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualizado la fecha de vencimiento de la tarjeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Has añadido la etiqueta {label} a la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} ha añadido la etiqueta {label} a la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Has eliminado la etiqueta {label} de la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ha eliminado la etiqueta {label} de la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Has asignado a {assigneduser} la tarjeta {card} en el tablero {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha asignado a {assigneduser} la tarjeta {card} en el tablero {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Has quitado la asignación a {assigneduser} de la tarjeta {card} en el tablero {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ha quitado la asignación a {assigneduser} de la tarjeta {card} en el tablero {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Has movido la tarjeta {card} de la lista {stackBefore} a {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ha movido la tarjeta {card} de la lista {stackBefore} a {stack}",
"You have added the attachment {attachment} to card {card}" : "Has añadido el archivo {attachment} a la tarjeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} ha añadido el archivo {attachment} a la tarjeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Has actualizado el archivo {attachment} en la tarjeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} ha actualizado el archivo {attachment} en la tarjeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Has eliminado el archivo {attachment} de la tarjeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} ha eliminado el archivo {attachment} de la tarjeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Has restaurado el archivo {attachment} a la tarjeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurado el archivo {attachment} a la tarjeta {card}",
"You have commented on card {card}" : "Has comentado en la tarjeta {card}",
"{user} has commented on card {card}" : "{user} ha comentado en la tarjeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Se ha cambiado una <strong>descripción de la tarjeta</strong> en la aplicación Deck",
"Deck" : "Deck", "Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Cambios en la aplicación <strong>Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Se ha creado un <strong>comentario</strong> en una tarjeta",
"Upcoming cards" : "Tarjetas próximas",
"Load more" : "Cargar más",
"Personal" : "Personal", "Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La tarjeta \"%s\" en \"%s\" te ha sido asignada por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} te ha asignado la tarjeta {deck-card} en {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
"The card {deck-card} on {deck-board} has reached its due date." : "La tarjeta {deck-card} en {deck-board} ha alcanzado su fecha de vencimiento.",
"%s has mentioned you in a comment on \"%s\"." : "%s te ha mencionado en un comentario en \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} te ha mencionado en un comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.", "The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
"{user} has shared {deck-board} with you." : "{user} ha compartido contigo {deck-board}.",
"Deck board" : "Tablero de Deck",
"Owned by %1$s" : "Perteneciente a %1$s",
"Deck boards, cards and comments" : "Tableros de Deck, tarjetas y comentarios",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, perteneciente a %4$s",
"Card comments" : "Comentarios de tarjetas",
"%s on %s" : "%s en %s", "%s on %s" : "%s en %s",
"Deck boards and cards" : "Tableros y tarjetas de Deck",
"No data was provided to create an attachment." : "No se proporcionaron datos para crear un archivo adjunto.",
"Finished" : "Terminado", "Finished" : "Terminado",
"To review" : "Para revisar", "To review" : "Para revisar",
"Action needed" : "Acción requerida", "Action needed" : "Acción requerida",
"Later" : "Después", "Later" : "Después",
"copy" : "copia",
"To do" : "Por hacer",
"Doing" : "Haciendo",
"Done" : "Terminado", "Done" : "Terminado",
"Example Task 3" : "Tarea de ejemplo 3",
"Example Task 2" : "Tarea de ejemplo 2",
"Example Task 1" : "Tarea de ejemplo 1",
"The file was uploaded" : "El archivo fue cargado", "The file was uploaded" : "El archivo fue cargado",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
@@ -19,47 +105,217 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta una carpeta temporal", "Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No fue posible escribir a disco", "Could not write file to disk" : "No fue posible escribir a disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo o el tamaño del archivo supera el máximo de %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\n Añadido como un archivo adjunto a la tarjeta con el nombre %s.\n Accesible en la URL: %s.",
"Card not found" : "No se encontró la tarjeta",
"Path is already shared with this card" : "La ruta ya está compartida con esta tarjeta",
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación personal y organización de proyectos en equipo",
"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 es una herramienta de organización estilo Kanban destinada a la planificación personal y la organización de proyectos en equipo integrada con Nextcloud.\n \n \n - 📥 Añade tus tareas a tarjetas y ordénalas\n - 📄 Toma notas adicionales en Markdown\n - 🔖 Asigna etiquetas para una mejor organización\n - 👥 Comparte con tu equipo, amigos o familia\n - 📎 Adjunta archivos e incrustarlos en tu descripción en Markdown\n - 💬 Discute con tu equipo usando comentarios\n - ⚡ Sigue los cambios en el flujo de actividad\n - 🚀 Organiza tu proyecto",
"Add board" : "Agregar tablero",
"Select the board to link to a project" : "Selecciona el tablero para vincularlo a un proyecto",
"Search by board title" : "Buscar por título del tablero",
"Select board" : "Seleccionar tablero",
"Create a new card" : "Crear una nueva tarjeta",
"Select a board" : "Seleccionar un tablero",
"Select a list" : "Seleccionar una lista",
"Card title" : "Título de la tarjeta",
"Cancel" : "Cancelar", "Cancel" : "Cancelar",
"Creating the new card …" : "Creando la nueva tarjeta …",
"Card \"{card}\" was added to \"{board}\"" : "La tarjeta \"{card}\" se ha añadido a \"{board}\"",
"Open card" : "Abrir tarjeta",
"Close" : "Cerrar", "Close" : "Cerrar",
"Create card" : "Crear tarjeta",
"Select a card" : "Seleccionar una tarjeta",
"Select the card to link to a project" : "Selecciona la tarjeta para vincularla a un proyecto",
"Link to card" : "Vincular con tarjeta",
"File already exists" : "El archivo ya existe", "File already exists" : "El archivo ya existe",
"A file with the name {filename} already exists." : "Ya existe un archivo con el nombre {filename}.",
"Do you want to overwrite it?" : "¿Deseas sobre escribirlo?", "Do you want to overwrite it?" : "¿Deseas sobre escribirlo?",
"Overwrite file" : "Sobrescribir archivo",
"Keep existing file" : "Mantener el archivo existente",
"This board is read only" : "Este tablero es de solo lectura",
"Drop your files to upload" : "Suelta tus archivos para subirlos",
"Add card" : "Agregar tarjeta", "Add card" : "Agregar tarjeta",
"Archived cards" : "Tarjetas archivadas",
"Add list" : "Agregar lista",
"List name" : "Nombre de la lista",
"Active filters" : "Filtros activos",
"Apply filter" : "Aplicar filtro",
"Filter by tag" : "Filtrar por etiqueta",
"Filter by assigned user" : "Filtrar por usuario asignado",
"Unassigned" : "No asignado",
"Filter by due date" : "Filtrar por fecha de vencimiento",
"Overdue" : "Atrasado",
"Next 24 hours" : "Próximas 24 horas",
"Next 7 days" : "Próximos 7 días",
"Next 30 days" : "Próximos 30 días",
"No due date" : "Sin fecha de vencimiento",
"Clear filter" : "Borrar filtro",
"Hide archived cards" : "Ocultar tarjetas archivadas", "Hide archived cards" : "Ocultar tarjetas archivadas",
"Show archived cards" : "Mostrar tarjetas archivadas", "Show archived cards" : "Mostrar tarjetas archivadas",
"Toggle compact mode" : "Activar modo compacto",
"Open details" : "Abrir detalles.",
"Details" : "Detalles", "Details" : "Detalles",
"Currently present people" : "Personas actualmente presentes",
"Loading board" : "Cargando tablero",
"No lists available" : "No hay listas disponibles",
"Create a new list to add cards to this board" : "Crea una nueva lista para añadir tarjetas a este tablero",
"Board not found" : "No se encontró el tablero",
"Sharing" : "Compartiendo", "Sharing" : "Compartiendo",
"Tags" : "Etiquetas", "Tags" : "Etiquetas",
"Deleted items" : "Elementos eliminados",
"Timeline" : "Línea de tiempo",
"Deleted lists" : "Listas eliminadas",
"Undo" : "Deshacer", "Undo" : "Deshacer",
"Deleted cards" : "Tarjetas eliminadas",
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
"No participants found" : "No se encontraron participantes",
"Board owner" : "Propietario del tablero",
"(Group)" : "(Grupo)",
"(Circle)" : "(Círculo)",
"Can edit" : "Puede editar", "Can edit" : "Puede editar",
"Can share" : "Puede compartir", "Can share" : "Puede compartir",
"Can manage" : "Puede gestionar",
"Owner" : "Dueño", "Owner" : "Dueño",
"Delete" : "Borrar", "Delete" : "Borrar",
"Failed to create share with {displayName}" : "Error al crear el uso compartido con {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {title} a {user}?",
"Transfer the board." : "Transferir el tablero.",
"Transfer" : "Transferencia",
"The board has been transferred to {user}" : "El tablero se ha transferido a {user}",
"Failed to transfer the board to {user}" : "Error al transferir el tablero a {user}",
"Edit list title" : "Editar título de la lista",
"Archive all cards" : "Archivar todas las tarjetas",
"Unarchive all cards" : "Desarchivar todas las tarjetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Archivar todas las tarjetas en esta lista",
"Unarchive all cards in this list" : "Desarchivar todas las tarjetas en esta lista",
"Add a new card" : "Añadir una nueva tarjeta",
"Card name" : "Nombre de la tarjeta",
"List deleted" : "Lista eliminada",
"Edit" : "Editar", "Edit" : "Editar",
"Add a new tag" : "Añadir una nueva etiqueta",
"title and color value must be provided" : "Debe proporcionarse el título y el valor del color",
"Board name" : "Nombre del tablero",
"Members" : "Miembros", "Members" : "Miembros",
"Upload new files" : "Subir nuevos archivos",
"Share from Files" : "Compartir desde Archivos",
"Pending share" : "Uso compartido pendiente",
"Add this attachment" : "Añadir este archivo adjunto",
"Show in Files" : "Mostrar en Archivos",
"Download" : "Descargar", "Download" : "Descargar",
"Remove attachment" : "Eliminar archivo adjunto",
"Delete Attachment" : "Eliminar adjunto",
"Restore Attachment" : "Restaurar adjunto",
"File to share" : "Archivo para compartir",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Open in sidebar view" : "Abrir en vista de barra lateral",
"Open in bigger view" : "Abrir en vista más grande",
"Attachments" : "Adjuntos",
"Comments" : "Comentarios", "Comments" : "Comentarios",
"Modified" : "Modificado", "Modified" : "Modificado",
"Created" : "Creado", "Created" : "Creado",
"The title cannot be empty." : "El título no puede estar vacío.",
"No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!",
"Failed to load comments" : "Error al cargar los comentarios",
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta…",
"Assign to users" : "Asignar a usuarios",
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta…",
"Due date" : "Fecha de vencimiento", "Due date" : "Fecha de vencimiento",
"Set a due date" : "Establecer una fecha de vencimiento",
"Remove due date" : "Eliminar fecha de expiración", "Remove due date" : "Eliminar fecha de expiración",
"Select Date" : "Seleccionar fecha",
"Today" : "Hoy", "Today" : "Hoy",
"Tomorrow" : "Mañana", "Tomorrow" : "Mañana",
"Next week" : "Semana siguiente",
"Next month" : "Mes siguiente",
"Save" : "Guardar", "Save" : "Guardar",
"The comment cannot be empty." : "El comentario no puede estar vacío.",
"The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.",
"In reply to" : "En respuesta a",
"Cancel reply" : "Cancelar respuesta",
"Reply" : "Responder", "Reply" : "Responder",
"Update" : "Actualizar", "Update" : "Actualizar",
"Description" : "Descripción", "Description" : "Descripción",
"(Unsaved)" : "(No guardado)",
"(Saving…)" : "(Guardando…)",
"Formatting help" : "Ayuda de formato", "Formatting help" : "Ayuda de formato",
"Edit description" : "Editar descripción",
"View description" : "Ver descripción",
"Add Attachment" : "Añadir adjunto",
"Write a description …" : "Escribir una descripción …",
"Choose attachment" : "Elegir adjunto",
"(group)" : "(grupo)", "(group)" : "(grupo)",
"Todo items" : "Elementos pendientes",
"{count} comments, {unread} unread" : "{count} comentarios, {unread} sin leer",
"Edit card title" : "Editar título de la tarjeta",
"Assign to me" : "Asignarme la tarjeta",
"Unassign myself" : "Desasignarme la tarjeta",
"Move card" : "Mover tarjeta",
"Card details" : "Detalles de la tarjeta",
"Unarchive card" : "Desarchivar tarjeta",
"Archive card" : "Archivar tarjeta",
"Delete card" : "Eliminar tarjeta",
"Move card to another board" : "Mover tarjeta a otro tablero",
"List is empty" : "La lista está vacía",
"Card deleted" : "Tarjeta eliminada",
"seconds ago" : "hace segundos", "seconds ago" : "hace segundos",
"All boards" : "Todos los tableros",
"Archived boards" : "Tableros archivados", "Archived boards" : "Tableros archivados",
"Shared with you" : "Compartido con usted", "Shared with you" : "Compartido con usted",
"Deck settings" : "Configuración de Deck",
"Use bigger card view" : "Usar vista de tarjeta más grande",
"Show card ID badge" : "Mostrar identificación de la tarjeta",
"Show boards in calendar/tasks" : "Mostrar tableros en calendario/tareas",
"Limit deck usage of groups" : "Limitar uso de Deck a grupos",
"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." : "Limitar Deck bloqueará a los usuarios que no formen parte de esos grupos para que no puedan crear sus propios tableros. Los usuarios aún podrán trabajar en tableros que se hayan compartido con ellos.",
"Board details" : "Detalles del tablero", "Board details" : "Detalles del tablero",
"Edit board" : "Editar el tablero", "Edit board" : "Editar el tablero",
"Clone board" : "Clonar tablero",
"Unarchive board" : "Desarchivar tablero", "Unarchive board" : "Desarchivar tablero",
"Archive board" : "Archivar tablero", "Archive board" : "Archivar tablero",
"Export board" : "Exportar tablero",
"Turn on due date reminders" : "Activar recordatorios de fecha de vencimiento",
"Turn off due date reminders" : "Desactivar recordatorios de fecha de vencimiento",
"Due date reminders" : "Recordatorios de fecha de vencimiento",
"All cards" : "Todas las tarjetas",
"Assigned cards" : "Tarjetas asignadas",
"No notifications" : "No hay notificaciones", "No notifications" : "No hay notificaciones",
"Delete board" : "Borrar tableros", "Delete board" : "Borrar tableros",
"Share" : "Compartir" "Board {0} deleted" : "Tablero {0} eliminado",
"Only assigned cards" : "Sólo tarjetas asignadas",
"No reminder" : "Sin recordatorio",
"An error occurred" : "Se produjo un error",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "¿Estás seguro de que quieres eliminar el tablero {title}? Esto eliminará todos los datos de este tablero, incluidas las tarjetas archivadas.",
"Delete the board?" : "¿Eliminar el tablero?",
"Loading filtered view" : "Cargando vista filtrada",
"No due" : "Sin vencimiento",
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
"No results found" : "No se encontraron resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero de Deck {name}\n * Última modificación el {lastMod}",
"{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Haz clic para expandir la descripción",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado el {created}\n * Última modificación el {lastMod}\n * {nbAttachments} adjuntos\n * {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarjetas",
"Click to expand comment" : "Haz clic para expandir el comentario",
"No upcoming cards" : "No hay tarjetas próximas",
"upcoming cards" : "tarjetas próximas",
"New card" : "Nueva tarjeta",
"Due on {date}" : "Vence el {date}",
"Link to a board" : "Vincular a un tablero",
"Link to a card" : "Vincular a una tarjeta",
"Create a card" : "Crear una tarjeta",
"Message from {author} in {conversationName}" : "Mensaje de {author} en {conversationName}",
"Something went wrong" : "Algo salió mal",
"Failed to upload {name}" : "Error al subir {name}",
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
"Error creating the share" : "Error al crear la compartición",
"Share with a Deck card" : "Compartir con una tarjeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
"Share" : "Compartir",
"Add a new list" : "Añadir una nueva lista"
}, },
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -1,14 +1,100 @@
{ "translations": { { "translations": {
"You have created a new board {board}" : "Has creado un nuevo tablero {board}",
"{user} has created a new board {board}" : "{user} ha creado un nuevo tablero {board}",
"You have deleted the board {board}" : "Has eliminado el tablero {board}",
"{user} has deleted the board {board}" : "{user} ha eliminado el tablero {board}",
"You have restored the board {board}" : "Has restaurado el tablero {board}",
"{user} has restored the board {board}" : "{user} ha restaurado el tablero {board}",
"You have shared the board {board} with {acl}" : "Has compartido el tablero {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} ha compartido el tablero {board} con {acl}",
"You have removed {acl} from the board {board}" : "Has eliminado {acl} del tablero {board}",
"{user} has removed {acl} from the board {board}" : "{user} ha eliminado {acl} del tablero {board}",
"You have renamed the board {before} to {board}" : "Has cambiado el nombre del tablero {before} a {board}",
"{user} has renamed the board {before} to {board}" : "{user} ha cambiado el nombre del tablero {before} a {board}",
"You have archived the board {board}" : "Has archivado el tablero {board}",
"{user} has archived the board {before}" : "{user} ha archivado el tablero {before}",
"You have unarchived the board {board}" : "Has desarchivado el tablero {board}",
"{user} has unarchived the board {before}" : "{user} ha desarchivado el tablero {before}",
"You have created a new list {stack} on board {board}" : "Has creado una nueva lista {stack} en el tablero {board}",
"{user} has created a new list {stack} on board {board}" : "{user} ha creado una nueva lista {stack} en el tablero {board}",
"You have renamed list {before} to {stack} on board {board}" : "Has cambiado el nombre de la lista {before} a {stack} en el tablero {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ha cambiado el nombre de la lista {before} a {stack} en el tablero {board}",
"You have deleted list {stack} on board {board}" : "Has eliminado la lista {stack} en el tablero {board}",
"{user} has deleted list {stack} on board {board}" : "{user} ha eliminado la lista {stack} en el tablero {board}",
"You have created card {card} in list {stack} on board {board}" : "Has creado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} ha creado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Has eliminado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} ha eliminado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have renamed the card {before} to {card}" : "Has cambiado el nombre de la tarjeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha cambiado el nombre de la tarjeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Has añadido una descripción a la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} ha añadido una descripción a la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Has actualizado la descripción de la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} ha actualizado la descripción de la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have archived card {card} in list {stack} on board {board}" : "Has archivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ha archivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Has desarchivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ha desarchivado la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have removed the due date of card {card}" : "Has eliminado la fecha de vencimiento de la tarjeta {card}",
"{user} has removed the due date of card {card}" : "{user} ha eliminado la fecha de vencimiento de la tarjeta {card}",
"You have set the due date of card {card} to {after}" : "Has establecido la fecha de vencimiento de la tarjeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establecido la fecha de vencimiento de la tarjeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Has actualizado la fecha de vencimiento de la tarjeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualizado la fecha de vencimiento de la tarjeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Has añadido la etiqueta {label} a la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} ha añadido la etiqueta {label} a la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Has eliminado la etiqueta {label} de la tarjeta {card} en la lista {stack} en el tablero {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ha eliminado la etiqueta {label} de la tarjeta {card} en la lista {stack} en el tablero {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Has asignado a {assigneduser} la tarjeta {card} en el tablero {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha asignado a {assigneduser} la tarjeta {card} en el tablero {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Has quitado la asignación a {assigneduser} de la tarjeta {card} en el tablero {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ha quitado la asignación a {assigneduser} de la tarjeta {card} en el tablero {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Has movido la tarjeta {card} de la lista {stackBefore} a {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ha movido la tarjeta {card} de la lista {stackBefore} a {stack}",
"You have added the attachment {attachment} to card {card}" : "Has añadido el archivo {attachment} a la tarjeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} ha añadido el archivo {attachment} a la tarjeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Has actualizado el archivo {attachment} en la tarjeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} ha actualizado el archivo {attachment} en la tarjeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Has eliminado el archivo {attachment} de la tarjeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} ha eliminado el archivo {attachment} de la tarjeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Has restaurado el archivo {attachment} a la tarjeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurado el archivo {attachment} a la tarjeta {card}",
"You have commented on card {card}" : "Has comentado en la tarjeta {card}",
"{user} has commented on card {card}" : "{user} ha comentado en la tarjeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Se ha cambiado una <strong>descripción de la tarjeta</strong> en la aplicación Deck",
"Deck" : "Deck", "Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Cambios en la aplicación <strong>Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Se ha creado un <strong>comentario</strong> en una tarjeta",
"Upcoming cards" : "Tarjetas próximas",
"Load more" : "Cargar más",
"Personal" : "Personal", "Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La tarjeta \"%s\" en \"%s\" te ha sido asignada por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} te ha asignado la tarjeta {deck-card} en {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega", "The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alacanzado su fecha de entrega",
"The card {deck-card} on {deck-board} has reached its due date." : "La tarjeta {deck-card} en {deck-board} ha alcanzado su fecha de vencimiento.",
"%s has mentioned you in a comment on \"%s\"." : "%s te ha mencionado en un comentario en \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} te ha mencionado en un comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.", "The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
"{user} has shared {deck-board} with you." : "{user} ha compartido contigo {deck-board}.",
"Deck board" : "Tablero de Deck",
"Owned by %1$s" : "Perteneciente a %1$s",
"Deck boards, cards and comments" : "Tableros de Deck, tarjetas y comentarios",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, perteneciente a %4$s",
"Card comments" : "Comentarios de tarjetas",
"%s on %s" : "%s en %s", "%s on %s" : "%s en %s",
"Deck boards and cards" : "Tableros y tarjetas de Deck",
"No data was provided to create an attachment." : "No se proporcionaron datos para crear un archivo adjunto.",
"Finished" : "Terminado", "Finished" : "Terminado",
"To review" : "Para revisar", "To review" : "Para revisar",
"Action needed" : "Acción requerida", "Action needed" : "Acción requerida",
"Later" : "Después", "Later" : "Después",
"copy" : "copia",
"To do" : "Por hacer",
"Doing" : "Haciendo",
"Done" : "Terminado", "Done" : "Terminado",
"Example Task 3" : "Tarea de ejemplo 3",
"Example Task 2" : "Tarea de ejemplo 2",
"Example Task 1" : "Tarea de ejemplo 1",
"The file was uploaded" : "El archivo fue cargado", "The file was uploaded" : "El archivo fue cargado",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
@@ -17,47 +103,217 @@
"Missing a temporary folder" : "Falta una carpeta temporal", "Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No fue posible escribir a disco", "Could not write file to disk" : "No fue posible escribir a disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo", "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo o el tamaño del archivo supera el máximo de %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\n Añadido como un archivo adjunto a la tarjeta con el nombre %s.\n Accesible en la URL: %s.",
"Card not found" : "No se encontró la tarjeta",
"Path is already shared with this card" : "La ruta ya está compartida con esta tarjeta",
"Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación personal y organización de proyectos en equipo",
"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 es una herramienta de organización estilo Kanban destinada a la planificación personal y la organización de proyectos en equipo integrada con Nextcloud.\n \n \n - 📥 Añade tus tareas a tarjetas y ordénalas\n - 📄 Toma notas adicionales en Markdown\n - 🔖 Asigna etiquetas para una mejor organización\n - 👥 Comparte con tu equipo, amigos o familia\n - 📎 Adjunta archivos e incrustarlos en tu descripción en Markdown\n - 💬 Discute con tu equipo usando comentarios\n - ⚡ Sigue los cambios en el flujo de actividad\n - 🚀 Organiza tu proyecto",
"Add board" : "Agregar tablero",
"Select the board to link to a project" : "Selecciona el tablero para vincularlo a un proyecto",
"Search by board title" : "Buscar por título del tablero",
"Select board" : "Seleccionar tablero",
"Create a new card" : "Crear una nueva tarjeta",
"Select a board" : "Seleccionar un tablero",
"Select a list" : "Seleccionar una lista",
"Card title" : "Título de la tarjeta",
"Cancel" : "Cancelar", "Cancel" : "Cancelar",
"Creating the new card …" : "Creando la nueva tarjeta …",
"Card \"{card}\" was added to \"{board}\"" : "La tarjeta \"{card}\" se ha añadido a \"{board}\"",
"Open card" : "Abrir tarjeta",
"Close" : "Cerrar", "Close" : "Cerrar",
"Create card" : "Crear tarjeta",
"Select a card" : "Seleccionar una tarjeta",
"Select the card to link to a project" : "Selecciona la tarjeta para vincularla a un proyecto",
"Link to card" : "Vincular con tarjeta",
"File already exists" : "El archivo ya existe", "File already exists" : "El archivo ya existe",
"A file with the name {filename} already exists." : "Ya existe un archivo con el nombre {filename}.",
"Do you want to overwrite it?" : "¿Deseas sobre escribirlo?", "Do you want to overwrite it?" : "¿Deseas sobre escribirlo?",
"Overwrite file" : "Sobrescribir archivo",
"Keep existing file" : "Mantener el archivo existente",
"This board is read only" : "Este tablero es de solo lectura",
"Drop your files to upload" : "Suelta tus archivos para subirlos",
"Add card" : "Agregar tarjeta", "Add card" : "Agregar tarjeta",
"Archived cards" : "Tarjetas archivadas",
"Add list" : "Agregar lista",
"List name" : "Nombre de la lista",
"Active filters" : "Filtros activos",
"Apply filter" : "Aplicar filtro",
"Filter by tag" : "Filtrar por etiqueta",
"Filter by assigned user" : "Filtrar por usuario asignado",
"Unassigned" : "No asignado",
"Filter by due date" : "Filtrar por fecha de vencimiento",
"Overdue" : "Atrasado",
"Next 24 hours" : "Próximas 24 horas",
"Next 7 days" : "Próximos 7 días",
"Next 30 days" : "Próximos 30 días",
"No due date" : "Sin fecha de vencimiento",
"Clear filter" : "Borrar filtro",
"Hide archived cards" : "Ocultar tarjetas archivadas", "Hide archived cards" : "Ocultar tarjetas archivadas",
"Show archived cards" : "Mostrar tarjetas archivadas", "Show archived cards" : "Mostrar tarjetas archivadas",
"Toggle compact mode" : "Activar modo compacto",
"Open details" : "Abrir detalles.",
"Details" : "Detalles", "Details" : "Detalles",
"Currently present people" : "Personas actualmente presentes",
"Loading board" : "Cargando tablero",
"No lists available" : "No hay listas disponibles",
"Create a new list to add cards to this board" : "Crea una nueva lista para añadir tarjetas a este tablero",
"Board not found" : "No se encontró el tablero",
"Sharing" : "Compartiendo", "Sharing" : "Compartiendo",
"Tags" : "Etiquetas", "Tags" : "Etiquetas",
"Deleted items" : "Elementos eliminados",
"Timeline" : "Línea de tiempo",
"Deleted lists" : "Listas eliminadas",
"Undo" : "Deshacer", "Undo" : "Deshacer",
"Deleted cards" : "Tarjetas eliminadas",
"Share board with a user, group or circle …" : "Compartir tablero con un usuario, grupo o círculo …",
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
"No participants found" : "No se encontraron participantes",
"Board owner" : "Propietario del tablero",
"(Group)" : "(Grupo)",
"(Circle)" : "(Círculo)",
"Can edit" : "Puede editar", "Can edit" : "Puede editar",
"Can share" : "Puede compartir", "Can share" : "Puede compartir",
"Can manage" : "Puede gestionar",
"Owner" : "Dueño", "Owner" : "Dueño",
"Delete" : "Borrar", "Delete" : "Borrar",
"Failed to create share with {displayName}" : "Error al crear el uso compartido con {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {title} a {user}?",
"Transfer the board." : "Transferir el tablero.",
"Transfer" : "Transferencia",
"The board has been transferred to {user}" : "El tablero se ha transferido a {user}",
"Failed to transfer the board to {user}" : "Error al transferir el tablero a {user}",
"Edit list title" : "Editar título de la lista",
"Archive all cards" : "Archivar todas las tarjetas",
"Unarchive all cards" : "Desarchivar todas las tarjetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Archivar todas las tarjetas en esta lista",
"Unarchive all cards in this list" : "Desarchivar todas las tarjetas en esta lista",
"Add a new card" : "Añadir una nueva tarjeta",
"Card name" : "Nombre de la tarjeta",
"List deleted" : "Lista eliminada",
"Edit" : "Editar", "Edit" : "Editar",
"Add a new tag" : "Añadir una nueva etiqueta",
"title and color value must be provided" : "Debe proporcionarse el título y el valor del color",
"Board name" : "Nombre del tablero",
"Members" : "Miembros", "Members" : "Miembros",
"Upload new files" : "Subir nuevos archivos",
"Share from Files" : "Compartir desde Archivos",
"Pending share" : "Uso compartido pendiente",
"Add this attachment" : "Añadir este archivo adjunto",
"Show in Files" : "Mostrar en Archivos",
"Download" : "Descargar", "Download" : "Descargar",
"Remove attachment" : "Eliminar archivo adjunto",
"Delete Attachment" : "Eliminar adjunto",
"Restore Attachment" : "Restaurar adjunto",
"File to share" : "Archivo para compartir",
"Invalid path selected" : "Ruta seleccionada no válida.",
"Open in sidebar view" : "Abrir en vista de barra lateral",
"Open in bigger view" : "Abrir en vista más grande",
"Attachments" : "Adjuntos",
"Comments" : "Comentarios", "Comments" : "Comentarios",
"Modified" : "Modificado", "Modified" : "Modificado",
"Created" : "Creado", "Created" : "Creado",
"The title cannot be empty." : "El título no puede estar vacío.",
"No comments yet. Begin the discussion!" : "Aún no hay comentarios. ¡Inicia la discusión!",
"Failed to load comments" : "Error al cargar los comentarios",
"Assign a tag to this card…" : "Asignar una etiqueta a esta tarjeta…",
"Assign to users" : "Asignar a usuarios",
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
"Assign a user to this card…" : "Asignar un usuario a esta tarjeta…",
"Due date" : "Fecha de vencimiento", "Due date" : "Fecha de vencimiento",
"Set a due date" : "Establecer una fecha de vencimiento",
"Remove due date" : "Eliminar fecha de expiración", "Remove due date" : "Eliminar fecha de expiración",
"Select Date" : "Seleccionar fecha",
"Today" : "Hoy", "Today" : "Hoy",
"Tomorrow" : "Mañana", "Tomorrow" : "Mañana",
"Next week" : "Semana siguiente",
"Next month" : "Mes siguiente",
"Save" : "Guardar", "Save" : "Guardar",
"The comment cannot be empty." : "El comentario no puede estar vacío.",
"The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.",
"In reply to" : "En respuesta a",
"Cancel reply" : "Cancelar respuesta",
"Reply" : "Responder", "Reply" : "Responder",
"Update" : "Actualizar", "Update" : "Actualizar",
"Description" : "Descripción", "Description" : "Descripción",
"(Unsaved)" : "(No guardado)",
"(Saving…)" : "(Guardando…)",
"Formatting help" : "Ayuda de formato", "Formatting help" : "Ayuda de formato",
"Edit description" : "Editar descripción",
"View description" : "Ver descripción",
"Add Attachment" : "Añadir adjunto",
"Write a description …" : "Escribir una descripción …",
"Choose attachment" : "Elegir adjunto",
"(group)" : "(grupo)", "(group)" : "(grupo)",
"Todo items" : "Elementos pendientes",
"{count} comments, {unread} unread" : "{count} comentarios, {unread} sin leer",
"Edit card title" : "Editar título de la tarjeta",
"Assign to me" : "Asignarme la tarjeta",
"Unassign myself" : "Desasignarme la tarjeta",
"Move card" : "Mover tarjeta",
"Card details" : "Detalles de la tarjeta",
"Unarchive card" : "Desarchivar tarjeta",
"Archive card" : "Archivar tarjeta",
"Delete card" : "Eliminar tarjeta",
"Move card to another board" : "Mover tarjeta a otro tablero",
"List is empty" : "La lista está vacía",
"Card deleted" : "Tarjeta eliminada",
"seconds ago" : "hace segundos", "seconds ago" : "hace segundos",
"All boards" : "Todos los tableros",
"Archived boards" : "Tableros archivados", "Archived boards" : "Tableros archivados",
"Shared with you" : "Compartido con usted", "Shared with you" : "Compartido con usted",
"Deck settings" : "Configuración de Deck",
"Use bigger card view" : "Usar vista de tarjeta más grande",
"Show card ID badge" : "Mostrar identificación de la tarjeta",
"Show boards in calendar/tasks" : "Mostrar tableros en calendario/tareas",
"Limit deck usage of groups" : "Limitar uso de Deck a grupos",
"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." : "Limitar Deck bloqueará a los usuarios que no formen parte de esos grupos para que no puedan crear sus propios tableros. Los usuarios aún podrán trabajar en tableros que se hayan compartido con ellos.",
"Board details" : "Detalles del tablero", "Board details" : "Detalles del tablero",
"Edit board" : "Editar el tablero", "Edit board" : "Editar el tablero",
"Clone board" : "Clonar tablero",
"Unarchive board" : "Desarchivar tablero", "Unarchive board" : "Desarchivar tablero",
"Archive board" : "Archivar tablero", "Archive board" : "Archivar tablero",
"Export board" : "Exportar tablero",
"Turn on due date reminders" : "Activar recordatorios de fecha de vencimiento",
"Turn off due date reminders" : "Desactivar recordatorios de fecha de vencimiento",
"Due date reminders" : "Recordatorios de fecha de vencimiento",
"All cards" : "Todas las tarjetas",
"Assigned cards" : "Tarjetas asignadas",
"No notifications" : "No hay notificaciones", "No notifications" : "No hay notificaciones",
"Delete board" : "Borrar tableros", "Delete board" : "Borrar tableros",
"Share" : "Compartir" "Board {0} deleted" : "Tablero {0} eliminado",
"Only assigned cards" : "Sólo tarjetas asignadas",
"No reminder" : "Sin recordatorio",
"An error occurred" : "Se produjo un error",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "¿Estás seguro de que quieres eliminar el tablero {title}? Esto eliminará todos los datos de este tablero, incluidas las tarjetas archivadas.",
"Delete the board?" : "¿Eliminar el tablero?",
"Loading filtered view" : "Cargando vista filtrada",
"No due" : "Sin vencimiento",
"Search for {searchQuery} in all boards" : "Buscar {searchQuery} en todos los tableros",
"No results found" : "No se encontraron resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Tablero de Deck {name}\n * Última modificación el {lastMod}",
"{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Haz clic para expandir la descripción",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado el {created}\n * Última modificación el {lastMod}\n * {nbAttachments} adjuntos\n * {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarjetas",
"Click to expand comment" : "Haz clic para expandir el comentario",
"No upcoming cards" : "No hay tarjetas próximas",
"upcoming cards" : "tarjetas próximas",
"New card" : "Nueva tarjeta",
"Due on {date}" : "Vence el {date}",
"Link to a board" : "Vincular a un tablero",
"Link to a card" : "Vincular a una tarjeta",
"Create a card" : "Crear una tarjeta",
"Message from {author} in {conversationName}" : "Mensaje de {author} en {conversationName}",
"Something went wrong" : "Algo salió mal",
"Failed to upload {name}" : "Error al subir {name}",
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
"Error creating the share" : "Error al crear la compartición",
"Share with a Deck card" : "Compartir con una tarjeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
"Share" : "Compartir",
"Add a new list" : "Añadir una nueva lista"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} }

View File

@@ -14,6 +14,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Ajutine kausta on puudu", "Missing a temporary folder" : "Ajutine kausta on puudu",
"Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus", "Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus",
"A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise", "A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise",
"No file uploaded or file size exceeds maximum of %s" : "Faili ei laaditud üles või selle suurus ületab maksimaalse %s",
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
"Cancel" : "Loobu", "Cancel" : "Loobu",
"Close" : "Sulge", "Close" : "Sulge",

View File

@@ -12,6 +12,7 @@
"Missing a temporary folder" : "Ajutine kausta on puudu", "Missing a temporary folder" : "Ajutine kausta on puudu",
"Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus", "Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus",
"A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise", "A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise",
"No file uploaded or file size exceeds maximum of %s" : "Faili ei laaditud üles või selle suurus ületab maksimaalse %s",
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
"Cancel" : "Loobu", "Cancel" : "Loobu",
"Close" : "Sulge", "Close" : "Sulge",

View File

@@ -204,7 +204,7 @@ OC.L10N.register(
"Share from Files" : "Partekatu Fitxategiak-etik", "Share from Files" : "Partekatu Fitxategiak-etik",
"Pending share" : "Partekatzeko zain", "Pending share" : "Partekatzeko zain",
"Add this attachment" : "Gehitu eranskin hau", "Add this attachment" : "Gehitu eranskin hau",
"Show in Files" : "Erakutsi fitxategietan", "Show in Files" : "Erakutsi Fitxategiak aplikazioan",
"Download" : "Deskargatu", "Download" : "Deskargatu",
"Remove attachment" : "Kendu eranskina", "Remove attachment" : "Kendu eranskina",
"Delete Attachment" : "Ezabatu eranskina", "Delete Attachment" : "Ezabatu eranskina",

View File

@@ -202,7 +202,7 @@
"Share from Files" : "Partekatu Fitxategiak-etik", "Share from Files" : "Partekatu Fitxategiak-etik",
"Pending share" : "Partekatzeko zain", "Pending share" : "Partekatzeko zain",
"Add this attachment" : "Gehitu eranskin hau", "Add this attachment" : "Gehitu eranskin hau",
"Show in Files" : "Erakutsi fitxategietan", "Show in Files" : "Erakutsi Fitxategiak aplikazioan",
"Download" : "Deskargatu", "Download" : "Deskargatu",
"Remove attachment" : "Kendu eranskina", "Remove attachment" : "Kendu eranskina",
"Delete Attachment" : "Ezabatu eranskina", "Delete Attachment" : "Ezabatu eranskina",

View File

@@ -254,6 +254,7 @@ OC.L10N.register(
"Delete board" : "حذف تهته", "Delete board" : "حذف تهته",
"An error occurred" : "خطایی روی داد", "An error occurred" : "خطایی روی داد",
"No results found" : "هیچ نتیجه ای یافت نشد", "No results found" : "هیچ نتیجه ای یافت نشد",
"Message from {author} in {conversationName}" : "پیام از {author} در {conversationName}",
"Error creating the share" : "خطایی در ایجاد اشتراک", "Error creating the share" : "خطایی در ایجاد اشتراک",
"Share" : "هم‌رسانی", "Share" : "هم‌رسانی",
"Add a new list" : "فهرست جدید بیفزایید!" "Add a new list" : "فهرست جدید بیفزایید!"

View File

@@ -252,6 +252,7 @@
"Delete board" : "حذف تهته", "Delete board" : "حذف تهته",
"An error occurred" : "خطایی روی داد", "An error occurred" : "خطایی روی داد",
"No results found" : "هیچ نتیجه ای یافت نشد", "No results found" : "هیچ نتیجه ای یافت نشد",
"Message from {author} in {conversationName}" : "پیام از {author} در {conversationName}",
"Error creating the share" : "خطایی در ایجاد اشتراک", "Error creating the share" : "خطایی در ایجاد اشتراک",
"Share" : "هم‌رسانی", "Share" : "هم‌رسانی",
"Add a new list" : "فهرست جدید بیفزایید!" "Add a new list" : "فهرست جدید بیفزایید!"

View File

@@ -1,67 +1,67 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"You have created a new board {board}" : "Vostede creou o novo taboleiro {board}", "You have created a new board {board}" : "Vde. creou o novo taboleiro {board}",
"{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}", "{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}",
"You have deleted the board {board}" : "Vostede eliminou o taboleiro {board}", "You have deleted the board {board}" : "Vde. eliminou o taboleiro {board}",
"{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}", "{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}",
"You have restored the board {board}" : "Vostede restaurou o taboleiro {board}", "You have restored the board {board}" : "Vde. restaurou o taboleiro {board}",
"{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}", "{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}",
"You have shared the board {board} with {acl}" : "Vostede compartiu o taboleiro {board} con {acl}", "You have shared the board {board} with {acl}" : "Vde. compartiu o taboleiro {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}", "{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}",
"You have removed {acl} from the board {board}" : "Vostede retirou a {acl} do taboleiro {board}", "You have removed {acl} from the board {board}" : "Vde. retirou a {acl} do taboleiro {board}",
"{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}", "{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}",
"You have renamed the board {before} to {board}" : "Vostede renomeou o taboleiro {before} como {board}", "You have renamed the board {before} to {board}" : "Vde. renomeou o taboleiro {before} como {board}",
"{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}", "{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}",
"You have archived the board {board}" : "Vostede arquivou o taboleiro {board}", "You have archived the board {board}" : "Vde. arquivou o taboleiro {board}",
"{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}", "{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}",
"You have unarchived the board {board}" : "Vostede desarquivou o taboleiro {board}", "You have unarchived the board {board}" : "Vde. desarquivou o taboleiro {board}",
"{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}", "{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}",
"You have created a new list {stack} on board {board}" : "Vostede creou unha nova lista {stack} no taboleiro {board}", "You have created a new list {stack} on board {board}" : "Vde. creou unha nova lista {stack} no taboleiro {board}",
"{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}", "{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vostede renomeou a lista {before} no taboleiro {board}", "You have renamed list {before} to {stack} on board {board}" : "Vde. renomeou a lista {before} no taboleiro {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vostede eliminou a lista {stack} do taboleiro {board}", "You have deleted list {stack} on board {board}" : "Vde. eliminou a lista {stack} do taboleiro {board}",
"{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}", "{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vostede creou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have created card {card} in list {stack} on board {board}" : "Vde. creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vostede eliminou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have deleted card {card} in list {stack} on board {board}" : "Vde. eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}", "You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}", "{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vostede engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}", "You have added a description to card {card} in list {stack} on board {board}" : "Vde. engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vostede actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Vde. actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vostede arquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have archived card {card} in list {stack} on board {board}" : "Vde. arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vostede desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Vde. desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the due date of card {card}" : "Vostede retirou a caducidade da tarxeta {card}", "You have removed the due date of card {card}" : "Vde. retirou a caducidade da tarxeta {card}",
"{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}", "{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}",
"You have set the due date of card {card} to {after}" : "Vostede estabeleceu a caducidade da tarxeta {card} a {after}", "You have set the due date of card {card} to {after}" : "Vde. estabeleceu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}", "{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vostede actualizou a caducidade da tarxeta {card} a {after}", "You have updated the due date of card {card} to {after}" : "Vde. actualizou a caducidade da tarxeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}", "{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vostede engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}", "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vde. engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vostede retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}", "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vde. retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vostede asignou a {assigneduser} á tarxeta {card} no taboleiro {board}", "You have assigned {assigneduser} to card {card} on board {board}" : "Vde. asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}", "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vostede desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Vde. desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vostede moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}", "You have moved the card {card} from list {stackBefore} to {stack}" : "Vde. moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}", "{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have added the attachment {attachment} to card {card}" : "Vostede engadiu o anexo {attachment} na tarxeta {card}", "You have added the attachment {attachment} to card {card}" : "Vde. engadiu o anexo {attachment} na tarxeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}", "{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vostede actualizou o anexo {attachment} na tarxeta {card}", "You have updated the attachment {attachment} on card {card}" : "Vde. actualizou o anexo {attachment} na tarxeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vostede eliminou o anexo {attachment} da tarxeta {card}", "You have deleted the attachment {attachment} from card {card}" : "Vde. eliminou o anexo {attachment} da tarxeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}", "{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vostede restaurou o anexo {attachment} na tarxeta {card}", "You have restored the attachment {attachment} to card {card}" : "Vde. restaurou o anexo {attachment} na tarxeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}", "You have commented on card {card}" : "Vde. comentou na tarxeta {card}",
"{user} has commented on card {card}" : "{user} comentou na tarxeta {card}", "{user} has commented on card {card}" : "{user} comentou na tarxeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro", "A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro",
"Deck" : "Tarxeteiro", "Deck" : "Tarxeteiro",
@@ -70,13 +70,13 @@ OC.L10N.register(
"Upcoming cards" : "Tarxetas próximas", "Upcoming cards" : "Tarxetas próximas",
"Load more" : "Cargar máis", "Load more" : "Cargar máis",
"Personal" : "Persoal", "Personal" : "Persoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a vostede por %s.", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a Vde. por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a vostede.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a Vde.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.", "The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.", "The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a vostede nun comentario en «%s».", "%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a Vde. nun comentario en «%s».",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a vostede nun comentario en {deck-card}.", "{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a Vde. nun comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede por %s.", "The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con Vde. por %s.",
"{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.", "{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.",
"Deck board" : "Taboleiro do Tarxeteiro", "Deck board" : "Taboleiro do Tarxeteiro",
"Owned by %1$s" : "Propiedade de %1$s", "Owned by %1$s" : "Propiedade de %1$s",
@@ -111,7 +111,7 @@ OC.L10N.register(
"Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta", "Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta",
"Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo", "Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo",
"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" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e insíraos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado", "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" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e integreos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
"Add board" : "Engadir taboleiro", "Add board" : "Engadir taboleiro",
"Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto", "Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto",
"Search by board title" : "Buscar polo título do taboleiro", "Search by board title" : "Buscar polo título do taboleiro",
@@ -128,7 +128,7 @@ OC.L10N.register(
"Create card" : "Crear tarxeta", "Create card" : "Crear tarxeta",
"Select a card" : "Seleccione unha tarxeta", "Select a card" : "Seleccione unha tarxeta",
"Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto", "Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto",
"Link to card" : "Ligar á tarxeta", "Link to card" : "Ligazón á tarxeta",
"File already exists" : "O ficheiro xa existe", "File already exists" : "O ficheiro xa existe",
"A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.", "A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.",
"Do you want to overwrite it?" : "Quere sobrescribilo?", "Do you want to overwrite it?" : "Quere sobrescribilo?",
@@ -202,7 +202,7 @@ OC.L10N.register(
"Members" : "Membros", "Members" : "Membros",
"Upload new files" : "Enviar novos ficheiros", "Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»", "Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Recurso compartido pendente", "Pending share" : "Compartición pendente",
"Add this attachment" : "Engadir este anexo", "Add this attachment" : "Engadir este anexo",
"Show in Files" : "Amosar en Ficheiros", "Show in Files" : "Amosar en Ficheiros",
"Download" : "Descargar", "Download" : "Descargar",
@@ -265,8 +265,8 @@ OC.L10N.register(
"seconds ago" : "segundos atrás", "seconds ago" : "segundos atrás",
"All boards" : "Todos os taboleiros", "All boards" : "Todos os taboleiros",
"Archived boards" : "Taboleiros arquivados", "Archived boards" : "Taboleiros arquivados",
"Shared with you" : "Compartido con vostede", "Shared with you" : "Compartido con Vde.",
"Deck settings" : "Axustes do Tarxeteiro", "Deck settings" : "Axustes de Tarxeteiro",
"Use bigger card view" : "Usa a vista de tarxeta máis grande", "Use bigger card view" : "Usa a vista de tarxeta máis grande",
"Show card ID badge" : "Amosar o distintivo de identificación da tarxeta", "Show card ID badge" : "Amosar o distintivo de identificación da tarxeta",
"Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas", "Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas",
@@ -295,22 +295,22 @@ OC.L10N.register(
"No due" : "Sen caducidade", "No due" : "Sen caducidade",
"Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros", "Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros",
"No results found" : "Non se atoparon resultados", "No results found" : "Non se atoparon resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {nome}\n* Última modificación en {lastMod}", "Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {name}\n* Última modificación en {lastMod}",
"{stack} in {board}" : "{stack} en {board}", "{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Prema para ampliar a descrición", "Click to expand description" : "Prema para despregar a descrición",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarxetas", "{nbCards} cards" : "{nbCards} tarxetas",
"Click to expand comment" : "Prema para ampliar o comentario", "Click to expand comment" : "Prema para despregar o comentario",
"No upcoming cards" : "Non hai tarxetas próximas", "No upcoming cards" : "Non hai tarxetas próximas",
"upcoming cards" : "tarxetas próximas", "upcoming cards" : "tarxetas próximas",
"New card" : "Nova tarxeta", "New card" : "Nova tarxeta",
"Due on {date}" : "Caduca o {date}", "Due on {date}" : "Caduca o {date}",
"Link to a board" : "Ligar a un taboleiro", "Link to a board" : "Ligazón a un taboleiro",
"Link to a card" : "Ligar a unha tarxeta", "Link to a card" : "Ligazón a unha tarxeta",
"Create a card" : "Crear unha tarxeta", "Create a card" : "Crear unha tarxeta",
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}", "Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
"Something went wrong" : "Algo foi mal", "Something went wrong" : "Algo foi mal",
"Failed to upload {name}" : "Produciuse un fallo ao actualizar {name}", "Failed to upload {name}" : "Produciuse un fallo ao enviar {name}",
"Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}", "Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}",
"Error creating the share" : "Produciuse un erro ao crear a compartición", "Error creating the share" : "Produciuse un erro ao crear a compartición",
"Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro", "Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro",

View File

@@ -1,65 +1,65 @@
{ "translations": { { "translations": {
"You have created a new board {board}" : "Vostede creou o novo taboleiro {board}", "You have created a new board {board}" : "Vde. creou o novo taboleiro {board}",
"{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}", "{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}",
"You have deleted the board {board}" : "Vostede eliminou o taboleiro {board}", "You have deleted the board {board}" : "Vde. eliminou o taboleiro {board}",
"{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}", "{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}",
"You have restored the board {board}" : "Vostede restaurou o taboleiro {board}", "You have restored the board {board}" : "Vde. restaurou o taboleiro {board}",
"{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}", "{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}",
"You have shared the board {board} with {acl}" : "Vostede compartiu o taboleiro {board} con {acl}", "You have shared the board {board} with {acl}" : "Vde. compartiu o taboleiro {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}", "{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}",
"You have removed {acl} from the board {board}" : "Vostede retirou a {acl} do taboleiro {board}", "You have removed {acl} from the board {board}" : "Vde. retirou a {acl} do taboleiro {board}",
"{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}", "{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}",
"You have renamed the board {before} to {board}" : "Vostede renomeou o taboleiro {before} como {board}", "You have renamed the board {before} to {board}" : "Vde. renomeou o taboleiro {before} como {board}",
"{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}", "{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}",
"You have archived the board {board}" : "Vostede arquivou o taboleiro {board}", "You have archived the board {board}" : "Vde. arquivou o taboleiro {board}",
"{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}", "{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}",
"You have unarchived the board {board}" : "Vostede desarquivou o taboleiro {board}", "You have unarchived the board {board}" : "Vde. desarquivou o taboleiro {board}",
"{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}", "{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}",
"You have created a new list {stack} on board {board}" : "Vostede creou unha nova lista {stack} no taboleiro {board}", "You have created a new list {stack} on board {board}" : "Vde. creou unha nova lista {stack} no taboleiro {board}",
"{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}", "{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vostede renomeou a lista {before} no taboleiro {board}", "You have renamed list {before} to {stack} on board {board}" : "Vde. renomeou a lista {before} no taboleiro {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vostede eliminou a lista {stack} do taboleiro {board}", "You have deleted list {stack} on board {board}" : "Vde. eliminou a lista {stack} do taboleiro {board}",
"{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}", "{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vostede creou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have created card {card} in list {stack} on board {board}" : "Vde. creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vostede eliminou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have deleted card {card} in list {stack} on board {board}" : "Vde. eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}", "You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}", "{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vostede engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}", "You have added a description to card {card} in list {stack} on board {board}" : "Vde. engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vostede actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Vde. actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vostede arquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have archived card {card} in list {stack} on board {board}" : "Vde. arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vostede desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "You have unarchived card {card} in list {stack} on board {board}" : "Vde. desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the due date of card {card}" : "Vostede retirou a caducidade da tarxeta {card}", "You have removed the due date of card {card}" : "Vde. retirou a caducidade da tarxeta {card}",
"{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}", "{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}",
"You have set the due date of card {card} to {after}" : "Vostede estabeleceu a caducidade da tarxeta {card} a {after}", "You have set the due date of card {card} to {after}" : "Vde. estabeleceu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}", "{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vostede actualizou a caducidade da tarxeta {card} a {after}", "You have updated the due date of card {card} to {after}" : "Vde. actualizou a caducidade da tarxeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}", "{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vostede engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}", "You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vde. engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vostede retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}", "You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vde. retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}", "{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vostede asignou a {assigneduser} á tarxeta {card} no taboleiro {board}", "You have assigned {assigneduser} to card {card} on board {board}" : "Vde. asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}", "{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vostede desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Vde. desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vostede moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}", "You have moved the card {card} from list {stackBefore} to {stack}" : "Vde. moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}", "{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have added the attachment {attachment} to card {card}" : "Vostede engadiu o anexo {attachment} na tarxeta {card}", "You have added the attachment {attachment} to card {card}" : "Vde. engadiu o anexo {attachment} na tarxeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}", "{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vostede actualizou o anexo {attachment} na tarxeta {card}", "You have updated the attachment {attachment} on card {card}" : "Vde. actualizou o anexo {attachment} na tarxeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vostede eliminou o anexo {attachment} da tarxeta {card}", "You have deleted the attachment {attachment} from card {card}" : "Vde. eliminou o anexo {attachment} da tarxeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}", "{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vostede restaurou o anexo {attachment} na tarxeta {card}", "You have restored the attachment {attachment} to card {card}" : "Vde. restaurou o anexo {attachment} na tarxeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}", "You have commented on card {card}" : "Vde. comentou na tarxeta {card}",
"{user} has commented on card {card}" : "{user} comentou na tarxeta {card}", "{user} has commented on card {card}" : "{user} comentou na tarxeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro", "A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro",
"Deck" : "Tarxeteiro", "Deck" : "Tarxeteiro",
@@ -68,13 +68,13 @@
"Upcoming cards" : "Tarxetas próximas", "Upcoming cards" : "Tarxetas próximas",
"Load more" : "Cargar máis", "Load more" : "Cargar máis",
"Personal" : "Persoal", "Personal" : "Persoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a vostede por %s.", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a Vde. por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a vostede.", "{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a Vde.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.", "The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.", "The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a vostede nun comentario en «%s».", "%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a Vde. nun comentario en «%s».",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a vostede nun comentario en {deck-card}.", "{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a Vde. nun comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede por %s.", "The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con Vde. por %s.",
"{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.", "{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.",
"Deck board" : "Taboleiro do Tarxeteiro", "Deck board" : "Taboleiro do Tarxeteiro",
"Owned by %1$s" : "Propiedade de %1$s", "Owned by %1$s" : "Propiedade de %1$s",
@@ -109,7 +109,7 @@
"Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta", "Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta",
"Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo", "Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo",
"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" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e insíraos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado", "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" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e integreos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
"Add board" : "Engadir taboleiro", "Add board" : "Engadir taboleiro",
"Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto", "Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto",
"Search by board title" : "Buscar polo título do taboleiro", "Search by board title" : "Buscar polo título do taboleiro",
@@ -126,7 +126,7 @@
"Create card" : "Crear tarxeta", "Create card" : "Crear tarxeta",
"Select a card" : "Seleccione unha tarxeta", "Select a card" : "Seleccione unha tarxeta",
"Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto", "Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto",
"Link to card" : "Ligar á tarxeta", "Link to card" : "Ligazón á tarxeta",
"File already exists" : "O ficheiro xa existe", "File already exists" : "O ficheiro xa existe",
"A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.", "A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.",
"Do you want to overwrite it?" : "Quere sobrescribilo?", "Do you want to overwrite it?" : "Quere sobrescribilo?",
@@ -200,7 +200,7 @@
"Members" : "Membros", "Members" : "Membros",
"Upload new files" : "Enviar novos ficheiros", "Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»", "Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Recurso compartido pendente", "Pending share" : "Compartición pendente",
"Add this attachment" : "Engadir este anexo", "Add this attachment" : "Engadir este anexo",
"Show in Files" : "Amosar en Ficheiros", "Show in Files" : "Amosar en Ficheiros",
"Download" : "Descargar", "Download" : "Descargar",
@@ -263,8 +263,8 @@
"seconds ago" : "segundos atrás", "seconds ago" : "segundos atrás",
"All boards" : "Todos os taboleiros", "All boards" : "Todos os taboleiros",
"Archived boards" : "Taboleiros arquivados", "Archived boards" : "Taboleiros arquivados",
"Shared with you" : "Compartido con vostede", "Shared with you" : "Compartido con Vde.",
"Deck settings" : "Axustes do Tarxeteiro", "Deck settings" : "Axustes de Tarxeteiro",
"Use bigger card view" : "Usa a vista de tarxeta máis grande", "Use bigger card view" : "Usa a vista de tarxeta máis grande",
"Show card ID badge" : "Amosar o distintivo de identificación da tarxeta", "Show card ID badge" : "Amosar o distintivo de identificación da tarxeta",
"Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas", "Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas",
@@ -293,22 +293,22 @@
"No due" : "Sen caducidade", "No due" : "Sen caducidade",
"Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros", "Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros",
"No results found" : "Non se atoparon resultados", "No results found" : "Non se atoparon resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {nome}\n* Última modificación en {lastMod}", "Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {name}\n* Última modificación en {lastMod}",
"{stack} in {board}" : "{stack} en {board}", "{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Prema para ampliar a descrición", "Click to expand description" : "Prema para despregar a descrición",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarxetas", "{nbCards} cards" : "{nbCards} tarxetas",
"Click to expand comment" : "Prema para ampliar o comentario", "Click to expand comment" : "Prema para despregar o comentario",
"No upcoming cards" : "Non hai tarxetas próximas", "No upcoming cards" : "Non hai tarxetas próximas",
"upcoming cards" : "tarxetas próximas", "upcoming cards" : "tarxetas próximas",
"New card" : "Nova tarxeta", "New card" : "Nova tarxeta",
"Due on {date}" : "Caduca o {date}", "Due on {date}" : "Caduca o {date}",
"Link to a board" : "Ligar a un taboleiro", "Link to a board" : "Ligazón a un taboleiro",
"Link to a card" : "Ligar a unha tarxeta", "Link to a card" : "Ligazón a unha tarxeta",
"Create a card" : "Crear unha tarxeta", "Create a card" : "Crear unha tarxeta",
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}", "Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
"Something went wrong" : "Algo foi mal", "Something went wrong" : "Algo foi mal",
"Failed to upload {name}" : "Produciuse un fallo ao actualizar {name}", "Failed to upload {name}" : "Produciuse un fallo ao enviar {name}",
"Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}", "Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}",
"Error creating the share" : "Produciuse un erro ao crear a compartición", "Error creating the share" : "Produciuse un erro ao crear a compartición",
"Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro", "Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro",

View File

@@ -303,6 +303,7 @@ OC.L10N.register(
"Click to expand comment" : "Klikk for å utvide kommentaren", "Click to expand comment" : "Klikk for å utvide kommentaren",
"No upcoming cards" : "Ingen kommende kort", "No upcoming cards" : "Ingen kommende kort",
"upcoming cards" : "kommende kort", "upcoming cards" : "kommende kort",
"New card" : "Nytt kort",
"Due on {date}" : "Utløper {date}", "Due on {date}" : "Utløper {date}",
"Link to a board" : "Lenke til tavle", "Link to a board" : "Lenke til tavle",
"Link to a card" : "Lenke til et kort", "Link to a card" : "Lenke til et kort",

View File

@@ -301,6 +301,7 @@
"Click to expand comment" : "Klikk for å utvide kommentaren", "Click to expand comment" : "Klikk for å utvide kommentaren",
"No upcoming cards" : "Ingen kommende kort", "No upcoming cards" : "Ingen kommende kort",
"upcoming cards" : "kommende kort", "upcoming cards" : "kommende kort",
"New card" : "Nytt kort",
"Due on {date}" : "Utløper {date}", "Due on {date}" : "Utløper {date}",
"Link to a board" : "Lenke til tavle", "Link to a board" : "Lenke til tavle",
"Link to a card" : "Lenke til et kort", "Link to a card" : "Lenke til et kort",

View File

@@ -47,6 +47,7 @@ OC.L10N.register(
"seconds ago" : "วินาทีที่ผ่านมา", "seconds ago" : "วินาทีที่ผ่านมา",
"Shared with you" : "แชร์กับคุณ", "Shared with you" : "แชร์กับคุณ",
"Edit board" : "แก้ไขกระดาน", "Edit board" : "แก้ไขกระดาน",
"No notifications" : "ไม่มีการแจ้งเตือน",
"Delete board" : "ลบกระดาน", "Delete board" : "ลบกระดาน",
"An error occurred" : "เกิดข้อผิดพลาด", "An error occurred" : "เกิดข้อผิดพลาด",
"Share" : "แชร์" "Share" : "แชร์"

View File

@@ -45,6 +45,7 @@
"seconds ago" : "วินาทีที่ผ่านมา", "seconds ago" : "วินาทีที่ผ่านมา",
"Shared with you" : "แชร์กับคุณ", "Shared with you" : "แชร์กับคุณ",
"Edit board" : "แก้ไขกระดาน", "Edit board" : "แก้ไขกระดาน",
"No notifications" : "ไม่มีการแจ้งเตือน",
"Delete board" : "ลบกระดาน", "Delete board" : "ลบกระดาน",
"An error occurred" : "เกิดข้อผิดพลาด", "An error occurred" : "เกิดข้อผิดพลาด",
"Share" : "แชร์" "Share" : "แชร์"

View File

@@ -2,7 +2,7 @@ OC.L10N.register(
"deck", "deck",
{ {
"You have created a new board {board}" : "Ви створили нову дошку {board}", "You have created a new board {board}" : "Ви створили нову дошку {board}",
"{user} has created a new board {board}" : "{user} створив нову дошку {board}", "{user} has created a new board {board}" : "{user} створив(-ла) нову дошку {board}",
"You have deleted the board {board}" : "Ви вилучили дошку {board}", "You have deleted the board {board}" : "Ви вилучили дошку {board}",
"{user} has deleted the board {board}" : "{user} вилучив дошку {board}", "{user} has deleted the board {board}" : "{user} вилучив дошку {board}",
"You have restored the board {board}" : "Ви відновили дошку {board}", "You have restored the board {board}" : "Ви відновили дошку {board}",
@@ -18,19 +18,19 @@ OC.L10N.register(
"You have unarchived the board {board}" : "Ви розархівували дошку {board}", "You have unarchived the board {board}" : "Ви розархівували дошку {board}",
"{user} has unarchived the board {before}" : "{user} розархівував дошку {перед}", "{user} has unarchived the board {before}" : "{user} розархівував дошку {перед}",
"You have created a new list {stack} on board {board}" : "Ви створили новий список {stack} на борту {board}", "You have created a new list {stack} on board {board}" : "Ви створили новий список {stack} на борту {board}",
"{user} has created a new list {stack} on board {board}" : "{user} створив новий список {stack} на дошці {board}", "{user} has created a new list {stack} on board {board}" : "{user} створив(-ла) новий список {stack} на дошці {board}",
"You have renamed list {before} to {stack} on board {board}" : "Ви перейменували список {before} на {stack} на дошці {board}", "You have renamed list {before} to {stack} on board {board}" : "Ви перейменували список {before} на {stack} на дошці {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} змінив(-ла) назву списку {before} на {stack} на дошці {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} змінив(-ла) назву списку {before} на {stack} на дошці {board}",
"You have deleted list {stack} on board {board}" : "Ви видалили список {stack} на дошці {board}", "You have deleted list {stack} on board {board}" : "Ви видалили список {stack} на дошці {board}",
"{user} has deleted list {stack} on board {board}" : "{user} видалив список {stack} на дошці {board}", "{user} has deleted list {stack} on board {board}" : "{user} вилучив(-ла) список {stack} на дошці {board}",
"You have created card {card} in list {stack} on board {board}" : "Ви створили картку {card} у списку {stack} на дошці {board}", "You have created card {card} in list {stack} on board {board}" : "Ви створили картку {card} у списку {stack} на дошці {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} створив картку {card} у списку {stack} на дошці {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} створив(-ла) картку {card} у списку {stack} на дошці {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Ви видалили картку {card} у списку {stack} на дошці {board}", "You have deleted card {card} in list {stack} on board {board}" : "Ви видалили картку {card} у списку {stack} на дошці {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} видалив картку {card} у списку {stack} на дошці {board}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} вилучив(-ла) картку {card} у списку {stack} на дошці {board}",
"You have renamed the card {before} to {card}" : "Ви перейменували картку {before} на {card}", "You have renamed the card {before} to {card}" : "Ви перейменували картку {before} на {card}",
"{user} has renamed the card {before} to {card}" : "{user} змінив(-ла) назву картки {before} на {card}", "{user} has renamed the card {before} to {card}" : "{user} змінив(-ла) назву картки {before} на {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Ви додали опис картки {card} у списку {stack} на дошці {board}", "You have added a description to card {card} in list {stack} on board {board}" : "Ви додали опис картки {card} у списку {stack} на дошці {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додав опис до картки {card} у списку {stack} на дошці {board}", "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додав(-ла) опис до картки {card} у списку {stack} на дошці {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Ви оновили опис картки {card} у списку {stack} на дошці {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Ви оновили опис картки {card} у списку {stack} на дошці {board}",
"Deck" : "Колода", "Deck" : "Колода",
"Changes in the <strong>Deck app</strong>" : "Зміни у застосунку <strong>Колода</strong>", "Changes in the <strong>Deck app</strong>" : "Зміни у застосунку <strong>Колода</strong>",
@@ -86,7 +86,7 @@ OC.L10N.register(
"Add list" : "Додати список", "Add list" : "Додати список",
"List name" : "Назва списку", "List name" : "Назва списку",
"Apply filter" : "Відфільтрувати", "Apply filter" : "Відфільтрувати",
"Filter by tag" : "Відібрати за позначками", "Filter by tag" : "Відібрати за мітками",
"Filter by assigned user" : "Відібрати за призначеним користувачем", "Filter by assigned user" : "Відібрати за призначеним користувачем",
"Unassigned" : "Скасовано призначення", "Unassigned" : "Скасовано призначення",
"Filter by due date" : "Відібрати за датою завершення", "Filter by due date" : "Відібрати за датою завершення",
@@ -98,12 +98,13 @@ OC.L10N.register(
"Hide archived cards" : "Приховати архівні картки", "Hide archived cards" : "Приховати архівні картки",
"Show archived cards" : "Показати архівні картки", "Show archived cards" : "Показати архівні картки",
"Toggle compact mode" : "Перемкнути компактний вигляд", "Toggle compact mode" : "Перемкнути компактний вигляд",
"Open details" : "Показати деталі",
"Details" : "Деталі", "Details" : "Деталі",
"Loading board" : "Завантаження дошки", "Loading board" : "Завантаження дошки",
"Create a new list to add cards to this board" : "Створіть список щоб додати картки на цю дошку", "Create a new list to add cards to this board" : "Створіть список щоб додати картки на цю дошку",
"Board not found" : "Дошку не знайдено", "Board not found" : "Дошку не знайдено",
"Sharing" : "Поділитися", "Sharing" : "Поділитися",
"Tags" : "Теги", "Tags" : "Мітки",
"Deleted items" : "Вилучені елементи", "Deleted items" : "Вилучені елементи",
"Timeline" : "Дії", "Timeline" : "Дії",
"Deleted lists" : "Вилучені списки", "Deleted lists" : "Вилучені списки",
@@ -122,7 +123,7 @@ OC.L10N.register(
"Delete list" : "Вилучити список", "Delete list" : "Вилучити список",
"Add a new card" : "Додати нову картку", "Add a new card" : "Додати нову картку",
"Edit" : "Редагувати", "Edit" : "Редагувати",
"Add a new tag" : "Додати нову позначку", "Add a new tag" : "Додати нову мітку",
"title and color value must be provided" : "потрібно зазначити назву та колір", "title and color value must be provided" : "потрібно зазначити назву та колір",
"Board name" : "Назва дошки", "Board name" : "Назва дошки",
"Members" : "Учасники", "Members" : "Учасники",
@@ -140,7 +141,7 @@ OC.L10N.register(
"Modified" : "Змінено", "Modified" : "Змінено",
"Created" : "Створено", "Created" : "Створено",
"No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!", "No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!",
"Assign a tag to this card…" : "Додати позначку до цієї картки", "Assign a tag to this card…" : "Додати мітку до цієї картки",
"Assign to users" : "Призначити користувачам", "Assign to users" : "Призначити користувачам",
"Assign to users/groups/circles" : "Призначити користувачам/групам/колам", "Assign to users/groups/circles" : "Призначити користувачам/групам/колам",
"Assign a user to this card…" : "Призначити користувачеві цю картку", "Assign a user to this card…" : "Призначити користувачеві цю картку",

View File

@@ -1,6 +1,6 @@
{ "translations": { { "translations": {
"You have created a new board {board}" : "Ви створили нову дошку {board}", "You have created a new board {board}" : "Ви створили нову дошку {board}",
"{user} has created a new board {board}" : "{user} створив нову дошку {board}", "{user} has created a new board {board}" : "{user} створив(-ла) нову дошку {board}",
"You have deleted the board {board}" : "Ви вилучили дошку {board}", "You have deleted the board {board}" : "Ви вилучили дошку {board}",
"{user} has deleted the board {board}" : "{user} вилучив дошку {board}", "{user} has deleted the board {board}" : "{user} вилучив дошку {board}",
"You have restored the board {board}" : "Ви відновили дошку {board}", "You have restored the board {board}" : "Ви відновили дошку {board}",
@@ -16,19 +16,19 @@
"You have unarchived the board {board}" : "Ви розархівували дошку {board}", "You have unarchived the board {board}" : "Ви розархівували дошку {board}",
"{user} has unarchived the board {before}" : "{user} розархівував дошку {перед}", "{user} has unarchived the board {before}" : "{user} розархівував дошку {перед}",
"You have created a new list {stack} on board {board}" : "Ви створили новий список {stack} на борту {board}", "You have created a new list {stack} on board {board}" : "Ви створили новий список {stack} на борту {board}",
"{user} has created a new list {stack} on board {board}" : "{user} створив новий список {stack} на дошці {board}", "{user} has created a new list {stack} on board {board}" : "{user} створив(-ла) новий список {stack} на дошці {board}",
"You have renamed list {before} to {stack} on board {board}" : "Ви перейменували список {before} на {stack} на дошці {board}", "You have renamed list {before} to {stack} on board {board}" : "Ви перейменували список {before} на {stack} на дошці {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} змінив(-ла) назву списку {before} на {stack} на дошці {board}", "{user} has renamed list {before} to {stack} on board {board}" : "{user} змінив(-ла) назву списку {before} на {stack} на дошці {board}",
"You have deleted list {stack} on board {board}" : "Ви видалили список {stack} на дошці {board}", "You have deleted list {stack} on board {board}" : "Ви видалили список {stack} на дошці {board}",
"{user} has deleted list {stack} on board {board}" : "{user} видалив список {stack} на дошці {board}", "{user} has deleted list {stack} on board {board}" : "{user} вилучив(-ла) список {stack} на дошці {board}",
"You have created card {card} in list {stack} on board {board}" : "Ви створили картку {card} у списку {stack} на дошці {board}", "You have created card {card} in list {stack} on board {board}" : "Ви створили картку {card} у списку {stack} на дошці {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} створив картку {card} у списку {stack} на дошці {board}", "{user} has created card {card} in list {stack} on board {board}" : "{user} створив(-ла) картку {card} у списку {stack} на дошці {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Ви видалили картку {card} у списку {stack} на дошці {board}", "You have deleted card {card} in list {stack} on board {board}" : "Ви видалили картку {card} у списку {stack} на дошці {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} видалив картку {card} у списку {stack} на дошці {board}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} вилучив(-ла) картку {card} у списку {stack} на дошці {board}",
"You have renamed the card {before} to {card}" : "Ви перейменували картку {before} на {card}", "You have renamed the card {before} to {card}" : "Ви перейменували картку {before} на {card}",
"{user} has renamed the card {before} to {card}" : "{user} змінив(-ла) назву картки {before} на {card}", "{user} has renamed the card {before} to {card}" : "{user} змінив(-ла) назву картки {before} на {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Ви додали опис картки {card} у списку {stack} на дошці {board}", "You have added a description to card {card} in list {stack} on board {board}" : "Ви додали опис картки {card} у списку {stack} на дошці {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додав опис до картки {card} у списку {stack} на дошці {board}", "{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додав(-ла) опис до картки {card} у списку {stack} на дошці {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Ви оновили опис картки {card} у списку {stack} на дошці {board}", "You have updated the description of card {card} in list {stack} on board {board}" : "Ви оновили опис картки {card} у списку {stack} на дошці {board}",
"Deck" : "Колода", "Deck" : "Колода",
"Changes in the <strong>Deck app</strong>" : "Зміни у застосунку <strong>Колода</strong>", "Changes in the <strong>Deck app</strong>" : "Зміни у застосунку <strong>Колода</strong>",
@@ -84,7 +84,7 @@
"Add list" : "Додати список", "Add list" : "Додати список",
"List name" : "Назва списку", "List name" : "Назва списку",
"Apply filter" : "Відфільтрувати", "Apply filter" : "Відфільтрувати",
"Filter by tag" : "Відібрати за позначками", "Filter by tag" : "Відібрати за мітками",
"Filter by assigned user" : "Відібрати за призначеним користувачем", "Filter by assigned user" : "Відібрати за призначеним користувачем",
"Unassigned" : "Скасовано призначення", "Unassigned" : "Скасовано призначення",
"Filter by due date" : "Відібрати за датою завершення", "Filter by due date" : "Відібрати за датою завершення",
@@ -96,12 +96,13 @@
"Hide archived cards" : "Приховати архівні картки", "Hide archived cards" : "Приховати архівні картки",
"Show archived cards" : "Показати архівні картки", "Show archived cards" : "Показати архівні картки",
"Toggle compact mode" : "Перемкнути компактний вигляд", "Toggle compact mode" : "Перемкнути компактний вигляд",
"Open details" : "Показати деталі",
"Details" : "Деталі", "Details" : "Деталі",
"Loading board" : "Завантаження дошки", "Loading board" : "Завантаження дошки",
"Create a new list to add cards to this board" : "Створіть список щоб додати картки на цю дошку", "Create a new list to add cards to this board" : "Створіть список щоб додати картки на цю дошку",
"Board not found" : "Дошку не знайдено", "Board not found" : "Дошку не знайдено",
"Sharing" : "Поділитися", "Sharing" : "Поділитися",
"Tags" : "Теги", "Tags" : "Мітки",
"Deleted items" : "Вилучені елементи", "Deleted items" : "Вилучені елементи",
"Timeline" : "Дії", "Timeline" : "Дії",
"Deleted lists" : "Вилучені списки", "Deleted lists" : "Вилучені списки",
@@ -120,7 +121,7 @@
"Delete list" : "Вилучити список", "Delete list" : "Вилучити список",
"Add a new card" : "Додати нову картку", "Add a new card" : "Додати нову картку",
"Edit" : "Редагувати", "Edit" : "Редагувати",
"Add a new tag" : "Додати нову позначку", "Add a new tag" : "Додати нову мітку",
"title and color value must be provided" : "потрібно зазначити назву та колір", "title and color value must be provided" : "потрібно зазначити назву та колір",
"Board name" : "Назва дошки", "Board name" : "Назва дошки",
"Members" : "Учасники", "Members" : "Учасники",
@@ -138,7 +139,7 @@
"Modified" : "Змінено", "Modified" : "Змінено",
"Created" : "Створено", "Created" : "Створено",
"No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!", "No comments yet. Begin the discussion!" : "Коментарів немає, почніть обговорення!",
"Assign a tag to this card…" : "Додати позначку до цієї картки", "Assign a tag to this card…" : "Додати мітку до цієї картки",
"Assign to users" : "Призначити користувачам", "Assign to users" : "Призначити користувачам",
"Assign to users/groups/circles" : "Призначити користувачам/групам/колам", "Assign to users/groups/circles" : "Призначити користувачам/групам/колам",
"Assign a user to this card…" : "Призначити користувачеві цю картку", "Assign a user to this card…" : "Призначити користувачеві цю картку",

View File

@@ -1,31 +1,31 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"You have created a new board {board}" : "您创建了一个新面板 {board}", "You have created a new board {board}" : "您创建了一个新面板{board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板 {board}", "{user} has created a new board {board}" : "{user} 创建了一个新面板{board}",
"You have deleted the board {board}" : "您删除了面板 {board}", "You have deleted the board {board}" : "您删除了面板{board}",
"{user} has deleted the board {board}" : "{user} 删除了面板 {board}", "{user} has deleted the board {board}" : "{user}删除了面板{board}",
"You have restored the board {board}" : "您恢复了面板 {board}", "You have restored the board {board}" : "您还原了面板{board}",
"{user} has restored the board {board}" : "{user} 恢复了 {board}", "{user} has restored the board {board}" : "{user}还原了{board}",
"You have shared the board {board} with {acl}" : "您已共享 {board}{acl}", "You have shared the board {board} with {acl}" : "您已分享{board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user} 已使用 {acl}享面板 {board}", "{user} has shared the board {board} with {acl}" : "{user}已使用{acl}享面板{board}",
"You have removed {acl} from the board {board}" : "您从面板 {board} 中移除了 {acl}", "You have removed {acl} from the board {board}" : "您从面板{board}中移除了{acl}",
"{user} has removed {acl} from the board {board}" : "{user} 从面板 {board} 中移除了 {acl} ", "{user} has removed {acl} from the board {board}" : "{user}从面板{board}中移除了{acl} ",
"You have renamed the board {before} to {board}" : "您将面板 {before} 重命名为 {board}", "You have renamed the board {before} to {board}" : "您将面板{before}重命名为{board}",
"{user} has renamed the board {before} to {board}" : "{user} 将面板 {before} 重命名为 {board}", "{user} has renamed the board {before} to {board}" : "{user}将面板{before}重命名为{board}",
"You have archived the board {board}" : "您已将面板 {board} 归档", "You have archived the board {board}" : "您已将面板{board}归档",
"{user} has archived the board {before}" : "{user} 已将面板 {before} 归档", "{user} has archived the board {before}" : "{user}已将面板{before}归档",
"You have unarchived the board {board}" : "您已将面板 {board} 撤销归档", "You have unarchived the board {board}" : "您已将面板{board}取消归档",
"{user} has unarchived the board {before}" : "{user} 已将面板 {before} 撤销归档", "{user} has unarchived the board {before}" : "{user}已将面板{before}取消归档",
"You have created a new list {stack} on board {board}" : "您在 {board} 上创建了一个新列表 {stack}面板", "You have created a new list {stack} on board {board}" : "您在{board}上创建了一个新列表{stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board} 上创建了一个新列表 {stack}", "{user} has created a new list {stack} on board {board}" : "{user}{board}上创建了一个新列表{stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板 {board} 上的列表 {before} 重命名为 {stack}", "You have renamed list {before} to {stack} on board {board}" : "您将面板{board}上的列表{before}重命名为{stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} 将面板 {board} 上的列表 {before} 重命名为 {stack}", "{user} has renamed list {before} to {stack} on board {board}" : "{user}将面板{board}上的列表{before}重命名为{stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板 {board} 上的列表 {stack}", "You have deleted list {stack} on board {board}" : "您删除了面板{board}上的列表{stack}",
"{user} has deleted list {stack} on board {board}" : "{user} 删除了面板 {board} 上的列表 {stack}", "{user} has deleted list {stack} on board {board}" : "{user}删除了面板{board}上的列表{stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中创建了卡片 {card}", "You have created card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中创建了卡片{card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中创建了卡片 {card}", "{user} has created card {card} in list {stack} on board {board}" : "{user}在面板 {board}上的列表{stack}中创建了卡片{card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中删除了卡片 {card}", "You have deleted card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中删除了卡片{card}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}", "You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}",
"{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}", "{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}",
@@ -77,14 +77,14 @@ OC.L10N.register(
"%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。", "%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。",
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你", "{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你",
"The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。", "The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。",
"{user} has shared {deck-board} with you." : "{user} 与你分享了 {deck-board}", "{user} has shared {deck-board} with you." : "{user}与你分享了{deck-board}",
"Deck board" : "Deck 看板", "Deck board" : "看板",
"Owned by %1$s" : "由 %1$s 拥有", "Owned by %1$s" : "由 %1$s 拥有",
"Deck boards, cards and comments" : "Deck 看板、卡片和评论", "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 拥有", "From %1$s, in %2$s/%3$s, owned by %4$s" : "自 %1$s位于 %2$s/%3$s由 %4$s 拥有",
"Card comments" : "卡片评论", "Card comments" : "卡片评论",
"%s on %s" : "%s 于 %s", "%s on %s" : "%s 于 %s",
"Deck boards and cards" : "Deck 面板及卡片", "Deck boards and cards" : "板及卡片",
"No data was provided to create an attachment." : "未能提供数据以创建附件", "No data was provided to create an attachment." : "未能提供数据以创建附件",
"Finished" : "已完成", "Finished" : "已完成",
"To review" : "待复核", "To review" : "待复核",
@@ -111,7 +111,7 @@ OC.L10N.register(
"Path is already shared with this card" : "已和这张卡片分享了路径", "Path is already shared with this card" : "已和这张卡片分享了路径",
"Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD",
"Personal planning and team project organization" : "个人规划和团队项目安排", "Personal planning and team project organization" : "个人规划和团队项目安排",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用 Markdown 写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的 Markdown 描述中 \n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条", "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" : "看板应用程序是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
"Add board" : "添加面板", "Add board" : "添加面板",
"Select the board to link to a project" : "选择要链接到一个项目的面板", "Select the board to link to a project" : "选择要链接到一个项目的面板",
"Search by board title" : "通过标题搜索面板", "Search by board title" : "通过标题搜索面板",
@@ -295,7 +295,7 @@ OC.L10N.register(
"No due" : "没有到期的", "No due" : "没有到期的",
"Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}", "Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}",
"No results found" : "未找到结果", "No results found" : "未找到结果",
"Deck board {name}\n* Last modified on {lastMod}" : "看板面板 {name}\n* 最后修改于 {lastMod}", "Deck board {name}\n* Last modified on {lastMod}" : "看板{name}\n* 最后修改于{lastMod}",
"{stack} in {board}" : "{stack} 于 {board}", "{stack} in {board}" : "{stack} 于 {board}",
"Click to expand description" : "点击展开描述", "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} 个评论", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 创建于 {created}\n* 最后修改于 {lastMod}\n* {nbAttachments} 个附件\n* {nbComments} 个评论",

View File

@@ -1,29 +1,29 @@
{ "translations": { { "translations": {
"You have created a new board {board}" : "您创建了一个新面板 {board}", "You have created a new board {board}" : "您创建了一个新面板{board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板 {board}", "{user} has created a new board {board}" : "{user} 创建了一个新面板{board}",
"You have deleted the board {board}" : "您删除了面板 {board}", "You have deleted the board {board}" : "您删除了面板{board}",
"{user} has deleted the board {board}" : "{user} 删除了面板 {board}", "{user} has deleted the board {board}" : "{user}删除了面板{board}",
"You have restored the board {board}" : "您恢复了面板 {board}", "You have restored the board {board}" : "您还原了面板{board}",
"{user} has restored the board {board}" : "{user} 恢复了 {board}", "{user} has restored the board {board}" : "{user}还原了{board}",
"You have shared the board {board} with {acl}" : "您已共享 {board}{acl}", "You have shared the board {board} with {acl}" : "您已分享{board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user} 已使用 {acl}享面板 {board}", "{user} has shared the board {board} with {acl}" : "{user}已使用{acl}享面板{board}",
"You have removed {acl} from the board {board}" : "您从面板 {board} 中移除了 {acl}", "You have removed {acl} from the board {board}" : "您从面板{board}中移除了{acl}",
"{user} has removed {acl} from the board {board}" : "{user} 从面板 {board} 中移除了 {acl} ", "{user} has removed {acl} from the board {board}" : "{user}从面板{board}中移除了{acl} ",
"You have renamed the board {before} to {board}" : "您将面板 {before} 重命名为 {board}", "You have renamed the board {before} to {board}" : "您将面板{before}重命名为{board}",
"{user} has renamed the board {before} to {board}" : "{user} 将面板 {before} 重命名为 {board}", "{user} has renamed the board {before} to {board}" : "{user}将面板{before}重命名为{board}",
"You have archived the board {board}" : "您已将面板 {board} 归档", "You have archived the board {board}" : "您已将面板{board}归档",
"{user} has archived the board {before}" : "{user} 已将面板 {before} 归档", "{user} has archived the board {before}" : "{user}已将面板{before}归档",
"You have unarchived the board {board}" : "您已将面板 {board} 撤销归档", "You have unarchived the board {board}" : "您已将面板{board}取消归档",
"{user} has unarchived the board {before}" : "{user} 已将面板 {before} 撤销归档", "{user} has unarchived the board {before}" : "{user}已将面板{before}取消归档",
"You have created a new list {stack} on board {board}" : "您在 {board} 上创建了一个新列表 {stack}面板", "You have created a new list {stack} on board {board}" : "您在{board}上创建了一个新列表{stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board} 上创建了一个新列表 {stack}", "{user} has created a new list {stack} on board {board}" : "{user}{board}上创建了一个新列表{stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板 {board} 上的列表 {before} 重命名为 {stack}", "You have renamed list {before} to {stack} on board {board}" : "您将面板{board}上的列表{before}重命名为{stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} 将面板 {board} 上的列表 {before} 重命名为 {stack}", "{user} has renamed list {before} to {stack} on board {board}" : "{user}将面板{board}上的列表{before}重命名为{stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板 {board} 上的列表 {stack}", "You have deleted list {stack} on board {board}" : "您删除了面板{board}上的列表{stack}",
"{user} has deleted list {stack} on board {board}" : "{user} 删除了面板 {board} 上的列表 {stack}", "{user} has deleted list {stack} on board {board}" : "{user}删除了面板{board}上的列表{stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中创建了卡片 {card}", "You have created card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中创建了卡片{card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中创建了卡片 {card}", "{user} has created card {card} in list {stack} on board {board}" : "{user}在面板 {board}上的列表{stack}中创建了卡片{card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中删除了卡片 {card}", "You have deleted card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中删除了卡片{card}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}", "{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}", "You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}",
"{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}", "{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}",
@@ -75,14 +75,14 @@
"%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。", "%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。",
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你", "{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你",
"The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。", "The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。",
"{user} has shared {deck-board} with you." : "{user} 与你分享了 {deck-board}", "{user} has shared {deck-board} with you." : "{user}与你分享了{deck-board}",
"Deck board" : "Deck 看板", "Deck board" : "看板",
"Owned by %1$s" : "由 %1$s 拥有", "Owned by %1$s" : "由 %1$s 拥有",
"Deck boards, cards and comments" : "Deck 看板、卡片和评论", "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 拥有", "From %1$s, in %2$s/%3$s, owned by %4$s" : "自 %1$s位于 %2$s/%3$s由 %4$s 拥有",
"Card comments" : "卡片评论", "Card comments" : "卡片评论",
"%s on %s" : "%s 于 %s", "%s on %s" : "%s 于 %s",
"Deck boards and cards" : "Deck 面板及卡片", "Deck boards and cards" : "板及卡片",
"No data was provided to create an attachment." : "未能提供数据以创建附件", "No data was provided to create an attachment." : "未能提供数据以创建附件",
"Finished" : "已完成", "Finished" : "已完成",
"To review" : "待复核", "To review" : "待复核",
@@ -109,7 +109,7 @@
"Path is already shared with this card" : "已和这张卡片分享了路径", "Path is already shared with this card" : "已和这张卡片分享了路径",
"Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD",
"Personal planning and team project organization" : "个人规划和团队项目安排", "Personal planning and team project organization" : "个人规划和团队项目安排",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用 Markdown 写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的 Markdown 描述中 \n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条", "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" : "看板应用程序是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
"Add board" : "添加面板", "Add board" : "添加面板",
"Select the board to link to a project" : "选择要链接到一个项目的面板", "Select the board to link to a project" : "选择要链接到一个项目的面板",
"Search by board title" : "通过标题搜索面板", "Search by board title" : "通过标题搜索面板",
@@ -293,7 +293,7 @@
"No due" : "没有到期的", "No due" : "没有到期的",
"Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}", "Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}",
"No results found" : "未找到结果", "No results found" : "未找到结果",
"Deck board {name}\n* Last modified on {lastMod}" : "看板面板 {name}\n* 最后修改于 {lastMod}", "Deck board {name}\n* Last modified on {lastMod}" : "看板{name}\n* 最后修改于{lastMod}",
"{stack} in {board}" : "{stack} 于 {board}", "{stack} in {board}" : "{stack} 于 {board}",
"Click to expand description" : "点击展开描述", "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} 个评论", "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 创建于 {created}\n* 最后修改于 {lastMod}\n* {nbAttachments} 个附件\n* {nbComments} 个评论",

View File

@@ -45,8 +45,8 @@ use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\Comments\IComment; use OCP\Comments\IComment;
use OCP\IUser; use OCP\IUser;
use OCP\L10N\IFactory;
use OCP\Server; use OCP\Server;
use OCP\L10N\IFactory;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
class ActivityManager { class ActivityManager {
@@ -332,8 +332,8 @@ class ActivityManager {
case self::SUBJECT_BOARD_UPDATE_ARCHIVED: case self::SUBJECT_BOARD_UPDATE_ARCHIVED:
case self::SUBJECT_BOARD_DELETE: case self::SUBJECT_BOARD_DELETE:
case self::SUBJECT_BOARD_RESTORE: case self::SUBJECT_BOARD_RESTORE:
// Not defined as there is no activity for // Not defined as there is no activity for
// case self::SUBJECT_BOARD_UPDATE_COLOR // case self::SUBJECT_BOARD_UPDATE_COLOR
break; break;
case self::SUBJECT_CARD_COMMENT_CREATE: case self::SUBJECT_CARD_COMMENT_CREATE:
$eventType = 'deck_comment'; $eventType = 'deck_comment';
@@ -374,7 +374,7 @@ class ActivityManager {
$additionalParams['before'] = $additionalParams['before']->format('c'); $additionalParams['before'] = $additionalParams['before']->format('c');
} }
break; break;
case self::SUBJECT_ATTACHMENT_CREATE: case self::SUBJECT_ATTACHMENT_CREATE:
case self::SUBJECT_ATTACHMENT_UPDATE: case self::SUBJECT_ATTACHMENT_UPDATE:
case self::SUBJECT_ATTACHMENT_DELETE: case self::SUBJECT_ATTACHMENT_DELETE:

View File

@@ -23,12 +23,12 @@
namespace OCA\Deck\Activity; namespace OCA\Deck\Activity;
use \OCP\Comments\ICommentsEventHandler;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCP\Comments\CommentsEvent; use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment; use OCP\Comments\IComment;
use \OCP\Comments\ICommentsEventHandler;
class CommentEventHandler implements ICommentsEventHandler { class CommentEventHandler implements ICommentsEventHandler {

View File

@@ -26,7 +26,6 @@
namespace OCA\Deck\Activity; namespace OCA\Deck\Activity;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
use OCA\Deck\Service\CardService;
use OCP\Activity\IEvent; use OCP\Activity\IEvent;
use OCP\Activity\IProvider; use OCP\Activity\IProvider;
use OCP\Comments\IComment; use OCP\Comments\IComment;
@@ -36,6 +35,7 @@ use OCP\IConfig;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\L10N\IFactory; use OCP\L10N\IFactory;
use OCA\Deck\Service\CardService;
class DeckProvider implements IProvider { class DeckProvider implements IProvider {

View File

@@ -43,11 +43,11 @@ use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Event\SessionClosedEvent; use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent; use OCA\Deck\Event\SessionCreatedEvent;
use OCA\Deck\Listeners\BeforeTemplateRenderedListener; use OCA\Deck\Listeners\BeforeTemplateRenderedListener;
use OCA\Deck\Listeners\FullTextSearchEventListener;
use OCA\Deck\Listeners\LiveUpdateListener;
use OCA\Deck\Listeners\ParticipantCleanupListener; use OCA\Deck\Listeners\ParticipantCleanupListener;
use OCA\Deck\Listeners\FullTextSearchEventListener;
use OCA\Deck\Listeners\ResourceAdditionalScriptsListener; use OCA\Deck\Listeners\ResourceAdditionalScriptsListener;
use OCA\Deck\Listeners\ResourceListener; use OCA\Deck\Listeners\ResourceListener;
use OCA\Deck\Listeners\LiveUpdateListener;
use OCA\Deck\Middleware\DefaultBoardMiddleware; use OCA\Deck\Middleware\DefaultBoardMiddleware;
use OCA\Deck\Middleware\ExceptionMiddleware; use OCA\Deck\Middleware\ExceptionMiddleware;
use OCA\Deck\Notification\Notifier; use OCA\Deck\Notification\Notifier;

View File

@@ -46,12 +46,12 @@ class UserExport extends Command {
private $assignedUsersMapper; private $assignedUsersMapper;
public function __construct(BoardMapper $boardMapper, public function __construct(BoardMapper $boardMapper,
BoardService $boardService, BoardService $boardService,
StackMapper $stackMapper, StackMapper $stackMapper,
CardMapper $cardMapper, CardMapper $cardMapper,
AssignmentMapper $assignedUsersMapper, AssignmentMapper $assignedUsersMapper,
IUserManager $userManager, IUserManager $userManager,
IGroupManager $groupManager) { IGroupManager $groupManager) {
parent::__construct(); parent::__construct();
$this->cardMapper = $cardMapper; $this->cardMapper = $cardMapper;

View File

@@ -22,11 +22,11 @@
*/ */
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Service\AttachmentService;
use OCP\AppFramework\ApiController; use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\AttachmentService;
class AttachmentApiController extends ApiController { class AttachmentApiController extends ApiController {
private $attachmentService; private $attachmentService;

View File

@@ -25,13 +25,13 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
use OCA\Deck\Service\BoardService;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCP\AppFramework\ApiController; use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\BoardService;
use Sabre\HTTP\Util; use Sabre\HTTP\Util;
/** /**

View File

@@ -23,20 +23,20 @@
* *
*/ */
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Service\AssignmentService; use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService; use OCP\AppFramework\ApiController;
use OCP\AppFramework\ApiController; use OCP\AppFramework\Http;
use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\DataResponse; use OCP\IRequest;
use OCP\IRequest; use OCA\Deck\Service\CardService;
/** /**
* Class BoardApiController * Class BoardApiController
* *
* @package OCA\Deck\Controller * @package OCA\Deck\Controller
*/ */
class CardApiController extends ApiController { class CardApiController extends ApiController {
private $cardService; private $cardService;
private $userId; private $userId;

View File

@@ -25,8 +25,8 @@ namespace OCA\Deck\Controller;
use OCA\Deck\Service\AssignmentService; use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService; use OCA\Deck\Service\CardService;
use OCP\AppFramework\Controller;
use OCP\IRequest; use OCP\IRequest;
use OCP\AppFramework\Controller;
class CardController extends Controller { class CardController extends Controller {
private $userId; private $userId;

View File

@@ -36,7 +36,7 @@ class ConfigController extends OCSController {
$AppName, $AppName,
IRequest $request, IRequest $request,
ConfigService $configService ConfigService $configService
) { ) {
parent::__construct($AppName, $request); parent::__construct($AppName, $request);
$this->configService = $configService; $this->configService = $configService;

View File

@@ -23,11 +23,11 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Service\LabelService;
use OCP\AppFramework\ApiController; use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\LabelService;
/** /**
* Class BoardApiController * Class BoardApiController

View File

@@ -24,8 +24,8 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Service\LabelService; use OCA\Deck\Service\LabelService;
use OCP\AppFramework\Controller;
use OCP\IRequest; use OCP\IRequest;
use OCP\AppFramework\Controller;
class LabelController extends Controller { class LabelController extends Controller {
private $labelService; private $labelService;

View File

@@ -23,25 +23,25 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use \OCP\AppFramework\Http\RedirectResponse;
use OCA\Deck\AppInfo\Application; use OCA\Deck\AppInfo\Application;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Service\CardService;
use OCA\Deck\Service\ConfigService; use OCA\Deck\Service\ConfigService;
use OCA\Deck\Service\PermissionService; use OCA\Deck\Service\PermissionService;
use OCA\Files\Event\LoadSidebar; use OCA\Files\Event\LoadSidebar;
use OCA\Text\Event\LoadEditor; use OCA\Text\Event\LoadEditor;
use OCA\Viewer\Event\LoadViewer; use OCA\Viewer\Event\LoadViewer;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\ContentSecurityPolicy; use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent as CollaborationResourcesEvent; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent as CollaborationResourcesEvent;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig; use OCP\IConfig;
use OCP\IInitialStateService; use OCP\IInitialStateService;
use OCP\IRequest; use OCP\IRequest;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Controller;
use OCA\Deck\Db\CardMapper;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use \OCP\AppFramework\Http\RedirectResponse;
use OCA\Deck\Db\Acl;
use OCA\Deck\Service\CardService;
class PageController extends Controller { class PageController extends Controller {
private PermissionService $permissionService; private PermissionService $permissionService;
@@ -64,7 +64,7 @@ class PageController extends Controller {
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
CardService $cardService, CardService $cardService,
IConfig $config IConfig $config
) { ) {
parent::__construct($AppName, $request); parent::__construct($AppName, $request);
$this->permissionService = $permissionService; $this->permissionService = $permissionService;

View File

@@ -24,14 +24,14 @@ declare(strict_types=1);
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Service\PermissionService;
use OCA\Deck\Service\SessionService; use OCA\Deck\Service\SessionService;
use OCA\Deck\Service\PermissionService;
use OCA\Deck\Db\BoardMapper;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController; use OCP\AppFramework\OCSController;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Db\Acl;
class SessionController extends OCSController { class SessionController extends OCSController {
private SessionService $sessionService; private SessionService $sessionService;

View File

@@ -24,13 +24,13 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\StackService;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCP\AppFramework\ApiController; use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\StackService;
use OCA\Deck\Service\BoardService;
use Sabre\HTTP\Util; use Sabre\HTTP\Util;
/** /**

View File

@@ -25,10 +25,10 @@ namespace OCA\Deck\Controller;
use OCA\Deck\Service\StackService; use OCA\Deck\Service\StackService;
use OCP\AppFramework\Controller;
use OCP\IRequest; use OCP\IRequest;
use OCP\AppFramework\Controller;
class StackController extends Controller { class StackController extends Controller {
private $userId; private $userId;
private $stackService; private $stackService;

View File

@@ -24,10 +24,10 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\CardMapper;
use OCP\AppFramework\Utility\ITimeFactory; use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job; use OCP\BackgroundJob\Job;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\CardMapper;
class CardDescriptionActivity extends Job { class CardDescriptionActivity extends Job {

View File

@@ -24,14 +24,14 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCA\Deck\Db\AttachmentMapper; use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\InvalidAttachmentType; use OCA\Deck\InvalidAttachmentType;
use OCA\Deck\Service\AttachmentService; use OCA\Deck\Service\AttachmentService;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJob; use OCP\BackgroundJob\IJob;
use OCP\BackgroundJob\TimedJob;
class DeleteCron extends TimedJob { class DeleteCron extends TimedJob {

View File

@@ -23,12 +23,12 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job;
use OCP\ILogger; use OCP\ILogger;
class ScheduledNotifications extends Job { class ScheduledNotifications extends Job {

View File

@@ -39,8 +39,8 @@ class SessionsCleanup extends TimedJob {
public function __construct(ITimeFactory $time, public function __construct(ITimeFactory $time,
SessionService $sessionService, SessionService $sessionService,
ILogger $logger) { ILogger $logger) {
parent::__construct($time); parent::__construct($time);
$this->sessionService = $sessionService; $this->sessionService = $sessionService;
$this->logger = $logger; $this->logger = $logger;

View File

@@ -29,8 +29,8 @@ use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\QBMapper; use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IGroupManager;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
/** @template-extends QBMapper<Board> */ /** @template-extends QBMapper<Board> */
@@ -106,28 +106,36 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
} }
public function findBoardIds(string $userId): array { public function findBoardIds(string $userId): array {
// Owned by the user
$qb = $this->db->getQueryBuilder(); $qb = $this->db->getQueryBuilder();
$qb->selectDistinct('b.id') $qb->selectDistinct('b.id')
->from($this->getTableName(), 'b') ->from($this->getTableName(), 'b')
->leftJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id')); ->where($qb->expr()->andX(
$qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)),
));
$result = $qb->executeQuery();
$ownerBoards = array_map(function (string $id) {
return (int)$id;
}, $result->fetchAll(\PDO::FETCH_COLUMN));
$result->closeCursor();
// Owned by the user $qb = $this->db->getQueryBuilder();
$qb->where($qb->expr()->andX( $qb->selectDistinct('b.id')
$qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)), ->from($this->getTableName(), 'b')
)); ->innerJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id'));
// Shared to the user // Shared to the user
$qb->orWhere($qb->expr()->andX( $qb->where($qb->expr()->andX(
$qb->expr()->eq('acl.participant', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)),
$qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_USER, IQueryBuilder::PARAM_INT)), $qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_USER, IQueryBuilder::PARAM_INT)),
$qb->expr()->eq('acl.participant', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)),
)); ));
// Shared to user groups of the user // Shared to user groups of the user
$groupIds = $this->groupManager->getUserGroupIds($this->userManager->get($userId)); $groupIds = $this->groupManager->getUserGroupIds($this->userManager->get($userId));
if (count($groupIds) !== 0) { if (count($groupIds) !== 0) {
$qb->orWhere($qb->expr()->andX( $qb->orWhere($qb->expr()->andX(
$qb->expr()->in('acl.participant', $qb->createNamedParameter($groupIds, IQueryBuilder::PARAM_STR_ARRAY)),
$qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_GROUP, IQueryBuilder::PARAM_INT)), $qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_GROUP, IQueryBuilder::PARAM_INT)),
$qb->expr()->in('acl.participant', $qb->createNamedParameter($groupIds, IQueryBuilder::PARAM_STR_ARRAY)),
)); ));
} }
@@ -135,19 +143,21 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$circles = $this->circlesService->getUserCircles($userId); $circles = $this->circlesService->getUserCircles($userId);
if (count($circles) !== 0) { if (count($circles) !== 0) {
$qb->orWhere($qb->expr()->andX( $qb->orWhere($qb->expr()->andX(
$qb->expr()->in('acl.participant', $qb->createNamedParameter($circles, IQueryBuilder::PARAM_STR_ARRAY)),
$qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_CIRCLE, IQueryBuilder::PARAM_INT)), $qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_CIRCLE, IQueryBuilder::PARAM_INT)),
$qb->expr()->in('acl.participant', $qb->createNamedParameter($circles, IQueryBuilder::PARAM_STR_ARRAY)),
)); ));
} }
$result = $qb->executeQuery(); $result = $qb->executeQuery();
return array_map(function (string $id) { $sharedBoards = array_map(function (string $id) {
return (int)$id; return (int)$id;
}, $result->fetchAll(\PDO::FETCH_COLUMN)); }, $result->fetchAll(\PDO::FETCH_COLUMN));
$result->closeCursor();
return array_unique(array_merge($ownerBoards, $sharedBoards));
} }
public function findAllForUser(string $userId, ?int $since = null, bool $includeArchived = true, ?int $before = null, public function findAllForUser(string $userId, ?int $since = null, bool $includeArchived = true, ?int $before = null,
?string $term = null): array { ?string $term = null): array {
$useCache = ($since === -1 && $includeArchived === true && $before === null && $term === null); $useCache = ($since === -1 && $includeArchived === true && $before === null && $term === null);
if (!isset($this->userBoardCache[$userId]) || !$useCache) { if (!isset($this->userBoardCache[$userId]) || !$useCache) {
$groups = $this->groupManager->getUserGroupIds( $groups = $this->groupManager->getUserGroupIds(
@@ -186,7 +196,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
* Find all boards for a given user * Find all boards for a given user
*/ */
public function findAllByUser(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null, public function findAllByUser(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null): array { bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
// FIXME this used to be a UNION to get boards owned by $userId and the user shares in one single query // FIXME this used to be a UNION to get boards owned by $userId and the user shares in one single query
// Is it possible with the query builder? // Is it possible with the query builder?
$qb = $this->db->getQueryBuilder(); $qb = $this->db->getQueryBuilder();
@@ -293,7 +303,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
* Find all boards for a given user * Find all boards for a given user
*/ */
public function findAllByGroups(string $userId, array $groups, ?int $limit = null, ?int $offset = null, ?int $since = null, public function findAllByGroups(string $userId, array $groups, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null): array { bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
if (count($groups) <= 0) { if (count($groups) <= 0) {
return []; return [];
} }
@@ -347,7 +357,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
} }
public function findAllByCircles(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null, public function findAllByCircles(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null) { bool $includeArchived = true, ?int $before = null, ?string $term = null) {
$circles = $this->circlesService->getUserCircles($userId); $circles = $this->circlesService->getUserCircles($userId);
if (count($circles) === 0) { if (count($circles) === 0) {
return []; return [];

View File

@@ -23,8 +23,8 @@
namespace OCA\Deck\Db; namespace OCA\Deck\Db;
use OCP\ICache;
use OCP\ICacheFactory; use OCP\ICacheFactory;
use OCP\ICache;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IRequest; use OCP\IRequest;

View File

@@ -28,9 +28,9 @@ use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\Cache\CappedMemoryCache; use OCP\Cache\CappedMemoryCache;
use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\ICache; use OCP\ICache;
use OCP\ICacheFactory; use OCP\ICacheFactory;
use OCP\IDBConnection;
/** @template-extends DeckMapper<Stack> */ /** @template-extends DeckMapper<Stack> */
class StackMapper extends DeckMapper implements IPermissionMapper { class StackMapper extends DeckMapper implements IPermissionMapper {

View File

@@ -27,13 +27,13 @@ declare(strict_types=1);
namespace OCA\Deck\Listeners; namespace OCA\Deck\Listeners;
use OCA\Deck\Db\StackMapper; use OCA\Deck\Db\StackMapper;
use OCA\Deck\NotifyPushEvents;
use OCA\Deck\Event\AAclEvent; use OCA\Deck\Event\AAclEvent;
use OCA\Deck\Event\ACardEvent; use OCA\Deck\Event\ACardEvent;
use OCA\Deck\Event\BoardUpdatedEvent; use OCA\Deck\Event\BoardUpdatedEvent;
use OCA\Deck\Event\CardUpdatedEvent; use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Event\SessionClosedEvent; use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent; use OCA\Deck\Event\SessionCreatedEvent;
use OCA\Deck\NotifyPushEvents;
use OCA\Deck\Service\SessionService; use OCA\Deck\Service\SessionService;
use OCA\NotifyPush\Queue\IQueue; use OCA\NotifyPush\Queue\IQueue;
use OCP\EventDispatcher\Event; use OCP\EventDispatcher\Event;

View File

@@ -24,16 +24,16 @@
namespace OCA\Deck\Middleware; namespace OCA\Deck\Middleware;
use OCA\Deck\Controller\PageController; use OCA\Deck\Controller\PageController;
use OCA\Deck\Exceptions\ConflictException;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\Exceptions\ConflictException;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Middleware; use OCP\AppFramework\Middleware;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController; use OCP\AppFramework\OCSController;
use OCP\IConfig;
use OCP\ILogger; use OCP\ILogger;
use OCP\IRequest; use OCP\IRequest;
use OCP\IConfig;
class ExceptionMiddleware extends Middleware { class ExceptionMiddleware extends Middleware {

View File

@@ -239,8 +239,8 @@ class Notifier implements INotifier {
], ],
'user' => [ 'user' => [
'type' => 'user', 'type' => 'user',
'id' => $params[1], 'id' => $params[1] ?? '',
'name' => $dn, 'name' => $dn ?? '',
] ]
] ]
); );

View File

@@ -38,9 +38,9 @@ class BoardReferenceProvider implements IReferenceProvider {
private IL10N $l10n; private IL10N $l10n;
public function __construct(BoardService $boardService, public function __construct(BoardService $boardService,
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
IL10N $l10n, IL10N $l10n,
?string $userId) { ?string $userId) {
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->boardService = $boardService; $this->boardService = $boardService;
$this->userId = $userId; $this->userId = $userId;

View File

@@ -47,11 +47,11 @@ class CardReferenceProvider extends ADiscoverableReferenceProvider implements IS
private IL10N $l10n; private IL10N $l10n;
public function __construct(CardService $cardService, public function __construct(CardService $cardService,
BoardService $boardService, BoardService $boardService,
StackService $stackService, StackService $stackService,
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
IL10N $l10n, IL10N $l10n,
?string $userId) { ?string $userId) {
$this->cardService = $cardService; $this->cardService = $cardService;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->boardService = $boardService; $this->boardService = $boardService;

View File

@@ -48,12 +48,12 @@ class CommentReferenceProvider implements IReferenceProvider {
private CommentService $commentService; private CommentService $commentService;
public function __construct(CardService $cardService, public function __construct(CardService $cardService,
BoardService $boardService, BoardService $boardService,
StackService $stackService, StackService $stackService,
CommentService $commentService, CommentService $commentService,
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
IL10N $l10n, IL10N $l10n,
?string $userId) { ?string $userId) {
$this->cardService = $cardService; $this->cardService = $cardService;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->boardService = $boardService; $this->boardService = $boardService;

View File

@@ -26,7 +26,6 @@ namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\AppInfo\Application; use OCA\Deck\AppInfo\Application;
use OCA\Deck\BadRequestException; use OCA\Deck\BadRequestException;
use OCA\Deck\Cache\AttachmentCacheHelper;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
use OCA\Deck\Db\Attachment; use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper; use OCA\Deck\Db\AttachmentMapper;
@@ -35,6 +34,7 @@ use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\InvalidAttachmentType; use OCA\Deck\InvalidAttachmentType;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCA\Deck\NotFoundException; use OCA\Deck\NotFoundException;
use OCA\Deck\Cache\AttachmentCacheHelper;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\Validators\AttachmentServiceValidator; use OCA\Deck\Validators\AttachmentServiceValidator;
use OCP\AppFramework\Db\IMapperException; use OCP\AppFramework\Db\IMapperException;

View File

@@ -27,17 +27,13 @@ namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet; use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\AppInfo\Application; use OCA\Deck\AppInfo\Application;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper; use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignmentMapper; use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\IPermissionMapper; use OCA\Deck\Db\IPermissionMapper;
use OCA\Deck\Db\Label; use OCA\Deck\Db\Label;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\Session; use OCA\Deck\Db\Session;
use OCA\Deck\Db\SessionMapper; use OCA\Deck\Db\SessionMapper;
use OCA\Deck\Db\Stack; use OCA\Deck\Db\Stack;
@@ -45,20 +41,24 @@ use OCA\Deck\Db\StackMapper;
use OCA\Deck\Event\AclCreatedEvent; use OCA\Deck\Event\AclCreatedEvent;
use OCA\Deck\Event\AclDeletedEvent; use OCA\Deck\Event\AclDeletedEvent;
use OCA\Deck\Event\AclUpdatedEvent; use OCA\Deck\Event\AclUpdatedEvent;
use OCA\Deck\Event\BoardUpdatedEvent;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\Validators\BoardServiceValidator;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\DB\Exception as DbException;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig; use OCP\IConfig;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IGroupManager; use OCP\IGroupManager;
use OCP\IL10N; use OCP\IL10N;
use OCP\IURLGenerator; use OCP\DB\Exception as DbException;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCP\IUserManager; use OCP\IUserManager;
use OCA\Deck\BadRequestException;
use OCA\Deck\Event\BoardUpdatedEvent;
use OCA\Deck\Validators\BoardServiceValidator;
use OCP\IURLGenerator;
use OCP\Server; use OCP\Server;
use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface; use Psr\Container\NotFoundExceptionInterface;
@@ -145,7 +145,7 @@ class BoardService {
* Get all boards that are shared with a user, their groups or circles * Get all boards that are shared with a user, their groups or circles
*/ */
public function getUserBoards(?int $since = null, bool $includeArchived = true, ?int $before = null, public function getUserBoards(?int $since = null, bool $includeArchived = true, ?int $before = null,
?string $term = null): array { ?string $term = null): array {
return $this->boardMapper->findAllForUser($this->userId, $since, $includeArchived, $before, $term); return $this->boardMapper->findAllForUser($this->userId, $since, $includeArchived, $before, $term);
} }

View File

@@ -28,16 +28,13 @@ namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet; use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\Assignment; use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\AssignmentMapper; use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\Label; use OCA\Deck\Db\Label;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\StackMapper; use OCA\Deck\Db\StackMapper;
use OCA\Deck\Event\CardCreatedEvent; use OCA\Deck\Event\CardCreatedEvent;
use OCA\Deck\Event\CardDeletedEvent; use OCA\Deck\Event\CardDeletedEvent;
@@ -45,13 +42,16 @@ use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Model\CardDetails; use OCA\Deck\Model\CardDetails;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\BadRequestException;
use OCA\Deck\Validators\CardServiceValidator; use OCA\Deck\Validators\CardServiceValidator;
use OCP\Comments\ICommentsManager; use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\IRequest; use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IURLGenerator;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
class CardService { class CardService {

View File

@@ -24,10 +24,10 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use OCA\Deck\AppInfo\Application; use OCA\Deck\AppInfo\Application;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\BoardMapper;
use OCP\IConfig; use OCP\IConfig;
use OCP\IL10N; use OCP\IL10N;
use OCA\Deck\BadRequestException;
use OCP\PreConditionNotMetException; use OCP\PreConditionNotMetException;
class DefaultBoardService { class DefaultBoardService {
@@ -39,13 +39,13 @@ class DefaultBoardService {
private $l10n; private $l10n;
public function __construct( public function __construct(
IL10N $l10n, IL10N $l10n,
BoardMapper $boardMapper, BoardMapper $boardMapper,
BoardService $boardService, BoardService $boardService,
StackService $stackService, StackService $stackService,
CardService $cardService, CardService $cardService,
IConfig $config IConfig $config
) { ) {
$this->boardService = $boardService; $this->boardService = $boardService;
$this->stackService = $stackService; $this->stackService = $stackService;
$this->cardService = $cardService; $this->cardService = $cardService;

View File

@@ -25,8 +25,8 @@ namespace OCA\Deck\Service;
use OCA\Deck\Db\Attachment; use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper; use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Exceptions\ConflictException;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\Exceptions\ConflictException;
use OCP\AppFramework\Http\StreamResponse; use OCP\AppFramework\Http\StreamResponse;
use OCP\Files\IAppData; use OCP\Files\IAppData;
use OCP\Files\IMimeTypeDetector; use OCP\Files\IMimeTypeDetector;

View File

@@ -23,12 +23,12 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\Label; use OCA\Deck\Db\Label;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\LabelMapper; use OCA\Deck\Db\LabelMapper;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\BadRequestException;
use OCA\Deck\Validators\LabelServiceValidator; use OCA\Deck\Validators\LabelServiceValidator;
class LabelService { class LabelService {
@@ -50,7 +50,7 @@ class LabelService {
BoardService $boardService, BoardService $boardService,
ChangeHelper $changeHelper, ChangeHelper $changeHelper,
LabelServiceValidator $labelServiceValidator LabelServiceValidator $labelServiceValidator
) { ) {
$this->labelMapper = $labelMapper; $this->labelMapper = $labelMapper;
$this->permissionService = $permissionService; $this->permissionService = $permissionService;
$this->boardService = $boardService; $this->boardService = $boardService;

View File

@@ -29,11 +29,11 @@ namespace OCA\Deck\Service;
use OCA\Deck\Db\AssignmentMapper; use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Model\CardDetails; use OCA\Deck\Model\CardDetails;
use OCP\Comments\ICommentsManager; use OCP\Comments\ICommentsManager;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCP\IUserManager; use OCP\IUserManager;
class OverviewService { class OverviewService {

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use OCP\Cache\CappedMemoryCache;
use OCA\Circles\Model\Member; use OCA\Circles\Model\Member;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper; use OCA\Deck\Db\AclMapper;
@@ -33,7 +34,6 @@ use OCA\Deck\Db\User;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\MultipleObjectsReturnedException; use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\Cache\CappedMemoryCache;
use OCP\IConfig; use OCP\IConfig;
use OCP\IGroupManager; use OCP\IGroupManager;
use OCP\ILogger; use OCP\ILogger;

View File

@@ -26,12 +26,12 @@ namespace OCA\Deck\Service;
use OCA\Deck\Db\Session; use OCA\Deck\Db\Session;
use OCA\Deck\Db\SessionMapper; use OCA\Deck\Db\SessionMapper;
use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent; use OCA\Deck\Event\SessionCreatedEvent;
use OCA\NotifyPush\Queue\IQueue; use OCA\Deck\Event\SessionClosedEvent;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory; use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCA\NotifyPush\Queue\IQueue;
use OCP\Security\ISecureRandom; use OCP\Security\ISecureRandom;
class SessionService { class SessionService {

View File

@@ -23,7 +23,7 @@
* *
*/ */
declare(strict_types=1); declare(strict_types=1);
namespace OCA\Deck\Validators; namespace OCA\Deck\Validators;

66984
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +1,108 @@
{ {
"name": "deck", "name": "deck",
"description": "", "description": "",
"version": "1.11.0-dev", "version": "1.10.0",
"authors": [ "authors": [
{ {
"name": "Julius Härtl", "name": "Julius Härtl",
"email": "jus@bitgrid.net", "email": "jus@bitgrid.net",
"role": "Developer" "role": "Developer"
}, },
{ {
"name": "Michael Weimann", "name": "Michael Weimann",
"email": "mail@michael-weimann.eu", "email": "mail@michael-weimann.eu",
"role": "Developer" "role": "Developer"
} }
], ],
"license": "agpl", "license": "agpl",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "NODE_ENV=production webpack --progress --config webpack.js", "build": "NODE_ENV=production webpack --progress --config webpack.js",
"dev": "NODE_ENV=development webpack --progress --config webpack.js", "dev": "NODE_ENV=development webpack --progress --config webpack.js",
"watch": "NODE_ENV=development webpack --progress --watch --config webpack.js", "watch": "NODE_ENV=development webpack --progress --watch --config webpack.js",
"serve": "webpack serve --node-env development --allowed-hosts all --config webpack.js", "serve": "webpack serve --node-env development --allowed-hosts all --config webpack.js",
"lint": "eslint --ext .js,.vue src", "lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --ext .js,.vue src --fix", "lint:fix": "eslint --ext .js,.vue src --fix",
"lint:cypress": "eslint --ext .js cypress", "lint:cypress": "eslint --ext .js cypress",
"stylelint": "stylelint src", "stylelint": "stylelint src",
"stylelint:fix": "stylelint src --fix", "stylelint:fix": "stylelint src --fix",
"test": "jest", "test": "jest",
"test:coverage": "jest --coverage" "test:coverage": "jest --coverage"
}, },
"dependencies": { "dependencies": {
"@babel/polyfill": "^7.12.1", "@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.22.5", "@babel/runtime": "^7.21.5",
"@nextcloud/auth": "^2.1.0", "@nextcloud/auth": "^2.0.0",
"@nextcloud/axios": "^2.3.0", "@nextcloud/axios": "^2.3.0",
"@nextcloud/dialogs": "^4.1.0", "@nextcloud/dialogs": "^4.0.1",
"@nextcloud/event-bus": "^3.1.0", "@nextcloud/event-bus": "^3.0.2",
"@nextcloud/files": "^2.1.0", "@nextcloud/files": "^2.1.0",
"@nextcloud/initial-state": "^2.0.0", "@nextcloud/initial-state": "^2.0.0",
"@nextcloud/l10n": "^2.1.0", "@nextcloud/l10n": "^2.1.0",
"@nextcloud/moment": "^1.2.1", "@nextcloud/moment": "^1.2.1",
"@nextcloud/notify_push": "^1.1.3", "@nextcloud/notify_push": "^1.1.3",
"@nextcloud/router": "^2.1.2", "@nextcloud/router": "^2.1.1",
"@nextcloud/vue": "^7.12.0", "@nextcloud/vue": "^7.11.4",
"blueimp-md5": "^2.19.0", "blueimp-md5": "^2.19.0",
"dompurify": "^3.0.3", "dompurify": "^3.0.3",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"markdown-it": "^13.0.1", "markdown-it": "^13.0.1",
"markdown-it-link-attributes": "^4.0.1", "markdown-it-link-attributes": "^4.0.1",
"markdown-it-task-checkbox": "^1.0.6", "markdown-it-task-checkbox": "^1.0.6",
"moment": "^2.29.4", "moment": "^2.29.4",
"nextcloud-vue-collections": "^0.11.1", "nextcloud-vue-collections": "^0.11.1",
"p-queue": "^7.3.4", "p-queue": "^7.3.4",
"url-search-params-polyfill": "^8.2.3", "url-search-params-polyfill": "^8.1.1",
"vue": "^2.7.14", "vue": "^2.7.14",
"vue-at": "^2.5.1", "vue-at": "^2.5.1",
"vue-click-outside": "^1.1.0", "vue-click-outside": "^1.1.0",
"vue-easymde": "^2.0.0", "vue-easymde": "^2.0.0",
"vue-infinite-loading": "^2.4.5", "vue-infinite-loading": "^2.4.5",
"vue-material-design-icons": "^5.2.0", "vue-material-design-icons": "^5.2.0",
"vue-router": "^3.6.5", "vue-router": "^3.6.5",
"vue-smooth-dnd": "^0.8.1", "vue-smooth-dnd": "^0.8.1",
"vuex": "^3.6.2", "vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0" "vuex-router-sync": "^5.0.0"
}, },
"browserslist": [ "browserslist": [
"extends @nextcloud/browserslist-config" "extends @nextcloud/browserslist-config"
], ],
"engines": { "engines": {
"node": "^20.0.0", "node": "^16.0.0",
"npm": "^9.0.0" "npm": "^7.0.0 || ^8.0.0"
}, },
"devDependencies": { "devDependencies": {
"@nextcloud/babel-config": "^1.0.0", "@nextcloud/babel-config": "^1.0.0",
"@nextcloud/browserslist-config": "^2.3.0", "@nextcloud/browserslist-config": "^2.3.0",
"@nextcloud/cypress": "^1.0.0-beta.2", "@nextcloud/cypress": "^1.0.0-beta.2",
"@nextcloud/eslint-config": "^8.2.1", "@nextcloud/eslint-config": "^8.2.1",
"@nextcloud/stylelint-config": "^2.3.0", "@nextcloud/stylelint-config": "^2.3.0",
"@nextcloud/webpack-vue-config": "^5.5.1", "@nextcloud/webpack-vue-config": "^5.5.1",
"@relative-ci/agent": "^4.1.5", "@relative-ci/agent": "^4.1.4",
"@vue/test-utils": "^1.3.6", "@vue/test-utils": "^1.3.5",
"@vue/vue2-jest": "^29.2.4", "@vue/vue2-jest": "^29.2.4",
"cypress": "^12.15.0", "cypress": "^12.12.0",
"eslint-plugin-cypress": "^2.13.3", "eslint-plugin-cypress": "^2.13.3",
"eslint-webpack-plugin": "^4.0.1", "eslint-webpack-plugin": "^4.0.1",
"jest": "^29.5.0", "jest": "^29.5.0",
"jest-serializer-vue": "^3.1.0", "jest-serializer-vue": "^3.1.0",
"stylelint-webpack-plugin": "^4.1.1", "stylelint-webpack-plugin": "^4.1.1",
"vue-template-compiler": "^2.7.14" "vue-template-compiler": "^2.7.14"
}, },
"jest": { "jest": {
"moduleFileExtensions": [ "moduleFileExtensions": [
"js", "js",
"vue" "vue"
], ],
"moduleNameMapper": { "moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1" "^@/(.*)$": "<rootDir>/src/$1"
}, },
"transform": { "transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest", "^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest" ".*\\.(vue)$": "<rootDir>/node_modules/vue-jest"
}, },
"snapshotSerializers": [ "snapshotSerializers": [
"<rootDir>/node_modules/jest-serializer-vue" "<rootDir>/node_modules/jest-serializer-vue"
] ]
} }
} }

View File

@@ -21,6 +21,7 @@
<ignoreFiles> <ignoreFiles>
<directory name="vendor/phpunit/php-code-coverage" /> <directory name="vendor/phpunit/php-code-coverage" />
<directory name="vendor/vimeo" /> <directory name="vendor/vimeo" />
<directory name="vendor/friendsofphp" />
</ignoreFiles> </ignoreFiles>
</extraFiles> </extraFiles>
<issueHandlers> <issueHandlers>

View File

@@ -27,19 +27,17 @@
<router-view /> <router-view />
</NcAppContent> </NcAppContent>
<div v-if="$route.params.id || $route.params.cardId"> <NcModal v-if="cardDetailsInModal && $route.params.cardId"
<NcModal v-if="cardDetailsInModal && $route.params.cardId" :clear-view-delay="0"
:clear-view-delay="0" :close-button-contained="true"
:close-button-contained="true" size="large"
size="large" @close="hideModal()">
@close="hideModal()"> <div class="modal__content modal__card">
<div class="modal__content modal__card"> <router-view name="sidebar" />
<router-view name="sidebar" /> </div>
</div> </NcModal>
</NcModal>
<router-view name="sidebar" :visible="!cardDetailsInModal || !$route.params.cardId" /> <router-view name="sidebar" :visible="!cardDetailsInModal || !$route.params.cardId" />
</div>
</NcContent> </NcContent>
</template> </template>

View File

@@ -2,7 +2,7 @@
"require-dev": { "require-dev": {
"phpunit/phpunit": "~9", "phpunit/phpunit": "~9",
"behat/behat": "~3.13.0", "behat/behat": "~3.13.0",
"guzzlehttp/guzzle": "7.7.0", "guzzlehttp/guzzle": "7.5.1",
"jarnaiz/behat-junit-formatter": "^1.3", "jarnaiz/behat-junit-formatter": "^1.3",
"sabre/dav": "4.4.0", "sabre/dav": "4.4.0",
"symfony/event-dispatcher": "~5.4" "symfony/event-dispatcher": "~5.4"

View File

@@ -26,8 +26,8 @@ namespace OCA\Deck\Db;
use OCA\Deck\NotFoundException; use OCA\Deck\NotFoundException;
use OCA\Deck\Service\AssignmentService; use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\BoardService; use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\CardService;
use OCA\Deck\Service\StackService; use OCA\Deck\Service\StackService;
use OCA\Deck\Service\CardService;
use OCP\IGroupManager; use OCP\IGroupManager;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IUserSession; use OCP\IUserSession;

View File

@@ -1,11 +1,11 @@
<?php <?php
use Behat\Behat\Context\Context;
use Behat\Behat\Hook\Scope\BeforeScenarioScope; use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\Gherkin\Node\TableNode; use Behat\Gherkin\Node\TableNode;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException; use GuzzleHttp\Exception\ClientException;
use PHPUnit\Framework\Assert; use PHPUnit\Framework\Assert;
use Behat\Behat\Context\Context;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
require_once __DIR__ . '/../../vendor/autoload.php'; require_once __DIR__ . '/../../vendor/autoload.php';

View File

@@ -39,8 +39,8 @@ use OCP\Activity\IManager;
use OCP\IL10N; use OCP\IL10N;
use OCP\IUser; use OCP\IUser;
use OCP\L10N\IFactory; use OCP\L10N\IFactory;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\MockObject\MockObject;
class ActivityManagerTest extends TestCase { class ActivityManagerTest extends TestCase {

View File

@@ -26,7 +26,6 @@ namespace OCA\Deck\Activity;
use OC\Activity\Event; use OC\Activity\Event;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Service\CardService;
use OCP\Activity\IEvent; use OCP\Activity\IEvent;
use OCP\Comments\IComment; use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager; use OCP\Comments\ICommentsManager;
@@ -39,6 +38,7 @@ use OCP\L10N\IFactory;
use OCP\RichObjectStrings\IValidator; use OCP\RichObjectStrings\IValidator;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use PHPUnit_Framework_MockObject_MockObject as MockObject; use PHPUnit_Framework_MockObject_MockObject as MockObject;
use OCA\Deck\Service\CardService;
class DeckProviderTest extends TestCase { class DeckProviderTest extends TestCase {

View File

@@ -31,8 +31,8 @@ use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\PermissionService; use OCA\Deck\Service\PermissionService;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\JSONResponse;
use OCP\IConfig;
use OCP\ILogger; use OCP\ILogger;
use OCP\IConfig;
use OCP\IRequest; use OCP\IRequest;
class ExceptionMiddlewareTest extends \Test\TestCase { class ExceptionMiddlewareTest extends \Test\TestCase {

View File

@@ -23,7 +23,6 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use \Test\TestCase;
use OC\L10N\L10N; use OC\L10N\L10N;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\Acl; use OCA\Deck\Db\Acl;
@@ -42,15 +41,16 @@ use OCA\Deck\Event\AclCreatedEvent;
use OCA\Deck\Event\AclDeletedEvent; use OCA\Deck\Event\AclDeletedEvent;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\Validators\BoardServiceValidator;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig; use OCP\IConfig;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUser; use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IGroupManager;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use \Test\TestCase;
use OCP\IURLGenerator;
use OCA\Deck\Validators\BoardServiceValidator;
class BoardServiceTest extends TestCase { class BoardServiceTest extends TestCase {

View File

@@ -27,13 +27,13 @@ use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\Assignment; use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\AssignmentMapper; use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\Stack; use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper; use OCA\Deck\Db\StackMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Model\CardDetails; use OCA\Deck\Model\CardDetails;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
@@ -42,13 +42,13 @@ use OCP\Activity\IEvent;
use OCP\Comments\ICommentsManager; use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\IRequest; use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser; use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Test\TestCase; use Test\TestCase;
use OCP\IURLGenerator;
class CardServiceTest extends TestCase { class CardServiceTest extends TestCase {

View File

@@ -23,13 +23,13 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use \Test\TestCase;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\Stack; use OCA\Deck\Db\Stack;
use OCA\Deck\Db\BoardMapper;
use OCP\IConfig; use OCP\IConfig;
use OCP\IL10N; use OCP\IL10N;
use \Test\TestCase;
class DefaultBoardServiceTest extends TestCase { class DefaultBoardServiceTest extends TestCase {

View File

@@ -23,12 +23,11 @@
namespace OCA\Deck\Service; namespace OCA\Deck\Service;
use \Test\TestCase;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\AssignmentMapper; use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\ChangeHelper; use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\Label; use OCA\Deck\Db\Label;
use OCA\Deck\Db\LabelMapper; use OCA\Deck\Db\LabelMapper;
@@ -38,6 +37,7 @@ use OCA\Deck\Model\CardDetails;
use OCA\Deck\Validators\StackServiceValidator; use OCA\Deck\Validators\StackServiceValidator;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use \Test\TestCase;
/** /**
* Class StackServiceTest * Class StackServiceTest
@@ -117,17 +117,17 @@ class StackServiceTest extends TestCase {
$this->permissionService->expects($this->once())->method('checkPermission'); $this->permissionService->expects($this->once())->method('checkPermission');
$this->stackMapper->expects($this->once())->method('findAll')->willReturn($this->getStacks()); $this->stackMapper->expects($this->once())->method('findAll')->willReturn($this->getStacks());
$this->cardService->expects($this->atLeastOnce())->method('enrichCards')->will( $this->cardService->expects($this->atLeastOnce())->method('enrichCards')->will(
$this->returnCallback( $this->returnCallback(
function ($cards) { function ($cards) {
foreach ($cards as $card) { foreach ($cards as $card) {
$card->setLabels($this->getLabels()[$card->getId()]); $card->setLabels($this->getLabels()[$card->getId()]);
} }
return array_map(function ($card) { return array_map(function ($card) {
return new CardDetails($card); return new CardDetails($card);
}, $cards); }, $cards);
} }
) )
); );
$this->cardMapper->expects($this->any())->method('findAll')->willReturn($this->getCards(222)); $this->cardMapper->expects($this->any())->method('findAll')->willReturn($this->getCards(222));

View File

@@ -22,13 +22,13 @@
*/ */
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Board;
use OCA\Deck\Service\BoardService;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Db\Board;
class BoardApiControllerTest extends \Test\TestCase { class BoardApiControllerTest extends \Test\TestCase {
private $appName = 'deck'; private $appName = 'deck';
private $userId = 'admin'; private $userId = 'admin';

View File

@@ -23,10 +23,10 @@
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Board; use OCA\Deck\Db\Board;
use OCA\Deck\Service\Importer\BoardImportService;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Service\Importer\BoardImportService;
class BoardImportApiControllerTest extends \Test\TestCase { class BoardImportApiControllerTest extends \Test\TestCase {
private $appName = 'deck'; private $appName = 'deck';

View File

@@ -22,14 +22,14 @@
*/ */
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Card;
use OCA\Deck\Service\AssignmentService; use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Db\Card;
use OCA\Deck\Service\CardService;
class CardApiControllerTest extends \Test\TestCase { class CardApiControllerTest extends \Test\TestCase {
private $controller; private $controller;
private $request; private $request;

View File

@@ -22,13 +22,13 @@
*/ */
namespace OCA\Deck\Controller; namespace OCA\Deck\Controller;
use OCA\Deck\Db\Label;
use OCA\Deck\Service\LabelService;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCA\Deck\Db\Label;
use OCA\Deck\Service\LabelService;
class LabelApiControllerTest extends \Test\TestCase { class LabelApiControllerTest extends \Test\TestCase {
private $controller; private $controller;
private $request; private $request;

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