Compare commits
89 Commits
chore/prop
...
fix/2749-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5439304c49 | ||
|
|
210b4a2033 | ||
|
|
876b769f34 | ||
|
|
0d876b4bc9 | ||
|
|
21248b4d1e | ||
|
|
c7e9ac7bce | ||
|
|
9bc601c7a9 | ||
|
|
76594bf95c | ||
|
|
a6914124ca | ||
|
|
a072cc0502 | ||
|
|
f5eb7dc213 | ||
|
|
31e8a4092f | ||
|
|
6baa938fcd | ||
|
|
b9e53951be | ||
|
|
b81b92b1bc | ||
|
|
a1f850573c | ||
|
|
aa4bc9de24 | ||
|
|
78fc485239 | ||
|
|
d81c2ad0bc | ||
|
|
a7f479092d | ||
|
|
18346382c9 | ||
|
|
bc827c6f00 | ||
|
|
8af8e80b17 | ||
|
|
9c82b34bdf | ||
|
|
463475fb88 | ||
|
|
7d295bee80 | ||
|
|
f2699d61c7 | ||
|
|
ed290f048d | ||
|
|
4f9507b4ad | ||
|
|
89da0d2f47 | ||
|
|
42589fe001 | ||
|
|
aaad943e27 | ||
|
|
5abee105fa | ||
|
|
a01d17843f | ||
|
|
e1ad1ae138 | ||
|
|
0a51aaedd6 | ||
|
|
9842b0dba3 | ||
|
|
f0be9749b7 | ||
|
|
a2676bce7a | ||
|
|
93b405d84a | ||
|
|
aa345fe8d0 | ||
|
|
1c89cf8284 | ||
|
|
b4111b00ef | ||
|
|
fa915f7dbe | ||
|
|
19e35fdee4 | ||
|
|
6dfb01fa02 | ||
|
|
df5b5690a0 | ||
|
|
2a4ea73023 | ||
|
|
9c5498a050 | ||
|
|
24a1666c36 | ||
|
|
de5c625e86 | ||
|
|
544581bbdc | ||
|
|
3852119f4f | ||
|
|
fd540be9c2 | ||
|
|
cfcfaad6c6 | ||
|
|
040df707b2 | ||
|
|
4a00ce2e45 | ||
|
|
80a51d64b6 | ||
|
|
c741c1190b | ||
|
|
2f5d39fc5b | ||
|
|
a6b31d6a5f | ||
|
|
261e6d0362 | ||
|
|
8ceed06aca | ||
|
|
02f63d9967 | ||
|
|
206a735c55 | ||
|
|
ab94a5cc32 | ||
|
|
4b2c191e21 | ||
|
|
d4ea088cd2 | ||
|
|
979c1be7f3 | ||
|
|
ea4655b24e | ||
|
|
3250efc1f4 | ||
|
|
cfcb6b740b | ||
|
|
7d29de246e | ||
|
|
efd9c0e105 | ||
|
|
6e508e380b | ||
|
|
5da9ed378a | ||
|
|
c13c1e8730 | ||
|
|
b0dcfd2a77 | ||
|
|
57012e92b9 | ||
|
|
668493e87c | ||
|
|
1734dd0c05 | ||
|
|
7296366d85 | ||
|
|
3f7f345932 | ||
|
|
a49fa73afa | ||
|
|
24ec34ca49 | ||
|
|
ca50052a8b | ||
|
|
9956a2a8b7 | ||
|
|
a61a1d6dcf | ||
|
|
3c5ca27eb8 |
@@ -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",
|
||||
|
||||
4
.github/workflows/appbuild.yml
vendored
4
.github/workflows/appbuild.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/appstore-build-publish.yml
vendored
4
.github/workflows/appstore-build-publish.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
|
||||
4
.github/workflows/cypress.yml
vendored
4
.github/workflows/cypress.yml
vendored
@@ -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 }}
|
||||
|
||||
2
.github/workflows/integration.yml
vendored
2
.github/workflows/integration.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/lint-eslint.yml
vendored
2
.github/workflows/lint-eslint.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
2
.github/workflows/lint-php-cs.yml
vendored
2
.github/workflows/lint-php-cs.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/lint-php.yml
vendored
2
.github/workflows/lint-php.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/lint-stylelint.yml
vendored
2
.github/workflows/lint-stylelint.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
2
.github/workflows/nodejs.yml
vendored
2
.github/workflows/nodejs.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/npm-audit-fix.yml
vendored
4
.github/workflows/npm-audit-fix.yml
vendored
@@ -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"
|
||||
|
||||
2
.github/workflows/phpunit-mysql.yml
vendored
2
.github/workflows/phpunit-mysql.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/phpunit-pgsql.yml
vendored
2
.github/workflows/phpunit-pgsql.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/phpunit-sqlite.yml
vendored
2
.github/workflows/phpunit-sqlite.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/psalm.yml
vendored
2
.github/workflows/psalm.yml
vendored
@@ -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
|
||||
|
||||
8
.github/workflows/reuse.yml
vendored
8
.github/workflows/reuse.yml
vendored
@@ -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
|
||||
|
||||
@@ -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@3a349b20acc6235b856fb0b1c95a36cb5373da2f # main
|
||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
4
.github/workflows/update-nextcloud-ocp.yml
vendored
4
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -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"
|
||||
|
||||
16
.reuse/dep5
16
.reuse/dep5
@@ -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
|
||||
@@ -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
24
REUSE.toml
Normal 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"
|
||||
43
composer.lock
generated
43
composer.lock
generated
@@ -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": "13c7fcd3f86213789ab064e3e1bf58e9d5133db6"
|
||||
},
|
||||
"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/13c7fcd3f86213789ab064e3e1bf58e9d5133db6",
|
||||
"reference": "13c7fcd3f86213789ab064e3e1bf58e9d5133db6",
|
||||
"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-13T00:37:22+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",
|
||||
|
||||
10
css/deck.css
10
css/deck.css
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
2
docs/index.md.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
@@ -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?",
|
||||
|
||||
@@ -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?",
|
||||
|
||||
21
l10n/gl.js
21
l10n/gl.js
@@ -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,6 +150,7 @@ OC.L10N.register(
|
||||
"Filter by assigned user" : "Filtrar polo usuario asignado",
|
||||
"Unassigned" : "Sen asignar",
|
||||
"Filter by status" : "Filtrar polo estado",
|
||||
"Open and completed" : "Aberto e rematado",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Completado",
|
||||
"Filter by due date" : "Filtrar pola data de caducidade",
|
||||
@@ -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);");
|
||||
|
||||
21
l10n/gl.json
21
l10n/gl.json
@@ -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,6 +148,7 @@
|
||||
"Filter by assigned user" : "Filtrar polo usuario asignado",
|
||||
"Unassigned" : "Sen asignar",
|
||||
"Filter by status" : "Filtrar polo estado",
|
||||
"Open and completed" : "Aberto e rematado",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Completado",
|
||||
"Filter by due date" : "Filtrar pola data de caducidade",
|
||||
@@ -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);"
|
||||
}
|
||||
@@ -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" : "新しいカードを作成する",
|
||||
|
||||
@@ -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" : "新しいカードを作成する",
|
||||
|
||||
246
l10n/ko.js
246
l10n/ko.js
@@ -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)" : "(그룹)",
|
||||
"(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;");
|
||||
|
||||
246
l10n/ko.json
246
l10n/ko.json
@@ -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)" : "(그룹)",
|
||||
"(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;"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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" : "Додај таблу",
|
||||
|
||||
@@ -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" : "Додај таблу",
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
224
package-lock.json
generated
224
package-lock.json
generated
@@ -10,28 +10,28 @@
|
||||
"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.5.1",
|
||||
"@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.0",
|
||||
"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,19 @@
|
||||
}
|
||||
},
|
||||
"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.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.5.1.tgz",
|
||||
"integrity": "sha512-GkVWUgkBSVt27Carmp/DbnDiqHq03w3VQWt8xszacp/IQSB9G+8/KCvi8zxldac2q7lQ8NpHlB/Bqy8o+OOc0A==",
|
||||
"dependencies": {
|
||||
"@nextcloud/auth": "^2.3.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.1",
|
||||
"cancelable-promise": "^4.3.1",
|
||||
"is-svg": "^5.0.1",
|
||||
"typescript-event-target": "^1.1.1",
|
||||
"webdav": "^5.6.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -3846,6 +3849,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 +3876,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 +3901,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 +3945,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 +3977,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 +4060,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 +4185,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 +4218,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 +7717,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.0",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz",
|
||||
"integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
@@ -7762,7 +7762,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 +7981,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 +7992,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 +8342,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 +11224,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 +15608,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 +15626,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 +17657,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 +19269,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 +19673,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",
|
||||
|
||||
16
package.json
16
package.json
@@ -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.5.1",
|
||||
"@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.0",
|
||||
"eslint-plugin-cypress": "^3.3.0",
|
||||
"eslint-webpack-plugin": "^4.2.0",
|
||||
"jest": "^29.7.0",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -173,7 +173,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
$clickable-area: 44px;
|
||||
$clickable-area: var(--default-clickable-area);
|
||||
|
||||
.labels li {
|
||||
display: flex;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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(/ /g, ' ')
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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', {
|
||||
|
||||
@@ -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,
|
||||
Reference in New Issue
Block a user