Compare commits

..

115 Commits

Author SHA1 Message Date
grnd-alt
8da918a6a8 add Order when cloning board
Signed-off-by: grnd-alt <salimbelakkaf@outlook.de>
2024-07-31 13:21:20 +02:00
Nextcloud bot
5aca5b4499 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-30 00:38:07 +00:00
Julius Härtl
4beb7fceaa Merge pull request #6158 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-07-29 08:45:19 +02:00
nextcloud-command
0c07a4fd76 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-07-28 02:48:07 +00:00
Nextcloud bot
4fa1d18467 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-28 00:55:58 +00:00
Arthur Schiwon
2dacd99fd6 Merge pull request #6142 from nextcloud/fix/fixappstore-build-publish
fix(files): fix appstore-build-publish.yml
2024-07-26 19:12:36 +02:00
julia.kirschenheuter
68b9e0fb40 fix(files): fix appstore-build-publish.yml
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-07-26 19:11:08 +02:00
Julius Härtl
f21282c5d6 Merge pull request #6141 from nextcloud/release/1.14.0-beta.1
chore: bump `1.14.0-dev` to version `1.14.0-beta.1`
2024-07-26 18:09:44 +02:00
julia.kirschenheuter
a145cccf34 chore: bump 1.14.0-dev to version 1.14.0-beta.1
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-07-26 17:54:01 +02:00
Nextcloud bot
9a87f287e3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-26 00:36:20 +00:00
Nextcloud bot
3dd70f2f8b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-25 00:36:53 +00:00
Nextcloud bot
973d13023b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-24 00:37:40 +00:00
Julius Härtl
1bf3442e82 Merge pull request #6120 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/files-3.6.0 2024-07-23 12:24:13 +02:00
Julius Härtl
5bb0f87248 Merge pull request #6124 from nextcloud/dependabot/github_actions/alexwilson/enable-github-automerge-action-7bcf565e3edb508fd1e4a8814ba60233bfa027fb 2024-07-23 12:23:45 +02:00
Nextcloud bot
cca82f152d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-23 00:37:01 +00:00
Nextcloud bot
bc809b2d3f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-22 00:36:33 +00:00
github-actions[bot]
3422c851cf Merge pull request #6129 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-07-21 04:34:10 +00:00
nextcloud-command
c621d158b2 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-07-21 02:45:06 +00:00
Nextcloud bot
2677957c74 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-21 00:36:53 +00:00
dependabot[bot]
1ef7447248 Merge pull request #6125 from nextcloud/dependabot/composer/tests/integration/guzzlehttp/guzzle-7.9.1 2024-07-20 02:43:50 +00:00
dependabot[bot]
6d2a01cb21 Chore(deps-dev): Update guzzlehttp/guzzle requirement
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.8.1...7.9.1)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-20 01:46:58 +00:00
dependabot[bot]
7fbf03b548 Merge pull request #6121 from nextcloud/dependabot/npm_and_yarn/main/cypress-13.13.1 2024-07-20 01:14:24 +00:00
dependabot[bot]
c7cf43a75c Chore(deps): Bump alexwilson/enable-github-automerge-action
Bumps [alexwilson/enable-github-automerge-action](https://github.com/alexwilson/enable-github-automerge-action) from 3a349b20acc6235b856fb0b1c95a36cb5373da2f to 7bcf565e3edb508fd1e4a8814ba60233bfa027fb.
- [Release notes](https://github.com/alexwilson/enable-github-automerge-action/releases)
- [Commits](3a349b20ac...7bcf565e3e)

---
updated-dependencies:
- dependency-name: alexwilson/enable-github-automerge-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-20 01:11:02 +00:00
dependabot[bot]
9c290daa06 Chore(deps-dev): Bump cypress from 13.13.0 to 13.13.1
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.13.0 to 13.13.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/v13.13.0...v13.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-20 01:03:56 +00:00
dependabot[bot]
97ecbf5e50 Chore(deps): Bump @nextcloud/files from 3.5.1 to 3.6.0
Bumps [@nextcloud/files](https://github.com/nextcloud-libraries/nextcloud-files) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-files/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-files/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-files/compare/v3.5.1...v3.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-20 01:03:32 +00:00
Nextcloud bot
502cadf091 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-20 00:39:16 +00:00
Nextcloud bot
5439304c49 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-19 00:35:55 +00:00
Julius Härtl
210b4a2033 chore: Update devcontainer image to PHP 8.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-07-18 22:13:38 +02:00
Julius Härtl
876b769f34 docs: Fix standalone container mount
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-07-18 22:12:47 +02:00
Julius Härtl
0d876b4bc9 Merge pull request #6115 from nextcloud/fix/remove-redundant-log 2024-07-18 19:29:04 +02:00
Luka Trovic
21248b4d1e fix: remove redundant log
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2024-07-18 16:12:39 +02:00
Julius Härtl
c7e9ac7bce Merge pull request #6113 from nextcloud/fix/design-review-issues
fix: design review issues
2024-07-18 14:24:11 +02:00
Luka Trovic
9bc601c7a9 fix: design review issues
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2024-07-17 18:51:46 +02:00
Nextcloud bot
76594bf95c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-17 00:37:54 +00:00
Nextcloud bot
a6914124ca Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-16 00:39:03 +00:00
Julius Härtl
a072cc0502 Merge pull request #6101 from nextcloud/dependabot/npm_and_yarn/main/babel/runtime-7.24.8 2024-07-15 07:34:56 +02:00
Julius Härtl
f5eb7dc213 Merge pull request #6103 from nextcloud/dependabot/composer/justinrainbow/json-schema-5.3.0 2024-07-15 07:34:42 +02:00
Julius Härtl
31e8a4092f Merge pull request #6104 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.31.1 2024-07-15 07:34:22 +02:00
Julius Härtl
6baa938fcd Merge pull request #6105 from nextcloud/dependabot/github_actions/actions/setup-node-4.0.3 2024-07-15 07:34:10 +02:00
Julius Härtl
b9e53951be Merge pull request #6106 from nextcloud/dependabot/github_actions/alexwilson/enable-github-automerge-action-3a349b20acc6235b856fb0b1c95a36cb5373da2f 2024-07-15 07:33:57 +02:00
Julius Härtl
b81b92b1bc Merge pull request #6110 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-07-15 07:18:28 +02:00
Nextcloud bot
a1f850573c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-15 00:36:54 +00:00
nextcloud-command
aa4bc9de24 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-07-14 03:02:17 +00:00
Nextcloud bot
78fc485239 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-14 00:37:41 +00:00
dependabot[bot]
d81c2ad0bc Chore(deps): Bump alexwilson/enable-github-automerge-action
Bumps [alexwilson/enable-github-automerge-action](https://github.com/alexwilson/enable-github-automerge-action) from 772cbfd2817d6418fff7dfcfff0962d0af42d813 to 3a349b20acc6235b856fb0b1c95a36cb5373da2f.
- [Release notes](https://github.com/alexwilson/enable-github-automerge-action/releases)
- [Commits](772cbfd281...3a349b20ac)

---
updated-dependencies:
- dependency-name: alexwilson/enable-github-automerge-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-13 01:37:31 +00:00
dependabot[bot]
a7f479092d Chore(deps): Bump actions/setup-node from 4.0.2 to 4.0.3
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.2...v4.0.3)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-13 01:37:28 +00:00
dependabot[bot]
18346382c9 Chore(deps): Bump shivammathur/setup-php from 2.31.0 to 2.31.1
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.31.0 to 2.31.1.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.31.0...2.31.1)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-13 01:37:22 +00:00
dependabot[bot]
bc827c6f00 Chore(deps): Bump justinrainbow/json-schema from 5.2.13 to 5.3.0
Bumps [justinrainbow/json-schema](https://github.com/justinrainbow/json-schema) from 5.2.13 to 5.3.0.
- [Release notes](https://github.com/justinrainbow/json-schema/releases)
- [Changelog](https://github.com/jsonrainbow/json-schema/blob/master/CHANGELOG.md)
- [Commits](https://github.com/justinrainbow/json-schema/compare/5.2.13...5.3.0)

---
updated-dependencies:
- dependency-name: justinrainbow/json-schema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-13 01:28:51 +00:00
dependabot[bot]
8af8e80b17 Chore(deps): Bump @babel/runtime from 7.24.7 to 7.24.8
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.7 to 7.24.8.
- [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.24.8/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>
2024-07-13 01:16:10 +00:00
Nextcloud bot
9c82b34bdf Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-13 00:39:37 +00:00
Julius Härtl
463475fb88 Merge pull request #6088 from pschopen/main
Fix: incorrect height of editing windows and edit bar
2024-07-12 08:42:03 +02:00
Philip
7d295bee80 Update Description.vue
Signed-off-by: Philip <65334274+pschopen@users.noreply.github.com>
2024-07-11 10:56:51 +02:00
Philip
f2699d61c7 Update CardSidebar.vue
Signed-off-by: Philip <65334274+pschopen@users.noreply.github.com>
2024-07-11 10:45:20 +02:00
Andy Scherzinger
ed290f048d Merge pull request #6084 from nextcloud/chore/noid/reuse-toml
Migrate REUSE to TOML format
2024-07-09 08:45:25 +02:00
Andy Scherzinger
4f9507b4ad chore: Migrate REUSE to TOML format
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-07-08 20:55:59 +02:00
github-actions[bot]
89da0d2f47 Merge pull request #6081 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-07-07 03:58:27 +00:00
nextcloud-command
42589fe001 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-07-07 02:43:22 +00:00
Julius Härtl
aaad943e27 Merge pull request #6076 from nextcloud/dependabot/github_actions/alexwilson/enable-github-automerge-action-772cbfd2817d6418fff7dfcfff0962d0af42d813 2024-07-06 10:25:52 +02:00
dependabot[bot]
5abee105fa Merge pull request #6071 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-8.14.0 2024-07-06 02:58:20 +00:00
dependabot[bot]
a01d17843f Chore(deps): Bump alexwilson/enable-github-automerge-action
Bumps [alexwilson/enable-github-automerge-action](https://github.com/alexwilson/enable-github-automerge-action) from 95df6f3009ad99156b8b23cd8b0f26b815333981 to 772cbfd2817d6418fff7dfcfff0962d0af42d813.
- [Release notes](https://github.com/alexwilson/enable-github-automerge-action/releases)
- [Commits](95df6f3009...772cbfd281)

---
updated-dependencies:
- dependency-name: alexwilson/enable-github-automerge-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 01:35:19 +00:00
dependabot[bot]
e1ad1ae138 Chore(deps): Bump @nextcloud/vue from 8.13.0 to 8.14.0
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.13.0 to 8.14.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.13.0...v8.14.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>
2024-07-06 01:18:06 +00:00
dependabot[bot]
0a51aaedd6 Merge pull request #6070 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/dialogs-5.3.5 2024-07-06 01:17:26 +00:00
dependabot[bot]
9842b0dba3 Merge pull request #6072 from nextcloud/dependabot/npm_and_yarn/main/dompurify-3.1.6 2024-07-06 01:17:20 +00:00
dependabot[bot]
f0be9749b7 Merge pull request #6073 from nextcloud/dependabot/npm_and_yarn/main/cypress-13.13.0 2024-07-06 01:15:27 +00:00
dependabot[bot]
a2676bce7a Chore(deps-dev): Bump cypress from 13.12.0 to 13.13.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.12.0 to 13.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/v13.12.0...v13.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>
2024-07-06 01:06:42 +00:00
dependabot[bot]
93b405d84a Chore(deps): Bump dompurify from 3.1.5 to 3.1.6
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.1.5 to 3.1.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.5...3.1.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 01:06:25 +00:00
dependabot[bot]
aa345fe8d0 Chore(deps): Bump @nextcloud/dialogs from 5.3.4 to 5.3.5
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 5.3.4 to 5.3.5.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v5.3.4...v5.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 01:06:01 +00:00
Andy Scherzinger
1c89cf8284 Merge pull request #6068 from nextcloud/feat/workflow-auto-update-reuse.yml
chore(CI): Updating reuse.yml workflow from template
2024-07-04 22:34:06 +02:00
Nextcloud bot
b4111b00ef chore(CI): Updating reuse.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-04 19:38:36 +00:00
Julius Härtl
fa915f7dbe Merge pull request #6065 from nextcloud/fix/deprecated-bindParam
fix: Remove bindParam usage with simpler query
2024-07-03 12:56:36 +02:00
Julius Härtl
19e35fdee4 fix: Remove bindParam usage with simpler query
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-07-03 10:24:50 +02:00
Jonas
6dfb01fa02 Merge pull request #6062 from nextcloud/fix/groupfolder-share-object-storage
Only check path for being accessible when the storage is a object home
2024-07-02 10:53:08 +02:00
Jonas
df5b5690a0 Only check path for being accessible when the storage is a object home
Forward-ported https://github.com/nextcloud/server/pull/24103

Signed-off-by: Jonas <jonas@freesources.org>
2024-07-02 10:37:56 +02:00
Julius Härtl
2a4ea73023 Merge pull request #6051 from nextcloud/dependabot/npm_and_yarn/main/relative-ci/agent-4.2.9
Chore(deps-dev): Bump @relative-ci/agent from 4.2.8 to 4.2.9
2024-07-01 09:34:19 +02:00
Julius Härtl
9c5498a050 Merge pull request #6053 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/dialogs-5.3.4
Chore(deps): Bump @nextcloud/dialogs from 5.3.3 to 5.3.4
2024-07-01 09:34:11 +02:00
Julius Härtl
24a1666c36 Merge pull request #6055 from nextcloud/dependabot/github_actions/alexwilson/enable-github-automerge-action-95df6f3009ad99156b8b23cd8b0f26b815333981
Chore(deps): Bump alexwilson/enable-github-automerge-action from 835faa041540d2234ea4530506a7abd42c847dfc to 95df6f3009ad99156b8b23cd8b0f26b815333981
2024-07-01 09:33:19 +02:00
github-actions[bot]
de5c625e86 Merge pull request #6059 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-06-30 04:43:02 +00:00
nextcloud-command
544581bbdc chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-06-30 02:49:23 +00:00
dependabot[bot]
3852119f4f Merge pull request #6054 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.31.0 2024-06-29 03:44:02 +00:00
dependabot[bot]
fd540be9c2 Merge pull request #6052 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-8.13.0 2024-06-29 03:24:32 +00:00
dependabot[bot]
cfcfaad6c6 Chore(deps): Bump alexwilson/enable-github-automerge-action
Bumps [alexwilson/enable-github-automerge-action](https://github.com/alexwilson/enable-github-automerge-action) from 835faa041540d2234ea4530506a7abd42c847dfc to 95df6f3009ad99156b8b23cd8b0f26b815333981.
- [Release notes](https://github.com/alexwilson/enable-github-automerge-action/releases)
- [Commits](835faa0415...95df6f3009)

---
updated-dependencies:
- dependency-name: alexwilson/enable-github-automerge-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 03:00:36 +00:00
dependabot[bot]
040df707b2 Chore(deps): Bump shivammathur/setup-php from 2.30.5 to 2.31.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.30.5 to 2.31.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.30.5...2.31.0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 03:00:31 +00:00
dependabot[bot]
4a00ce2e45 Chore(deps): Bump @nextcloud/dialogs from 5.3.3 to 5.3.4
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v5.3.3...v5.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 02:24:33 +00:00
dependabot[bot]
80a51d64b6 Chore(deps): Bump @nextcloud/vue from 8.12.0 to 8.13.0
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.12.0 to 8.13.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.12.0...v8.13.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>
2024-06-29 02:24:19 +00:00
dependabot[bot]
c741c1190b Chore(deps-dev): Bump @relative-ci/agent from 4.2.8 to 4.2.9
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 4.2.8 to 4.2.9.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v4.2.8...v4.2.9)

---
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>
2024-06-29 02:23:45 +00:00
Julius Härtl
2f5d39fc5b Merge pull request #6008 from nextcloud/chore/comments-event-legacy
chore: Move comments event handler to use proper event dispatcher
2024-06-28 16:16:19 +02:00
Julius Härtl
a6b31d6a5f Merge pull request #6029 from nextcloud/StCyr-patch-1-1
Update User_documentation_en.md
2024-06-28 14:31:22 +02:00
Julius Härtl
261e6d0362 chore: Move comments event handler to use proper event dispatcher
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-06-28 14:20:38 +02:00
Nextcloud bot
8ceed06aca Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-06-27 00:37:38 +00:00
Julius Härtl
02f63d9967 Merge pull request #6010 from nextcloud/perf/permission-skip-enhance 2024-06-26 23:57:01 +02:00
Julius Härtl
206a735c55 Merge pull request #6033 from nextcloud/fix/symlink
docs: Fix symlink to readme
2024-06-26 10:26:51 +02:00
Julius Härtl
ab94a5cc32 docs: Fix symlink to readme
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-06-26 10:23:40 +02:00
Julius Härtl
4b2c191e21 Merge pull request #6005 from nextcloud/fix/5628-deck-card-descriptions-not-saved
don't reset update time when no update was written to db
2024-06-26 10:15:17 +02:00
Julius Härtl
d4ea088cd2 perf: Avoid fetching labels and owner details on permission check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-06-25 17:01:30 +02:00
Cyrille Bollu
979c1be7f3 Update User_documentation_en.md
Adds documentation how permissions are granted when sharing boards, based on what I have found here: ea4655b24e/lib/Service/PermissionService.php (L169)

Signed-off-by: Cyrille Bollu <StCyr@users.noreply.github.com>
2024-06-24 17:28:42 +02:00
Julius Härtl
ea4655b24e Merge pull request #6011 from nextcloud/chore/property-promition 2024-06-24 09:49:32 +02:00
Julius Härtl
3250efc1f4 Merge pull request #6017 from nextcloud/dependabot/npm_and_yarn/main/cypress-13.12.0 2024-06-23 10:44:34 +02:00
Julius Härtl
cfcb6b740b Merge pull request #6018 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/dialogs-5.3.3 2024-06-23 10:44:06 +02:00
Julius Härtl
7d29de246e Merge pull request #6023 from nextcloud/dependabot/github_actions/alexwilson/enable-github-automerge-action-835faa041540d2234ea4530506a7abd42c847dfc 2024-06-23 10:41:50 +02:00
github-actions[bot]
efd9c0e105 Merge pull request #6027 from nextcloud/automated/noid/main-update-nextcloud-ocp
[main] Update nextcloud/ocp dependency
2024-06-23 04:30:23 +00:00
nextcloud-command
6e508e380b chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-06-23 02:44:12 +00:00
Nextcloud bot
5da9ed378a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-06-23 00:37:33 +00:00
dependabot[bot]
c13c1e8730 Merge pull request #6026 from nextcloud/dependabot/composer/psalm/phar-5.25.0 2024-06-22 04:01:23 +00:00
dependabot[bot]
b0dcfd2a77 Merge pull request #6022 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-6.1.0 2024-06-22 03:49:19 +00:00
dependabot[bot]
57012e92b9 Chore(deps-dev): Bump psalm/phar from 5.24.0 to 5.25.0
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.24.0 to 5.25.0.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.24.0...5.25.0)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 02:17:48 +00:00
dependabot[bot]
668493e87c Merge pull request #6019 from nextcloud/dependabot/npm_and_yarn/main/nextcloud-vue-collections-0.13.0 2024-06-22 02:11:06 +00:00
dependabot[bot]
1734dd0c05 Chore(deps): Bump @nextcloud/dialogs from 5.3.2 to 5.3.3
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 5.3.2 to 5.3.3.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v5.3.2...v5.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:45:26 +00:00
dependabot[bot]
7296366d85 Merge pull request #6016 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/files-3.5.1 2024-06-22 01:44:22 +00:00
dependabot[bot]
3f7f345932 Chore(deps): Bump alexwilson/enable-github-automerge-action
Bumps [alexwilson/enable-github-automerge-action](https://github.com/alexwilson/enable-github-automerge-action) from 457fa4d5e6c9b48466675d52d3a9bfe069f43a54 to 835faa041540d2234ea4530506a7abd42c847dfc.
- [Release notes](https://github.com/alexwilson/enable-github-automerge-action/releases)
- [Commits](457fa4d5e6...835faa0415)

---
updated-dependencies:
- dependency-name: alexwilson/enable-github-automerge-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:43:40 +00:00
dependabot[bot]
a49fa73afa Chore(deps): Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.5 to 6.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](6d6857d369...c5a7806660)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:43:36 +00:00
Nextcloud bot
24ec34ca49 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-06-22 01:29:03 +00:00
dependabot[bot]
ca50052a8b Chore(deps): Bump nextcloud-vue-collections from 0.12.0 to 0.13.0
Bumps [nextcloud-vue-collections](https://github.com/nextcloud/nextcloud-vue-collections) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue-collections/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue-collections/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue-collections/compare/v0.12.0...v0.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:06:16 +00:00
dependabot[bot]
9956a2a8b7 Chore(deps-dev): Bump cypress from 13.11.0 to 13.12.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.11.0 to 13.12.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/v13.11.0...v13.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:05:52 +00:00
dependabot[bot]
a61a1d6dcf Chore(deps): Bump @nextcloud/files from 3.4.1 to 3.5.1
Bumps [@nextcloud/files](https://github.com/nextcloud-libraries/nextcloud-files) from 3.4.1 to 3.5.1.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-files/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-files/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-files/compare/v3.4.1...v3.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 01:05:30 +00:00
grnd-alt
3c5ca27eb8 don't reset update time when no update was written to db
Signed-off-by: grnd-alt <salimbelakkaf@outlook.de>
2024-06-17 13:43:12 +02:00
92 changed files with 1155 additions and 498 deletions

View File

@@ -1,5 +1,5 @@
{
"image": "ghcr.io/juliushaertl/nextcloud-dev-php80:latest",
"image": "ghcr.io/juliushaertl/nextcloud-dev-php81:latest",
"forwardPorts": [80],
"containerEnv": {
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",

View File

@@ -18,13 +18,13 @@ jobs:
steps:
- uses: actions/checkout@v4.1.7
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.30.5
uses: shivammathur/setup-php@2.31.1
with:
php-version: '7.4'
tools: composer

View File

@@ -9,167 +9,167 @@
name: Build and publish app release
on:
release:
types: [published]
release:
types: [published]
jobs:
build_and_publish:
runs-on: ubuntu-latest
build_and_publish:
runs-on: ubuntu-latest
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: ${{ env.APP_NAME }}
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: ${{ env.APP_NAME }}
- name: Get appinfo data
id: appinfo
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
expression: "//info//dependencies//nextcloud/@min-version"
- name: Get appinfo data
id: appinfo
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
expression: "//info//dependencies//nextcloud/@min-version"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Get php version
id: php-versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
- name: Get php version
id: php-versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
with:
php-version: ${{ steps.php-versions.outputs.php-min }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
with:
php-version: ${{ steps.php-versions.outputs.php-min }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: "${{ env.APP_NAME }}/composer.json"
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: "${{ env.APP_NAME }}/composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
composer install --no-dev
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
composer install --no-dev
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
env:
NODE_ENV: production
run: |
cd ${{ env.APP_NAME }}
npm ci
npm run build --if-present
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
env:
CYPRESS_INSTALL_BINARY: 0
run: |
cd ${{ env.APP_NAME }}
npm ci
npm run build --if-present
- name: Check Krankerl config
id: krankerl
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: ${{ env.APP_NAME }}/krankerl.toml
- name: Check Krankerl config
id: krankerl
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: ${{ env.APP_NAME }}/krankerl.toml
- name: Install Krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
- name: Install Krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
krankerl package
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
krankerl package
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
if: steps.krankerl.outputs.files_exists != 'true'
run: |
cd ${{ env.APP_NAME }}
make appstore
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
if: steps.krankerl.outputs.files_exists != 'true'
run: |
cd ${{ env.APP_NAME }}
make appstore
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
continue-on-error: true
id: server-checkout
run: |
NCVERSION=${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
unzip latest-$NCVERSION.zip
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
continue-on-error: true
id: server-checkout
run: |
NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
submodules: true
repository: nextcloud/server
path: nextcloud
- name: Checkout server master fallback
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
submodules: true
repository: nextcloud/server
path: nextcloud
- name: Sign app
run: |
# Extracting release
cd ${{ env.APP_NAME }}/build/artifacts
tar -xvf ${{ env.APP_NAME }}.tar.gz
cd ../../../
# Setting up keys
echo "${{ secrets.APP_PRIVATE_KEY }}" > ${{ env.APP_NAME }}.key
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
# Signing
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
# Rebuilding archive
cd ${{ env.APP_NAME }}/build/artifacts
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Sign app
run: |
# Extracting release
cd ${{ env.APP_NAME }}/build/artifacts
tar -xvf ${{ env.APP_NAME }}.tar.gz
cd ../../../
# Setting up keys
echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
# Signing
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
# Rebuilding archive
cd ${{ env.APP_NAME }}/build/artifacts
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
tag: ${{ github.ref }}
overwrite: true
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
tag: ${{ github.ref }}
overwrite: true
- name: Upload app to Nextcloud appstore
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
with:
app_name: ${{ env.APP_NAME }}
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Upload app to Nextcloud appstore
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
with:
app_name: ${{ env.APP_NAME }}
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}

View File

@@ -41,7 +41,7 @@ jobs:
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
@@ -91,7 +91,7 @@ jobs:
restore-keys: ${{ steps.extcache.outputs.key }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.30.5
uses: shivammathur/setup-php@2.31.1
with:
php-version: ${{ matrix.php-versions }}
extensions: ${{ env.extensions }}

View File

@@ -78,7 +78,7 @@ jobs:
path: apps/activity
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.30.5
uses: shivammathur/setup-php@2.31.1
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu

View File

@@ -63,7 +63,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php8.2
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: 8.2
coverage: none

View File

@@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none

View File

@@ -32,7 +32,7 @@ jobs:
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -14,7 +14,7 @@ jobs:
steps:
- uses: actions/checkout@v4.1.7
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.2
uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7

View File

@@ -36,7 +36,7 @@ jobs:
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -57,7 +57,7 @@ jobs:
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v5
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v5
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit"

View File

@@ -92,7 +92,7 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -80,7 +80,7 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -69,7 +69,7 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -21,7 +21,7 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php8.2
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: 8.2
coverage: none

View File

@@ -9,12 +9,14 @@
name: REUSE Compliance Check
on: pull_request
on: [pull_request]
jobs:
reuse-compliance-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: REUSE Compliance Check
uses: fsfe/reuse-action@a46482ca367aef4454a87620aa37c2be4b2f8106 # v3.0.0
uses: fsfe/reuse-action@3ae3c6bdf1257ab19397fab11fd3312144692083 # v4.0.0

View File

@@ -43,7 +43,7 @@ jobs:
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@457fa4d5e6c9b48466675d52d3a9bfe069f43a54 # main
uses: alexwilson/enable-github-automerge-action@7bcf565e3edb508fd1e4a8814ba60233bfa027fb # main
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -31,7 +31,7 @@ jobs:
- name: Set up php8.2
if: steps.checkout.outcome == 'success'
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: 8.2
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -100,7 +100,7 @@ jobs:
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v3
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"

View File

@@ -1,16 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: deck
Upstream-Contact: Nextcloud <info@nextcloud.com>
Source: https://github.com/nextcloud/deck
Files: .gitattributes .github/* .editorconfig babel.config.js .php-cs-fixer.dist.php package-lock.json package.json composer.json composer.lock webpack.js stylelint.config.js .eslintrc.js .gitignore .jshintrc .l10nignore action/.gitignore action/package.json action/package-lock.json action/dist/index.js tests/* psalm.xml cypress/.env cypress/.eslintrc.js cypress/docker-compose.yml cypress/plugins/index.js cypress/tsconfig.json cypress.config.ts vendor-bin/*/composer.json stylelint.config.cjs vendor-bin/*/composer.lock .tx/config webpack.config.js tsconfig.json vite.config.ts js/vendor.LICENSE.txt krankerl.toml .npmignore cypress/fixtures/* postcss.config.js cypress/dockerNode.ts jest.config.js cypress.config.js relativeci.config.js .nextcloudignore .devcontainer/devcontainer.json
Copyright: none
License: CC0-1.0
Files: l10n/*.js l10n/*.json js/*.js.map js/*.js js/*.mjs js/*.mjs.map js/templates/*.handlebars lib/Service/Importer/fixtures/config-deckJson-schema.json lib/Service/Importer/fixtures/config-trelloApi-schema.json lib/Service/Importer/fixtures/config-trelloJson-schema.json screenshots/screenshot1.png src/assets/file-placeholder.svg img/favicon.ico img/favicon.png img/favicon.svg img/activity.svg img/activity-dark.svg img/deck.svg img/deck-current.svg img/deck-dark.svg img/details-white.svg img/card.svg
Copyright: 2019 Nextcloud GmbH and Nextcloud contributors
License: AGPL-3.0-or-later
Files: img/attach.svg img/description.svg img/details.svg img/toggle-view-expand.svg img/toggle-view-collapse.svg img/filter.svg img/filter_set.svg img/circles-dark.svg img/circles.svg img/color_picker.svg img/color_picker-dark.svg img/notifications-dark.svg img/archive.svg img/add-white.svg img/calendar-dark.svg img/calendar-white.svg
Copyright: 2018-2024 Google LLC
License: Apache-2.0

View File

@@ -5,6 +5,32 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.14.0-beta.1
### Fixed
- fix: card details focus issue with screen reader @luka-nextcloud [#5858](https://github.com/nextcloud/deck/pull/5858)
- Cleaning up unused indicies @mintsoft [#5612](https://github.com/nextcloud/deck/pull/5612)
- Change import command's config default argument @JimMadge [#5722](https://github.com/nextcloud/deck/pull/5722)
- don't reset update time when no update was written to db @grnd-alt [#6005](https://github.com/nextcloud/deck/pull/6005)
- docs: Fix symlink to readme @juliushaertl [#6033](https://github.com/nextcloud/deck/pull/6033)
- perf: Avoid fetching labels and owner details on permission check @juliushaertl [#6010](https://github.com/nextcloud/deck/pull/6010)
- Only check path for being accessible when the storage is a object home @mejo- [#6062](https://github.com/nextcloud/deck/pull/6062)
- Fix: incorrect height of editing windows and edit bar @pschopen [#6088](https://github.com/nextcloud/deck/pull/6088)
- fix: design review issues @luka-nextcloud [#6113](https://github.com/nextcloud/deck/pull/6113)
- fix: remove redundant log @luka-nextcloud [#6115](https://github.com/nextcloud/deck/pull/6115)
- fix: Adjust dependencies to fix filepicker @susnux [#5964](https://github.com/nextcloud/deck/pull/5964)
- fix: Remove bindParam usage with simpler query @juliushaertl [#6065](https://github.com/nextcloud/deck/pull/6065)
### Other
- Adds link to Nextcloud Deck for iOS in README.md file @StCyr [#5886](https://github.com/nextcloud/deck/pull/5886)
- choir(i18n): Change filter title @rakekniven [#5957](https://github.com/nextcloud/deck/pull/5957)
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
- Update User_documentation_en.md @StCyr [#6029](https://github.com/nextcloud/deck/pull/6029)
- chore: Move comments event handler to use proper event dispatcher @juliushaertl [#6008](https://github.com/nextcloud/deck/pull/6008)
- Migrate REUSE to TOML format @AndyScherzinger [#6084](https://github.com/nextcloud/deck/pull/6084)
## 1.13.0-beta.1
### Added

View File

@@ -91,8 +91,8 @@ You can enable HMR (Hot module replacement) to avoid page reloads when working o
```
docker run --rm \
-p 8080:80 \
-v ~/path/to/app:/var/www/html/apps-extra/app \
ghcr.io/juliushaertl/nextcloud-dev-php80:latest
-v $PWD:/var/www/html/apps-extra/deck \
ghcr.io/juliushaertl/nextcloud-dev-php81:latest
```
### Full Nextcloud development environment

24
REUSE.toml Normal file
View File

@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version = 1
SPDX-PackageName = "deck"
SPDX-PackageSupplier = "Nextcloud <info@nextcloud.com>"
SPDX-PackageDownloadLocation = "https://github.com/nextcloud/deck"
[[annotations]]
path = [".gitattributes", ".github/**", ".editorconfig", "babel.config.js", ".php-cs-fixer.dist.php", "package-lock.json", "package.json", "composer.json", "composer.lock", "webpack.js", "stylelint.config.js", ".eslintrc.js", ".gitignore", ".jshintrc", ".l10nignore", "action/.gitignore", "action/package.json", "action/package-lock.json", "action/dist/index.js", "tests/**", "psalm.xml", "cypress/.env", "cypress/.eslintrc.js", "cypress/docker-compose.yml", "cypress/plugins/index.js", "cypress/tsconfig.json", "cypress.config.ts", "vendor-bin/**/composer.json", "stylelint.config.cjs", "vendor-bin/**/composer.lock", ".tx/config", "webpack.config.js", "tsconfig.json", "vite.config.ts", "js/vendor.LICENSE.txt", "krankerl.toml", ".npmignore", "cypress/fixtures/**", "postcss.config.js", "cypress/dockerNode.ts", "jest.config.js", "cypress.config.js", "relativeci.config.js", ".nextcloudignore", ".devcontainer/devcontainer.json"]
precedence = "aggregate"
SPDX-FileCopyrightText = "none"
SPDX-License-Identifier = "CC0-1.0"
[[annotations]]
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"
[[annotations]]
path = ["img/attach.svg", "img/description.svg", "img/details.svg", "img/toggle-view-expand.svg", "img/toggle-view-collapse.svg", "img/filter.svg", "img/filter_set.svg", "img/circles-dark.svg", "img/circles.svg", "img/color_picker.svg", "img/color_picker-dark.svg", "img/notifications-dark.svg", "img/archive.svg", "img/add-white.svg", "img/calendar-dark.svg", "img/calendar-white.svg"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2018-2024 Google LLC"
SPDX-License-Identifier = "Apache-2.0"

View File

@@ -20,7 +20,7 @@
- 🚀 Get your project organized
</description>
<version>1.14.0-dev</version>
<version>1.14.0-beta.1</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<documentation>

43
composer.lock generated
View File

@@ -8,20 +8,20 @@
"packages": [
{
"name": "justinrainbow/json-schema",
"version": "v5.2.13",
"version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/justinrainbow/json-schema.git",
"reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
"url": "https://github.com/jsonrainbow/json-schema.git",
"reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
"reference": "fbbe7e5d79f618997bc3332a6f49246036c45793",
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
"reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": ">=7.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
@@ -32,11 +32,6 @@
"bin/validate-json"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.0.x-dev"
}
},
"autoload": {
"psr-4": {
"JsonSchema\\": "src/JsonSchema/"
@@ -71,10 +66,10 @@
"schema"
],
"support": {
"issues": "https://github.com/justinrainbow/json-schema/issues",
"source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13"
"issues": "https://github.com/jsonrainbow/json-schema/issues",
"source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
},
"time": "2023-09-26T02:20:38+00:00"
"time": "2024-07-06T21:00:26+00:00"
}
],
"packages-dev": [
@@ -254,12 +249,12 @@
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "ad39a84bcc13c8bcae5b160cbb8a115b26f6b8b1"
"reference": "c15539c648081c00fa826d734f013f155bff6098"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/ad39a84bcc13c8bcae5b160cbb8a115b26f6b8b1",
"reference": "ad39a84bcc13c8bcae5b160cbb8a115b26f6b8b1",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/c15539c648081c00fa826d734f013f155bff6098",
"reference": "c15539c648081c00fa826d734f013f155bff6098",
"shasum": ""
},
"require": {
@@ -291,7 +286,7 @@
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
},
"time": "2024-06-12T00:36:06+00:00"
"time": "2024-07-27T00:37:10+00:00"
},
{
"name": "nikic/php-parser",
@@ -945,16 +940,16 @@
},
{
"name": "psalm/phar",
"version": "5.24.0",
"version": "5.25.0",
"source": {
"type": "git",
"url": "https://github.com/psalm/phar.git",
"reference": "6ca1cbe47bbda0759b22ffe555594b547ff8351b"
"reference": "d42708449bd2d99ec6509924332fd94263974b20"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/psalm/phar/zipball/6ca1cbe47bbda0759b22ffe555594b547ff8351b",
"reference": "6ca1cbe47bbda0759b22ffe555594b547ff8351b",
"url": "https://api.github.com/repos/psalm/phar/zipball/d42708449bd2d99ec6509924332fd94263974b20",
"reference": "d42708449bd2d99ec6509924332fd94263974b20",
"shasum": ""
},
"require": {
@@ -974,9 +969,9 @@
"description": "Composer-based Psalm Phar",
"support": {
"issues": "https://github.com/psalm/phar/issues",
"source": "https://github.com/psalm/phar/tree/5.24.0"
"source": "https://github.com/psalm/phar/tree/5.25.0"
},
"time": "2024-05-01T20:28:41+00:00"
"time": "2024-06-19T20:02:02+00:00"
},
{
"name": "psr/clock",

View File

@@ -11,3 +11,13 @@
background-image: url(../img/deck.svg);
filter: var(--background-invert-if-dark);
}
input[type=submit].icon-confirm {
border-color: var(--color-border-maxcontrast) !important;
border-left: none;
}
input[type=text]:focus+input[type=submit].icon-confirm,
input[type=text]:hover+input[type=submit].icon-confirm {
border-color: var(--color-main-text) !important;
}

View File

@@ -20,9 +20,11 @@ Overall, Deck is easy to use. You can create boards, add users, share the Deck,
4. [Mark task as done](#4-mark-as-done)
5. [Archive old tasks](#5-archive-old-tasks)
6. [Manage your board](#6-manage-your-board)
7. [Import boards](#7-import-boards)
8. [Search](#8-search)
9. [New owner for the deck entities](#9-new-owner-for-the-deck-entities)
7. [Sharing boards](#7-sharing-boards)
8. [Import boards](#8-import-boards)
9. [Trello interoperability](#9-trello-interoperability)
10. [Search](#10-search)
11. [New owner for the deck entities](#11-new-owner-for-the-deck-entities)
### 1. Create my first board
In this example, we're going to create a board and share it with an other nextcloud user.
@@ -84,7 +86,14 @@ The **sharing tab** allows you to add users or even groups to your boards.
**Deleted objects** allows you to return previously deleted stacks or cards.
The **Timeline** allows you to see everything that happened in your boards. Everything!
### 7. Import boards
### 7. Sharing boards
You can share boards with a user, a group, or, if you are using the [Circles](https://apps.nextcloud.com/apps/circles) app, with a circle.
If a user is member of one or several group(s) or circle(s) a board is shared with, the following rules apply:
1. If a user is namely specified in a board's acl, (s)he gets the permission assigned to her/him;
2. Else, if a user is member of one or several circle(s) or group(s), (s)he gets the permission when at least one circle/group (s)he is member of has the permission.
### 8. Import boards
Importing can be done using the API or the `occ` `deck:import` command.
@@ -92,6 +101,8 @@ Comments with more than 1000 characters are placed as attached files to the card
It is possible to import from the following sources:
### 9. Trello interoperability
#### Trello JSON
Steps:
@@ -150,7 +161,7 @@ Example configuration file:
}
```
### 8. Search
### 10. Search
Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls.
This search allows advanced filtering of cards across all board of the logged in user.
@@ -173,7 +184,7 @@ Other text tokens will be used to perform a case-insensitive search on the card
In addition, quotes can be used to pass a query with spaces, e.g. `"Exact match with spaces"` or `title:"My card"`.
### 9. New owner for the deck entities
### 11. New owner for the deck entities
You can transfer ownership of boards, cards, etc to a new user, using `occ` command `deck:transfer-ownership`
```bash

View File

@@ -1,5 +1 @@
<!--
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
../README.md

2
docs/index.md.license Normal file
View File

@@ -0,0 +1,2 @@
SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later

View File

@@ -29,6 +29,7 @@ OC.L10N.register(
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
"Comments" : "Displegadennoù",
"Modified" : "Cheñchet",
"Created" : "Krouet",
"Save" : "Enrollañ",
"Reply" : "Respont",
"Update" : "Adnevesaat",
@@ -38,7 +39,7 @@ OC.L10N.register(
"seconds ago" : "eilenn zo",
"Search" : "Klask",
"Shared with you" : "Rannet ganeoc'h",
"No notifications" : "Kemenaden ebet",
"No notifications" : "Kemennadenn ebet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Close" : "Seriñ",

View File

@@ -27,6 +27,7 @@
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
"Comments" : "Displegadennoù",
"Modified" : "Cheñchet",
"Created" : "Krouet",
"Save" : "Enrollañ",
"Reply" : "Respont",
"Update" : "Adnevesaat",
@@ -36,7 +37,7 @@
"seconds ago" : "eilenn zo",
"Search" : "Klask",
"Shared with you" : "Rannet ganeoc'h",
"No notifications" : "Kemenaden ebet",
"No notifications" : "Kemennadenn ebet",
"Today" : "Hiziv",
"Tomorrow" : "Warc'hoaz",
"Close" : "Seriñ",

View File

@@ -251,6 +251,7 @@ OC.L10N.register(
"Remove due date" : "Suprimeix la data de caducitat",
"Mark as done" : "Marcat com a fet",
"Due at:" : "Venciment a:",
"Not done" : "No s'ha fet",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Select Date" : "Selecciona la data",

View File

@@ -249,6 +249,7 @@
"Remove due date" : "Suprimeix la data de caducitat",
"Mark as done" : "Marcat com a fet",
"Due at:" : "Venciment a:",
"Not done" : "No s'ha fet",
"Unarchive card" : "Desarxiva targeta",
"Archive card" : "Arxiva la targeta",
"Select Date" : "Selecciona la data",

View File

@@ -37,6 +37,10 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "Ο/η {user} αρχειοθέτησε την κάρτα {card} στην λίστα {stack} του πίνακα {board} ",
"You have unarchived card {card} in list {stack} on board {board}" : "Επαναφέρατε από το αρχείο την καρτέλα {card} της λίστας {stack} του πίνακα {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "Ο/η {user} επανέφερε από το αρχείο την κάρτα {card} της λίστας {stack} του πίνακα {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"You have removed the due date of card {card}" : "Καταργήσατε την ημερομηνία λήξης της καρτέλας {card}",
"{user} has removed the due date of card {card}" : "Ο/η {user} κατάργησε την ημερομηνία λήξης της καρτέλας {card}",
"You have set the due date of card {card} to {after}" : "Ορίσατε την ημερομηνία λήξης της καρτέλας {card} σε {after}",
@@ -84,6 +88,7 @@ OC.L10N.register(
"Deck board" : "Πίνακας του Deck",
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
"Card comments" : "Σχόλια καρτέλας",
"%s on %s" : "%s στο %s",
"Deck boards and cards" : "Πίνακες και κάρτες Deck",
@@ -143,6 +148,8 @@ OC.L10N.register(
"Filter by tag" : "Φίλτρο ανά ετικέτα",
"Filter by assigned user" : "Φίλτρο ανά χρήστη",
"Unassigned" : "Χωρίς ανάθεση",
"Filter by status" : "Φίλτρο με βάση την κατάσταση",
"Open and completed" : "Ανοιχτά και ολοκληρωμένα",
"Open" : "Ανοιχτός",
"Completed" : "Ολοκληρωμένες",
"Filter by due date" : "Φίλτρο ανά ημερομηνία λήξης",
@@ -153,6 +160,7 @@ OC.L10N.register(
"No due date" : "Χωρίς ημερομηνία λήξης",
"Clear filter" : "Εκκαθάριση φίλτρου",
"View Modes" : "Τρόποι προβολής",
"Toggle View Modes" : "Εναλλαγή τρόπων προβολής",
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
@@ -171,6 +179,8 @@ OC.L10N.register(
"Deleted lists" : "Διαγραμμένες λίστες",
"Undo" : "Αναίρεση",
"Deleted cards" : "Διαγραμμένες καρτέλες",
"Share board with a user, group or team …" : "Κοινή χρήση πίνακα με έναν χρήστη, μια ομάδα ή team ...",
"Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …",
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
"Board owner" : "Κάτοχος πίνακα",
"(Group)" : "(Ομάδα)",
@@ -200,6 +210,7 @@ OC.L10N.register(
"title and color value must be provided" : "ο τίτλος και η τιμή χρώματος πρέπει να παρέχονται",
"Board name" : "Όνομα πίνακα",
"Members" : "Μέλη",
"Assign to users/groups/team" : "Ανάθεση σε χρήστες/ομάδες/teams",
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
"Upload new files" : "Ανεβάστε νέα αρχεία",
@@ -246,6 +257,7 @@ OC.L10N.register(
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
"Due at:" : "Λήγει στις:",
"Not done" : "Μη ολοκληρωμένο",
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
"Archive card" : "Αρχειοθέτηση καρτέλας",
"Select Date" : "Επιλέξτε ημερομηνία",
@@ -299,6 +311,7 @@ OC.L10N.register(
"Shared with you" : "Διαμοιρασμένα μαζί σας",
"Deck settings" : "Ρυθμίσεις Deck",
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
"Show card ID badge" : "Εμφάνιση ID κάρτας",
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
@@ -371,6 +384,7 @@ OC.L10N.register(
"List is empty" : "Η λίστα είναι κενή",
"Limit deck usage of groups" : "Περιορίστε τη χρήση της εφαρμογής deck σε ομάδες",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ο περιορισμός του Deck θα εμποδίσει τους χρήστες που δεν είναι μέρος αυτών των ομάδων να δημιουργούν δικούς τους πίνακες. Οι χρήστες θα εξακολουθήσουν να εργάζονται σε πίνακες που έχουν διαμοιραστεί μαζί τους.",
"Not completed" : "Μη ολοκληρωμένο"
"Not completed" : "Μη ολοκληρωμένο",
"Filter by completed" : "Φίλτρο ανά ολοκλήρωση"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -35,6 +35,10 @@
"{user} has archived card {card} in list {stack} on board {board}" : "Ο/η {user} αρχειοθέτησε την κάρτα {card} στην λίστα {stack} του πίνακα {board} ",
"You have unarchived card {card} in list {stack} on board {board}" : "Επαναφέρατε από το αρχείο την καρτέλα {card} της λίστας {stack} του πίνακα {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "Ο/η {user} επανέφερε από το αρχείο την κάρτα {card} της λίστας {stack} του πίνακα {board}",
"You have marked the card {card} as done in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"You have marked the card {card} as undone in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
"You have removed the due date of card {card}" : "Καταργήσατε την ημερομηνία λήξης της καρτέλας {card}",
"{user} has removed the due date of card {card}" : "Ο/η {user} κατάργησε την ημερομηνία λήξης της καρτέλας {card}",
"You have set the due date of card {card} to {after}" : "Ορίσατε την ημερομηνία λήξης της καρτέλας {card} σε {after}",
@@ -82,6 +86,7 @@
"Deck board" : "Πίνακας του Deck",
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
"Card comments" : "Σχόλια καρτέλας",
"%s on %s" : "%s στο %s",
"Deck boards and cards" : "Πίνακες και κάρτες Deck",
@@ -141,6 +146,8 @@
"Filter by tag" : "Φίλτρο ανά ετικέτα",
"Filter by assigned user" : "Φίλτρο ανά χρήστη",
"Unassigned" : "Χωρίς ανάθεση",
"Filter by status" : "Φίλτρο με βάση την κατάσταση",
"Open and completed" : "Ανοιχτά και ολοκληρωμένα",
"Open" : "Ανοιχτός",
"Completed" : "Ολοκληρωμένες",
"Filter by due date" : "Φίλτρο ανά ημερομηνία λήξης",
@@ -151,6 +158,7 @@
"No due date" : "Χωρίς ημερομηνία λήξης",
"Clear filter" : "Εκκαθάριση φίλτρου",
"View Modes" : "Τρόποι προβολής",
"Toggle View Modes" : "Εναλλαγή τρόπων προβολής",
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
@@ -169,6 +177,8 @@
"Deleted lists" : "Διαγραμμένες λίστες",
"Undo" : "Αναίρεση",
"Deleted cards" : "Διαγραμμένες καρτέλες",
"Share board with a user, group or team …" : "Κοινή χρήση πίνακα με έναν χρήστη, μια ομάδα ή team ...",
"Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …",
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
"Board owner" : "Κάτοχος πίνακα",
"(Group)" : "(Ομάδα)",
@@ -198,6 +208,7 @@
"title and color value must be provided" : "ο τίτλος και η τιμή χρώματος πρέπει να παρέχονται",
"Board name" : "Όνομα πίνακα",
"Members" : "Μέλη",
"Assign to users/groups/team" : "Ανάθεση σε χρήστες/ομάδες/teams",
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
"Upload new files" : "Ανεβάστε νέα αρχεία",
@@ -244,6 +255,7 @@
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
"Due at:" : "Λήγει στις:",
"Not done" : "Μη ολοκληρωμένο",
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
"Archive card" : "Αρχειοθέτηση καρτέλας",
"Select Date" : "Επιλέξτε ημερομηνία",
@@ -297,6 +309,7 @@
"Shared with you" : "Διαμοιρασμένα μαζί σας",
"Deck settings" : "Ρυθμίσεις Deck",
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
"Show card ID badge" : "Εμφάνιση ID κάρτας",
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
@@ -369,6 +382,7 @@
"List is empty" : "Η λίστα είναι κενή",
"Limit deck usage of groups" : "Περιορίστε τη χρήση της εφαρμογής deck σε ομάδες",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ο περιορισμός του Deck θα εμποδίσει τους χρήστες που δεν είναι μέρος αυτών των ομάδων να δημιουργούν δικούς τους πίνακες. Οι χρήστες θα εξακολουθήσουν να εργάζονται σε πίνακες που έχουν διαμοιραστεί μαζί τους.",
"Not completed" : "Μη ολοκληρωμένο"
"Not completed" : "Μη ολοκληρωμένο",
"Filter by completed" : "Φίλτρο ανά ολοκλήρωση"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -85,12 +85,15 @@ OC.L10N.register(
"Archive board" : "Archivar tablero",
"No notifications" : "No hay notificaciones",
"Delete board" : "Borrar tableros",
"No reminder" : "Sin recordatorio",
"An error occurred" : "Ha ocurrido un error",
"Today" : "Hoy",
"Tomorrow" : "Mañana",
"Close" : "Cerrar",
"Error creating the share" : "Error creando el recurso compartido",
"Share" : "Compartir",
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
"Next week" : "Semana siguiente",
"Next month" : "Próximo mes"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -83,12 +83,15 @@
"Archive board" : "Archivar tablero",
"No notifications" : "No hay notificaciones",
"Delete board" : "Borrar tableros",
"No reminder" : "Sin recordatorio",
"An error occurred" : "Ha ocurrido un error",
"Today" : "Hoy",
"Tomorrow" : "Mañana",
"Close" : "Cerrar",
"Error creating the share" : "Error creando el recurso compartido",
"Share" : "Compartir",
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
"Next week" : "Semana siguiente",
"Next month" : "Próximo mes"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@@ -321,16 +321,16 @@ OC.L10N.register(
"Unarchive board" : "Atera taula artxibotik",
"Archive board" : "Artxibatu taula",
"Export board" : "Esportatu taula",
"Turn on due date reminders" : "Aktibatu epemugako abisuak",
"Turn off due date reminders" : "Desaktibatu epemugako abisuak",
"Due date reminders" : "Epemugako abisuak",
"Turn on due date reminders" : "Aktibatu epemuga gogorarazpenak",
"Turn off due date reminders" : "Desaktibatu epemuga gogorarazpenak",
"Due date reminders" : "Epemuga gogorarazpenak",
"All cards" : "Txartel guztiak",
"Assigned cards" : "Esleitutako txartelak",
"No notifications" : "Jakinarazpenik ez",
"Delete board" : "Ezabatu taula",
"Board {0} deleted" : "{0} taula ezabatu da",
"Only assigned cards" : "Bakarrik esleitutako txartelak",
"No reminder" : "Abisurik ez",
"No reminder" : "Gogorarazpenik ez",
"An error occurred" : "Errore bat gertatu da",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Ziur zaude {title} taula ezabatu nahi duzula? Honek taula honen datu guztiak ezabatuko ditu, artxibatutako txartelak barne.",
"Delete the board?" : "Taula ezabatu?",

View File

@@ -319,16 +319,16 @@
"Unarchive board" : "Atera taula artxibotik",
"Archive board" : "Artxibatu taula",
"Export board" : "Esportatu taula",
"Turn on due date reminders" : "Aktibatu epemugako abisuak",
"Turn off due date reminders" : "Desaktibatu epemugako abisuak",
"Due date reminders" : "Epemugako abisuak",
"Turn on due date reminders" : "Aktibatu epemuga gogorarazpenak",
"Turn off due date reminders" : "Desaktibatu epemuga gogorarazpenak",
"Due date reminders" : "Epemuga gogorarazpenak",
"All cards" : "Txartel guztiak",
"Assigned cards" : "Esleitutako txartelak",
"No notifications" : "Jakinarazpenik ez",
"Delete board" : "Ezabatu taula",
"Board {0} deleted" : "{0} taula ezabatu da",
"Only assigned cards" : "Bakarrik esleitutako txartelak",
"No reminder" : "Abisurik ez",
"No reminder" : "Gogorarazpenik ez",
"An error occurred" : "Errore bat gertatu da",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Ziur zaude {title} taula ezabatu nahi duzula? Honek taula honen datu guztiak ezabatuko ditu, artxibatutako txartelak barne.",
"Delete the board?" : "Taula ezabatu?",

View File

@@ -110,6 +110,7 @@ OC.L10N.register(
"Archived cards" : "Arkistoidut kortit",
"Add list" : "Lisää lista",
"List name" : "Listan nimi",
"Active filters" : "Aktiiviset suodattimet",
"Apply filter" : "Toteuta suodatus",
"Filter by tag" : "Suodata tunnisteen perusteella",
"Filter by assigned user" : "Suodata määritetyn käyttäjän mukaan",

View File

@@ -108,6 +108,7 @@
"Archived cards" : "Arkistoidut kortit",
"Add list" : "Lisää lista",
"List name" : "Listan nimi",
"Active filters" : "Aktiiviset suodattimet",
"Apply filter" : "Toteuta suodatus",
"Filter by tag" : "Suodata tunnisteen perusteella",
"Filter by assigned user" : "Suodata määritetyn käyttäjän mukaan",

View File

@@ -43,8 +43,8 @@ OC.L10N.register(
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} marcou a tarxeta {card} como sen facer na lista {stack} no taboleiro {board}",
"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}",
"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}",
"You have set the due date of card {card} to {after}" : "Vde. definiu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} definiu 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}",
"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}",
@@ -117,7 +117,7 @@ OC.L10N.register(
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario ten máis de %s caracteres.\nEngadido como anexo á tarxeta co nome %s.\nAccesíbel no URL: %s.",
"Card not found" : "Non se atopou a 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 data debe ser AAAA-MM-DD",
"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" : "Gabeta é 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",
@@ -150,7 +150,8 @@ OC.L10N.register(
"Filter by assigned user" : "Filtrar polo usuario asignado",
"Unassigned" : "Sen asignar",
"Filter by status" : "Filtrar polo estado",
"Open" : "Abrir",
"Open and completed" : "Aberto ou rematado",
"Open" : "Aberto",
"Completed" : "Completado",
"Filter by due date" : "Filtrar pola data de caducidade",
"Overdue" : "Caducado",
@@ -179,9 +180,11 @@ OC.L10N.register(
"Deleted lists" : "Listas eliminadas",
"Undo" : "Desfacer",
"Deleted cards" : "Eliminar tarxetas",
"Share board with a user, group or team …" : "Compartir taboleiro cun usuario, grupo ou equipo…",
"Searching for users, groups and teams …" : "Buscando por usuarios, grupos e equipos…",
"No participants found" : "Non se atoparon participantes",
"Board owner" : "Propietariio do taboleiro",
"(Group)" : "(grupo)",
"(Group)" : "(Grupo)",
"(Team)" : "(Equipo)",
"Can edit" : "Pode editar",
"Can share" : "Pode compartir",
@@ -208,7 +211,9 @@ OC.L10N.register(
"title and color value must be provided" : "debe indicar o título e o valor da cor",
"Board name" : "Nome do taboleiro",
"Members" : "Membros",
"Assign to users/groups/team" : "Asignar a usuarios/grupos/equipos",
"Assign a user to this card…" : "Asignar un usuario a esta tarxeta…",
"Select a user to assign to this card…" : "Seleccionar un usuario para asignarlle a esta tarxeta…",
"Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Compartición pendente",
@@ -247,12 +252,13 @@ OC.L10N.register(
"Write a description …" : "Escriba unha descrición…",
"Choose attachment" : "Escoller o anexo",
"Assign a due date to this card…" : "Asignar unha data de caducidade a esta tarxeta…",
"Set a due date" : "Estabelecer a data de caducidade",
"Set a due date" : "Definir a data de caducidade",
"Add due date" : "Engadir a data de remate",
"Choose a date" : "Escoller a data",
"Remove due date" : "Retirar a data de caducidade",
"Mark as done" : "Marcar como feito",
"Due at:" : "Rematar o:",
"Not done" : "Sen facer",
"Unarchive card" : "Desarquivar a tarxeta",
"Archive card" : "Arquivar a tarxeta",
"Select Date" : "Seleccione a data",
@@ -261,6 +267,7 @@ OC.L10N.register(
"Set due date for this weekend" : "Definir a data de remate para esta fin de semana",
"Set due date for next week" : "Definir a data de remate para a semana seguinte",
"Assign a tag to this card…" : "Asignar unha etiqueta a esta tarxeta…",
"Select or create a tag…" : "Seleccionar ou crear unha etiqueta…",
"Create a new tag:" : "Crear unha nova etiqueta:",
"(group)" : "(grupo)",
"Next week {timeLocale}" : "Semana seguinte {timeLocale}",
@@ -275,6 +282,7 @@ OC.L10N.register(
"Card deleted" : "Tarxeta eliminada",
"seconds ago" : "segundos atrás",
"Keyboard shortcuts" : "Atallos de teclado",
"Boost your productivity using Deck with keyboard shortcuts." : "Aumente a súa produtividade empregando Gabeta con atallos de teclado.",
"Board actions" : "Accións de taboleiro",
"Keyboard shortcut" : "Atallo de teclado",
"Action" : "Acción",
@@ -377,6 +385,7 @@ OC.L10N.register(
"List is empty" : "A lista está baleira",
"Limit deck usage of groups" : "Limitar o uso da plataforma 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." : "Limitando a Gabeta bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Not completed" : "Sen completar"
"Not completed" : "Sen completar",
"Filter by completed" : "Filtrar por completado"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -41,8 +41,8 @@
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} marcou a tarxeta {card} como sen facer na lista {stack} no taboleiro {board}",
"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}",
"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}",
"You have set the due date of card {card} to {after}" : "Vde. definiu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} definiu 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}",
"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}",
@@ -115,7 +115,7 @@
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario ten máis de %s caracteres.\nEngadido como anexo á tarxeta co nome %s.\nAccesíbel no URL: %s.",
"Card not found" : "Non se atopou a 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 data debe ser AAAA-MM-DD",
"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" : "Gabeta é 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",
@@ -148,7 +148,8 @@
"Filter by assigned user" : "Filtrar polo usuario asignado",
"Unassigned" : "Sen asignar",
"Filter by status" : "Filtrar polo estado",
"Open" : "Abrir",
"Open and completed" : "Aberto ou rematado",
"Open" : "Aberto",
"Completed" : "Completado",
"Filter by due date" : "Filtrar pola data de caducidade",
"Overdue" : "Caducado",
@@ -177,9 +178,11 @@
"Deleted lists" : "Listas eliminadas",
"Undo" : "Desfacer",
"Deleted cards" : "Eliminar tarxetas",
"Share board with a user, group or team …" : "Compartir taboleiro cun usuario, grupo ou equipo…",
"Searching for users, groups and teams …" : "Buscando por usuarios, grupos e equipos…",
"No participants found" : "Non se atoparon participantes",
"Board owner" : "Propietariio do taboleiro",
"(Group)" : "(grupo)",
"(Group)" : "(Grupo)",
"(Team)" : "(Equipo)",
"Can edit" : "Pode editar",
"Can share" : "Pode compartir",
@@ -206,7 +209,9 @@
"title and color value must be provided" : "debe indicar o título e o valor da cor",
"Board name" : "Nome do taboleiro",
"Members" : "Membros",
"Assign to users/groups/team" : "Asignar a usuarios/grupos/equipos",
"Assign a user to this card…" : "Asignar un usuario a esta tarxeta…",
"Select a user to assign to this card…" : "Seleccionar un usuario para asignarlle a esta tarxeta…",
"Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Compartición pendente",
@@ -245,12 +250,13 @@
"Write a description …" : "Escriba unha descrición…",
"Choose attachment" : "Escoller o anexo",
"Assign a due date to this card…" : "Asignar unha data de caducidade a esta tarxeta…",
"Set a due date" : "Estabelecer a data de caducidade",
"Set a due date" : "Definir a data de caducidade",
"Add due date" : "Engadir a data de remate",
"Choose a date" : "Escoller a data",
"Remove due date" : "Retirar a data de caducidade",
"Mark as done" : "Marcar como feito",
"Due at:" : "Rematar o:",
"Not done" : "Sen facer",
"Unarchive card" : "Desarquivar a tarxeta",
"Archive card" : "Arquivar a tarxeta",
"Select Date" : "Seleccione a data",
@@ -259,6 +265,7 @@
"Set due date for this weekend" : "Definir a data de remate para esta fin de semana",
"Set due date for next week" : "Definir a data de remate para a semana seguinte",
"Assign a tag to this card…" : "Asignar unha etiqueta a esta tarxeta…",
"Select or create a tag…" : "Seleccionar ou crear unha etiqueta…",
"Create a new tag:" : "Crear unha nova etiqueta:",
"(group)" : "(grupo)",
"Next week {timeLocale}" : "Semana seguinte {timeLocale}",
@@ -273,6 +280,7 @@
"Card deleted" : "Tarxeta eliminada",
"seconds ago" : "segundos atrás",
"Keyboard shortcuts" : "Atallos de teclado",
"Boost your productivity using Deck with keyboard shortcuts." : "Aumente a súa produtividade empregando Gabeta con atallos de teclado.",
"Board actions" : "Accións de taboleiro",
"Keyboard shortcut" : "Atallo de teclado",
"Action" : "Acción",
@@ -375,6 +383,7 @@
"List is empty" : "A lista está baleira",
"Limit deck usage of groups" : "Limitar o uso da plataforma 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." : "Limitando a Gabeta bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Not completed" : "Sen completar"
"Not completed" : "Sen completar",
"Filter by completed" : "Filtrar por completado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -174,6 +174,7 @@ OC.L10N.register(
"Deleted lists" : "Törölt listák",
"Undo" : "Visszavonás",
"Deleted cards" : "Törölt kártyák",
"Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…",
"No participants found" : "Nem találhatók résztvevők",
"Board owner" : "Tábla tulajdonosa",
"(Group)" : "(Csoport)",

View File

@@ -172,6 +172,7 @@
"Deleted lists" : "Törölt listák",
"Undo" : "Visszavonás",
"Deleted cards" : "Törölt kártyák",
"Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…",
"No participants found" : "Nem találhatók résztvevők",
"Board owner" : "Tábla tulajdonosa",
"(Group)" : "(Csoport)",

View File

@@ -37,6 +37,10 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user}がボード{board}のリスト{stack}にカード{card}をアーカイブしました",
"You have unarchived card {card} in list {stack} on board {board}" : "ボード {board}のリスト {stack}にあるカード {card} をアーカイブ解除しました",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user}がボード {board}のリスト {stack}にあるカード {card} をアーカイブ解除しました",
"You have marked the card {card} as done in list {stack} on board {board}" : "ボード{board}のリスト{stack}で、カード{card}に完了のマークを付けました。",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user}は、ボード{board}のリスト{stack}で、カード{card}に完了のマークを付けました。",
"You have marked the card {card} as undone in list {stack} on board {board}" : "ボード{board}のリスト{stack}でカード{card}に未完成のマークを付けました。",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user}は、ボード{board}のリスト{stack}でカード{card}に未完成のマークを付けました。",
"You have removed the due date of card {card}" : "カード{card}の期日を削除しました",
"{user} has removed the due date of card {card}" : "{user}がカード{card}の期日を削除しました",
"You have set the due date of card {card} to {after}" : "カード{card}の期日を{after}に設定しました",
@@ -145,6 +149,7 @@ OC.L10N.register(
"Filter by tag" : "タグによるフィルター",
"Filter by assigned user" : "割当ユーザーでフィルター",
"Unassigned" : "未割り当て",
"Filter by status" : "ステータスによるフィルター",
"Open and completed" : "開いて完成",
"Open" : "開く",
"Completed" : "完了",
@@ -310,6 +315,7 @@ OC.L10N.register(
"Show card ID badge" : "カードIDバジを表示",
"Show boards in calendar/tasks" : "カレンダー/タスクでボードを表示する",
"Limit board creation to some groups" : "ボード作成は一部のグループに制限する",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "これらのグループ以外のユーザーは、独自のボードを作成することはできませんが、共有されているボードで作業することはできます。",
"Board details" : "ボードの詳細",
"Edit board" : "ボードを編集",
"Clone board" : "ボードを複製",
@@ -327,6 +333,7 @@ OC.L10N.register(
"Only assigned cards" : "割り当てられたカードのみ",
"No reminder" : "リマインダーなし",
"An error occurred" : "エラーが発生しました",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "ボード{title}を削除しますか? これにより、アーカイブされたカードを含むこのボードのすべてのデータが削除されます。",
"Delete the board?" : "ボードを削除しますか?",
"Loading filtered view" : "フィルタされたビューを読み込み中",
"Today" : "今日",
@@ -338,6 +345,7 @@ OC.L10N.register(
"Deck board {name}\n* Last modified on {lastMod}" : "デッキボード{name}\n最終更新日{lastMod}",
"{stack} in {board}" : "{board} 内の {stack}",
"Click to expand description" : "説明を展開するにはクリックしてください",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 作成: {created}\n* 最終変更: {lastMod}\n* {nbAttachments} 添付ファイル\n* {nbComments} コメント",
"{nbCards} cards" : "{nbCards} カード",
"Click to expand comment" : "コメントを展開するにはクリックしてください",
"Create a new card" : "新しいカードを作成する",

View File

@@ -35,6 +35,10 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user}がボード{board}のリスト{stack}にカード{card}をアーカイブしました",
"You have unarchived card {card} in list {stack} on board {board}" : "ボード {board}のリスト {stack}にあるカード {card} をアーカイブ解除しました",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user}がボード {board}のリスト {stack}にあるカード {card} をアーカイブ解除しました",
"You have marked the card {card} as done in list {stack} on board {board}" : "ボード{board}のリスト{stack}で、カード{card}に完了のマークを付けました。",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user}は、ボード{board}のリスト{stack}で、カード{card}に完了のマークを付けました。",
"You have marked the card {card} as undone in list {stack} on board {board}" : "ボード{board}のリスト{stack}でカード{card}に未完成のマークを付けました。",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user}は、ボード{board}のリスト{stack}でカード{card}に未完成のマークを付けました。",
"You have removed the due date of card {card}" : "カード{card}の期日を削除しました",
"{user} has removed the due date of card {card}" : "{user}がカード{card}の期日を削除しました",
"You have set the due date of card {card} to {after}" : "カード{card}の期日を{after}に設定しました",
@@ -143,6 +147,7 @@
"Filter by tag" : "タグによるフィルター",
"Filter by assigned user" : "割当ユーザーでフィルター",
"Unassigned" : "未割り当て",
"Filter by status" : "ステータスによるフィルター",
"Open and completed" : "開いて完成",
"Open" : "開く",
"Completed" : "完了",
@@ -308,6 +313,7 @@
"Show card ID badge" : "カードIDバジを表示",
"Show boards in calendar/tasks" : "カレンダー/タスクでボードを表示する",
"Limit board creation to some groups" : "ボード作成は一部のグループに制限する",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "これらのグループ以外のユーザーは、独自のボードを作成することはできませんが、共有されているボードで作業することはできます。",
"Board details" : "ボードの詳細",
"Edit board" : "ボードを編集",
"Clone board" : "ボードを複製",
@@ -325,6 +331,7 @@
"Only assigned cards" : "割り当てられたカードのみ",
"No reminder" : "リマインダーなし",
"An error occurred" : "エラーが発生しました",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "ボード{title}を削除しますか? これにより、アーカイブされたカードを含むこのボードのすべてのデータが削除されます。",
"Delete the board?" : "ボードを削除しますか?",
"Loading filtered view" : "フィルタされたビューを読み込み中",
"Today" : "今日",
@@ -336,6 +343,7 @@
"Deck board {name}\n* Last modified on {lastMod}" : "デッキボード{name}\n最終更新日{lastMod}",
"{stack} in {board}" : "{board} 内の {stack}",
"Click to expand description" : "説明を展開するにはクリックしてください",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 作成: {created}\n* 最終変更: {lastMod}\n* {nbAttachments} 添付ファイル\n* {nbComments} コメント",
"{nbCards} cards" : "{nbCards} カード",
"Click to expand comment" : "コメントを展開するにはクリックしてください",
"Create a new card" : "新しいカードを作成する",

View File

@@ -2,14 +2,97 @@ OC.L10N.register(
"deck",
{
"You have created a new board {board}" : "새로운 보드{board}를 만들었습니다.",
"{user} has created a new board {board}" : "{user}가 새 보드 {board}을(를) 만들었습니다.",
"You have deleted the board {board}" : "{board} 보드를 삭제했습니다.",
"{user} has deleted the board {board}" : "{user}가 {board} 보드를 삭제했습니다.",
"You have restored the board {board}" : "{board} 보드를 복원했습니다.",
"{user} has restored the board {board}" : "{user}가 {board} 보드를 복원했습니다.",
"You have shared the board {board} with {acl}" : "{acl}과 보드 {board}을(를) 공유했습니다.",
"{user} has shared the board {board} with {acl}" : "{user}가 {acl}과 보드 {board}을(를) 공유했습니다.",
"You have removed {acl} from the board {board}" : "{board} 보드에서 {acl}을(를) 제거했습니다.",
"{user} has removed {acl} from the board {board}" : "{user}가 {board} 보드에서 {acl}을(를) 제거했습니다.",
"You have renamed the board {before} to {board}" : "보드 이름을 {before}에서 {board}로 변경했습니다.",
"{user} has renamed the board {before} to {board}" : "{user}가 {before} 보드 이름을 {board}(으)로 변경했습니다.",
"You have archived the board {board}" : "{board} 보드를 보관했습니다.",
"{user} has archived the board {before}" : "{user}가 {before} 보드를 보관했습니다.",
"You have unarchived the board {board}" : "{board} 보드를 보관 취소했습니다.",
"{user} has unarchived the board {before}" : "{user}가 {before}에 보드 보관을 취소했습니다.",
"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}을(를) 만들었습니다.",
"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}으로 변경했습니다.",
"You have deleted list {stack} on board {board}" : "{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} 카드를 생성했습니다.",
"{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} 카드를 삭제했습니다.",
"{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}(으)로 변경했습니다.",
"{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}" : "보드 {board}의 목록 {stack}에 있는 카드 {card}에 설명을 추가했습니다.",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에 설명을 추가했습니다.",
"You have updated the description of card {card} in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에 있는 카드 {card}에 대한 설명을 업데이트했습니다.",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드의 설명을 업데이트했습니다.",
"You have archived card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 {card} 카드를 보관했습니다.",
"{user} has archived card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 {card} 카드를 보관했습니다.",
"You have unarchived card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 보관되지 않은 카드 {card}을(를) 가지고 있습니다.",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 보관되지 않은 카드 {card}을(를) 가지고 있습니다.",
"You have marked the card {card} as done in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에서 카드 {card}을(를) 완료로 표시했습니다.",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에서 {card} 카드를 완료로 표시했습니다.",
"You have marked the card {card} as undone in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에서 카드 {card}을 실행 취소된 것으로 표시했습니다.",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에서 {card} 카드를 실행 취소된 것으로 표시했습니다.",
"You have removed the due date of card {card}" : "{card} 카드의 만기일을 삭제했습니다.",
"{user} has removed the due date of card {card}" : "{user}가 {card} 카드의 만기일을 삭제했습니다.",
"You have set the due date of card {card} to {after}" : "{card} 카드의 만기일을 {after}로 설정했습니다.",
"{user} has set the due date of card {card} to {after}" : "{user}가 {card} 카드의 만기일을 {after}로 설정했습니다.",
"You have updated the due date of card {card} to {after}" : "{card} 카드의 만기일을 {after}로 업데이트했습니다.",
"{user} has updated the due date of card {card} to {after}" : "{user}가 {card} 카드의 만기일을 {after}로 업데이트했습니다.",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 있는 {card} 카드에 {label} 태그를 추가했습니다.",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에 {label} 태그를 추가했습니다.",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 있는 {card} 카드에서 {label} 태그를 제거했습니다.",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에서 {label} 태그를 제거했습니다.",
"You have assigned {assigneduser} to card {card} on board {board}" : "{board} 보드의 {card} 카드에 {assigneduser}을(를) 할당했습니다.",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user}가 {board} 보드의 {card} 카드에 {assigneduser}을(를) 할당했습니다.",
"You have unassigned {assigneduser} from card {card} on board {board}" : "{board} 보드의 {card} 카드에서 {assigneduser}을(를) 할당 해제했습니다.",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user}가 {board} 보드의 {card} 카드에서 {assigneduser}을(를) 할당 해제했습니다.",
"You have moved the card {card} from list {stackBefore} to {stack}" : "{card} 카드를 {stackBefore} 목록에서 {stack}(으)로 이동했습니다.",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user}가 {card} 카드를 {stackBefore} 목록에서 {stack}(으)로 이동했습니다.",
"You have added the attachment {attachment} to card {card}" : "{card} 카드에 첨부파일 {attachment}을(를) 추가했습니다.",
"{user} has added the attachment {attachment} to card {card}" : "{user}가 {card} 카드에 첨부파일 {attachment}을(를) 추가했습니다.",
"You have updated the attachment {attachment} on card {card}" : "{card} 카드의 첨부 파일 {attachment}을(를) 업데이트했습니다.",
"{user} has updated the attachment {attachment} on card {card}" : "{user}가 {card} 카드의 첨부 파일 {attachment}을(를) 업데이트했습니다.",
"You have deleted the attachment {attachment} from card {card}" : "{card} 카드에서 첨부 파일 {attachment}을(를) 삭제했습니다.",
"{user} has deleted the attachment {attachment} from card {card}" : "{user}가 {card} 카드에서 첨부 파일 {attachment}을(를) 삭제했습니다.",
"You have restored the attachment {attachment} to card {card}" : "첨부 파일 {attachment}을(를) 카드 {card}에 복원했습니다.",
"{user} has restored the attachment {attachment} to card {card}" : "{user}가 첨부 파일 {attachment}을(를) 카드 {card}에 복원했습니다.",
"You have commented on card {card}" : "{card} 카드에 댓글을 작성하셨습니다.",
"{user} has commented on card {card}" : "{user}가 {card} 카드에 댓글을 작성하였습니다.",
"Deck" : "덱",
"Changes in the <strong>Deck app</strong>" : "<strong>Deck 앱</strong>의 변경 사항",
"A <strong>board, list or card</strong> was changed" : "<strong>보드, 목록 또는 카드</strong>가 변경되었습니다.",
"A <strong>comment</strong> was created on a card" : "카드에 <strong>댓글</strong>이 작성되었습니다.",
"A <strong>card description</strong> has been changed" : "<strong>카드 설명</strong>이 변경되었습니다.",
"Cards due today" : "오늘 만료인 카드",
"Cards due tomorrow" : "명일 만료인 카드",
"Upcoming cards" : "다음 카드들",
"Load more" : "더 불러오기",
"Personal" : "개인",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "\"%s\"의 \"%s\" 카드가 %s에 의해 당신에게 할당되었습니다.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user}님이 {deck-board}의 {deck-card} 카드를 당신에게 할당했습니다.",
"The card \"%s\" on \"%s\" has reached its due date." : "카드 \"%s\"(\"%s\"에 있음)의 만료 날짜가 다가왔습니다.",
"The card {deck-card} on {deck-board} has reached its due date." : "{deck-board}의 {deck-card} 카드가 만기일에 도달했습니다.",
"%s has mentioned you in a comment on \"%s\"." : "%s 님이 \"%s\"에 대한 댓글에서 당신을 언급했습니다.",
"{user} has mentioned you in a comment on {deck-card}." : "{user}님이 {deck-card}의 댓글에서 당신을 언급했습니다.",
"The board \"%s\" has been shared with you by %s." : "\"%s\" 게시판을 %s 님이 공유했습니다.",
"{user} has shared {deck-board} with you." : "{user}님이 귀하와 {deck-board}를 공유했습니다.",
"Deck board" : "Deck 보드",
"Owned by %1$s" : "%1$s이 소유함",
"Deck boards, cards and comments" : "Deck 보드, 카드 및 댓글",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "%1$s에서, %2$s/%3$s, %4$s 소유",
"Create a new deck card" : "새로운 덱 카드 만들기",
"Card comments" : "카드 코멘트",
"%s on %s" : "%s(%s의)",
"Deck boards and cards" : "덱 보드 및 카드",
"No data was provided to create an attachment." : "첨부할 데이터가 제공되지 않았습니다.",
"Finished" : "완료됨",
"To review" : "리뷰할 항목",
@@ -17,6 +100,7 @@ OC.L10N.register(
"Later" : "나중에",
"copy" : "복사",
"To do" : "할 일",
"Doing" : "하는 중",
"Done" : "완료",
"Example Task 3" : "작업 예제 3",
"Example Task 2" : "작업 예제 2",
@@ -30,16 +114,25 @@ OC.L10N.register(
"Could not write file to disk" : "디스크에 파일을 쓸 수 없음",
"A PHP extension stopped the file upload" : "PHP 확장 기능에서 파일 업로드를 차단함",
"No file uploaded or file size exceeds maximum of %s" : "파일이 업로드 되지 않았거나 크기가 %s(을)를 초과함",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "이 댓글에는 %s자 이상이 있습니다.\n이름이 %s인 카드에 첨부 파일로 추가되었습니다.\nURL에서 액세스 가능: %s.",
"Card not found" : "카드 없음",
"Path is already shared with this card" : "경로가 이미 이 카드와 공유되어 있습니다.",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Personal planning and team project organization" : "개인 기획 및 팀 프로젝트 구성",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck은 Nextcloud와 통합된 팀의 개인 계획 및 프로젝트 구성을 목표로 하는 칸반 스타일 구성 도구입니다.\n\n\n- 📥 카드에 작업을 추가하고 순서대로 정리하세요\n- 📄 Markdown에 추가 메모를 작성하세요.\n- 🔖 더 나은 정리를 위해 라벨을 할당하세요\n- 👥 팀, 친구, 가족과 공유하세요\n- 📎 파일을 첨부하고 Markdown 설명에 포함하세요.\n- 💬 댓글을 사용하여 팀과 토론하세요\n- ⚡ 활동 스트림의 변경 사항을 추적하세요.\n- 🚀 프로젝트를 체계적으로 정리하세요",
"Add board" : "보드 추가",
"Select the board to link to a project" : "프로젝트에 연결할 보드를 선택하세요.",
"Search by board title" : "보드 제목으로 검색",
"Select board" : "보드 선택",
"Move card to another board" : "카드를 다른 보드로 이동",
"Select a board" : "보드 선택",
"No lists available" : "사용 가능한 목록이 없음",
"Select a list" : "목록 선택",
"Move card" : "카드 이동",
"Cancel" : "취소",
"Select a card" : "카드 선택",
"Select the card to link to a project" : "카드를 선택해 프로젝트에 연결",
"Link to card" : "카드 링크",
"File already exists" : "파일이 이미 존재함",
"A file with the name {filename} already exists." : "이미 존재하는 파일이름 {filename} ",
"Do you want to overwrite it?" : "덮어쓰시겠습니까?",
@@ -51,10 +144,13 @@ OC.L10N.register(
"Archived cards" : "보관된 카드들",
"Add list" : "목록 추가",
"List name" : "리스트 추가",
"Active filters" : "활성 필터",
"Apply filter" : "필터링 적용",
"Filter by tag" : "태그로 필터링",
"Filter by assigned user" : "지정된 사용자로 필터링",
"Unassigned" : "할당되지 않음",
"Filter by status" : "상태로 필터링",
"Open and completed" : "개봉 완료됨",
"Open" : "열기",
"Completed" : "완료됨",
"Filter by due date" : "기한으로 필터링",
@@ -64,84 +160,232 @@ OC.L10N.register(
"Next 30 days" : "다음 30일 동안",
"No due date" : "기한 없음",
"Clear filter" : "필터 지우기",
"View Modes" : "보기 모드",
"Toggle View Modes" : "보기 모드 전환",
"Hide archived cards" : "보관된 카드 숨기기",
"Show archived cards" : "보관된 카드 보기",
"Toggle compact mode" : "컴팩트 모드 전환",
"Hide card cover images" : "카드 표지 이미지 숨기기",
"Show card cover images" : "카드 표지 이미지 표시",
"Open details" : "자세한 정보 열기",
"Details" : "세부사항",
"Currently present people" : "현재 존재하는 사람들",
"Loading board" : "보드 불러오는 중",
"Board not found" : "보드를 찾을 수 없음",
"Create a new list to add cards to this board" : "이 보드에 카드를 추가하려면 새 목록을 만드세요.",
"Sharing" : "공유",
"Tags" : "태그",
"Deleted items" : "삭제된 항목",
"Activity" : "활동",
"Deleted lists" : "삭제된 목록",
"Undo" : "실행 취소",
"Deleted cards" : "삭제된 카드",
"Share board with a user, group or team …" : "사용자, 그룹 또는 팀과 보드 공유…",
"Searching for users, groups and teams …" : "사용자, 그룹, 팀 검색 중…",
"No participants found" : "참가자를 찾을 수 없음",
"Board owner" : "보드 소유자",
"(Group)" : "(그룹)",
"Can edit" : "수정할 수 있음",
"(Team)" : "(팀)",
"Can edit" : "편집 허용",
"Can share" : "공유할 수 있음",
"Can manage" : "관리 가능",
"Owner" : "소유자",
"Delete" : "삭제",
"Failed to create share with {displayName}" : "displayName}과(와) 공유를 생성하지 못했습니다.",
"Are you sure you want to transfer the board {title} to {user}?" : "{title} 보드를 {user}에게 양도하시겠습니까?",
"Transfer the board." : "보드를 옮깁니다.",
"Transfer" : "전송",
"The board has been transferred to {user}" : "보드가 {user}에게 이전되었습니다",
"Failed to transfer the board to {user}" : "보드를 {user}에게 전송하지 못했습니다.",
"Edit list title" : "목록 제목 수정",
"Archive all cards" : "모든 카드 보관",
"Unarchive all cards" : "모든 카드 보관 취소",
"Delete list" : "목록 지우기",
"Archive all cards in this list" : "이 목록의 모든 카드를 보관",
"Unarchive all cards in this list" : "이 목록의 모든 카드를 보관 취소",
"Add a new card" : "새로운 카드 추가",
"Card name" : "카드 이름",
"List deleted" : "목록 삭제됨",
"Edit" : "편집",
"Add a new tag" : "새로운 태그 추가",
"title and color value must be provided" : "제목과 색상 값을 제공해야 함",
"Board name" : "보드 이름",
"Members" : "구성원",
"Assign to users/groups/team" : "사용자/그룹/팀에 할당",
"Assign a user to this card…" : "이 카드에 사용자를 할당합니다...",
"Select a user to assign to this card…" : "이 카드에 할당할 사용자를 선택하세요...",
"Upload new files" : "새로운 파일 업로드",
"Share from Files" : "파일에서 공유",
"Pending share" : "보류 중인 공유",
"Add this attachment" : "해당 첨부 파일 추가",
"Show in Files" : "파일로 표시",
"Download" : "다운로드",
"Remove attachment" : "첨부파일 제거",
"Delete Attachment" : "첨부파일 삭제",
"Restore Attachment" : "첨부파일 복원",
"File to share" : "공유할 파일",
"Invalid path selected" : "잘못된 경로가 선택됨",
"Open in sidebar view" : "사이드바 보기에서 열기",
"Open in bigger view" : "더 크게 보기",
"Attachments" : "첨부파일",
"Comments" : "댓글",
"Modified" : "수정한 날짜",
"Created" : "생성됨",
"The title cannot be empty." : "제목은 공백일 수 없습니다.",
"No comments yet. Begin the discussion!" : "아직 댓글이 없습니다. 토론을 시작하세요!",
"Failed to load comments" : "댓글을 불러오지 못했습니다.",
"Save" : "저장",
"The comment cannot be empty." : "댓글은 공백일 수 없습니다.",
"The comment cannot be longer than 1000 characters." : "설명은 1000자를 초과할 수 없습니다.",
"In reply to" : "답장",
"Cancel reply" : "응답 취소",
"Reply" : "답장",
"Update" : "업데이트",
"Created:" : "생성한 날짜:",
"Description" : "설명",
"(Unsaved)" : "(저장되지 않음)",
"(Saving…)" : "(저장 중…)",
"Formatting help" : "서식 도움말",
"Edit description" : "설명 편집",
"View description" : "설명 보기",
"Add Attachment" : "첨부파일 추가",
"Write a description …" : "설명 작성",
"Choose attachment" : "첨부파일 선택",
"Assign a due date to this card…" : "이 카드에 만료일을 할당합니다...",
"Set a due date" : "만료일 설정",
"Add due date" : "만료일 추가",
"Choose a date" : "날짜 선택",
"Remove due date" : "만료 날짜 삭제",
"Mark as done" : "완료된 것으로 표시",
"Due at:" : "마감일:",
"Not done" : "완료되지 않음",
"Unarchive card" : "카드 보관 취소",
"Archive card" : "보관 카드",
"Select Date" : "날짜 선택",
"Set due date for later today" : "마감일을 오늘 이후로 설정",
"Set due date for tomorrow" : "마감일을 내일로 설정",
"Set due date for this weekend" : "마감일을 이번 주말로 설정",
"Set due date for next week" : "마감일을 다음 주로 설정",
"Assign a tag to this card…" : "이 카드에 태그를 할당합니다...",
"Select or create a tag…" : "태그를 선택하거나 생성하기...",
"Create a new tag:" : "새로운 태그 생성:",
"(group)" : "(그룹)",
"Next week {timeLocale}" : "다음주 {timeLocale}",
"Todo items" : "작업 항목",
"{count} comments, {unread} unread" : "댓글 {count}개, 읽지 않음 {unread}개",
"Edit card title" : "카드 제목 수정",
"Card details" : "카드 세부사항",
"Assign to me" : "나에게 할당",
"Unassign myself" : "스스로를 할당 해제",
"Mark as not done" : "완료되지 않은 것으로 표시",
"Delete card" : "카드 삭제",
"Card deleted" : "카드가 삭제됨",
"seconds ago" : "초 전",
"Keyboard shortcuts" : "키보드 단축키",
"Boost your productivity using Deck with keyboard shortcuts." : "키보드 단축키가 포함된 Deck을 사용하여 생산성을 높이세요.",
"Board actions" : "보드 동작",
"Keyboard shortcut" : "키보드 단축키",
"Action" : "동작",
"Shift" : "Shift",
"Scroll" : "스크롤",
"Scroll sideways" : "옆으로 스크롤",
"Navigate between cards" : "카드 간 이동",
"Esc" : "Esc",
"Close card details" : "카드 세부정보 닫기",
"Ctrl" : "Ctrl",
"Search" : "검색",
"Show card filters" : "카드 필터 표시",
"Clear card filters" : "카드 필터 초기화",
"Show help dialog" : "도움말 대화 상자 표시",
"Card actions" : "카드 동작",
"The following actions can be triggered on the currently highlighted card" : "현재 강조 표시된 카드에서 다음 작업이 실행될 수 있습니다.",
"Enter" : "Enter",
"Space" : "Space",
"Open card details" : "카드 세부정보 열기",
"Edit the card title" : "카드 제목 수정",
"Assign yourself to the current card" : "현재 카드에 자신을 할당",
"Archive/unarchive the current card" : "현재 카드 보관/보관 취소",
"Mark card as completed/not completed" : "카드를 완료됨/완료되지 않음으로 표시",
"Open card menu" : "카드 메뉴 열기",
"All boards" : "모든 보드",
"Archived boards" : "보관된 게시판",
"Shared with you" : "나와 공유됨",
"Deck settings" : "Deck 설정",
"Use bigger card view" : "카드 크게 보기 사용",
"Show card ID badge" : "카드 ID 배지 표시",
"Show boards in calendar/tasks" : "캘린더/작업에 보드 표시",
"Limit board creation to some groups" : "보드 생성을 일부 그룹으로 제한",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "해당 그룹 외부의 사용자는 자신의 보드를 만들 수 없지만 공유된 보드에서는 계속 작업할 수 있습니다.",
"Board details" : "게시판 정보",
"Edit board" : "게시판 편집",
"Clone board" : "게시판 복제",
"Unarchive board" : "게시판 보관 해제",
"Archive board" : "게시판 보관",
"Export board" : "보드 내보내기",
"Turn on due date reminders" : "마감일 알림 켜기",
"Turn off due date reminders" : "마감일 알림 끄기",
"Due date reminders" : "마감일 알림",
"All cards" : "모든 카드",
"Assigned cards" : "할당된 카드",
"No notifications" : "알림 없음",
"Delete board" : "게시판 삭제",
"Board {0} deleted" : "보드 {0}개가 삭제되었습니다.",
"Only assigned cards" : "할당된 카드만",
"No reminder" : "알림 없음",
"An error occurred" : "오류가 발생함",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "{title} 보드를 정말로 삭제하시겠습니까? 보관된 카드를 포함하여 이 보드의 모든 데이터가 삭제됩니다.",
"Delete the board?" : "보드를 삭제합니까?",
"Loading filtered view" : "필터링된 보기 불러오는 중",
"Today" : "오늘",
"Tomorrow" : "내일",
"No due" : "기한 없음",
"Search for {searchQuery} in all boards" : "모든 게시판에서 {searchQuery}를 검색하세요",
"No results found" : "결과 없음",
"This weekend {timeLocale}" : "이번 주말 {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "데크 보드 {name}\n* 마지막 수정일 {lastMod}",
"{stack} in {board}" : "{board}의 {stack}",
"Click to expand description" : "설명을 더 보려면 클릭하세요.",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 생성일: {created}\n* 마지막 수정일: {lastMod}\n* 첨부 파일 {nbAttachments}개\n* {nbComments} 댓글",
"{nbCards} cards" : "{nbCards} 카드",
"Click to expand comment" : "댓글을 더 보려면 클릭하세요.",
"Create a new card" : "새로운 카드 생성",
"Card title" : "카드 제목",
"Create card" : "크레딧 카드",
"Creating the new card …" : "새로운 카드 생성 중...",
"Card \"{card}\" was added to \"{board}\"" : "\"{card}\" 카드가 \"{board}\"에 추가되었습니다.",
"Open card" : "카드 열기",
"Close" : "닫기",
"No upcoming cards" : "예정된 카드 없음",
"upcoming cards today" : "오늘 예정인 카드",
"upcoming cards tomorrow" : "내일 예정인 카드",
"upcoming cards" : "곧 있을 카드",
"New card" : "새로운 카드",
"Due on {date}" : "마감일: {date}",
"Tomorrow {timeLocale}" : "내일 {timeLocale}",
"Later today {timeLocale}" : "오늘 나중 {timeLocale}",
"Link to a board" : "보드에 연결",
"Link to a card" : "카드에 연결",
"Create a card" : "카드 생성",
"Message from {author} in {conversationName}" : "{conversationName}에서 {author}가 보낸 메시지",
"Something went wrong" : "잘못된 접근",
"Failed to upload {name}" : "{name}을(를) 업로드하지 못했습니다.",
"Maximum file size of {size} exceeded" : "최대 파일 크기인 {size}을(를) 초과했습니다.",
"Error creating the share" : "공유를 만드는 중 오류 발생",
"Share with a Deck card" : "Deck 카드와 공유",
"Share {file} with a Deck card" : "Deck 카드와 함께 {file} 공유",
"Share" : "공유",
"A <strong>card description</strong> inside the Deck app has been changed" : "Deck 앱 내 <strong>카드 설명</strong>이 변경되었습니다.",
"Timeline" : "타임라인",
"Share board with a user, group or circle …" : "사용자, 그룹 또는 서클과 보드 공유…",
"Searching for users, groups and circles …" : "사용자, 그룹, 서클 검색 중…",
"(Circle)" : "(서클)",
"Assign to users/groups/circles" : "사용자/그룹/서클에 할당",
"Next week" : "다음주",
"Next month" : "다음달",
"List is empty" : "목록이 비어 있음",
"Not completed" : "완성되지 않았다"
"Limit deck usage of groups" : "그룹의 덱 사용 제한",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck은 해당 그룹에 속하지 않은 사용자가 자신의 보드를 만드는 것을 차단합니다. 사용자는 공유된 보드에서 계속 작업할 수 있습니다.",
"Not completed" : "완성되지 않았다",
"Filter by completed" : "완료 기준으로 필터링"
},
"nplurals=1; plural=0;");

View File

@@ -1,13 +1,96 @@
{ "translations": {
"You have created a new board {board}" : "새로운 보드{board}를 만들었습니다.",
"{user} has created a new board {board}" : "{user}가 새 보드 {board}을(를) 만들었습니다.",
"You have deleted the board {board}" : "{board} 보드를 삭제했습니다.",
"{user} has deleted the board {board}" : "{user}가 {board} 보드를 삭제했습니다.",
"You have restored the board {board}" : "{board} 보드를 복원했습니다.",
"{user} has restored the board {board}" : "{user}가 {board} 보드를 복원했습니다.",
"You have shared the board {board} with {acl}" : "{acl}과 보드 {board}을(를) 공유했습니다.",
"{user} has shared the board {board} with {acl}" : "{user}가 {acl}과 보드 {board}을(를) 공유했습니다.",
"You have removed {acl} from the board {board}" : "{board} 보드에서 {acl}을(를) 제거했습니다.",
"{user} has removed {acl} from the board {board}" : "{user}가 {board} 보드에서 {acl}을(를) 제거했습니다.",
"You have renamed the board {before} to {board}" : "보드 이름을 {before}에서 {board}로 변경했습니다.",
"{user} has renamed the board {before} to {board}" : "{user}가 {before} 보드 이름을 {board}(으)로 변경했습니다.",
"You have archived the board {board}" : "{board} 보드를 보관했습니다.",
"{user} has archived the board {before}" : "{user}가 {before} 보드를 보관했습니다.",
"You have unarchived the board {board}" : "{board} 보드를 보관 취소했습니다.",
"{user} has unarchived the board {before}" : "{user}가 {before}에 보드 보관을 취소했습니다.",
"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}을(를) 만들었습니다.",
"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}으로 변경했습니다.",
"You have deleted list {stack} on board {board}" : "{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} 카드를 생성했습니다.",
"{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} 카드를 삭제했습니다.",
"{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}(으)로 변경했습니다.",
"{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}" : "보드 {board}의 목록 {stack}에 있는 카드 {card}에 설명을 추가했습니다.",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에 설명을 추가했습니다.",
"You have updated the description of card {card} in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에 있는 카드 {card}에 대한 설명을 업데이트했습니다.",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드의 설명을 업데이트했습니다.",
"You have archived card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 {card} 카드를 보관했습니다.",
"{user} has archived card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 {card} 카드를 보관했습니다.",
"You have unarchived card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 보관되지 않은 카드 {card}을(를) 가지고 있습니다.",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 보관되지 않은 카드 {card}을(를) 가지고 있습니다.",
"You have marked the card {card} as done in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에서 카드 {card}을(를) 완료로 표시했습니다.",
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에서 {card} 카드를 완료로 표시했습니다.",
"You have marked the card {card} as undone in list {stack} on board {board}" : "보드 {board}의 목록 {stack}에서 카드 {card}을 실행 취소된 것으로 표시했습니다.",
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에서 {card} 카드를 실행 취소된 것으로 표시했습니다.",
"You have removed the due date of card {card}" : "{card} 카드의 만기일을 삭제했습니다.",
"{user} has removed the due date of card {card}" : "{user}가 {card} 카드의 만기일을 삭제했습니다.",
"You have set the due date of card {card} to {after}" : "{card} 카드의 만기일을 {after}로 설정했습니다.",
"{user} has set the due date of card {card} to {after}" : "{user}가 {card} 카드의 만기일을 {after}로 설정했습니다.",
"You have updated the due date of card {card} to {after}" : "{card} 카드의 만기일을 {after}로 업데이트했습니다.",
"{user} has updated the due date of card {card} to {after}" : "{user}가 {card} 카드의 만기일을 {after}로 업데이트했습니다.",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 있는 {card} 카드에 {label} 태그를 추가했습니다.",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에 {label} 태그를 추가했습니다.",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "{board} 보드의 {stack} 목록에 있는 {card} 카드에서 {label} 태그를 제거했습니다.",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user}가 {board} 보드의 {stack} 목록에 있는 {card} 카드에서 {label} 태그를 제거했습니다.",
"You have assigned {assigneduser} to card {card} on board {board}" : "{board} 보드의 {card} 카드에 {assigneduser}을(를) 할당했습니다.",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user}가 {board} 보드의 {card} 카드에 {assigneduser}을(를) 할당했습니다.",
"You have unassigned {assigneduser} from card {card} on board {board}" : "{board} 보드의 {card} 카드에서 {assigneduser}을(를) 할당 해제했습니다.",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user}가 {board} 보드의 {card} 카드에서 {assigneduser}을(를) 할당 해제했습니다.",
"You have moved the card {card} from list {stackBefore} to {stack}" : "{card} 카드를 {stackBefore} 목록에서 {stack}(으)로 이동했습니다.",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user}가 {card} 카드를 {stackBefore} 목록에서 {stack}(으)로 이동했습니다.",
"You have added the attachment {attachment} to card {card}" : "{card} 카드에 첨부파일 {attachment}을(를) 추가했습니다.",
"{user} has added the attachment {attachment} to card {card}" : "{user}가 {card} 카드에 첨부파일 {attachment}을(를) 추가했습니다.",
"You have updated the attachment {attachment} on card {card}" : "{card} 카드의 첨부 파일 {attachment}을(를) 업데이트했습니다.",
"{user} has updated the attachment {attachment} on card {card}" : "{user}가 {card} 카드의 첨부 파일 {attachment}을(를) 업데이트했습니다.",
"You have deleted the attachment {attachment} from card {card}" : "{card} 카드에서 첨부 파일 {attachment}을(를) 삭제했습니다.",
"{user} has deleted the attachment {attachment} from card {card}" : "{user}가 {card} 카드에서 첨부 파일 {attachment}을(를) 삭제했습니다.",
"You have restored the attachment {attachment} to card {card}" : "첨부 파일 {attachment}을(를) 카드 {card}에 복원했습니다.",
"{user} has restored the attachment {attachment} to card {card}" : "{user}가 첨부 파일 {attachment}을(를) 카드 {card}에 복원했습니다.",
"You have commented on card {card}" : "{card} 카드에 댓글을 작성하셨습니다.",
"{user} has commented on card {card}" : "{user}가 {card} 카드에 댓글을 작성하였습니다.",
"Deck" : "덱",
"Changes in the <strong>Deck app</strong>" : "<strong>Deck 앱</strong>의 변경 사항",
"A <strong>board, list or card</strong> was changed" : "<strong>보드, 목록 또는 카드</strong>가 변경되었습니다.",
"A <strong>comment</strong> was created on a card" : "카드에 <strong>댓글</strong>이 작성되었습니다.",
"A <strong>card description</strong> has been changed" : "<strong>카드 설명</strong>이 변경되었습니다.",
"Cards due today" : "오늘 만료인 카드",
"Cards due tomorrow" : "명일 만료인 카드",
"Upcoming cards" : "다음 카드들",
"Load more" : "더 불러오기",
"Personal" : "개인",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "\"%s\"의 \"%s\" 카드가 %s에 의해 당신에게 할당되었습니다.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user}님이 {deck-board}의 {deck-card} 카드를 당신에게 할당했습니다.",
"The card \"%s\" on \"%s\" has reached its due date." : "카드 \"%s\"(\"%s\"에 있음)의 만료 날짜가 다가왔습니다.",
"The card {deck-card} on {deck-board} has reached its due date." : "{deck-board}의 {deck-card} 카드가 만기일에 도달했습니다.",
"%s has mentioned you in a comment on \"%s\"." : "%s 님이 \"%s\"에 대한 댓글에서 당신을 언급했습니다.",
"{user} has mentioned you in a comment on {deck-card}." : "{user}님이 {deck-card}의 댓글에서 당신을 언급했습니다.",
"The board \"%s\" has been shared with you by %s." : "\"%s\" 게시판을 %s 님이 공유했습니다.",
"{user} has shared {deck-board} with you." : "{user}님이 귀하와 {deck-board}를 공유했습니다.",
"Deck board" : "Deck 보드",
"Owned by %1$s" : "%1$s이 소유함",
"Deck boards, cards and comments" : "Deck 보드, 카드 및 댓글",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "%1$s에서, %2$s/%3$s, %4$s 소유",
"Create a new deck card" : "새로운 덱 카드 만들기",
"Card comments" : "카드 코멘트",
"%s on %s" : "%s(%s의)",
"Deck boards and cards" : "덱 보드 및 카드",
"No data was provided to create an attachment." : "첨부할 데이터가 제공되지 않았습니다.",
"Finished" : "완료됨",
"To review" : "리뷰할 항목",
@@ -15,6 +98,7 @@
"Later" : "나중에",
"copy" : "복사",
"To do" : "할 일",
"Doing" : "하는 중",
"Done" : "완료",
"Example Task 3" : "작업 예제 3",
"Example Task 2" : "작업 예제 2",
@@ -28,16 +112,25 @@
"Could not write file to disk" : "디스크에 파일을 쓸 수 없음",
"A PHP extension stopped the file upload" : "PHP 확장 기능에서 파일 업로드를 차단함",
"No file uploaded or file size exceeds maximum of %s" : "파일이 업로드 되지 않았거나 크기가 %s(을)를 초과함",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "이 댓글에는 %s자 이상이 있습니다.\n이름이 %s인 카드에 첨부 파일로 추가되었습니다.\nURL에서 액세스 가능: %s.",
"Card not found" : "카드 없음",
"Path is already shared with this card" : "경로가 이미 이 카드와 공유되어 있습니다.",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Personal planning and team project organization" : "개인 기획 및 팀 프로젝트 구성",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck은 Nextcloud와 통합된 팀의 개인 계획 및 프로젝트 구성을 목표로 하는 칸반 스타일 구성 도구입니다.\n\n\n- 📥 카드에 작업을 추가하고 순서대로 정리하세요\n- 📄 Markdown에 추가 메모를 작성하세요.\n- 🔖 더 나은 정리를 위해 라벨을 할당하세요\n- 👥 팀, 친구, 가족과 공유하세요\n- 📎 파일을 첨부하고 Markdown 설명에 포함하세요.\n- 💬 댓글을 사용하여 팀과 토론하세요\n- ⚡ 활동 스트림의 변경 사항을 추적하세요.\n- 🚀 프로젝트를 체계적으로 정리하세요",
"Add board" : "보드 추가",
"Select the board to link to a project" : "프로젝트에 연결할 보드를 선택하세요.",
"Search by board title" : "보드 제목으로 검색",
"Select board" : "보드 선택",
"Move card to another board" : "카드를 다른 보드로 이동",
"Select a board" : "보드 선택",
"No lists available" : "사용 가능한 목록이 없음",
"Select a list" : "목록 선택",
"Move card" : "카드 이동",
"Cancel" : "취소",
"Select a card" : "카드 선택",
"Select the card to link to a project" : "카드를 선택해 프로젝트에 연결",
"Link to card" : "카드 링크",
"File already exists" : "파일이 이미 존재함",
"A file with the name {filename} already exists." : "이미 존재하는 파일이름 {filename} ",
"Do you want to overwrite it?" : "덮어쓰시겠습니까?",
@@ -49,10 +142,13 @@
"Archived cards" : "보관된 카드들",
"Add list" : "목록 추가",
"List name" : "리스트 추가",
"Active filters" : "활성 필터",
"Apply filter" : "필터링 적용",
"Filter by tag" : "태그로 필터링",
"Filter by assigned user" : "지정된 사용자로 필터링",
"Unassigned" : "할당되지 않음",
"Filter by status" : "상태로 필터링",
"Open and completed" : "개봉 완료됨",
"Open" : "열기",
"Completed" : "완료됨",
"Filter by due date" : "기한으로 필터링",
@@ -62,84 +158,232 @@
"Next 30 days" : "다음 30일 동안",
"No due date" : "기한 없음",
"Clear filter" : "필터 지우기",
"View Modes" : "보기 모드",
"Toggle View Modes" : "보기 모드 전환",
"Hide archived cards" : "보관된 카드 숨기기",
"Show archived cards" : "보관된 카드 보기",
"Toggle compact mode" : "컴팩트 모드 전환",
"Hide card cover images" : "카드 표지 이미지 숨기기",
"Show card cover images" : "카드 표지 이미지 표시",
"Open details" : "자세한 정보 열기",
"Details" : "세부사항",
"Currently present people" : "현재 존재하는 사람들",
"Loading board" : "보드 불러오는 중",
"Board not found" : "보드를 찾을 수 없음",
"Create a new list to add cards to this board" : "이 보드에 카드를 추가하려면 새 목록을 만드세요.",
"Sharing" : "공유",
"Tags" : "태그",
"Deleted items" : "삭제된 항목",
"Activity" : "활동",
"Deleted lists" : "삭제된 목록",
"Undo" : "실행 취소",
"Deleted cards" : "삭제된 카드",
"Share board with a user, group or team …" : "사용자, 그룹 또는 팀과 보드 공유…",
"Searching for users, groups and teams …" : "사용자, 그룹, 팀 검색 중…",
"No participants found" : "참가자를 찾을 수 없음",
"Board owner" : "보드 소유자",
"(Group)" : "(그룹)",
"Can edit" : "수정할 수 있음",
"(Team)" : "(팀)",
"Can edit" : "편집 허용",
"Can share" : "공유할 수 있음",
"Can manage" : "관리 가능",
"Owner" : "소유자",
"Delete" : "삭제",
"Failed to create share with {displayName}" : "displayName}과(와) 공유를 생성하지 못했습니다.",
"Are you sure you want to transfer the board {title} to {user}?" : "{title} 보드를 {user}에게 양도하시겠습니까?",
"Transfer the board." : "보드를 옮깁니다.",
"Transfer" : "전송",
"The board has been transferred to {user}" : "보드가 {user}에게 이전되었습니다",
"Failed to transfer the board to {user}" : "보드를 {user}에게 전송하지 못했습니다.",
"Edit list title" : "목록 제목 수정",
"Archive all cards" : "모든 카드 보관",
"Unarchive all cards" : "모든 카드 보관 취소",
"Delete list" : "목록 지우기",
"Archive all cards in this list" : "이 목록의 모든 카드를 보관",
"Unarchive all cards in this list" : "이 목록의 모든 카드를 보관 취소",
"Add a new card" : "새로운 카드 추가",
"Card name" : "카드 이름",
"List deleted" : "목록 삭제됨",
"Edit" : "편집",
"Add a new tag" : "새로운 태그 추가",
"title and color value must be provided" : "제목과 색상 값을 제공해야 함",
"Board name" : "보드 이름",
"Members" : "구성원",
"Assign to users/groups/team" : "사용자/그룹/팀에 할당",
"Assign a user to this card…" : "이 카드에 사용자를 할당합니다...",
"Select a user to assign to this card…" : "이 카드에 할당할 사용자를 선택하세요...",
"Upload new files" : "새로운 파일 업로드",
"Share from Files" : "파일에서 공유",
"Pending share" : "보류 중인 공유",
"Add this attachment" : "해당 첨부 파일 추가",
"Show in Files" : "파일로 표시",
"Download" : "다운로드",
"Remove attachment" : "첨부파일 제거",
"Delete Attachment" : "첨부파일 삭제",
"Restore Attachment" : "첨부파일 복원",
"File to share" : "공유할 파일",
"Invalid path selected" : "잘못된 경로가 선택됨",
"Open in sidebar view" : "사이드바 보기에서 열기",
"Open in bigger view" : "더 크게 보기",
"Attachments" : "첨부파일",
"Comments" : "댓글",
"Modified" : "수정한 날짜",
"Created" : "생성됨",
"The title cannot be empty." : "제목은 공백일 수 없습니다.",
"No comments yet. Begin the discussion!" : "아직 댓글이 없습니다. 토론을 시작하세요!",
"Failed to load comments" : "댓글을 불러오지 못했습니다.",
"Save" : "저장",
"The comment cannot be empty." : "댓글은 공백일 수 없습니다.",
"The comment cannot be longer than 1000 characters." : "설명은 1000자를 초과할 수 없습니다.",
"In reply to" : "답장",
"Cancel reply" : "응답 취소",
"Reply" : "답장",
"Update" : "업데이트",
"Created:" : "생성한 날짜:",
"Description" : "설명",
"(Unsaved)" : "(저장되지 않음)",
"(Saving…)" : "(저장 중…)",
"Formatting help" : "서식 도움말",
"Edit description" : "설명 편집",
"View description" : "설명 보기",
"Add Attachment" : "첨부파일 추가",
"Write a description …" : "설명 작성",
"Choose attachment" : "첨부파일 선택",
"Assign a due date to this card…" : "이 카드에 만료일을 할당합니다...",
"Set a due date" : "만료일 설정",
"Add due date" : "만료일 추가",
"Choose a date" : "날짜 선택",
"Remove due date" : "만료 날짜 삭제",
"Mark as done" : "완료된 것으로 표시",
"Due at:" : "마감일:",
"Not done" : "완료되지 않음",
"Unarchive card" : "카드 보관 취소",
"Archive card" : "보관 카드",
"Select Date" : "날짜 선택",
"Set due date for later today" : "마감일을 오늘 이후로 설정",
"Set due date for tomorrow" : "마감일을 내일로 설정",
"Set due date for this weekend" : "마감일을 이번 주말로 설정",
"Set due date for next week" : "마감일을 다음 주로 설정",
"Assign a tag to this card…" : "이 카드에 태그를 할당합니다...",
"Select or create a tag…" : "태그를 선택하거나 생성하기...",
"Create a new tag:" : "새로운 태그 생성:",
"(group)" : "(그룹)",
"Next week {timeLocale}" : "다음주 {timeLocale}",
"Todo items" : "작업 항목",
"{count} comments, {unread} unread" : "댓글 {count}개, 읽지 않음 {unread}개",
"Edit card title" : "카드 제목 수정",
"Card details" : "카드 세부사항",
"Assign to me" : "나에게 할당",
"Unassign myself" : "스스로를 할당 해제",
"Mark as not done" : "완료되지 않은 것으로 표시",
"Delete card" : "카드 삭제",
"Card deleted" : "카드가 삭제됨",
"seconds ago" : "초 전",
"Keyboard shortcuts" : "키보드 단축키",
"Boost your productivity using Deck with keyboard shortcuts." : "키보드 단축키가 포함된 Deck을 사용하여 생산성을 높이세요.",
"Board actions" : "보드 동작",
"Keyboard shortcut" : "키보드 단축키",
"Action" : "동작",
"Shift" : "Shift",
"Scroll" : "스크롤",
"Scroll sideways" : "옆으로 스크롤",
"Navigate between cards" : "카드 간 이동",
"Esc" : "Esc",
"Close card details" : "카드 세부정보 닫기",
"Ctrl" : "Ctrl",
"Search" : "검색",
"Show card filters" : "카드 필터 표시",
"Clear card filters" : "카드 필터 초기화",
"Show help dialog" : "도움말 대화 상자 표시",
"Card actions" : "카드 동작",
"The following actions can be triggered on the currently highlighted card" : "현재 강조 표시된 카드에서 다음 작업이 실행될 수 있습니다.",
"Enter" : "Enter",
"Space" : "Space",
"Open card details" : "카드 세부정보 열기",
"Edit the card title" : "카드 제목 수정",
"Assign yourself to the current card" : "현재 카드에 자신을 할당",
"Archive/unarchive the current card" : "현재 카드 보관/보관 취소",
"Mark card as completed/not completed" : "카드를 완료됨/완료되지 않음으로 표시",
"Open card menu" : "카드 메뉴 열기",
"All boards" : "모든 보드",
"Archived boards" : "보관된 게시판",
"Shared with you" : "나와 공유됨",
"Deck settings" : "Deck 설정",
"Use bigger card view" : "카드 크게 보기 사용",
"Show card ID badge" : "카드 ID 배지 표시",
"Show boards in calendar/tasks" : "캘린더/작업에 보드 표시",
"Limit board creation to some groups" : "보드 생성을 일부 그룹으로 제한",
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "해당 그룹 외부의 사용자는 자신의 보드를 만들 수 없지만 공유된 보드에서는 계속 작업할 수 있습니다.",
"Board details" : "게시판 정보",
"Edit board" : "게시판 편집",
"Clone board" : "게시판 복제",
"Unarchive board" : "게시판 보관 해제",
"Archive board" : "게시판 보관",
"Export board" : "보드 내보내기",
"Turn on due date reminders" : "마감일 알림 켜기",
"Turn off due date reminders" : "마감일 알림 끄기",
"Due date reminders" : "마감일 알림",
"All cards" : "모든 카드",
"Assigned cards" : "할당된 카드",
"No notifications" : "알림 없음",
"Delete board" : "게시판 삭제",
"Board {0} deleted" : "보드 {0}개가 삭제되었습니다.",
"Only assigned cards" : "할당된 카드만",
"No reminder" : "알림 없음",
"An error occurred" : "오류가 발생함",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "{title} 보드를 정말로 삭제하시겠습니까? 보관된 카드를 포함하여 이 보드의 모든 데이터가 삭제됩니다.",
"Delete the board?" : "보드를 삭제합니까?",
"Loading filtered view" : "필터링된 보기 불러오는 중",
"Today" : "오늘",
"Tomorrow" : "내일",
"No due" : "기한 없음",
"Search for {searchQuery} in all boards" : "모든 게시판에서 {searchQuery}를 검색하세요",
"No results found" : "결과 없음",
"This weekend {timeLocale}" : "이번 주말 {timeLocale}",
"Deck board {name}\n* Last modified on {lastMod}" : "데크 보드 {name}\n* 마지막 수정일 {lastMod}",
"{stack} in {board}" : "{board}의 {stack}",
"Click to expand description" : "설명을 더 보려면 클릭하세요.",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 생성일: {created}\n* 마지막 수정일: {lastMod}\n* 첨부 파일 {nbAttachments}개\n* {nbComments} 댓글",
"{nbCards} cards" : "{nbCards} 카드",
"Click to expand comment" : "댓글을 더 보려면 클릭하세요.",
"Create a new card" : "새로운 카드 생성",
"Card title" : "카드 제목",
"Create card" : "크레딧 카드",
"Creating the new card …" : "새로운 카드 생성 중...",
"Card \"{card}\" was added to \"{board}\"" : "\"{card}\" 카드가 \"{board}\"에 추가되었습니다.",
"Open card" : "카드 열기",
"Close" : "닫기",
"No upcoming cards" : "예정된 카드 없음",
"upcoming cards today" : "오늘 예정인 카드",
"upcoming cards tomorrow" : "내일 예정인 카드",
"upcoming cards" : "곧 있을 카드",
"New card" : "새로운 카드",
"Due on {date}" : "마감일: {date}",
"Tomorrow {timeLocale}" : "내일 {timeLocale}",
"Later today {timeLocale}" : "오늘 나중 {timeLocale}",
"Link to a board" : "보드에 연결",
"Link to a card" : "카드에 연결",
"Create a card" : "카드 생성",
"Message from {author} in {conversationName}" : "{conversationName}에서 {author}가 보낸 메시지",
"Something went wrong" : "잘못된 접근",
"Failed to upload {name}" : "{name}을(를) 업로드하지 못했습니다.",
"Maximum file size of {size} exceeded" : "최대 파일 크기인 {size}을(를) 초과했습니다.",
"Error creating the share" : "공유를 만드는 중 오류 발생",
"Share with a Deck card" : "Deck 카드와 공유",
"Share {file} with a Deck card" : "Deck 카드와 함께 {file} 공유",
"Share" : "공유",
"A <strong>card description</strong> inside the Deck app has been changed" : "Deck 앱 내 <strong>카드 설명</strong>이 변경되었습니다.",
"Timeline" : "타임라인",
"Share board with a user, group or circle …" : "사용자, 그룹 또는 서클과 보드 공유…",
"Searching for users, groups and circles …" : "사용자, 그룹, 서클 검색 중…",
"(Circle)" : "(서클)",
"Assign to users/groups/circles" : "사용자/그룹/서클에 할당",
"Next week" : "다음주",
"Next month" : "다음달",
"List is empty" : "목록이 비어 있음",
"Not completed" : "완성되지 않았다"
"Limit deck usage of groups" : "그룹의 덱 사용 제한",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limiting Deck은 해당 그룹에 속하지 않은 사용자가 자신의 보드를 만드는 것을 차단합니다. 사용자는 공유된 보드에서 계속 작업할 수 있습니다.",
"Not completed" : "완성되지 않았다",
"Filter by completed" : "완료 기준으로 필터링"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -149,6 +149,7 @@ OC.L10N.register(
"Filter by tag" : "Filtrer på knagg",
"Filter by assigned user" : "Filtrer på tildelt bruker",
"Unassigned" : "Ikke tildelt",
"Filter by status" : "Filtrer etter status",
"Open and completed" : "Åpen og fullført",
"Open" : "Åpne",
"Completed" : "Ferdig",
@@ -257,6 +258,7 @@ OC.L10N.register(
"Remove due date" : "Fjern forfallsdato",
"Mark as done" : "Marker som fullført",
"Due at:" : "Forfaller den:",
"Not done" : "Ikke fullført",
"Unarchive card" : "Hent kort fra arkiv",
"Archive card" : "Arkiver kort",
"Select Date" : "Velg dato",

View File

@@ -147,6 +147,7 @@
"Filter by tag" : "Filtrer på knagg",
"Filter by assigned user" : "Filtrer på tildelt bruker",
"Unassigned" : "Ikke tildelt",
"Filter by status" : "Filtrer etter status",
"Open and completed" : "Åpen og fullført",
"Open" : "Åpne",
"Completed" : "Ferdig",
@@ -255,6 +256,7 @@
"Remove due date" : "Fjern forfallsdato",
"Mark as done" : "Marker som fullført",
"Due at:" : "Forfaller den:",
"Not done" : "Ikke fullført",
"Unarchive card" : "Hent kort fra arkiv",
"Archive card" : "Arkiver kort",
"Select Date" : "Velg dato",

View File

@@ -150,7 +150,7 @@ OC.L10N.register(
"Filter by assigned user" : "Отбор по назначению:",
"Unassigned" : "Без назначения",
"Filter by status" : "Отбор по состоянию:",
"Open and completed" : "Открытые и завершённые",
"Open and completed" : "Открытые или завершённые",
"Open" : "Открытые",
"Completed" : "Завершённые",
"Filter by due date" : "Отбор по сроку исполнения:",

View File

@@ -148,7 +148,7 @@
"Filter by assigned user" : "Отбор по назначению:",
"Unassigned" : "Без назначения",
"Filter by status" : "Отбор по состоянию:",
"Open and completed" : "Открытые и завершённые",
"Open and completed" : "Открытые или завершённые",
"Open" : "Открытые",
"Completed" : "Завершённые",
"Filter by due date" : "Отбор по сроку исполнения:",

View File

@@ -129,10 +129,13 @@ OC.L10N.register(
"Archived cards" : "Arhivirane naloge",
"Add list" : "Dodaj seznam",
"List name" : "Ime seznama",
"Active filters" : "Dejavni filtri",
"Apply filter" : "Uveljavi filter",
"Filter by tag" : "Filtriraj po oznaki",
"Filter by assigned user" : "Filtriraj po dodeljenem uporabniku",
"Unassigned" : "Nedodeljeno",
"Filter by status" : "Filtri po stanju",
"Open and completed" : "Odprto in končano",
"Open" : "Odpri",
"Completed" : "Končano",
"Filter by due date" : "Filtriraj po datumu preteka",
@@ -142,6 +145,8 @@ OC.L10N.register(
"Next 30 days" : "Naslednjih 30 dni",
"No due date" : "Ni datuma preteka",
"Clear filter" : "Počisti filter",
"View Modes" : "Načini pogleda",
"Toggle View Modes" : "Preklopi načine pogleda",
"Hide archived cards" : "Skrij arhivirane naloge",
"Show archived cards" : "Prikaži arhivirane naloge",
"Toggle compact mode" : "Preklopi način prikaza",

View File

@@ -127,10 +127,13 @@
"Archived cards" : "Arhivirane naloge",
"Add list" : "Dodaj seznam",
"List name" : "Ime seznama",
"Active filters" : "Dejavni filtri",
"Apply filter" : "Uveljavi filter",
"Filter by tag" : "Filtriraj po oznaki",
"Filter by assigned user" : "Filtriraj po dodeljenem uporabniku",
"Unassigned" : "Nedodeljeno",
"Filter by status" : "Filtri po stanju",
"Open and completed" : "Odprto in končano",
"Open" : "Odpri",
"Completed" : "Končano",
"Filter by due date" : "Filtriraj po datumu preteka",
@@ -140,6 +143,8 @@
"Next 30 days" : "Naslednjih 30 dni",
"No due date" : "Ni datuma preteka",
"Clear filter" : "Počisti filter",
"View Modes" : "Načini pogleda",
"Toggle View Modes" : "Preklopi načine pogleda",
"Hide archived cards" : "Skrij arhivirane naloge",
"Show archived cards" : "Prikaži arhivirane naloge",
"Toggle compact mode" : "Preklopi način prikaza",

View File

@@ -117,7 +117,7 @@ OC.L10N.register(
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Овај коментар има више од %s карактера.\nДодат је као прилог картици под именом %s.\nДоступно је на URL адреси: %s.",
"Card not found" : "Картица није нађена",
"Path is already shared with this card" : "Путања се већ дели са овом картицом",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датум, формат датума мора бити ГГГГ-ММ-ДД",
"Personal planning and team project organization" : "Лични планер и организатор тимског пројекта",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Шпил је организациони алат у канбан стилу који је намењен личном планирању и организацији пројекта у тимовима интегрисаним са Nextcloud.\n\n\n- 📥 Додајте своје задатке у картице и поређајте их по редоследу\n- 📄 Напишите додатне белешке употребом Markdown синтаксе\n- 🔖 Доделите ознаке у циљу још боље организације\n- 👥 Делите са својим тимом, пријатељима или породицом\n- 📎 Прикачите фајлове и уградите их у свој Markdown опис\n- 💬 Дискутујте са својим тимом користећи коментаре\n- ⚡ Пратите измене у току активности\n- 🚀 Организујте свој пројекат",
"Add board" : "Додај таблу",

View File

@@ -115,7 +115,7 @@
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Овај коментар има више од %s карактера.\nДодат је као прилог картици под именом %s.\nДоступно је на URL адреси: %s.",
"Card not found" : "Картица није нађена",
"Path is already shared with this card" : "Путања се већ дели са овом картицом",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датум, формат датума мора бити ГГГГ-ММ-ДД",
"Personal planning and team project organization" : "Лични планер и организатор тимског пројекта",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Шпил је организациони алат у канбан стилу који је намењен личном планирању и организацији пројекта у тимовима интегрисаним са Nextcloud.\n\n\n- 📥 Додајте своје задатке у картице и поређајте их по редоследу\n- 📄 Напишите додатне белешке употребом Markdown синтаксе\n- 🔖 Доделите ознаке у циљу још боље организације\n- 👥 Делите са својим тимом, пријатељима или породицом\n- 📎 Прикачите фајлове и уградите их у свој Markdown опис\n- 💬 Дискутујте са својим тимом користећи коментаре\n- ⚡ Пратите измене у току активности\n- 🚀 Организујте свој пројекат",
"Add board" : "Додај таблу",

View File

@@ -4,6 +4,14 @@ OC.L10N.register(
"Finished" : "Završeno",
"copy" : "kopiraj",
"Done" : "Done",
"The file was uploaded" : "Fajl je otpremljen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fajl za otpremljivanje premašuje upload_max_filesize direktivu u php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fajl za otpremanje premašuje MAX_FILE_SIZE navedenu u HTML obrascu",
"The file was only partially uploaded" : "Fajl je parcijalno otpremljen",
"No file was uploaded" : "Nijedan fajl nije otpremljen",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Could not write file to disk" : "Ne mogu da upišem fajl na disk",
"A PHP extension stopped the file upload" : "PHP ekstenzija je zaustavila otpremanje fajla",
"Add board" : "Dodaj tablu",
"Move card" : "Premesti karticu",
"Cancel" : "Otkaži",

View File

@@ -2,6 +2,14 @@
"Finished" : "Završeno",
"copy" : "kopiraj",
"Done" : "Done",
"The file was uploaded" : "Fajl je otpremljen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fajl za otpremljivanje premašuje upload_max_filesize direktivu u php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fajl za otpremanje premašuje MAX_FILE_SIZE navedenu u HTML obrascu",
"The file was only partially uploaded" : "Fajl je parcijalno otpremljen",
"No file was uploaded" : "Nijedan fajl nije otpremljen",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
"Could not write file to disk" : "Ne mogu da upišem fajl na disk",
"A PHP extension stopped the file upload" : "PHP ekstenzija je zaustavila otpremanje fajla",
"Add board" : "Dodaj tablu",
"Move card" : "Premesti karticu",
"Cancel" : "Otkaži",

View File

@@ -149,6 +149,8 @@ OC.L10N.register(
"Filter by tag" : "Lọc theo nhãn",
"Filter by assigned user" : "Lọc theo người dùng được phân công",
"Unassigned" : "Chưa được phân công",
"Filter by status" : "Lọc theo trạng thái",
"Open and completed" : "Đã mở và hoàn thành",
"Open" : "Mở",
"Completed" : "Hoàn thành",
"Filter by due date" : "Lọc theo thời hạn",
@@ -161,7 +163,7 @@ OC.L10N.register(
"View Modes" : "Chế độ xem",
"Toggle View Modes" : "Chế độ xem chuyển đổi",
"Hide archived cards" : "Ẩn tác vụ đã lưu trữ",
"Show archived cards" : "Hin tác vụ đã lưu trữ",
"Show archived cards" : "Hin thị các thẻ đã lưu trữ",
"Toggle compact mode" : "Chuyển đổi chế độ thu gọn",
"Hide card cover images" : "Ẩn hình ảnh bìa thẻ",
"Show card cover images" : "Hiển thị hình ảnh bìa thẻ",
@@ -178,9 +180,12 @@ OC.L10N.register(
"Deleted lists" : "Danh sách đã bị xóa",
"Undo" : "Hoàn tác",
"Deleted cards" : "Thẻ đã xóa",
"Share board with a user, group or team …" : "Chia sẻ bảng với người dùng, nhóm hoặc đội ...",
"Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...",
"No participants found" : "Không tìm thấy người tham gia",
"Board owner" : "Chủ sở hữu bảng",
"(Group)" : "(Nhóm)",
"(Team)" : "(Đội)",
"Can edit" : "Có thể chỉnh sửa",
"Can share" : "Can share",
"Can manage" : "Có thể quản lý",
@@ -206,7 +211,9 @@ OC.L10N.register(
"title and color value must be provided" : "tiều đề và giá trị màu phải được cung cấp",
"Board name" : "Tên bảng",
"Members" : "Thành viên",
"Assign to users/groups/team" : "Gán cho người dùng/nhóm/đội",
"Assign a user to this card…" : "Gán một người dùng cho thẻ này...",
"Select a user to assign to this card…" : "Chọn một người dùng để gán cho thẻ này…",
"Upload new files" : "Tải lên các tệp mới",
"Share from Files" : "Chia sẻ từ Thư mục",
"Pending share" : "Chia sẻ đang chờ xử lý",
@@ -251,6 +258,7 @@ OC.L10N.register(
"Remove due date" : "Xóa thời hạn",
"Mark as done" : "Đánh dấu là đã hoàn thành",
"Due at:" : "Đến lúc:",
"Not done" : "Chưa hoàn thành",
"Unarchive card" : "Thẻ chưa lưu trữ",
"Archive card" : "Lưu trữ thẻ",
"Select Date" : "Chọn ngày",
@@ -259,6 +267,7 @@ OC.L10N.register(
"Set due date for this weekend" : "Đặt ngày hết hạn cho cuối tuần này",
"Set due date for next week" : "Đặt ngày hết hạn cho tuần sau",
"Assign a tag to this card…" : "Gán một \"thẻ phân biệt\" cho thẻ này ...",
"Select or create a tag…" : "Chọn hoặc tạo một thẻ…",
"Create a new tag:" : "Tạo một thẻ phân biệt mới:",
"(group)" : "(nhóm)",
"Next week {timeLocale}" : "Tuần sau - {timeLocale}",
@@ -273,6 +282,7 @@ OC.L10N.register(
"Card deleted" : "Thẻ đã bị xóa",
"seconds ago" : "vài giây trước",
"Keyboard shortcuts" : "Phím tắt",
"Boost your productivity using Deck with keyboard shortcuts." : "Tăng cường năng suất của bạn khi sử dụng Deck với các phím tắt.",
"Board actions" : "Hành động cho Bảng",
"Keyboard shortcut" : "Phím tắt bàn phím",
"Action" : "Hành động",
@@ -375,6 +385,7 @@ OC.L10N.register(
"List is empty" : "Danh sách trống",
"Limit deck usage of groups" : "Giới hạn việc sử dụng Kế Hoạch của các nhóm",
"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." : "Giới hạn của Kế Hoạch sẽ chặn người dùng không thuộc nhóm đó khỏi việc tạo bảng của riêng họ. Người dùng vẫn có thể làm việc trên các bảng đã được chia sẻ với họ.",
"Not completed" : "Chưa hoàn thành"
"Not completed" : "Chưa hoàn thành",
"Filter by completed" : "Lọc theo đã việc đã hoàn thành"
},
"nplurals=1; plural=0;");

View File

@@ -147,6 +147,8 @@
"Filter by tag" : "Lọc theo nhãn",
"Filter by assigned user" : "Lọc theo người dùng được phân công",
"Unassigned" : "Chưa được phân công",
"Filter by status" : "Lọc theo trạng thái",
"Open and completed" : "Đã mở và hoàn thành",
"Open" : "Mở",
"Completed" : "Hoàn thành",
"Filter by due date" : "Lọc theo thời hạn",
@@ -159,7 +161,7 @@
"View Modes" : "Chế độ xem",
"Toggle View Modes" : "Chế độ xem chuyển đổi",
"Hide archived cards" : "Ẩn tác vụ đã lưu trữ",
"Show archived cards" : "Hin tác vụ đã lưu trữ",
"Show archived cards" : "Hin thị các thẻ đã lưu trữ",
"Toggle compact mode" : "Chuyển đổi chế độ thu gọn",
"Hide card cover images" : "Ẩn hình ảnh bìa thẻ",
"Show card cover images" : "Hiển thị hình ảnh bìa thẻ",
@@ -176,9 +178,12 @@
"Deleted lists" : "Danh sách đã bị xóa",
"Undo" : "Hoàn tác",
"Deleted cards" : "Thẻ đã xóa",
"Share board with a user, group or team …" : "Chia sẻ bảng với người dùng, nhóm hoặc đội ...",
"Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...",
"No participants found" : "Không tìm thấy người tham gia",
"Board owner" : "Chủ sở hữu bảng",
"(Group)" : "(Nhóm)",
"(Team)" : "(Đội)",
"Can edit" : "Có thể chỉnh sửa",
"Can share" : "Can share",
"Can manage" : "Có thể quản lý",
@@ -204,7 +209,9 @@
"title and color value must be provided" : "tiều đề và giá trị màu phải được cung cấp",
"Board name" : "Tên bảng",
"Members" : "Thành viên",
"Assign to users/groups/team" : "Gán cho người dùng/nhóm/đội",
"Assign a user to this card…" : "Gán một người dùng cho thẻ này...",
"Select a user to assign to this card…" : "Chọn một người dùng để gán cho thẻ này…",
"Upload new files" : "Tải lên các tệp mới",
"Share from Files" : "Chia sẻ từ Thư mục",
"Pending share" : "Chia sẻ đang chờ xử lý",
@@ -249,6 +256,7 @@
"Remove due date" : "Xóa thời hạn",
"Mark as done" : "Đánh dấu là đã hoàn thành",
"Due at:" : "Đến lúc:",
"Not done" : "Chưa hoàn thành",
"Unarchive card" : "Thẻ chưa lưu trữ",
"Archive card" : "Lưu trữ thẻ",
"Select Date" : "Chọn ngày",
@@ -257,6 +265,7 @@
"Set due date for this weekend" : "Đặt ngày hết hạn cho cuối tuần này",
"Set due date for next week" : "Đặt ngày hết hạn cho tuần sau",
"Assign a tag to this card…" : "Gán một \"thẻ phân biệt\" cho thẻ này ...",
"Select or create a tag…" : "Chọn hoặc tạo một thẻ…",
"Create a new tag:" : "Tạo một thẻ phân biệt mới:",
"(group)" : "(nhóm)",
"Next week {timeLocale}" : "Tuần sau - {timeLocale}",
@@ -271,6 +280,7 @@
"Card deleted" : "Thẻ đã bị xóa",
"seconds ago" : "vài giây trước",
"Keyboard shortcuts" : "Phím tắt",
"Boost your productivity using Deck with keyboard shortcuts." : "Tăng cường năng suất của bạn khi sử dụng Deck với các phím tắt.",
"Board actions" : "Hành động cho Bảng",
"Keyboard shortcut" : "Phím tắt bàn phím",
"Action" : "Hành động",
@@ -373,6 +383,7 @@
"List is empty" : "Danh sách trống",
"Limit deck usage of groups" : "Giới hạn việc sử dụng Kế Hoạch của các nhóm",
"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." : "Giới hạn của Kế Hoạch sẽ chặn người dùng không thuộc nhóm đó khỏi việc tạo bảng của riêng họ. Người dùng vẫn có thể làm việc trên các bảng đã được chia sẻ với họ.",
"Not completed" : "Chưa hoàn thành"
"Not completed" : "Chưa hoàn thành",
"Filter by completed" : "Lọc theo đã việc đã hoàn thành"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -9,7 +9,6 @@ namespace OCA\Deck\AppInfo;
use Closure;
use Exception;
use OCA\Circles\Events\CircleDestroyedEvent;
use OCA\Deck\Activity\CommentEventHandler;
use OCA\Deck\Capabilities;
use OCA\Deck\Collaboration\Resources\ResourceProvider;
use OCA\Deck\Collaboration\Resources\ResourceProviderCard;
@@ -28,6 +27,7 @@ use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent;
use OCA\Deck\Listeners\BeforeTemplateRenderedListener;
use OCA\Deck\Listeners\CommentEventListener;
use OCA\Deck\Listeners\FullTextSearchEventListener;
use OCA\Deck\Listeners\LiveUpdateListener;
use OCA\Deck\Listeners\ParticipantCleanupListener;
@@ -56,7 +56,7 @@ use OCP\Collaboration\Reference\RenderReferenceEvent;
use OCP\Collaboration\Resources\IProviderManager;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
use OCP\Comments\CommentsEntityEvent;
use OCP\Comments\ICommentsManager;
use OCP\Comments\CommentsEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\GroupDeletedEvent;
use OCP\IConfig;
@@ -91,7 +91,6 @@ class Application extends App implements IBootstrap {
public function boot(IBootContext $context): void {
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEntity']));
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEventHandler']));
$context->injectFn(Closure::fromCallable([$this, 'registerCollaborationResources']));
$context->injectFn(function (IManager $shareManager) {
@@ -141,6 +140,7 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(AclCreatedEvent::class, FullTextSearchEventListener::class);
$context->registerEventListener(AclUpdatedEvent::class, FullTextSearchEventListener::class);
$context->registerEventListener(AclDeletedEvent::class, FullTextSearchEventListener::class);
$context->registerEventListener(CommentsEvent::class, CommentEventListener::class);
// Handling cache invalidation for collections
$context->registerEventListener(AclCreatedEvent::class, ResourceListener::class);
@@ -184,12 +184,6 @@ class Application extends App implements IBootstrap {
});
}
protected function registerCommentsEventHandler(ICommentsManager $commentsManager): void {
$commentsManager->registerEventHandler(function () {
return $this->getContainer()->query(CommentEventHandler::class);
});
}
protected function registerCollaborationResources(IProviderManager $resourceManager): void {
$resourceManager->registerResourceProvider(ResourceProvider::class);
$resourceManager->registerResourceProvider(ResourceProviderCard::class);

View File

@@ -113,7 +113,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
return parent::update($cardUpdate);
}
public function find($id): Card {
public function find($id, bool $enhance = true): Card {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_cards')
@@ -122,9 +122,11 @@ class CardMapper extends QBMapper implements IPermissionMapper {
->addOrderBy('id');
/** @var Card $card */
$card = $this->findEntity($qb);
$labels = $this->labelMapper->findAssignedLabelsForCard($card->getId());
$card->setLabels($labels);
$this->mapOwner($card);
if ($enhance) {
$labels = $this->labelMapper->findAssignedLabelsForCard($card->getId());
$card->setLabels($labels);
$this->mapOwner($card);
}
return $card;
}
@@ -560,12 +562,15 @@ class CardMapper extends QBMapper implements IPermissionMapper {
}
public function isOwner($userId, $id): bool {
$sql = 'SELECT owner FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_stacks` WHERE id IN (SELECT stack_id FROM `*PREFIX*deck_cards` WHERE id = ?))';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $id, \PDO::PARAM_INT, 0);
$stmt->execute();
$row = $stmt->fetch();
return ($row['owner'] === $userId);
$qb = $this->db->getQueryBuilder();
$qb->select('c.id')
->from($this->getTableName(), 'c')
->innerJoin('c', 'deck_stacks', 's', 'c.stack_id = s.id')
->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id')
->where($qb->expr()->eq('c.id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('b.owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)));
return count($qb->executeQuery()->fetchAll()) > 0;
}
public function findBoardId($id): ?int {

View File

@@ -1,43 +1,37 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Deck\Activity;
namespace OCA\Deck\Listeners;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Notification\NotificationHelper;
use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsEventHandler;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
class CommentEventHandler implements ICommentsEventHandler {
/** @template-implements IEventListener<CommentsEvent|Event> */
class CommentEventListener implements IEventListener {
/** @var ActivityManager */
private $activityManager;
/** @var NotificationHelper */
private $notificationHelper;
/** @var CardMapper */
private $cardMapper;
/** @var ChangeHelper */
private $changeHelper;
public function __construct(ActivityManager $activityManager, NotificationHelper $notificationHelper, CardMapper $cardMapper, ChangeHelper $changeHelper) {
$this->notificationHelper = $notificationHelper;
$this->activityManager = $activityManager;
$this->cardMapper = $cardMapper;
$this->changeHelper = $changeHelper;
public function __construct(
private ActivityManager $activityManager,
private NotificationHelper $notificationHelper,
private CardMapper $cardMapper,
private ChangeHelper $changeHelper,
) {
}
/**
* @param CommentsEvent $event
*/
public function handle(CommentsEvent $event) {
public function handle(Event $event): void {
if (!$event instanceof CommentsEvent) {
return;
}
if ($event->getComment()->getObjectType() !== 'deckCard') {
return;
}
@@ -61,20 +55,13 @@ class CommentEventHandler implements ICommentsEventHandler {
}
}
/**
* @param CommentsEvent $event
*/
private function activityHandler(CommentsEvent $event) {
/** @var IComment $comment */
private function activityHandler(CommentsEvent $event): void {
$comment = $event->getComment();
$card = $this->cardMapper->find($comment->getObjectId());
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_COMMENT_CREATE, ['comment' => $comment]);
}
/**
* @param CommentsEvent $event
*/
private function notificationHandler(CommentsEvent $event) {
private function notificationHandler(CommentsEvent $event): void {
$this->notificationHelper->sendMention($event->getComment());
}
}

View File

@@ -562,6 +562,11 @@ class BoardService {
foreach ($stacks as $stack) {
$newStack = new Stack();
$newStack->setTitle($stack->getTitle());
if ($stack->getOrder() == null) {
$newStack->setOrder(999);
} else {
$newStack->setOrder($stack->getOrder());
}
$newStack->setBoardId($newBoard->getId());
$this->stackMapper->insert($newStack);
}

View File

@@ -119,7 +119,7 @@ class PermissionService {
if ($permissions[$permission] === true) {
if (!$allowDeletedCard && $mapper instanceof CardMapper) {
$card = $mapper->find((int)$id);
$card = $mapper->find((int)$id, false);
if ($card->getDeletedAt() > 0) {
throw new NoPermissionException('Card is deleted');
}

View File

@@ -831,7 +831,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
$pathSections = explode('/', $data['path'], 2);
// FIXME: would not detect rare md5'd home storage case properly
if ($pathSections[0] !== 'files'
&& in_array(explode(':', $data['storage_string_id'], 2)[0], ['home', 'object'])) {
&& (strpos($data['storage_string_id'], 'home::') === 0 || strpos($data['storage_string_id'], 'object::user') === 0)) {
return false;
}
return true;

229
package-lock.json generated
View File

@@ -1,37 +1,37 @@
{
"name": "deck",
"version": "1.14.0-dev",
"version": "1.14.0-beta.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "deck",
"version": "1.14.0-dev",
"version": "1.14.0-beta.1",
"license": "agpl",
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.24.7",
"@babel/runtime": "^7.24.8",
"@nextcloud/auth": "^2.3.0",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/capabilities": "^1.2.0",
"@nextcloud/dialogs": "^5.3.2",
"@nextcloud/dialogs": "^5.3.5",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.4.0",
"@nextcloud/files": "^3.6.0",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/moment": "^1.3.1",
"@nextcloud/notify_push": "^1.3.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vue": "^8.12.0",
"@nextcloud/vue": "^8.14.0",
"blueimp-md5": "^2.19.0",
"chroma-js": "^2.4.2",
"dompurify": "^3.1.5",
"dompurify": "^3.1.6",
"lodash": "^4.17.21",
"markdown-it": "^14.1.0",
"markdown-it-link-attributes": "^4.0.1",
"markdown-it-task-checkbox": "^1.0.6",
"moment": "^2.30.1",
"nextcloud-vue-collections": "^0.12.0",
"nextcloud-vue-collections": "^0.13.0",
"p-queue": "^8.0.1",
"url-search-params-polyfill": "^8.2.5",
"vue": "^2.7.15",
@@ -52,10 +52,10 @@
"@nextcloud/eslint-config": "^8.4.1",
"@nextcloud/stylelint-config": "^3.0.1",
"@nextcloud/webpack-vue-config": "^6.0.0",
"@relative-ci/agent": "^4.2.8",
"@relative-ci/agent": "^4.2.9",
"@vue/test-utils": "^2.4.6",
"@vue/vue2-jest": "^29.2.6",
"cypress": "^13.11.0",
"cypress": "^13.13.1",
"eslint-plugin-cypress": "^3.3.0",
"eslint-webpack-plugin": "^4.2.0",
"jest": "^29.7.0",
@@ -65,7 +65,7 @@
},
"engines": {
"node": "^20.0.0",
"npm": "^9.0.0"
"npm": "^10.0.0"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -1917,9 +1917,9 @@
"peer": true
},
"node_modules/@babel/runtime": {
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
"version": "7.24.8",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz",
"integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1994,9 +1994,9 @@
"dev": true
},
"node_modules/@bundle-stats/plugin-webpack-validate": {
"version": "4.13.2",
"resolved": "https://registry.npmjs.org/@bundle-stats/plugin-webpack-validate/-/plugin-webpack-validate-4.13.2.tgz",
"integrity": "sha512-Rfdipz+uBsAIIDUo1D+ylD0RxXLCcznaxpodz9QCcd0/P5tkD8gnWh1MZcfZmLFaCnxvTyJMdKJHyjIJ7xyCbA==",
"version": "4.13.3",
"resolved": "https://registry.npmjs.org/@bundle-stats/plugin-webpack-validate/-/plugin-webpack-validate-4.13.3.tgz",
"integrity": "sha512-R7qGmWsWq5rhv/Zu6pS+d1S29gV1rxogl/udmbH/L4LysX+TxcotFENsCKn9J7nNBlmLyqDVZpynfGm14ywXjg==",
"dev": true,
"dependencies": {
"lodash": "4.17.21",
@@ -3525,21 +3525,22 @@
}
},
"node_modules/@nextcloud/dialogs": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-5.3.2.tgz",
"integrity": "sha512-aJdpyfx7ISR6xPVSvC/VCvGEplxQuMONNa37/rVgqflPETVl+ea5KPfApx7tXYQMQvoiIAkq1IwICmh9HYO28A==",
"version": "5.3.5",
"resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-5.3.5.tgz",
"integrity": "sha512-v2+M2zN90IqkZby7QZ575Ej/VsSQXcI6EurMVp51mRGLTeO2bJw8IVdfumDJhSA+3rn/nSHmkz3zWcHUInqzTg==",
"dependencies": {
"@mdi/js": "^7.4.47",
"@nextcloud/auth": "^2.3.0",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.4.1",
"@nextcloud/files": "^3.5.1",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/typings": "^1.8.0",
"@nextcloud/sharing": "^0.2.2",
"@nextcloud/typings": "^1.9.0",
"@types/toastify-js": "^1.12.3",
"@vueuse/core": "^10.10.0",
"@vueuse/core": "^10.11.0",
"cancelable-promise": "^4.3.1",
"toastify-js": "^1.12.0",
"vue-frag": "^1.4.3",
@@ -3696,17 +3697,20 @@
}
},
"node_modules/@nextcloud/files": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.4.1.tgz",
"integrity": "sha512-0riNodzy/epHRpjIR0uuibzu+WO5GEjYqc9HjifR7fGb4Umi7cNykX7vR5o6BoEg64eYEHau0I4wBUtX/vRssQ==",
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.6.0.tgz",
"integrity": "sha512-/3kzEJ1TsCgjkSVhjdI+FnF0c2rvYtiTAQPoNqkNQYFa7Vbor+XPuypBQIJZFMDMzEgUexAL4QuQT3YmeSfBAA==",
"dependencies": {
"@nextcloud/auth": "^2.3.0",
"@nextcloud/capabilities": "^1.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/logger": "^3.0.2",
"@nextcloud/paths": "^2.1.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/sharing": "^0.2.2",
"cancelable-promise": "^4.3.1",
"is-svg": "^5.0.1",
"typescript-event-target": "^1.1.1",
"webdav": "^5.6.0"
},
"engines": {
@@ -3846,6 +3850,18 @@
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/sharing": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.2.2.tgz",
"integrity": "sha512-ui0ZoVazroA+cF4+homhFSFAddd/P4uRYMfG3rw3QR8o6igrVFe0f0l21kYtUwXU0oC0K4v3k8j93zCTfz6v3g==",
"dependencies": {
"@nextcloud/initial-state": "^2.2.0"
},
"engines": {
"node": "^20.0.0",
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/stylelint-config": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.0.1.tgz",
@@ -3861,14 +3877,24 @@
"stylelint-config-recommended-vue": "^1.5.0"
}
},
"node_modules/@nextcloud/typings": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.8.0.tgz",
"integrity": "sha512-q9goE0wc+1BCI9Ku0MebCHmqOMwz2K7ESKQrcHDs6O+HqbKA8zGiEtXL5XGrMS7Ovtl1YOIwxlP9kEvgvXt52Q==",
"node_modules/@nextcloud/timezones": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nextcloud/timezones/-/timezones-0.1.1.tgz",
"integrity": "sha512-ldLuLyz605sszetnp6jy6mtlThu4ICKsZThxHIZwn6t4QzjQH3xr+k8mRU7GIvKq9egUFDqBp4gBjxm3/ROZig==",
"dependencies": {
"@types/jquery": "3.5.16",
"vue": "^2.7.15",
"vue-router": "<4"
"ical.js": "^2.0.1"
},
"engines": {
"node": "^20.0.0",
"npm": "^10.0.0"
}
},
"node_modules/@nextcloud/typings": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.9.1.tgz",
"integrity": "sha512-i0l/L5gKW8EACbXHVxXM6wn3sUhY2qmnL2OijppzU4dENC7/hqySMQDer7/+cJbNSNG7uHF/Z+9JmHtDfRfuGg==",
"dependencies": {
"@types/jquery": "3.5.16"
},
"engines": {
"node": "^20.0.0",
@@ -3876,27 +3902,27 @@
}
},
"node_modules/@nextcloud/vue": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.12.0.tgz",
"integrity": "sha512-MHL12+XGIDvpsSdrJn79pYKYrTVUouEymc4No91lKTNZTWDN6bciDSprmMs553hECXrqj7sfwxu6sepj0zcR3Q==",
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.14.0.tgz",
"integrity": "sha512-hB3dG7tZWpItC74PfbTLW02754qYXFDH+h7Ksq6b7e8WlhnKLWrhNGKhSpNDt9/g+vb5bSIOxbiDZIJZ63hAuQ==",
"dependencies": {
"@floating-ui/dom": "^1.1.0",
"@linusborg/vue-simple-portal": "^0.1.5",
"@nextcloud/auth": "^2.2.1",
"@nextcloud/axios": "^2.4.0",
"@nextcloud/browser-storage": "^0.4.0",
"@nextcloud/calendar-js": "^7.0.0",
"@nextcloud/capabilities": "^1.1.0",
"@nextcloud/event-bus": "^3.1.0",
"@nextcloud/initial-state": "^2.1.0",
"@nextcloud/l10n": "^3.0.1",
"@nextcloud/logger": "^3.0.1",
"@nextcloud/router": "^3.0.0",
"@nextcloud/timezones": "^0.1.1",
"@nextcloud/vue-select": "^3.25.0",
"@vueuse/components": "^10.9.0",
"@vueuse/core": "^10.9.0",
"clone": "^2.1.2",
"debounce": "2.0.0",
"debounce": "2.1.0",
"dompurify": "^3.0.5",
"emoji-mart-vue-fast": "^15.0.1",
"escape-html": "^1.0.3",
@@ -3920,6 +3946,7 @@
"vue": "^2.7.16",
"vue-color": "^2.8.1",
"vue-frag": "^1.4.3",
"vue-router": "^3.6.5",
"vue2-datepicker": "^3.11.0"
},
"engines": {
@@ -3951,19 +3978,6 @@
"@floating-ui/core": "^1.0.5"
}
},
"node_modules/@nextcloud/vue/node_modules/@nextcloud/calendar-js": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@nextcloud/calendar-js/-/calendar-js-7.0.0.tgz",
"integrity": "sha512-CvCcO4hFPjMfIB2AKW0QLNYukGoHFS7QQVvIC8khJjzNfVGS6qMJd2oaZtD9Q9w1fLpvwp1X7orcYGYmosDkAA==",
"engines": {
"node": "^20.0.0",
"npm": "^10.0.0"
},
"peerDependencies": {
"ical.js": "^2.0.1",
"uuid": "^9.0.0"
}
},
"node_modules/@nextcloud/vue/node_modules/@types/unist": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
@@ -4047,19 +4061,6 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/@nextcloud/vue/node_modules/uuid": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
"peer": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/@nextcloud/vue/node_modules/vfile": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
@@ -4185,16 +4186,16 @@
}
},
"node_modules/@relative-ci/agent": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/@relative-ci/agent/-/agent-4.2.8.tgz",
"integrity": "sha512-GbmBZ1LlMkLGkypOakINfSfsrI5l0USom7EFqv9EPHmcKhxWu0TIrnTBhIGPO29A8m9yLKIz9ZTzHCA1ROKF1Q==",
"version": "4.2.9",
"resolved": "https://registry.npmjs.org/@relative-ci/agent/-/agent-4.2.9.tgz",
"integrity": "sha512-VrpE0eHi6DMVnfS5epTzo6Z9aGC3l7QuwqP/h2NQrpKMyXfLjqBrYNVzttHueIqxvLP9FzBXmpYm7OxjcTYJuQ==",
"dev": true,
"dependencies": {
"@bundle-stats/plugin-webpack-filter": "4.13.2",
"@bundle-stats/plugin-webpack-validate": "4.13.2",
"@bundle-stats/plugin-webpack-filter": "4.13.3",
"@bundle-stats/plugin-webpack-validate": "4.13.3",
"core-js": "3.37.1",
"cosmiconfig": "9.0.0",
"debug": "4.3.4",
"debug": "4.3.5",
"dotenv": "16.4.5",
"env-ci": "7.3.0",
"fs-extra": "11.2.0",
@@ -4218,9 +4219,9 @@
}
},
"node_modules/@relative-ci/agent/node_modules/@bundle-stats/plugin-webpack-filter": {
"version": "4.13.2",
"resolved": "https://registry.npmjs.org/@bundle-stats/plugin-webpack-filter/-/plugin-webpack-filter-4.13.2.tgz",
"integrity": "sha512-FU1i0DYBhIzY2hElvKSSEdazka4lpc9zP2zAYGmOmYkF6g4Omz+1DWH6a7MZv0cZhee8yIxaRNGkGy1R/llmtQ==",
"version": "4.13.3",
"resolved": "https://registry.npmjs.org/@bundle-stats/plugin-webpack-filter/-/plugin-webpack-filter-4.13.3.tgz",
"integrity": "sha512-jMMt2Hz5FgHMBT+52L2zsB14RJBLVjV9UxnFhpd8iH1JWgxTvQFmUG/FpubMdzhIXZx6QAHFslrtCSExgMYgtQ==",
"dev": true,
"engines": {
"node": ">= 14.0"
@@ -7717,9 +7718,9 @@
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
},
"node_modules/cypress": {
"version": "13.11.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.11.0.tgz",
"integrity": "sha512-NXXogbAxVlVje4XHX+Cx5eMFZv4Dho/2rIcdBHg9CNPFUGZdM4cRdgIgM7USmNYsC12XY0bZENEQ+KBk72fl+A==",
"version": "13.13.1",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.1.tgz",
"integrity": "sha512-8F9UjL5MDUdgC/S5hr8CGLHbS5gGht5UOV184qc2pFny43fnkoaKxlzH/U6//zmGu/xRTaKimNfjknLT8+UDFg==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -7762,7 +7763,7 @@
"request-progress": "^3.0.0",
"semver": "^7.5.3",
"supports-color": "^8.1.1",
"tmp": "~0.2.1",
"tmp": "~0.2.3",
"untildify": "^4.0.0",
"yauzl": "^2.10.0"
},
@@ -7981,9 +7982,9 @@
"license": "MIT"
},
"node_modules/debounce": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-2.0.0.tgz",
"integrity": "sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-2.1.0.tgz",
"integrity": "sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==",
"engines": {
"node": ">=18"
},
@@ -7992,9 +7993,9 @@
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
"dependencies": {
"ms": "2.1.2"
},
@@ -8342,9 +8343,9 @@
}
},
"node_modules/dompurify": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz",
"integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA=="
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
"integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ=="
},
"node_modules/domutils": {
"version": "3.1.0",
@@ -11224,8 +11225,7 @@
"node_modules/ical.js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ical.js/-/ical.js-2.0.1.tgz",
"integrity": "sha512-uYYb1CwTXbd9NP/xTtgQZ5ivv6bpUjQu9VM98s3X78L3XRu00uJW5ZtmnLwyxhztpf5fSiRyDpFW7ZNCePlaPw==",
"peer": true
"integrity": "sha512-uYYb1CwTXbd9NP/xTtgQZ5ivv6bpUjQu9VM98s3X78L3XRu00uJW5ZtmnLwyxhztpf5fSiRyDpFW7ZNCePlaPw=="
},
"node_modules/iconv-lite": {
"version": "0.4.24",
@@ -15609,13 +15609,14 @@
"integrity": "sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA=="
},
"node_modules/nextcloud-vue-collections": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/nextcloud-vue-collections/-/nextcloud-vue-collections-0.12.0.tgz",
"integrity": "sha512-8qcvLfGcPlqafgidUi4Pxdn1C62WuLWpHRK0FxZ26uptbPJvjWBZbd/EVZbw1geYAAyW2tSOVuuYNemuolibJw==",
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/nextcloud-vue-collections/-/nextcloud-vue-collections-0.13.0.tgz",
"integrity": "sha512-J5n2Kf9h/HVKFM0YdcHnNcbbqSossq7ocQwC9fHFs87/5iKgkUMPmVmla6uTKZHUKYCNnKSJtG7pDOWD4AP47A==",
"dependencies": {
"@nextcloud/axios": "^2.4.0",
"@nextcloud/router": "^2.2.1",
"@nextcloud/vue": "^8.5.1",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vue": "^8.12.0",
"lodash-es": "^4.17.21"
},
"engines": {
@@ -15626,29 +15627,6 @@
"vue": "^2.7.16"
}
},
"node_modules/nextcloud-vue-collections/node_modules/@nextcloud/router": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-2.2.1.tgz",
"integrity": "sha512-ZRc/WI0RaksEJMz08H/6LimIdP+1A1xTHThCYEghs7VgAKNp5917vT2OKSpG0cMRbIwk0ongFVt5FB5qjy/iFg==",
"dependencies": {
"@nextcloud/typings": "^1.7.0",
"core-js": "^3.6.4"
},
"engines": {
"node": "^20.0.0",
"npm": "^10.0.0"
}
},
"node_modules/nextcloud-vue-collections/node_modules/core-js": {
"version": "3.35.1",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.1.tgz",
"integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/node-domexception": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
@@ -17680,6 +17658,7 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"peer": true,
"dependencies": {
"glob": "^7.1.3"
},
@@ -19291,15 +19270,12 @@
}
},
"node_modules/tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true,
"dependencies": {
"rimraf": "^3.0.0"
},
"engines": {
"node": ">=8.17.0"
"node": ">=14.14"
}
},
"node_modules/tmpl": {
@@ -19698,6 +19674,11 @@
"node": ">=14.17"
}
},
"node_modules/typescript-event-target": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.1.tgz",
"integrity": "sha512-dFSOFBKV6uwaloBCCUhxlD3Pr/P1a/tJdcmPrTXCHlEFD3faj0mztjcGn6VBAhQ0/Bdy8K3VWrrqwbt/ffsYsg=="
},
"node_modules/typo-js": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.0.tgz",

View File

@@ -1,7 +1,7 @@
{
"name": "deck",
"description": "",
"version": "1.14.0-dev",
"version": "1.14.0-beta.1",
"authors": [
{
"name": "Julius Härtl",
@@ -31,28 +31,28 @@
},
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.24.7",
"@babel/runtime": "^7.24.8",
"@nextcloud/auth": "^2.3.0",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/capabilities": "^1.2.0",
"@nextcloud/dialogs": "^5.3.2",
"@nextcloud/dialogs": "^5.3.5",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.4.0",
"@nextcloud/files": "^3.6.0",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/moment": "^1.3.1",
"@nextcloud/notify_push": "^1.3.0",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vue": "^8.12.0",
"@nextcloud/vue": "^8.14.0",
"blueimp-md5": "^2.19.0",
"chroma-js": "^2.4.2",
"dompurify": "^3.1.5",
"dompurify": "^3.1.6",
"lodash": "^4.17.21",
"markdown-it": "^14.1.0",
"markdown-it-link-attributes": "^4.0.1",
"markdown-it-task-checkbox": "^1.0.6",
"moment": "^2.30.1",
"nextcloud-vue-collections": "^0.12.0",
"nextcloud-vue-collections": "^0.13.0",
"p-queue": "^8.0.1",
"url-search-params-polyfill": "^8.2.5",
"vue": "^2.7.15",
@@ -80,10 +80,10 @@
"@nextcloud/eslint-config": "^8.4.1",
"@nextcloud/stylelint-config": "^3.0.1",
"@nextcloud/webpack-vue-config": "^6.0.0",
"@relative-ci/agent": "^4.2.8",
"@relative-ci/agent": "^4.2.9",
"@vue/test-utils": "^2.4.6",
"@vue/vue2-jest": "^29.2.6",
"cypress": "^13.11.0",
"cypress": "^13.13.1",
"eslint-plugin-cypress": "^3.3.0",
"eslint-webpack-plugin": "^4.2.0",
"jest": "^29.7.0",

View File

@@ -120,7 +120,7 @@ export default {
margin-left: 10px;
}
.activity--message {
margin-left: 44px;
margin-left: var(--default-clickable-area);
color: var(--color-text-light);
margin-bottom: 10px;
}

View File

@@ -476,8 +476,8 @@ export default {
.controls {
display: flex;
margin: 5px;
height: 44px;
padding-left: 44px;
height: var(--default-clickable-area);
padding-left: var(--default-clickable-area);
.board-title {
display: flex;
@@ -507,8 +507,8 @@ export default {
#app-navigation-toggle-custom {
position: static;
width: 44px;
height: 44px;
width: var(--default-clickable-area);
height: var(--default-clickable-area);
cursor: pointer;
opacity: 1;
display: inline-block !important;
@@ -567,8 +567,8 @@ export default {
.filter-button {
padding: 0;
border-radius: 50%;
width: 44px;
height: 44px;
width: var(--default-clickable-area);
height: var(--default-clickable-area);
&[data-popper-shown] {
background-color: var(--color-background-hover);

View File

@@ -56,7 +56,7 @@ export default {
<style scoped lang="scss">
.avatar-list {
min-height: 44px;
min-height: var(--default-clickable-area);
align-items: center;
padding-right: 0.5em;
border: none;

View File

@@ -250,7 +250,7 @@ export default {
.board {
padding-left: $board-spacing;
position: relative;
max-height: calc(100% - 44px);
max-height: calc(100% - var(--default-clickable-area));
overflow: hidden;
overflow-x: auto;
flex-grow: 1;

View File

@@ -1,6 +1,6 @@
<!--
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<template>
@@ -100,3 +100,12 @@ export default {
},
}
</script>
<style scoped lang="scss">
:deep {
.app-sidebar-tabs__tab-caption,
.app-sidebar-tabs__nav .checkbox-content__text {
white-space: normal !important;
}
}
</style>

View File

@@ -4,7 +4,7 @@
-->
<template>
<div>
<h3>{{ t('deck', 'Deleted lists') }}</h3>
<h5>{{ t('deck', 'Deleted lists') }}</h5>
<ul>
<li v-for="deletedStack in deletedStacks" :key="deletedStack.id">
<span class="icon icon-deck" />
@@ -18,7 +18,7 @@
</li>
</ul>
<h3>{{ t('deck', 'Deleted cards') }}</h3>
<h5>{{ t('deck', 'Deleted cards') }}</h5>
<ul>
<li v-for="deletedCard in deletedCards" :key="deletedCard.id">
<div class="icon icon-deck" />
@@ -102,7 +102,7 @@ export default {
}
* {
flex-basis: 44px;
flex-basis: var(--default-clickable-area);
}
.title {

View File

@@ -1,6 +1,6 @@
<!--
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<template>
@@ -261,7 +261,7 @@ export default {
},
startEditing(stack) {
if (this.dragging) {
return
return
}
this.copiedStack = Object.assign({}, stack)
@@ -322,7 +322,7 @@ export default {
padding-left: $card-spacing;
padding-right: $card-spacing;
cursor: grab;
min-height: 44px;
min-height: var(--default-clickable-area);
// Smooth fade out of the cards at the top
&:before {
@@ -374,6 +374,7 @@ export default {
border-radius: 3px;
margin: 6px;
padding: 4px 4px;
font-size: 120%;
&:focus-visible {
outline: 2px solid var(--color-border-dark);
@@ -384,10 +385,17 @@ export default {
form {
margin: 2px 0;
}
:deep {
.action-item,
.v-popper--theme-dropdown {
display: flex;
}
}
}
.stack__card-add {
height: 44px;
height: var(--default-clickable-area);
flex-shrink: 0;
z-index: 100;
display: flex;

View File

@@ -173,7 +173,7 @@ export default {
}
</script>
<style scoped lang="scss">
$clickable-area: 44px;
$clickable-area: var(--default-clickable-area);
.labels li {
display: flex;

View File

@@ -62,7 +62,7 @@ export default {
<style lang="scss">
.board-list {
margin-top: -44px;
margin-top: - var(--default-clickable-area); //@TODO
.board-list-row {
align-items: center;
@@ -77,7 +77,7 @@ export default {
.board-list-header-row {
color: var(--color-text-lighter);
height: 44px;
height: var(--default-clickable-area);
}
.board-list-bullet-cell,

View File

@@ -253,10 +253,10 @@ export default {
gap: calc(var(--default-grid-baseline) * 3);
.icon-upload, .icon-folder {
padding-left: 44px;
padding-left: var(--default-clickable-area);
background-position: 16px center;
flex-grow: 1;
height: 44px;
height: var(--default-clickable-area);
margin-bottom: 12px;
text-align: left;
}
@@ -291,7 +291,7 @@ export default {
li.attachment {
display: flex;
padding: 3px;
min-height: 44px;
min-height: var(--default-clickable-area);
&.deleted {
opacity: .5;
@@ -339,7 +339,7 @@ export default {
}
}
button.icon-history {
width: 44px;
width: var(--default-clickable-area);
}
progress {
margin-top: 3px;

View File

@@ -221,7 +221,7 @@ section.app-sidebar__tab--active {
right: 0;
max-width: calc(100% - #{$modal-padding * 2});
padding: 0 14px;
height: auto;
height: 97%;
overflow: initial;
user-select: text;
-webkit-user-select: text;

View File

@@ -213,7 +213,7 @@ export default {
@import '../../css/comments';
.reply {
margin: 0 0 0 44px;
margin: 0 0 0 var(--default-clickable-area);
&.reply--preview {
margin: 4px 0;

View File

@@ -187,7 +187,6 @@ export default {
},
onUpdate: ({ markdown }) => {
if (this.description === markdown) {
this.descriptionLastEdit = 0
return
}
this.description = markdown
@@ -283,7 +282,9 @@ export default {
return
}
this.descriptionSaving = true
await this.$store.dispatch('updateCardDesc', { ...this.card, description: this.description })
if (this.card.id !== undefined) {
await this.$store.dispatch('updateCardDesc', { ...this.card, description: this.description })
}
this.$emit('change', this.description)
this.descriptionLastEdit = 0
this.descriptionSaving = false
@@ -366,7 +367,7 @@ h5 {
}
.description__text :deep(.ProseMirror) {
padding-bottom: 44px;
padding-bottom: var(--default-clickable-area);
}
</style>
@@ -422,6 +423,6 @@ h5 {
}
.modal__card .description__text .text-menubar {
top: 142px !important;
top: 0;
}
</style>

View File

@@ -338,7 +338,7 @@ export default {
}
}
.card-menu {
height: 44px;
height: var(--default-clickable-area);
align-self: end;
}
}
@@ -391,7 +391,7 @@ export default {
}
.compact {
min-height: 44px;
min-height: var(--default-clickable-area);
.duedate {
margin-right: 0;

View File

@@ -73,7 +73,7 @@ export default {
.board-create {
order: 1;
display: flex;
height: 44px;
height: var(--default-clickable-area);
form {
display: flex;
@@ -86,8 +86,8 @@ export default {
}
.app-navigation-entry-bullet-wrapper {
width: 44px;
height: 44px;
width: var(--default-clickable-area);
height: var(--default-clickable-area);
.color0 {
width: 30px !important;
margin: 5px;

View File

@@ -319,10 +319,10 @@ export default {
<style lang="scss" scoped>
.board-edit {
margin-left: 44px;
margin-left: var(--default-clickable-area);
order: 1;
display: flex;
height: 44px;
height: var(--default-clickable-area);
form {
display: flex;
@@ -335,8 +335,8 @@ export default {
}
.app-navigation-entry-bullet-wrapper {
width: 44px;
height: 44px;
width: var(--default-clickable-area);
height: var(--default-clickable-area);
.color0 {
width: 30px !important;
margin: 5px;

View File

@@ -158,7 +158,7 @@ export default {
.overview {
position: relative;
height: calc(100% - 44px);
height: calc(100% - var(--default-clickable-area));
overflow-x: scroll;
display: flex;
align-items: stretch;

View File

@@ -59,7 +59,7 @@ export default {
<style lang="scss" scoped>
@import '../../css/variables';
$clickable-area: 44px;
$clickable-area: var(--default-clickable-area);
.card--placeholder {
width: $stack-width;

View File

@@ -9,7 +9,7 @@
.editor__content:deep {
flex-grow: 1;
margin-left: 44px;
margin-left: var(--default-clickable-area);
.ProseMirror {
width: 100%;
@@ -17,8 +17,8 @@
}
input[type='submit'] {
width: 44px;
height: 44px;
width: var(--default-clickable-area);
height: var(--default-clickable-area);
margin: 0;
padding: 13px;
background-color: transparent;
@@ -51,6 +51,6 @@
}
.comment--content {
margin-left: 44px;
margin-left: var(--default-clickable-area);
word-break: break-word;
}

View File

@@ -2,6 +2,7 @@
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
const rawToParsed = (text) => {
text = text.replace(/<br>/g, '\n')
text = text.replace(/&nbsp;/g, ' ')

View File

@@ -2,6 +2,7 @@
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
const xmlToJson = (xml) => {
let obj = {}
if (xml.nodeType === 1) {

View File

@@ -18,8 +18,6 @@ Vue.prototype.OC = OC
window.addEventListener('DOMContentLoaded', () => {
if (OCA.Sharing && OCA.Sharing.ShareSearch) {
OCA.Sharing.ShareSearch.addNewResult(FileSharingPicker)
} else {
console.error('OCA.Sharing.ShareSearch not ready')
}
window.OCP.Collaboration.registerType('deck', {

View File

@@ -2,7 +2,7 @@
"require-dev": {
"phpunit/phpunit": "~9",
"behat/behat": "~3.14.0",
"guzzlehttp/guzzle": "7.8.1",
"guzzlehttp/guzzle": "7.9.1",
"jarnaiz/behat-junit-formatter": "^1.3",
"sabre/dav": "4.6.0",
"symfony/event-dispatcher": "~5.4"

View File

@@ -21,8 +21,9 @@
*
*/
namespace OCA\Deck\Activity;
namespace OCA\Deck\Listeners;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
@@ -31,9 +32,9 @@ use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment;
use PHPUnit\Framework\TestCase;
class CommentEventHandlerTest extends TestCase {
class CommentEventListenerTest extends TestCase {
/** @var CommentEventHandler */
/** @var CommentEventListener */
private $commentEventHandler;
/** @var ActivityManager */
private $activityManager;
@@ -49,7 +50,7 @@ class CommentEventHandlerTest extends TestCase {
$this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->cardMapper = $this->createMock(CardMapper::class);
$this->changeHelper = $this->createMock(ChangeHelper::class);
$this->commentEventHandler = new CommentEventHandler(
$this->commentEventHandler = new CommentEventListener(
$this->activityManager,
$this->notificationHelper,
$this->cardMapper,