Compare commits
101 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7cb41cd61b | ||
|
|
3d78802446 | ||
|
|
8a99e6d539 | ||
|
|
0e08ad16e1 | ||
|
|
d04ab25315 | ||
|
|
19d35c65a0 | ||
|
|
1783914d3a | ||
|
|
c837dd4db6 | ||
|
|
db22052729 | ||
|
|
116babcaaf | ||
|
|
86d42b7060 | ||
|
|
122387a195 | ||
|
|
028f26a969 | ||
|
|
13c13b8dde | ||
|
|
5df4a49ff5 | ||
|
|
97902d2f6a | ||
|
|
db6221d1c9 | ||
|
|
0223dd9a3a | ||
|
|
974a4c979a | ||
|
|
51ba51fe33 | ||
|
|
4d5c69f250 | ||
|
|
9bddab4928 | ||
|
|
6dcb1d4b8b | ||
|
|
9ed384fa20 | ||
|
|
7cdc79a9ef | ||
|
|
852770c574 | ||
|
|
74afeb85d0 | ||
|
|
12a494720b | ||
|
|
b3261e0b56 | ||
|
|
88dbb010d0 | ||
|
|
d8adaf5fe6 | ||
|
|
2a36b45072 | ||
|
|
4e6474fa99 | ||
|
|
dbe7536339 | ||
|
|
b5e08110ab | ||
|
|
a7f2558aab | ||
|
|
3c3e6fa7d2 | ||
|
|
6a2b092ad6 | ||
|
|
5f2c300b21 | ||
|
|
439e44128a | ||
|
|
55056e27f1 | ||
|
|
22c36a0d77 | ||
|
|
1ebaa0c41f | ||
|
|
a2dbb94179 | ||
|
|
6f6f54965c | ||
|
|
5a833ec367 | ||
|
|
f1161be49f | ||
|
|
c0731ce142 | ||
|
|
4534ad5a92 | ||
|
|
6788210c27 | ||
|
|
1051dea281 | ||
|
|
eb9fce2e5f | ||
|
|
955a16f1c5 | ||
|
|
f38773473b | ||
|
|
b15254f1ed | ||
|
|
6dd623f796 | ||
|
|
41e97d7281 | ||
|
|
1b2a352df1 | ||
|
|
7fcad2425d | ||
|
|
5fb43086b6 | ||
|
|
7b4586a43a | ||
|
|
aaa76f7bd0 | ||
|
|
8260296d64 | ||
|
|
b02bc530f1 | ||
|
|
1b4e859431 | ||
|
|
acc61ad584 | ||
|
|
cb1d5c49e0 | ||
|
|
0c7b1c4731 | ||
|
|
629ef85d64 | ||
|
|
914f1d76ac | ||
|
|
0923070c45 | ||
|
|
bbf51952e0 | ||
|
|
1d1c2df8f3 | ||
|
|
0780b10170 | ||
|
|
fd6ef9b6eb | ||
|
|
da4a54900c | ||
|
|
53bd32d6b6 | ||
|
|
f7fa419105 | ||
|
|
023ab01e93 | ||
|
|
615d5ef871 | ||
|
|
a52b7b9742 | ||
|
|
dcbc6bc604 | ||
|
|
ce13d89e07 | ||
|
|
7114b10871 | ||
|
|
100404d25f | ||
|
|
60bfc192d3 | ||
|
|
fd090c7749 | ||
|
|
d735308bd3 | ||
|
|
4ec068ca62 | ||
|
|
f5e3e5e0f8 | ||
|
|
94aee3e07a | ||
|
|
b1f7c623a1 | ||
|
|
afa95d3c50 | ||
|
|
ba8e77abfe | ||
|
|
8c09047203 | ||
|
|
baa85e8947 | ||
|
|
f1e5acc52e | ||
|
|
d76b7a4667 | ||
|
|
df32a3ee34 | ||
|
|
2fa74662db | ||
|
|
d5fd80d116 |
17
.github/dependabot.yml
vendored
17
.github/dependabot.yml
vendored
@@ -13,6 +13,23 @@ updates:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable31
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable30
|
||||
versioning-strategy: lockfile-only
|
||||
|
||||
4
.github/workflows/appbuild.yml
vendored
4
.github/workflows/appbuild.yml
vendored
@@ -18,13 +18,13 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.1.0
|
||||
uses: actions/setup-node@v4.3.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@2.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer
|
||||
|
||||
2
.github/workflows/appstore-build-publish.yml
vendored
2
.github/workflows/appstore-build-publish.yml
vendored
@@ -87,7 +87,7 @@ jobs:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
|
||||
6
.github/workflows/cypress-e2e.yml
vendored
6
.github/workflows/cypress-e2e.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
node-version: [20.x]
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.2' ]
|
||||
server-versions: [ 'stable31' ]
|
||||
server-versions: [ 'master' ]
|
||||
|
||||
env:
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.1.0
|
||||
uses: actions/setup-node@v4.3.0
|
||||
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.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
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.31.1
|
||||
uses: shivammathur/setup-php@2.32.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
|
||||
|
||||
4
.github/workflows/lint-php-cs.yml
vendored
4
.github/workflows/lint-php-cs.yml
vendored
@@ -33,8 +33,8 @@ jobs:
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
- name: Set up php${{ steps.versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
2
.github/workflows/lint-php.yml
vendored
2
.github/workflows/lint-php.yml
vendored
@@ -48,7 +48,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
2
.github/workflows/nodejs.yml
vendored
2
.github/workflows/nodejs.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.1.0
|
||||
uses: actions/setup-node@v4.3.0
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
|
||||
14
.github/workflows/npm-audit-fix.yml
vendored
14
.github/workflows/npm-audit-fix.yml
vendored
@@ -14,6 +14,9 @@ on:
|
||||
# At 2:30 on Sundays
|
||||
- cron: '30 2 * * 0'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -21,15 +24,18 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
branches: ['main', 'master', 'stable31', 'stable30', 'stable29']
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -51,7 +57,7 @@ jobs:
|
||||
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
|
||||
|
||||
- name: Run npm ci and npm run build
|
||||
if: always()
|
||||
if: steps.checkout.outcome == 'success'
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
@@ -59,8 +65,8 @@ jobs:
|
||||
npm run build --if-present
|
||||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(deps): Fix npm audit'
|
||||
|
||||
2
.github/workflows/phpunit-mysql.yml
vendored
2
.github/workflows/phpunit-mysql.yml
vendored
@@ -103,7 +103,7 @@ jobs:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
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
@@ -106,7 +106,7 @@ jobs:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
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
@@ -95,7 +95,7 @@ jobs:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
|
||||
5
.github/workflows/pr-feedback.yml
vendored
5
.github/workflows/pr-feedback.yml
vendored
@@ -15,8 +15,13 @@ on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
pr-feedback:
|
||||
if: ${{ github.repository_owner == 'nextcloud' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: The get-github-handles-from-website action
|
||||
|
||||
4
.github/workflows/psalm.yml
vendored
4
.github/workflows/psalm.yml
vendored
@@ -35,8 +35,8 @@ jobs:
|
||||
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
|
||||
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
|
||||
|
||||
- name: Set up php${{ steps.versions.outputs.php-available }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
- name: Set up php${{ steps.versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: ${{ steps.versions.outputs.php-min }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
6
.github/workflows/update-nextcloud-ocp.yml
vendored
6
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
branches: ['main', 'master', 'stable31', 'stable30', 'stable29']
|
||||
|
||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Set up php8.2
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2.32.0
|
||||
with:
|
||||
php-version: 8.2
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -107,7 +107,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
||||
|
||||
30
CHANGELOG.md
30
CHANGELOG.md
@@ -5,36 +5,6 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.15.1
|
||||
### Fixed
|
||||
* [stable31] fix: Properly show attachment extension by @backportbot in https://github.com/nextcloud/deck/pull/6701
|
||||
* [stable31] Clear selected stack when selected board changed by @backportbot in https://github.com/nextcloud/deck/pull/6915
|
||||
* [stable31] fix: Use strings as rich object ids by @backportbot in https://github.com/nextcloud/deck/pull/6951
|
||||
* [stable31] fix: Limit label actions to labels of the cards board by @backportbot in https://github.com/nextcloud/deck/pull/6954
|
||||
* [stable31] fix: only delete assignments on unshared board by @grnd-alt in https://github.com/nextcloud/deck/pull/6934
|
||||
|
||||
### Improvements
|
||||
* [stable31] perf: Skip doing a query just to check if a board is deleted by @backportbot in https://github.com/nextcloud/deck/pull/6894
|
||||
|
||||
## 1.15.0
|
||||
### Fixed
|
||||
- Fix: Adapt URLs generated in the backend to new routes #6743
|
||||
- Fix npm audit #6719
|
||||
- Fix: skip exporting a deleted card #6723
|
||||
|
||||
## 1.15.0-beta.2
|
||||
|
||||
### Added
|
||||
|
||||
- feat: Implement reference resolving for cards that have a link in the title @juliusknorr [#6286](https://github.com/nextcloud/deck/pull/6286)
|
||||
|
||||
### Other
|
||||
|
||||
- Remove old project from README @edent [#6658](https://github.com/nextcloud/deck/pull/6658)
|
||||
- devcontainer(image): Fix package path @niclasheinz [#6653](https://github.com/nextcloud/deck/pull/6653)
|
||||
- remove deprecated nextcloud-vue-collections @grnd-alt [#6664](https://github.com/nextcloud/deck/pull/6664)
|
||||
- fix: set cypress ci server version to stable31 @grnd-alt [#6705](https://github.com/nextcloud/deck/pull/6705)
|
||||
|
||||
## 1.15.0-beta.1
|
||||
### Fixed
|
||||
- fix: Catch not found card @juliusknorr [#6646](https://github.com/nextcloud/deck/pull/6646)
|
||||
|
||||
@@ -12,7 +12,7 @@ SPDX-FileCopyrightText = "none"
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
|
||||
[[annotations]]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg"]
|
||||
path = ["l10n/**.js", "l10n/**.json", "js/**.js.map", "js/**.js", "js/**.mjs", "js/**.mjs.map", "js/templates/**.handlebars", "lib/Service/Importer/fixtures/config-deckJson-schema.json", "lib/Service/Importer/fixtures/config-trelloApi-schema.json", "lib/Service/Importer/fixtures/config-trelloJson-schema.json", "lib/Service/fixtures/default-board.json", "screenshots/screenshot1.png", "src/assets/file-placeholder.svg", "img/favicon.ico", "img/favicon.png", "img/favicon.svg", "img/activity.svg", "img/activity-dark.svg", "img/deck.svg", "img/deck-current.svg", "img/deck-dark.svg", "img/details-white.svg", "img/card.svg", "img/sample-image.jpg"]
|
||||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2019 Nextcloud GmbH and Nextcloud contributors"
|
||||
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.15.1</version>
|
||||
<version>2.0.0-dev.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Deck</namespace>
|
||||
@@ -42,7 +42,7 @@
|
||||
<database min-version="9.4">pgsql</database>
|
||||
<database>sqlite</database>
|
||||
<database min-version="8.0">mysql</database>
|
||||
<nextcloud min-version="31" max-version="31"/>
|
||||
<nextcloud min-version="32" max-version="32"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
|
||||
12
composer.lock
generated
12
composer.lock
generated
@@ -492,16 +492,16 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||
"reference": "ed23f703c172ba167a62a76f7b2d8a6b4e37f44f"
|
||||
"reference": "1abf593d27ecd373a9fcbbe87cfdd899ad3fee8b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/ed23f703c172ba167a62a76f7b2d8a6b4e37f44f",
|
||||
"reference": "ed23f703c172ba167a62a76f7b2d8a6b4e37f44f",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/1abf593d27ecd373a9fcbbe87cfdd899ad3fee8b",
|
||||
"reference": "1abf593d27ecd373a9fcbbe87cfdd899ad3fee8b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~8.1 || ~8.2 || ~8.3",
|
||||
"php": "~8.1 || ~8.2 || ~8.3 || ~8.4",
|
||||
"psr/clock": "^1.0",
|
||||
"psr/container": "^2.0.2",
|
||||
"psr/event-dispatcher": "^1.0",
|
||||
@@ -511,7 +511,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "31.0.0-dev"
|
||||
"dev-master": "32.0.0-dev"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@@ -533,7 +533,7 @@
|
||||
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
|
||||
},
|
||||
"time": "2025-01-10T00:44:36+00:00"
|
||||
"time": "2025-03-08T00:36:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
|
||||
@@ -87,8 +87,8 @@ describe('Card', function () {
|
||||
cy.get('.modal-mask.card-selector button.button-vue--vue-primary').should('be.visible').click()
|
||||
cy.wait('@save', { timeout: 7000 })
|
||||
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
cy.reload()
|
||||
cy.visit(`/apps/deck/#/board/${boardId}`)
|
||||
cy.get('.board .stack').eq(0).within(() => {
|
||||
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
|
||||
})
|
||||
@@ -374,9 +374,6 @@ describe('Card', function () {
|
||||
|
||||
cy.get('.app-sidebar-header .action-item__menutoggle').click()
|
||||
cy.get('.v-popper__popper button:contains("Move/copy card")').click()
|
||||
cy.get('.vs__dropdown-menu span[title="MyTestBoard"]').should('be.visible').click()
|
||||
cy.get('[data-cy="select-stack"] .vs__dropdown-toggle').should('be.visible').click()
|
||||
cy.get('.vs__dropdown-menu span[title="TestList"]').should('be.visible').click()
|
||||
cy.get('.modal-container button:contains("Copy card")').click()
|
||||
cy.wait('@clone', { timeout: 7000 })
|
||||
cy.get('.card:contains("Hello world")').should('have.length', 2)
|
||||
|
||||
@@ -22,10 +22,10 @@ describe('Deck dashboard', function() {
|
||||
.should($el => expect($el.text().trim()).to.equal('Upcoming cards'))
|
||||
})
|
||||
|
||||
it('Can see the default "Personal Board" created for user by default', function() {
|
||||
it('Can see the default "Welcome Board" created for user by default', function() {
|
||||
cy.visit('/apps/deck')
|
||||
|
||||
const defaultBoard = 'Personal'
|
||||
const defaultBoard = 'Welcome to Nextcloud Deck!'
|
||||
|
||||
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
|
||||
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
|
||||
|
||||
BIN
img/sample-image.jpg
Normal file
BIN
img/sample-image.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
@@ -8,7 +8,7 @@ OC.L10N.register(
|
||||
"The file was uploaded" : "Kaset eo bet ar restr",
|
||||
"No file was uploaded" : "N'eus restr ebet a zo bet kaset",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Cancel" : "Arrest",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
"Open" : "Digeriñ",
|
||||
"Completed" : "Achuet",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"The file was uploaded" : "Kaset eo bet ar restr",
|
||||
"No file was uploaded" : "N'eus restr ebet a zo bet kaset",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Deizat fall, stumm an deizat a zo ret bezhañ BBBB-MM-DD",
|
||||
"Cancel" : "Nullañ",
|
||||
"Cancel" : "Arrest",
|
||||
"Drop your files to upload" : "Laoskit ho restroù evit pellkas",
|
||||
"Open" : "Digeriñ",
|
||||
"Completed" : "Achuet",
|
||||
|
||||
@@ -201,7 +201,6 @@ OC.L10N.register(
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Enter" : "Indtast",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
|
||||
@@ -199,7 +199,6 @@
|
||||
"Shift" : "Shift",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Søg",
|
||||
"Enter" : "Indtast",
|
||||
"All boards" : "Alle tavler",
|
||||
"Archived boards" : "Arkiverede lister",
|
||||
"Shared with you" : "Delt med dig",
|
||||
|
||||
18
l10n/de.js
18
l10n/de.js
@@ -123,7 +123,7 @@ OC.L10N.register(
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert ist.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Card details" : "Kartendetails",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
@@ -186,7 +186,7 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -238,7 +238,7 @@ OC.L10N.register(
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -258,8 +258,8 @@ OC.L10N.register(
|
||||
"Add Attachment" : "Anhang anhängen",
|
||||
"Choose attachment" : "Anhang auswählen",
|
||||
"Select Date" : "Datum auswählen",
|
||||
"Later today – {timeLocale}" : "Später heute – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf später heute setzen",
|
||||
"Later today – {timeLocale}" : "Heute noch – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
|
||||
"Tomorrow – {timeLocale}" : "Morgen – {timeLocale}",
|
||||
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
|
||||
"This weekend – {timeLocale}" : "Dieses Wochenende – {timeLocale}",
|
||||
@@ -270,9 +270,9 @@ OC.L10N.register(
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fällig am:",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
"Unarchive card" : "Karte dearchivieren",
|
||||
"Archive card" : "Karte archivieren",
|
||||
@@ -292,7 +292,7 @@ OC.L10N.register(
|
||||
"Delete card" : "Karte löschen",
|
||||
"seconds ago" : "Gerade eben",
|
||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Mit Tastaturkürzeln die Produktivität in Deck erhöhen.",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Erhöhe mit Tastaturkürzeln deine Produktivität in Deck.",
|
||||
"Board actions" : "Boardaktionen",
|
||||
"Keyboard shortcut" : "Tastaturkürzel",
|
||||
"Action" : "Aktion",
|
||||
@@ -386,7 +386,7 @@ OC.L10N.register(
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
18
l10n/de.json
18
l10n/de.json
@@ -121,7 +121,7 @@
|
||||
"Path is already shared with this card" : "Pfad wurde bereits mit dieser Karte geteilt",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
|
||||
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert ist.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit deinem Team mit Kommentaren\n- ⚡ Behalte den Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere dein Projekt",
|
||||
"Add board" : "Board hinzufügen",
|
||||
"Card details" : "Kartendetails",
|
||||
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
|
||||
@@ -184,7 +184,7 @@
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchtest du wirklich das Board {title} an {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -236,7 +236,7 @@
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Laden der Kommentare ist fehlgeschlagen",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -256,8 +256,8 @@
|
||||
"Add Attachment" : "Anhang anhängen",
|
||||
"Choose attachment" : "Anhang auswählen",
|
||||
"Select Date" : "Datum auswählen",
|
||||
"Later today – {timeLocale}" : "Später heute – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf später heute setzen",
|
||||
"Later today – {timeLocale}" : "Heute noch – {timeLocale}",
|
||||
"Set due date for later today" : "Fälligkeitsdatum auf heute noch setzen",
|
||||
"Tomorrow – {timeLocale}" : "Morgen – {timeLocale}",
|
||||
"Set due date for tomorrow" : "Fälligkeitsdatum auf morgen setzen",
|
||||
"This weekend – {timeLocale}" : "Dieses Wochenende – {timeLocale}",
|
||||
@@ -268,9 +268,9 @@
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fällig am:",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
"Unarchive card" : "Karte dearchivieren",
|
||||
"Archive card" : "Karte archivieren",
|
||||
@@ -290,7 +290,7 @@
|
||||
"Delete card" : "Karte löschen",
|
||||
"seconds ago" : "Gerade eben",
|
||||
"Keyboard shortcuts" : "Tastaturkürzel",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Mit Tastaturkürzeln die Produktivität in Deck erhöhen.",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Erhöhe mit Tastaturkürzeln deine Produktivität in Deck.",
|
||||
"Board actions" : "Boardaktionen",
|
||||
"Keyboard shortcut" : "Tastaturkürzel",
|
||||
"Action" : "Aktion",
|
||||
@@ -384,7 +384,7 @@
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -22,7 +22,7 @@ OC.L10N.register(
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Sie haben die Liste {before} auf dem Board {board} in {stack} umbenannt",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} hat die Liste {before} in {stack} auf dem Board {board} umbenannt",
|
||||
"You have deleted list {stack} on board {board}" : "Sie haben die Liste {stack} auf dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} entfernt",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} gelöscht",
|
||||
@@ -61,8 +61,8 @@ OC.L10N.register(
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} gelöscht",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} gelöscht",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
|
||||
@@ -186,7 +186,7 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie wirklich das Board {title} auf {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen.",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -238,7 +238,7 @@ OC.L10N.register(
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -270,7 +270,7 @@ OC.L10N.register(
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
@@ -386,7 +386,7 @@ OC.L10N.register(
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"You have renamed list {before} to {stack} on board {board}" : "Sie haben die Liste {before} auf dem Board {board} in {stack} umbenannt",
|
||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} hat die Liste {before} in {stack} auf dem Board {board} umbenannt",
|
||||
"You have deleted list {stack} on board {board}" : "Sie haben die Liste {stack} auf dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} gelöscht",
|
||||
"{user} has deleted list {stack} on board {board}" : "{user} hat die Liste {stack} aus dem Board {board} entfernt",
|
||||
"You have created card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"{user} has created card {card} in list {stack} on board {board}" : "{user} hat die Karte {card} in der Liste {stack} auf dem Board {board} erstellt",
|
||||
"You have deleted card {card} in list {stack} on board {board}" : "Sie haben die Karte {card} in der Liste {stack} auf dem Board {board} gelöscht",
|
||||
@@ -59,8 +59,8 @@
|
||||
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
|
||||
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"{user} has updated the attachment {attachment} on card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} gelöscht",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} gelöscht",
|
||||
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
|
||||
"{user} has deleted the attachment {attachment} from card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
|
||||
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
|
||||
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
|
||||
@@ -184,7 +184,7 @@
|
||||
"Deleted lists" : "Gelöschte Listen",
|
||||
"Undo" : "Rückgängig",
|
||||
"Deleted cards" : "Gelöschte Karten",
|
||||
"Failed to create share with {displayName}" : "Freigabe mit dem Namen {displayName} konnte nicht erstellt werden",
|
||||
"Failed to create share with {displayName}" : "Fehler beim Erstellen der Freigabe mit dem Namen {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Möchten Sie wirklich das Board {title} auf {user} übertragen?",
|
||||
"Transfer the board." : "Board übertragen.",
|
||||
"Transfer" : "Übertragen",
|
||||
@@ -236,7 +236,7 @@
|
||||
"Open in bigger view" : "In größerer Ansicht öffnen",
|
||||
"Attachments" : "Anhänge",
|
||||
"Comments" : "Kommentare",
|
||||
"Failed to load comments" : "Kommentare konnten nicht geladen werden",
|
||||
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
|
||||
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginnen Sie die Diskussion!",
|
||||
"The comment cannot be empty." : "Der Kommentar darf nicht leer sein.",
|
||||
"The comment cannot be longer than 1000 characters." : "Der Kommentar darf nicht länger als 1000 Zeichen sein.",
|
||||
@@ -268,7 +268,7 @@
|
||||
"Set a due date" : "Ein Ablaufdatum setzen",
|
||||
"Add due date" : "Fälligkeitsdatum hinzufügen",
|
||||
"Choose a date" : "Datum auswählen",
|
||||
"Remove due date" : "Fälligkeitsdatum entfernen",
|
||||
"Remove due date" : "Fälligkeitsdatum löschen",
|
||||
"Mark as done" : "Als erledigt markieren",
|
||||
"Due at:" : "Fallig am:",
|
||||
"Not done" : "Nicht erledigt",
|
||||
@@ -384,7 +384,7 @@
|
||||
"Create a card" : "Eine Karte erstellen",
|
||||
"Message from {author} in {conversationName}" : "Nachricht von {author} in {conversationName}",
|
||||
"Something went wrong" : "Etwas ist schiefgelaufen",
|
||||
"Failed to upload {name}" : "{name} konnte nicht hochgeladen werden",
|
||||
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
|
||||
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
|
||||
"Error creating the share" : "Fehler beim Erstellen der Freigabe",
|
||||
"Share with a Deck card" : "Mit einer Deck-Karte teilen",
|
||||
|
||||
@@ -6,7 +6,6 @@ OC.L10N.register(
|
||||
"Finished" : "Lõpetatud",
|
||||
"Later" : "Hiljem",
|
||||
"copy" : "koopia",
|
||||
"To Do" : "Tegemiseks",
|
||||
"Done" : "Valmis",
|
||||
"The file was uploaded" : "Fail laaditi üles",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Üleslaetud fail on suurem, kui php.ini failis määratud upload_max_filesize",
|
||||
@@ -20,8 +19,6 @@ OC.L10N.register(
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"File already exists" : "Fail on juba olemas",
|
||||
"Add list" : "Lisa loend",
|
||||
"List name" : "Nimekirja nimi",
|
||||
"Active filters" : "Aktiivsed filtrid",
|
||||
"Open" : "Ava",
|
||||
"Completed" : "Lõpetatud",
|
||||
@@ -37,9 +34,7 @@ OC.L10N.register(
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Omanik",
|
||||
"Delete" : "Kustuta",
|
||||
"Delete list" : "Kustuta loend",
|
||||
"Edit" : "Redigeeri",
|
||||
"Members" : "Liikmed",
|
||||
"Invalid path selected" : "Vigane asukoht on valitud",
|
||||
"Upload new files" : "Laadi uued failid üles",
|
||||
"Share from Files" : "Jaga failirakendusest",
|
||||
@@ -59,33 +54,23 @@ OC.L10N.register(
|
||||
"Comments" : "Kommentaarid",
|
||||
"Save" : "Salvesta",
|
||||
"Created:" : "Loodud:",
|
||||
"Cancel reply" : "Katkesta vastamine",
|
||||
"Reply" : "Vasta",
|
||||
"Update" : "Uuenda",
|
||||
"Description" : "Kirjeldus",
|
||||
"Mark as done" : "Märgi tehtuks",
|
||||
"(group)" : "(grupp)",
|
||||
"Edit title" : "Muuda pealkirja",
|
||||
"Delete card" : "Kustuta kaart",
|
||||
"seconds ago" : "sekundit tagasi",
|
||||
"Keyboard shortcuts" : "Klaviatuuri otseteed",
|
||||
"Keyboard shortcut" : "Klaviatuuri otsetee",
|
||||
"Action" : "Tegevus",
|
||||
"Shift" : "Nihuta",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Otsi",
|
||||
"Shared with you" : "Sinuga jagatud",
|
||||
"Cancel edit" : "Loobu muutmisest",
|
||||
"No reminder" : "Meeldetuletust pole",
|
||||
"An error occurred" : "Tekkis tõrge",
|
||||
"No notifications" : "Märguandeid pole",
|
||||
"Advanced options" : "Täpsemad valikud",
|
||||
"Today" : "Täna",
|
||||
"Tomorrow" : "Homme",
|
||||
"No results found" : "Otsingutulemusi ei leidu",
|
||||
"Due on {date}" : "Tähtaeg: {date}",
|
||||
"Close" : "Sulge",
|
||||
"Error creating the share" : "Viga jaosmeedia loomisel",
|
||||
"Share" : "Jaga",
|
||||
"Personal" : "Isiklik"
|
||||
},
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
"Finished" : "Lõpetatud",
|
||||
"Later" : "Hiljem",
|
||||
"copy" : "koopia",
|
||||
"To Do" : "Tegemiseks",
|
||||
"Done" : "Valmis",
|
||||
"The file was uploaded" : "Fail laaditi üles",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Üleslaetud fail on suurem, kui php.ini failis määratud upload_max_filesize",
|
||||
@@ -18,8 +17,6 @@
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"File already exists" : "Fail on juba olemas",
|
||||
"Add list" : "Lisa loend",
|
||||
"List name" : "Nimekirja nimi",
|
||||
"Active filters" : "Aktiivsed filtrid",
|
||||
"Open" : "Ava",
|
||||
"Completed" : "Lõpetatud",
|
||||
@@ -35,9 +32,7 @@
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Omanik",
|
||||
"Delete" : "Kustuta",
|
||||
"Delete list" : "Kustuta loend",
|
||||
"Edit" : "Redigeeri",
|
||||
"Members" : "Liikmed",
|
||||
"Invalid path selected" : "Vigane asukoht on valitud",
|
||||
"Upload new files" : "Laadi uued failid üles",
|
||||
"Share from Files" : "Jaga failirakendusest",
|
||||
@@ -57,33 +52,23 @@
|
||||
"Comments" : "Kommentaarid",
|
||||
"Save" : "Salvesta",
|
||||
"Created:" : "Loodud:",
|
||||
"Cancel reply" : "Katkesta vastamine",
|
||||
"Reply" : "Vasta",
|
||||
"Update" : "Uuenda",
|
||||
"Description" : "Kirjeldus",
|
||||
"Mark as done" : "Märgi tehtuks",
|
||||
"(group)" : "(grupp)",
|
||||
"Edit title" : "Muuda pealkirja",
|
||||
"Delete card" : "Kustuta kaart",
|
||||
"seconds ago" : "sekundit tagasi",
|
||||
"Keyboard shortcuts" : "Klaviatuuri otseteed",
|
||||
"Keyboard shortcut" : "Klaviatuuri otsetee",
|
||||
"Action" : "Tegevus",
|
||||
"Shift" : "Nihuta",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Otsi",
|
||||
"Shared with you" : "Sinuga jagatud",
|
||||
"Cancel edit" : "Loobu muutmisest",
|
||||
"No reminder" : "Meeldetuletust pole",
|
||||
"An error occurred" : "Tekkis tõrge",
|
||||
"No notifications" : "Märguandeid pole",
|
||||
"Advanced options" : "Täpsemad valikud",
|
||||
"Today" : "Täna",
|
||||
"Tomorrow" : "Homme",
|
||||
"No results found" : "Otsingutulemusi ei leidu",
|
||||
"Due on {date}" : "Tähtaeg: {date}",
|
||||
"Close" : "Sulge",
|
||||
"Error creating the share" : "Viga jaosmeedia loomisel",
|
||||
"Share" : "Jaga",
|
||||
"Personal" : "Isiklik"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
|
||||
@@ -90,7 +90,7 @@ OC.L10N.register(
|
||||
"Deck boards, cards and comments" : "Tableaux, cartes et commentaires de Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, dans %2$s / %3$s, appartenant à %4$s",
|
||||
"Create a new deck card" : "Créer une nouvelle carte Deck",
|
||||
"Card comments" : "Commentaires des cartes",
|
||||
"Card comments" : "Commentaires de la carte",
|
||||
"%s on %s" : "%s sur %s",
|
||||
"Deck boards and cards" : "Tableaux et cartes de Deck",
|
||||
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
|
||||
@@ -347,7 +347,7 @@ OC.L10N.register(
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||
"Clone cards" : "Dupliquer les cartes",
|
||||
"Clone cards" : "Dupliquer des cartes",
|
||||
"Clone assignments" : "Cloner les affectations",
|
||||
"Clone labels" : "Cloner les étiquettes",
|
||||
"Clone due dates" : "Cloner les dates d'échéance",
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
"Deck boards, cards and comments" : "Tableaux, cartes et commentaires de Deck",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, dans %2$s / %3$s, appartenant à %4$s",
|
||||
"Create a new deck card" : "Créer une nouvelle carte Deck",
|
||||
"Card comments" : "Commentaires des cartes",
|
||||
"Card comments" : "Commentaires de la carte",
|
||||
"%s on %s" : "%s sur %s",
|
||||
"Deck boards and cards" : "Tableaux et cartes de Deck",
|
||||
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
|
||||
@@ -345,7 +345,7 @@
|
||||
"No notifications" : "Aucune notification",
|
||||
"Delete board" : "Supprimer le tableau",
|
||||
"Clone {boardTitle}" : "Cloner {boardTitle}",
|
||||
"Clone cards" : "Dupliquer les cartes",
|
||||
"Clone cards" : "Dupliquer des cartes",
|
||||
"Clone assignments" : "Cloner les affectations",
|
||||
"Clone labels" : "Cloner les étiquettes",
|
||||
"Clone due dates" : "Cloner les dates d'échéance",
|
||||
|
||||
@@ -43,10 +43,10 @@ OC.L10N.register(
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} nustatė galutinį kortelės {card} terminą į {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "Jūs atnaujinote galutinį kortelės {card} terminą į {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} atnaujino galutinį kortelės {card} terminą į {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymą {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymą {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymą {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymą {label}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymę {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymę {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymę {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymę {label}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Jūs lentoje {board} prie kortelės {card} priskyrėte {assigneduser}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} lentoje {board} prie kortelės {card} priskyrė {assigneduser}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Jūs perkėlėte kortelę {card} iš sąrašo {stackBefore} į sąrašą {stack}",
|
||||
@@ -120,9 +120,8 @@ OC.L10N.register(
|
||||
"List name" : "Sąrašo pavadinimas",
|
||||
"Active filters" : "Aktyvūs filtrai",
|
||||
"Apply filter" : "Taikyti filtrą",
|
||||
"Filter by tag" : "Filtruoti pagal žymą",
|
||||
"Filter by tag" : "Filtruoti pagal žymę",
|
||||
"Filter by assigned user" : "Filtruoti pagal priskirtą naudotoją",
|
||||
"Open and completed" : "Atidaryta ir atlikta",
|
||||
"Open" : "Atverti",
|
||||
"Completed" : "Užbaigta",
|
||||
"Filter by due date" : "Filtruoti pagal galutinio termino datą",
|
||||
@@ -141,7 +140,7 @@ OC.L10N.register(
|
||||
"Board not found" : "Lenta nerasta",
|
||||
"Create a new list to add cards to this board" : "Norėdami pridėti korteles į šią lentą, sukurkite naują sąrašą",
|
||||
"Sharing" : "Bendrinimas",
|
||||
"Tags" : "Žymos",
|
||||
"Tags" : "Žymės",
|
||||
"Deleted items" : "Ištrinti elementai",
|
||||
"Activity" : "Veikla",
|
||||
"Deleted lists" : "Ištrinti sąrašai",
|
||||
@@ -166,7 +165,7 @@ OC.L10N.register(
|
||||
"Card name" : "Kortelės pavadinimas",
|
||||
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
|
||||
"Edit" : "Taisyti",
|
||||
"Add a new tag" : "Pridėti naują žymą",
|
||||
"Add a new tag" : "Pridėti naują žymę",
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Members" : "Nariai",
|
||||
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
|
||||
@@ -214,7 +213,7 @@ OC.L10N.register(
|
||||
"Mark as done" : "Žymėti kaip atliktą",
|
||||
"Unarchive card" : "Išarchyvuoti kortelę",
|
||||
"Archive card" : "Archyvuoti kortelę",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymą…",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
|
||||
"(group)" : "(grupė)",
|
||||
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
|
||||
"Open link" : "Atverti nuorodą",
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} nustatė galutinį kortelės {card} terminą į {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "Jūs atnaujinote galutinį kortelės {card} terminą į {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} atnaujino galutinį kortelės {card} terminą į {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymą {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymą {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymą {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymą {label}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} į kortelę {card} pridėjote žymę {label}",
|
||||
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} į kortelę {card} pridėjo žymę {label}",
|
||||
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Jūs lentoje {board}, sąraše {stack} iš kortelės {card} pašalinote žymę {label}",
|
||||
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} lentoje {board}, sąraše {stack} iš kortelės {card} pašalino žymę {label}",
|
||||
"You have assigned {assigneduser} to card {card} on board {board}" : "Jūs lentoje {board} prie kortelės {card} priskyrėte {assigneduser}",
|
||||
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} lentoje {board} prie kortelės {card} priskyrė {assigneduser}",
|
||||
"You have moved the card {card} from list {stackBefore} to {stack}" : "Jūs perkėlėte kortelę {card} iš sąrašo {stackBefore} į sąrašą {stack}",
|
||||
@@ -118,9 +118,8 @@
|
||||
"List name" : "Sąrašo pavadinimas",
|
||||
"Active filters" : "Aktyvūs filtrai",
|
||||
"Apply filter" : "Taikyti filtrą",
|
||||
"Filter by tag" : "Filtruoti pagal žymą",
|
||||
"Filter by tag" : "Filtruoti pagal žymę",
|
||||
"Filter by assigned user" : "Filtruoti pagal priskirtą naudotoją",
|
||||
"Open and completed" : "Atidaryta ir atlikta",
|
||||
"Open" : "Atverti",
|
||||
"Completed" : "Užbaigta",
|
||||
"Filter by due date" : "Filtruoti pagal galutinio termino datą",
|
||||
@@ -139,7 +138,7 @@
|
||||
"Board not found" : "Lenta nerasta",
|
||||
"Create a new list to add cards to this board" : "Norėdami pridėti korteles į šią lentą, sukurkite naują sąrašą",
|
||||
"Sharing" : "Bendrinimas",
|
||||
"Tags" : "Žymos",
|
||||
"Tags" : "Žymės",
|
||||
"Deleted items" : "Ištrinti elementai",
|
||||
"Activity" : "Veikla",
|
||||
"Deleted lists" : "Ištrinti sąrašai",
|
||||
@@ -164,7 +163,7 @@
|
||||
"Card name" : "Kortelės pavadinimas",
|
||||
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
|
||||
"Edit" : "Taisyti",
|
||||
"Add a new tag" : "Pridėti naują žymą",
|
||||
"Add a new tag" : "Pridėti naują žymę",
|
||||
"Board name" : "Lentos pavadinimas",
|
||||
"Members" : "Nariai",
|
||||
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
|
||||
@@ -212,7 +211,7 @@
|
||||
"Mark as done" : "Žymėti kaip atliktą",
|
||||
"Unarchive card" : "Išarchyvuoti kortelę",
|
||||
"Archive card" : "Archyvuoti kortelę",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymą…",
|
||||
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
|
||||
"(group)" : "(grupė)",
|
||||
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
|
||||
"Open link" : "Atverti nuorodą",
|
||||
|
||||
@@ -18,7 +18,6 @@ OC.L10N.register(
|
||||
"Could not write file to disk" : "Nevarēja ierakstīt datni diskā",
|
||||
"A PHP extension stopped the file upload" : "PHP paplašinājums apturēja datnes augšupielādi",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nederīgs datums, datuma formātam jābūt YYYY-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ir kanban veida organizēšanas rīks, kas paredzēts personīgai plānošanai un projektu orgenizēšanai komandām, kas ir iekļauts Nextcloud.\n\n\n- 📥 Uzdevumu pievienošana kartītēm un to sakārtošana\n- 📄 Papildu piezīmes var pierakstīt ar Markdown\n- 🔖 Vēl labākai pārraudzībai var piešķirt iezīmes\n- 👥 Koplietošana ar savu komandu, draugiem vai ģimeni\n- 📎 Datņu pievienošana un iekļaušana Markdown aprakstā\n- 💬 Apspriešana ar savu komandu ar piebildēm\n- ⚡ Izmaiņu izsekošana darbību plūsmā\n- 🚀 Sava projekta sakārtošana",
|
||||
"Cancel" : "Atcelt",
|
||||
"File already exists" : "Datne jau pastāv",
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
@@ -38,14 +37,13 @@ OC.L10N.register(
|
||||
"Can edit" : "Var labot",
|
||||
"Can share" : "Var koplietot",
|
||||
"Owner" : "Īpašnieks",
|
||||
"Delete" : "Izdzēst",
|
||||
"Delete" : "Dzēst",
|
||||
"Edit" : "Labot",
|
||||
"Members" : "Biedri",
|
||||
"File to share" : "Kopīgojamā datne",
|
||||
"Download" : "Lejupielādēt",
|
||||
"Modified" : "Mainīts",
|
||||
"Created" : "Izveidots",
|
||||
"Open in sidebar view" : "Atvērt sānjoslas skatā",
|
||||
"Attachments" : "Pielikumi",
|
||||
"Comments" : "Piebildes",
|
||||
"Save" : "Saglabāt",
|
||||
@@ -55,7 +53,6 @@ OC.L10N.register(
|
||||
"Description" : "Apraksts",
|
||||
"Select Date" : "Izvēlieties datumu",
|
||||
"(group)" : "(grupa)",
|
||||
"Open link" : "Atvērt saiti",
|
||||
"seconds ago" : "sekundēm",
|
||||
"Keyboard shortcuts" : "Tastatūras saīsnes",
|
||||
"Keyboard shortcut" : "Tastatūras saīsne",
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"Could not write file to disk" : "Nevarēja ierakstīt datni diskā",
|
||||
"A PHP extension stopped the file upload" : "PHP paplašinājums apturēja datnes augšupielādi",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Nederīgs datums, datuma formātam jābūt YYYY-MM-DD",
|
||||
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck ir kanban veida organizēšanas rīks, kas paredzēts personīgai plānošanai un projektu orgenizēšanai komandām, kas ir iekļauts Nextcloud.\n\n\n- 📥 Uzdevumu pievienošana kartītēm un to sakārtošana\n- 📄 Papildu piezīmes var pierakstīt ar Markdown\n- 🔖 Vēl labākai pārraudzībai var piešķirt iezīmes\n- 👥 Koplietošana ar savu komandu, draugiem vai ģimeni\n- 📎 Datņu pievienošana un iekļaušana Markdown aprakstā\n- 💬 Apspriešana ar savu komandu ar piebildēm\n- ⚡ Izmaiņu izsekošana darbību plūsmā\n- 🚀 Sava projekta sakārtošana",
|
||||
"Cancel" : "Atcelt",
|
||||
"File already exists" : "Datne jau pastāv",
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
@@ -36,14 +35,13 @@
|
||||
"Can edit" : "Var labot",
|
||||
"Can share" : "Var koplietot",
|
||||
"Owner" : "Īpašnieks",
|
||||
"Delete" : "Izdzēst",
|
||||
"Delete" : "Dzēst",
|
||||
"Edit" : "Labot",
|
||||
"Members" : "Biedri",
|
||||
"File to share" : "Kopīgojamā datne",
|
||||
"Download" : "Lejupielādēt",
|
||||
"Modified" : "Mainīts",
|
||||
"Created" : "Izveidots",
|
||||
"Open in sidebar view" : "Atvērt sānjoslas skatā",
|
||||
"Attachments" : "Pielikumi",
|
||||
"Comments" : "Piebildes",
|
||||
"Save" : "Saglabāt",
|
||||
@@ -53,7 +51,6 @@
|
||||
"Description" : "Apraksts",
|
||||
"Select Date" : "Izvēlieties datumu",
|
||||
"(group)" : "(grupa)",
|
||||
"Open link" : "Atvērt saiti",
|
||||
"seconds ago" : "sekundēm",
|
||||
"Keyboard shortcuts" : "Tastatūras saīsnes",
|
||||
"Keyboard shortcut" : "Tastatūras saīsne",
|
||||
|
||||
@@ -85,14 +85,14 @@ OC.L10N.register(
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
|
||||
"Deck board" : "Painel de Deck",
|
||||
"Deck board" : "Painel de deck",
|
||||
"Owned by %1$s" : "Propriedade de %1$s",
|
||||
"Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck",
|
||||
"Deck boards, cards and comments" : "Quadros de aviso Deck, quadros de aviso e comentários",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s",
|
||||
"Create a new deck card" : "Crie um novo cartão de Deck",
|
||||
"Create a new deck card" : "Crie uma nova carta de deck",
|
||||
"Card comments" : "Comentários do cartão",
|
||||
"%s on %s" : "%s em %s",
|
||||
"Deck boards and cards" : "Paineis e cartões de Deck",
|
||||
"Deck boards and cards" : "Quadros de aviso e cartas Deck",
|
||||
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
|
||||
"Finished" : "Terminado",
|
||||
"To review" : "Para revisão",
|
||||
@@ -116,7 +116,7 @@ OC.L10N.register(
|
||||
"No file was uploaded" : "Nenhum arquivo foi enviado",
|
||||
"Missing a temporary folder" : "Falta uma pasta temporária",
|
||||
"Could not write file to disk" : "Não foi possível escrever no disco",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o upload do arquivo",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
|
||||
"Card not found" : "Cartão não encontrado",
|
||||
@@ -273,7 +273,7 @@ OC.L10N.register(
|
||||
"Remove due date" : "Remover data de vencimento",
|
||||
"Mark as done" : "Marcar como concluído",
|
||||
"Due at:" : "Vencimento em:",
|
||||
"Not done" : "Não concluído",
|
||||
"Not done" : "Não realizado",
|
||||
"Unarchive card" : "Desarquivar cartão",
|
||||
"Archive card" : "Arquivar cartão",
|
||||
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
|
||||
@@ -362,7 +362,7 @@ OC.L10N.register(
|
||||
"No due" : "Sem vencimento",
|
||||
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
|
||||
"No results found" : "Nenhum resultado encontrado",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Quadros de aviso Deck {name}\n* Última modificação em {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
|
||||
"{nbCards} cards" : "{nbCards} cartões",
|
||||
"Due on {date}" : "Vencimento em {date}",
|
||||
@@ -380,7 +380,7 @@ OC.L10N.register(
|
||||
"upcoming cards today" : "próximos cartões hoje",
|
||||
"upcoming cards tomorrow" : "próximos cartões amanhã",
|
||||
"upcoming cards" : "próximos cartões",
|
||||
"New card" : "Novo cartão",
|
||||
"New card" : "New card",
|
||||
"Link to a board" : "Vincular a um painel",
|
||||
"Link to a card" : "Vincular a um cartão",
|
||||
"Create a card" : "Criar um cartão",
|
||||
|
||||
@@ -83,14 +83,14 @@
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
|
||||
"Deck board" : "Painel de Deck",
|
||||
"Deck board" : "Painel de deck",
|
||||
"Owned by %1$s" : "Propriedade de %1$s",
|
||||
"Deck boards, cards and comments" : "Paineis, cartões e comentários de Deck",
|
||||
"Deck boards, cards and comments" : "Quadros de aviso Deck, quadros de aviso e comentários",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, em %2$s/%3$s, propriedade de %4$s",
|
||||
"Create a new deck card" : "Crie um novo cartão de Deck",
|
||||
"Create a new deck card" : "Crie uma nova carta de deck",
|
||||
"Card comments" : "Comentários do cartão",
|
||||
"%s on %s" : "%s em %s",
|
||||
"Deck boards and cards" : "Paineis e cartões de Deck",
|
||||
"Deck boards and cards" : "Quadros de aviso e cartas Deck",
|
||||
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
|
||||
"Finished" : "Terminado",
|
||||
"To review" : "Para revisão",
|
||||
@@ -114,7 +114,7 @@
|
||||
"No file was uploaded" : "Nenhum arquivo foi enviado",
|
||||
"Missing a temporary folder" : "Falta uma pasta temporária",
|
||||
"Could not write file to disk" : "Não foi possível escrever no disco",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o upload do arquivo",
|
||||
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
|
||||
"Card not found" : "Cartão não encontrado",
|
||||
@@ -271,7 +271,7 @@
|
||||
"Remove due date" : "Remover data de vencimento",
|
||||
"Mark as done" : "Marcar como concluído",
|
||||
"Due at:" : "Vencimento em:",
|
||||
"Not done" : "Não concluído",
|
||||
"Not done" : "Não realizado",
|
||||
"Unarchive card" : "Desarquivar cartão",
|
||||
"Archive card" : "Arquivar cartão",
|
||||
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
|
||||
@@ -360,7 +360,7 @@
|
||||
"No due" : "Sem vencimento",
|
||||
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
|
||||
"No results found" : "Nenhum resultado encontrado",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Painel de Deck {name}\n* Última modificação em {lastMod}",
|
||||
"Deck board {name}\n* Last modified on {lastMod}" : "Quadros de aviso Deck {name}\n* Última modificação em {lastMod}",
|
||||
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
|
||||
"{nbCards} cards" : "{nbCards} cartões",
|
||||
"Due on {date}" : "Vencimento em {date}",
|
||||
@@ -378,7 +378,7 @@
|
||||
"upcoming cards today" : "próximos cartões hoje",
|
||||
"upcoming cards tomorrow" : "próximos cartões amanhã",
|
||||
"upcoming cards" : "próximos cartões",
|
||||
"New card" : "Novo cartão",
|
||||
"New card" : "New card",
|
||||
"Link to a board" : "Vincular a um painel",
|
||||
"Link to a card" : "Vincular a um cartão",
|
||||
"Create a card" : "Criar um cartão",
|
||||
|
||||
@@ -86,7 +86,7 @@ OC.L10N.register(
|
||||
"Select a card" : "Вибрати картку",
|
||||
"Cancel" : "Скасувати",
|
||||
"This board is read only" : "Дошка тільки для читання",
|
||||
"Drop your files to upload" : "Перетягнути файли для завантаження",
|
||||
"Drop your files to upload" : "Пересуньте файли сюди для завантаження",
|
||||
"File already exists" : "Файл вже існує",
|
||||
"A file with the name {filename} already exists." : "Файл {filename} вже існує.",
|
||||
"Do you want to overwrite it?" : "Дійсно перезаписати файл?",
|
||||
@@ -97,7 +97,7 @@ OC.L10N.register(
|
||||
"Add list" : "Додати список",
|
||||
"List name" : "Назва списку",
|
||||
"Active filters" : "Активні фільтри",
|
||||
"Apply filter" : "Фільтрувати",
|
||||
"Apply filter" : "Відфільтрувати",
|
||||
"Filter by tag" : "Відібрати за мітками",
|
||||
"Filter by assigned user" : "Відібрати за призначеним користувачем",
|
||||
"Unassigned" : "Скасовано призначення",
|
||||
@@ -127,7 +127,7 @@ OC.L10N.register(
|
||||
"Transfer" : "Передати",
|
||||
"Board owner" : "Власник дошки",
|
||||
"(Group)" : "(група)",
|
||||
"Can edit" : "Може редагувати",
|
||||
"Can edit" : "Можна редагувати",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може керувати",
|
||||
"Owner" : "Власник",
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"Select a card" : "Вибрати картку",
|
||||
"Cancel" : "Скасувати",
|
||||
"This board is read only" : "Дошка тільки для читання",
|
||||
"Drop your files to upload" : "Перетягнути файли для завантаження",
|
||||
"Drop your files to upload" : "Пересуньте файли сюди для завантаження",
|
||||
"File already exists" : "Файл вже існує",
|
||||
"A file with the name {filename} already exists." : "Файл {filename} вже існує.",
|
||||
"Do you want to overwrite it?" : "Дійсно перезаписати файл?",
|
||||
@@ -95,7 +95,7 @@
|
||||
"Add list" : "Додати список",
|
||||
"List name" : "Назва списку",
|
||||
"Active filters" : "Активні фільтри",
|
||||
"Apply filter" : "Фільтрувати",
|
||||
"Apply filter" : "Відфільтрувати",
|
||||
"Filter by tag" : "Відібрати за мітками",
|
||||
"Filter by assigned user" : "Відібрати за призначеним користувачем",
|
||||
"Unassigned" : "Скасовано призначення",
|
||||
@@ -125,7 +125,7 @@
|
||||
"Transfer" : "Передати",
|
||||
"Board owner" : "Власник дошки",
|
||||
"(Group)" : "(група)",
|
||||
"Can edit" : "Може редагувати",
|
||||
"Can edit" : "Можна редагувати",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Може керувати",
|
||||
"Owner" : "Власник",
|
||||
|
||||
31
l10n/uz.js
31
l10n/uz.js
@@ -2,9 +2,6 @@ OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"Deck" : "Pastki qavat",
|
||||
"Upcoming cards" : "Kelgusi kartalar",
|
||||
"Deck board" : "Pastki taxta",
|
||||
"Later" : "Keyinchalik",
|
||||
"copy" : "copy",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fayl yuklangan edi",
|
||||
@@ -15,58 +12,30 @@ OC.L10N.register(
|
||||
"Missing a temporary folder" : "Vaqtinchalik papka etishmayapti",
|
||||
"Could not write file to disk" : "Faylni diskka yozib bo'lmadi",
|
||||
"A PHP extension stopped the file upload" : "PHP kengaytmasi faylni yuklashni to'xtatdi",
|
||||
"Card not found" : "Karta topilmadi",
|
||||
"Add board" : "Doska qo'shing",
|
||||
"Move card" : "Kartani ko'chirish",
|
||||
"Cancel" : "Cancel",
|
||||
"Add card" : "Karta qo'shing",
|
||||
"Archived cards" : "Arxivlangan kartalar",
|
||||
"Add list" : "Roʻyxat qoʻshish",
|
||||
"Unassigned" : "Tayinlanmagan",
|
||||
"Open" : "Open",
|
||||
"Overdue" : "Muddati o'tgan",
|
||||
"Next 7 days" : "Keyingi 7 kun",
|
||||
"Next 30 days" : "Keyingi 30 kun",
|
||||
"No due date" : "Muddati yo'q",
|
||||
"Details" : "Details",
|
||||
"Sharing" : "Ulashish",
|
||||
"Tags" : "Tags",
|
||||
"Activity" : "Faollik",
|
||||
"Undo" : "Bekor qilish",
|
||||
"Can edit" : "Can edit",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Delete",
|
||||
"Delete list" : "Roʻyxatni oʻchirish",
|
||||
"Edit" : "Tahrirlash",
|
||||
"Download" : "Download",
|
||||
"Modified" : "Modified",
|
||||
"Attachments" : "Qo'shimchalar",
|
||||
"Comments" : "Comments",
|
||||
"Save" : "Save",
|
||||
"In reply to" : "ga javoban",
|
||||
"Reply" : "Javob bering",
|
||||
"Update" : "Update",
|
||||
"Description" : "Tavsif",
|
||||
"Edit description" : "Tavsifni tahrirlash",
|
||||
"Mark as done" : "Bajarildi deb belgilang",
|
||||
"Not done" : "Bajarilmadi",
|
||||
"Archive card" : "Arxiv kartasi",
|
||||
"Edit title" : "Sarlavhani tahrirlash",
|
||||
"Delete card" : "Kartani o'chirish",
|
||||
"seconds ago" : "seconds ago",
|
||||
"Search" : "Search",
|
||||
"Archived boards" : "Arxivlangan taxtalar",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No reminder" : "Eslatma yo'q",
|
||||
"Edit board" : "Tahrirlash paneli",
|
||||
"Clone board" : "Klon taxtasi",
|
||||
"Archive board" : "Arxiv paneli",
|
||||
"No notifications" : "Hech qanday bildirishnoma yo'q",
|
||||
"Delete board" : "Panelni o'chirish",
|
||||
"Clone cards" : "Klon kartalari",
|
||||
"Clone" : "Klonlash",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Ertaga",
|
||||
"No results found" : "Hech qanday natija topilmadi",
|
||||
"Close" : "Close",
|
||||
"Share" : "Ulashish",
|
||||
|
||||
31
l10n/uz.json
31
l10n/uz.json
@@ -1,8 +1,5 @@
|
||||
{ "translations": {
|
||||
"Deck" : "Pastki qavat",
|
||||
"Upcoming cards" : "Kelgusi kartalar",
|
||||
"Deck board" : "Pastki taxta",
|
||||
"Later" : "Keyinchalik",
|
||||
"copy" : "copy",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fayl yuklangan edi",
|
||||
@@ -13,58 +10,30 @@
|
||||
"Missing a temporary folder" : "Vaqtinchalik papka etishmayapti",
|
||||
"Could not write file to disk" : "Faylni diskka yozib bo'lmadi",
|
||||
"A PHP extension stopped the file upload" : "PHP kengaytmasi faylni yuklashni to'xtatdi",
|
||||
"Card not found" : "Karta topilmadi",
|
||||
"Add board" : "Doska qo'shing",
|
||||
"Move card" : "Kartani ko'chirish",
|
||||
"Cancel" : "Cancel",
|
||||
"Add card" : "Karta qo'shing",
|
||||
"Archived cards" : "Arxivlangan kartalar",
|
||||
"Add list" : "Roʻyxat qoʻshish",
|
||||
"Unassigned" : "Tayinlanmagan",
|
||||
"Open" : "Open",
|
||||
"Overdue" : "Muddati o'tgan",
|
||||
"Next 7 days" : "Keyingi 7 kun",
|
||||
"Next 30 days" : "Keyingi 30 kun",
|
||||
"No due date" : "Muddati yo'q",
|
||||
"Details" : "Details",
|
||||
"Sharing" : "Ulashish",
|
||||
"Tags" : "Tags",
|
||||
"Activity" : "Faollik",
|
||||
"Undo" : "Bekor qilish",
|
||||
"Can edit" : "Can edit",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Delete",
|
||||
"Delete list" : "Roʻyxatni oʻchirish",
|
||||
"Edit" : "Tahrirlash",
|
||||
"Download" : "Download",
|
||||
"Modified" : "Modified",
|
||||
"Attachments" : "Qo'shimchalar",
|
||||
"Comments" : "Comments",
|
||||
"Save" : "Save",
|
||||
"In reply to" : "ga javoban",
|
||||
"Reply" : "Javob bering",
|
||||
"Update" : "Update",
|
||||
"Description" : "Tavsif",
|
||||
"Edit description" : "Tavsifni tahrirlash",
|
||||
"Mark as done" : "Bajarildi deb belgilang",
|
||||
"Not done" : "Bajarilmadi",
|
||||
"Archive card" : "Arxiv kartasi",
|
||||
"Edit title" : "Sarlavhani tahrirlash",
|
||||
"Delete card" : "Kartani o'chirish",
|
||||
"seconds ago" : "seconds ago",
|
||||
"Search" : "Search",
|
||||
"Archived boards" : "Arxivlangan taxtalar",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No reminder" : "Eslatma yo'q",
|
||||
"Edit board" : "Tahrirlash paneli",
|
||||
"Clone board" : "Klon taxtasi",
|
||||
"Archive board" : "Arxiv paneli",
|
||||
"No notifications" : "Hech qanday bildirishnoma yo'q",
|
||||
"Delete board" : "Panelni o'chirish",
|
||||
"Clone cards" : "Klon kartalari",
|
||||
"Clone" : "Klonlash",
|
||||
"Today" : "Today",
|
||||
"Tomorrow" : "Ertaga",
|
||||
"No results found" : "Hech qanday natija topilmadi",
|
||||
"Close" : "Close",
|
||||
"Share" : "Ulashish",
|
||||
|
||||
@@ -76,21 +76,6 @@ class AssignmentMapper extends DeckMapper implements IPermissionMapper {
|
||||
return $this->findEntities($qb);
|
||||
}
|
||||
|
||||
public function deleteByParticipantOnBoard(string $participant, int $boardId, $type = Assignment::TYPE_USER) {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$cardIdQuery = $this->db->getQueryBuilder();
|
||||
$cardIdQuery->select('a.card_id')
|
||||
->from('deck_assigned_users', 'a')
|
||||
->innerJoin('a', 'deck_cards', 'c', 'c.id = a.card_id')
|
||||
->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
|
||||
->where($cardIdQuery->expr()->eq('a.participant', $qb->createNamedParameter($participant, IQueryBuilder::PARAM_STR)))
|
||||
->andWhere($cardIdQuery->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($cardIdQuery->expr()->eq('a.type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT)));
|
||||
$qb->delete('deck_assigned_users')
|
||||
->where($qb->expr()->in('card_id', $qb->createFunction($cardIdQuery->getSQL()), IQueryBuilder::PARAM_INT_ARRAY));
|
||||
$qb->executeStatement();
|
||||
}
|
||||
|
||||
|
||||
public function isOwner($userId, $id): bool {
|
||||
return $this->cardMapper->isOwner($userId, $id);
|
||||
|
||||
@@ -27,7 +27,7 @@ class DefaultBoardMiddleware extends Middleware {
|
||||
public function beforeController($controller, $methodName) {
|
||||
try {
|
||||
if ($this->userId !== null && $this->defaultBoardService->checkFirstRun($this->userId) && $this->permissionService->canCreate()) {
|
||||
$this->defaultBoardService->createDefaultBoard($this->l10n->t('Personal'), $this->userId, '0087C5');
|
||||
$this->defaultBoardService->createDefaultBoard($this->l10n->t('Welcome to Nextcloud Deck!'), $this->userId, 'bf678b');
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$this->logger->error('Could not create default board', ['exception' => $e]);
|
||||
|
||||
@@ -106,21 +106,21 @@ class Notifier implements INotifier {
|
||||
[
|
||||
'deck-card' => [
|
||||
'type' => 'deck-card',
|
||||
'id' => (string)$cardId,
|
||||
'id' => $cardId,
|
||||
'name' => $params[0],
|
||||
'boardname' => (string)$params[1],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'deck-board' => [
|
||||
'type' => 'deck-board',
|
||||
'id' => (string)$boardId,
|
||||
'name' => (string)$params[1],
|
||||
'id' => $boardId,
|
||||
'name' => $params[1],
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
'user' => [
|
||||
'type' => 'user',
|
||||
'id' => (string)$params[2],
|
||||
'id' => $params[2],
|
||||
'name' => $dn,
|
||||
]
|
||||
]
|
||||
@@ -143,16 +143,16 @@ class Notifier implements INotifier {
|
||||
[
|
||||
'deck-card' => [
|
||||
'type' => 'deck-card',
|
||||
'id' => (string)$cardId,
|
||||
'name' => (string)$params[0],
|
||||
'boardname' => (string)$params[1],
|
||||
'id' => $cardId,
|
||||
'name' => $params[0],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'deck-board' => [
|
||||
'type' => 'deck-board',
|
||||
'id' => (string)$boardId,
|
||||
'name' => (string)$params[1],
|
||||
'id' => $boardId,
|
||||
'name' => $params[1],
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
]
|
||||
@@ -181,15 +181,15 @@ class Notifier implements INotifier {
|
||||
[
|
||||
'deck-card' => [
|
||||
'type' => 'deck-card',
|
||||
'id' => (string)$cardId,
|
||||
'name' => (string)$params[0],
|
||||
'boardname' => (string)$params[1],
|
||||
'id' => $cardId,
|
||||
'name' => $params[0],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'user' => [
|
||||
'type' => 'user',
|
||||
'id' => (string)$params[2],
|
||||
'id' => $params[2],
|
||||
'name' => $dn,
|
||||
]
|
||||
]
|
||||
@@ -218,8 +218,8 @@ class Notifier implements INotifier {
|
||||
[
|
||||
'deck-board' => [
|
||||
'type' => 'deck-board',
|
||||
'id' => (string)$boardId,
|
||||
'name' => (string)$params[0],
|
||||
'id' => $boardId,
|
||||
'name' => $params[0],
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
'user' => [
|
||||
|
||||
@@ -444,7 +444,10 @@ class BoardService {
|
||||
$acl = $this->aclMapper->find($id);
|
||||
$this->boardMapper->mapAcl($acl);
|
||||
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
|
||||
$this->assignedUsersMapper->deleteByParticipantOnBoard($acl->getParticipant(), $acl->getBoardId());
|
||||
$assignements = $this->assignedUsersMapper->findByParticipant($acl->getParticipant());
|
||||
foreach ($assignements as $assignement) {
|
||||
$this->assignedUsersMapper->delete($assignement);
|
||||
}
|
||||
}
|
||||
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_BOARD, $acl, ActivityManager::SUBJECT_BOARD_UNSHARE);
|
||||
|
||||
@@ -609,9 +609,8 @@ class CardService {
|
||||
public function assignLabel($cardId, $labelId) {
|
||||
$this->cardServiceValidator->check(compact('cardId', 'labelId'));
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
$this->permissionService->checkPermission($this->labelMapper, $labelId, Acl::PERMISSION_READ);
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
if ($this->boardService->isArchived($this->cardMapper, $cardId)) {
|
||||
throw new StatusException('Operation not allowed. This board is archived.');
|
||||
}
|
||||
@@ -620,9 +619,6 @@ class CardService {
|
||||
throw new StatusException('Operation not allowed. This card is archived.');
|
||||
}
|
||||
$label = $this->labelMapper->find($labelId);
|
||||
if ($label->getBoardId() !== $this->cardMapper->findBoardId($card->getId())) {
|
||||
throw new StatusException('Operation not allowed. Label does not exist.');
|
||||
}
|
||||
$this->cardMapper->assignLabel($cardId, $labelId);
|
||||
$this->changeHelper->cardChanged($cardId);
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_LABEL_ASSIGN, ['label' => $label]);
|
||||
@@ -644,8 +640,6 @@ class CardService {
|
||||
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
$this->permissionService->checkPermission($this->labelMapper, $labelId, Acl::PERMISSION_READ);
|
||||
|
||||
if ($this->boardService->isArchived($this->cardMapper, $cardId)) {
|
||||
throw new StatusException('Operation not allowed. This board is archived.');
|
||||
}
|
||||
@@ -654,9 +648,6 @@ class CardService {
|
||||
throw new StatusException('Operation not allowed. This card is archived.');
|
||||
}
|
||||
$label = $this->labelMapper->find($labelId);
|
||||
if ($label->getBoardId() !== $this->cardMapper->findBoardId($card->getId())) {
|
||||
throw new StatusException('Operation not allowed. Label does not exist.');
|
||||
}
|
||||
$this->cardMapper->removeLabel($cardId, $labelId);
|
||||
$this->changeHelper->cardChanged($cardId);
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_LABEL_UNASSING, ['label' => $label]);
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace OCA\Deck\Service;
|
||||
|
||||
use OCA\Deck\AppInfo\Application;
|
||||
use OCA\Deck\BadRequestException;
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
@@ -21,6 +22,8 @@ class DefaultBoardService {
|
||||
private $cardService;
|
||||
private $config;
|
||||
private $l10n;
|
||||
private LabelService $labelService;
|
||||
private AttachmentService $attachmentService;
|
||||
|
||||
public function __construct(
|
||||
IL10N $l10n,
|
||||
@@ -29,6 +32,8 @@ class DefaultBoardService {
|
||||
StackService $stackService,
|
||||
CardService $cardService,
|
||||
IConfig $config,
|
||||
LabelService $labelService,
|
||||
AttachmentService $attachmentService,
|
||||
) {
|
||||
$this->boardService = $boardService;
|
||||
$this->stackService = $stackService;
|
||||
@@ -36,6 +41,8 @@ class DefaultBoardService {
|
||||
$this->config = $config;
|
||||
$this->boardMapper = $boardMapper;
|
||||
$this->l10n = $l10n;
|
||||
$this->labelService = $labelService;
|
||||
$this->attachmentService = $attachmentService;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,10 +66,13 @@ class DefaultBoardService {
|
||||
return false;
|
||||
}
|
||||
|
||||
private function getDefaultBoardData(): array {
|
||||
$defaultBoardDataJson = file_get_contents(__DIR__ . '/fixtures/default-board.json');
|
||||
return json_decode($defaultBoardDataJson, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $title
|
||||
* @param $userId
|
||||
* @param $color
|
||||
* @return \OCP\AppFramework\Db\Entity
|
||||
* @throws \OCA\Deck\NoPermissionException
|
||||
* @throws \OCA\Deck\StatusException
|
||||
@@ -71,19 +81,71 @@ class DefaultBoardService {
|
||||
* @throws BadRequestException
|
||||
*/
|
||||
public function createDefaultBoard(string $title, string $userId, string $color) {
|
||||
$defaultBoard = $this->boardService->create($title, $userId, $color);
|
||||
$defaultStacks = [];
|
||||
$defaultCards = [];
|
||||
$boardData = $this->getDefaultBoardData();
|
||||
|
||||
/** @var Board $defaultBoard */
|
||||
$defaultBoard = $this->boardService->create(
|
||||
$boardData['title'] ?? $title,
|
||||
$userId,
|
||||
$boardData['color'] ?? $color,
|
||||
);
|
||||
$boardId = $defaultBoard->getId();
|
||||
$additionLabels = [];
|
||||
$translatedLabelTitles = [
|
||||
'Read more inside' => $this->l10n->t('Read more inside'),
|
||||
];
|
||||
$translatedStackTitles = [
|
||||
'Custom lists - click to rename!' => $this->l10n->t('Custom lists - click to rename!'),
|
||||
'To Do' => $this->l10n->t('To Do'),
|
||||
'In Progress' => $this->l10n->t('In Progress'),
|
||||
'Done' => $this->l10n->t('Done'),
|
||||
];
|
||||
$translatedCardTitles = [
|
||||
'1. Open to learn more about boards and cards' => $this->l10n->t('1. Open to learn more about boards and cards'),
|
||||
'2. Drag cards left and right, up and down' => $this->l10n->t('2. Drag cards left and right, up and down'),
|
||||
'3. Apply rich formatting and link content' => $this->l10n->t('3. Apply rich formatting and link content'),
|
||||
'4. Share, comment and collaborate!' => $this->l10n->t('4. Share, comment and collaborate!'),
|
||||
'Create your first card!' => $this->l10n->t('Create your first card!'),
|
||||
];
|
||||
|
||||
$defaultStacks[] = $this->stackService->create($this->l10n->t('To do'), $boardId, 1);
|
||||
$defaultStacks[] = $this->stackService->create($this->l10n->t('Doing'), $boardId, 1);
|
||||
$defaultStacks[] = $this->stackService->create($this->l10n->t('Done'), $boardId, 1);
|
||||
foreach ($boardData['addition_labels'] as $labelData) {
|
||||
$additionLabels[] = $this->labelService->create(
|
||||
$translatedLabelTitles[$labelData['title']] ?? $labelData['title'],
|
||||
$labelData['color'],
|
||||
$boardId
|
||||
);
|
||||
}
|
||||
|
||||
$defaultCards[] = $this->cardService->create($this->l10n->t('Example Task 3'), $defaultStacks[0]->getId(), 'text', 0, $userId);
|
||||
$defaultCards[] = $this->cardService->create($this->l10n->t('Example Task 2'), $defaultStacks[1]->getId(), 'text', 0, $userId);
|
||||
$defaultCards[] = $this->cardService->create($this->l10n->t('Example Task 1'), $defaultStacks[2]->getId(), 'text', 0, $userId);
|
||||
$defaultLabels = array_merge($defaultBoard->getLabels() ?? [], $additionLabels);
|
||||
|
||||
foreach ($boardData['stacks'] as $stackData) {
|
||||
$stack = $this->stackService->create(
|
||||
$translatedStackTitles[$stackData['title']] ?? $stackData['title'],
|
||||
$boardId,
|
||||
$stackData['order']
|
||||
);
|
||||
|
||||
foreach ($stackData['cards'] as $cardData) {
|
||||
$card = $this->cardService->create(
|
||||
$translatedCardTitles[$cardData['title']] ?? $cardData['title'],
|
||||
$stack->getId(),
|
||||
$cardData['type'],
|
||||
$cardData['order'],
|
||||
$userId,
|
||||
$cardData['description'],
|
||||
);
|
||||
|
||||
foreach ($defaultLabels as $defaultLabel) {
|
||||
if ($defaultLabel && in_array($defaultLabel->getTitle(), $cardData['labels'])) {
|
||||
$this->cardService->assignLabel($card->getId(), $defaultLabel->getId());
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($cardData['has_example_attachment'])) {
|
||||
$this->attachmentService->create($card->getId(), 'file', 'DEFAULT_SAMPLE_FILE');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $defaultBoard;
|
||||
}
|
||||
|
||||
@@ -162,7 +162,15 @@ class FilesAppService implements IAttachmentService, ICustomAttachmentService {
|
||||
}
|
||||
|
||||
public function create(Attachment $attachment) {
|
||||
$file = $this->getUploadedFile();
|
||||
if ($attachment->getData() === 'DEFAULT_SAMPLE_FILE' && !$this->request->getUploadedFile('file')) {
|
||||
$file = [
|
||||
'name' => 'Nextcloud sample image - add your image here!.jpg',
|
||||
'tmp_name' => __DIR__ . '/../../img/sample-image.jpg',
|
||||
];
|
||||
} else {
|
||||
$file = $this->getUploadedFile();
|
||||
}
|
||||
|
||||
$fileName = $file['name'];
|
||||
|
||||
// get shares for current card
|
||||
|
||||
81
lib/Service/fixtures/default-board.json
Normal file
81
lib/Service/fixtures/default-board.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"color": "bf678b",
|
||||
"addition_labels": [
|
||||
{
|
||||
"title": "Read more inside",
|
||||
"color": "CC317C"
|
||||
}
|
||||
],
|
||||
"stacks": [
|
||||
{
|
||||
"title": "Custom lists - click to rename!",
|
||||
"order": 0,
|
||||
"cards": [
|
||||
{
|
||||
"title": "1. Open to learn more about boards and cards",
|
||||
"description": "## Welcome to Nextcloud Deck!\n\nNextcloud Deck is a kanban style project management app that integrates seamlessly with the Nextcloud ecosystem. Here, you can create and manage boards to streamline your projects and organize project tasks visually using cards. A versatile tool, Nextcloud Deck will help you stay efficient in both personal and collaborative settings!\n\n### \ud83d\udccc How to set up a new board?\n\nAdd a new board via the \u201c+\u201d button or \u201cAdd board\u201d. Name your board and add a description to clarify its purpose if you wish.\n\nAdd task lists to your board via \u201cAdd List\u201d (e.g., \"To Do\"). Add cards to these lists to represent individual tasks or items. Organize your cards visually by assigning labels or colors.\n\nManage your board list: In the board menu next to the board name, you can edit, clone, archive and export your boards.\n\n### \ud83d\uddc2\ufe0f How to create and edit task cards?\n\nAdd cards via the \u201c+\u201d button on top of the list of your choice. Name your card and add a description using the available rich text formatting instruments.\n\nSet a due date to track deadlines and add responsible team members. Label your cards with tags for better navigation. You can create and manage tags in the sidebar, which is accessible via the toolbar button.\n\n### \ud83d\udca1Useful tips for Nextcloud Deck\n\n- Integrate Nextcloud Deck with Nextcloud Calendar and track the upcoming card deadlines.\n- Use comments to keep discussions around a task within its dedicated card.\n- Enable Nextcloud Deck notifications to always stay updated on changes to your boards.",
|
||||
"labels": [
|
||||
"Read more inside"
|
||||
],
|
||||
"type": "text",
|
||||
"order": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "To Do",
|
||||
"order": 1,
|
||||
"cards": [
|
||||
{
|
||||
"title": "2. Drag cards left and right, up and down",
|
||||
"description": "## \ud83d\udea6 Manage your boards and cards\n\nDrag your cards around the board to change position in the list or move them to other lists.\n\nArchive cards to remove them from the board without losing your content. You can always access archived cards and put them back by going to \"Show archived cards\" in the board menu.\n\nUse tags to assign types, statuses and other special attributes to your cards to aid visual navigation. Open the \"Tags\" tab in the sidebar of Nextcloud Deck to manage tags you can add to your cards.\n\n## \ud83d\udc53 Change how you view your boards\n\nTo navigate large boards easily, you can filter your cards by tags, team members, statuses and due dates. Open filter menu via Nextcloud Deck toolbar.\n\nEnable compact display mode in the Deck Board menu via the three dots menu in the toolbar. In the same menu, you can disable and enable cover images.",
|
||||
"labels": [
|
||||
"Read more inside"
|
||||
],
|
||||
"type": "text",
|
||||
"order": 0
|
||||
},
|
||||
{
|
||||
"title": "Create your first card!",
|
||||
"description": "",
|
||||
"labels": [
|
||||
"Action needed"
|
||||
],
|
||||
"type": "text",
|
||||
"order": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "In Progress",
|
||||
"order": 2,
|
||||
"cards": [
|
||||
{
|
||||
"title": "3. Apply rich formatting and link content",
|
||||
"description": "## \ud83c\udfa8 Make use of rich formatting in card descriptions\n\nYou can use various instruments to make your content more structured and informative. Try all the instruments yourself - use this checklist!\n\n- [ ] Apply headings of different hierarchy (H1-H6).\n- [ ] Use **bold** *italic* __underline__ and ~~strikethrough~~ text formatting.\n- [ ] Create unordered, ordered and to-do lists.\n- [ ] Highlight code and blockquotes, add various illustrated callouts.\n- [ ] Create and format tables\n- [ ] Add details\n- [ ] Add links, for example to [the Nextcloud website](https:\/\/nextcloud.com\/)\n- [ ] Insert attachments\n- [ ] Add emojis \ud83d\udd76\ufe0f \n\n## \ud83d\udd17 Attach files to cards\n\nYou can upload any files from your machine or pick from your Nextcloud Files, such as documents, presentations, images, video clips and anything else. Add files via \"Attachments\" tab.\n\n## \ud83c\udf04 Illustrate cards with images\n\nAttach images to your cards - they will automatically work as card covers.",
|
||||
"labels": [
|
||||
"Read more inside"
|
||||
],
|
||||
"type": "text",
|
||||
"order": 0,
|
||||
"has_example_attachment": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Done",
|
||||
"order": 3,
|
||||
"cards": [
|
||||
{
|
||||
"title": "4. Share, comment and collaborate!",
|
||||
"description": "## \ud83e\udd1d How to collaborate in your board?\n\nShare your cards and boards with others. In many Nextcloud apps, linked Nextcloud Deck items will appear as rich, interactive widgets. Once you assign someone to a card, they will receive a notification.\n\nEdit cards together, leave notes for your teammates, share task-related files by adding attachments and discuss your tasks using card comments.\n\n### ",
|
||||
"labels": [
|
||||
"Read more inside"
|
||||
],
|
||||
"type": "text",
|
||||
"order": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -270,7 +270,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
|
||||
private function applyBoardPermission($share, $permissions, $userId) {
|
||||
try {
|
||||
$this->permissionService->checkPermission($this->cardMapper, $share->getSharedWith(), Acl::PERMISSION_EDIT, $userId, true);
|
||||
$this->permissionService->checkPermission($this->cardMapper, $share->getSharedWith(), Acl::PERMISSION_EDIT, $userId);
|
||||
} catch (NoPermissionException $e) {
|
||||
$permissions &= Constants::PERMISSION_ALL - Constants::PERMISSION_UPDATE;
|
||||
$permissions &= Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE;
|
||||
@@ -278,7 +278,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
}
|
||||
|
||||
try {
|
||||
$this->permissionService->checkPermission($this->cardMapper, $share->getSharedWith(), Acl::PERMISSION_SHARE, $userId, true);
|
||||
$this->permissionService->checkPermission($this->cardMapper, $share->getSharedWith(), Acl::PERMISSION_SHARE, $userId);
|
||||
} catch (NoPermissionException $e) {
|
||||
$permissions &= Constants::PERMISSION_ALL - Constants::PERMISSION_SHARE;
|
||||
}
|
||||
@@ -747,8 +747,6 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
$qb->expr()->eq('s.item_type', $qb->createNamedParameter('folder'))
|
||||
));
|
||||
|
||||
$qb->andWhere($qb->expr()->eq('dc.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
|
||||
|
||||
$cursor = $qb->execute();
|
||||
while ($data = $cursor->fetch()) {
|
||||
if (!$this->isAccessibleResult($data)) {
|
||||
|
||||
763
package-lock.json
generated
763
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
14
package.json
14
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"description": "",
|
||||
"version": "1.15.1",
|
||||
"version": "2.0.0-dev.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julius Härtl",
|
||||
@@ -31,12 +31,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@babel/runtime": "^7.26.0",
|
||||
"@babel/runtime": "^7.26.10",
|
||||
"@nextcloud/auth": "^2.4.0",
|
||||
"@nextcloud/axios": "^2.5.1",
|
||||
"@nextcloud/capabilities": "^1.2.0",
|
||||
"@nextcloud/dialogs": "^6.0.1",
|
||||
"@nextcloud/event-bus": "^3.3.1",
|
||||
"@nextcloud/event-bus": "^3.3.2",
|
||||
"@nextcloud/files": "^3.10.1",
|
||||
"@nextcloud/initial-state": "^2.2.0",
|
||||
"@nextcloud/l10n": "^3.1.0",
|
||||
@@ -46,7 +46,7 @@
|
||||
"@nextcloud/vue": "^8.22.0",
|
||||
"blueimp-md5": "^2.19.0",
|
||||
"chroma-js": "^3.1.2",
|
||||
"dompurify": "^3.2.3",
|
||||
"dompurify": "^3.2.4",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^14.1.0",
|
||||
"markdown-it-link-attributes": "^4.0.1",
|
||||
@@ -75,8 +75,8 @@
|
||||
"devDependencies": {
|
||||
"@nextcloud/babel-config": "^1.2.0",
|
||||
"@nextcloud/browserslist-config": "^3.0.1",
|
||||
"@nextcloud/cypress": "^1.0.0-beta.12",
|
||||
"@nextcloud/eslint-config": "^8.4.1",
|
||||
"@nextcloud/cypress": "^1.0.0-beta.13",
|
||||
"@nextcloud/eslint-config": "^8.4.2",
|
||||
"@nextcloud/stylelint-config": "^3.0.1",
|
||||
"@nextcloud/webpack-vue-config": "^6.2.0",
|
||||
"@relative-ci/agent": "^4.2.14",
|
||||
@@ -106,4 +106,4 @@
|
||||
"<rootDir>/node_modules/jest-serializer-vue"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
:input-label="t('deck', 'Select a list')"
|
||||
:options="stacksFromBoard"
|
||||
:max-height="100"
|
||||
data-cy="select-stack"
|
||||
label="title" />
|
||||
</div>
|
||||
<template #actions>
|
||||
@@ -60,15 +59,6 @@ export default {
|
||||
return !(this.selectedBoard === '' || this.selectedStack === '')
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
selectedBoard: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.selectedStack = ''
|
||||
this.stacksFromBoard = []
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
subscribe('deck:card:show-move-dialog', this.openModal)
|
||||
},
|
||||
|
||||
@@ -269,6 +269,8 @@ export default {
|
||||
this.editTitle = this.board.title
|
||||
this.editColor = '#' + this.board.color
|
||||
this.editing = true
|
||||
|
||||
this.$nextTick(() => this.$refs.inputField?.focus())
|
||||
},
|
||||
async actionClone() {
|
||||
this.loading = true
|
||||
|
||||
@@ -1 +1 @@
|
||||
71780
|
||||
80536
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~9",
|
||||
"behat/behat": "~3.15.0",
|
||||
"behat/behat": "~3.18.1",
|
||||
"guzzlehttp/guzzle": "7.9.2",
|
||||
"jarnaiz/behat-junit-formatter": "^1.3",
|
||||
"sabre/dav": "4.7.0",
|
||||
|
||||
@@ -437,10 +437,10 @@ class BoardServiceTest extends TestCase {
|
||||
$assignment = new Assignment();
|
||||
$assignment->setParticipant('admin');
|
||||
$this->assignedUsersMapper->expects($this->once())
|
||||
->method('deleteByParticipantOnBoard')
|
||||
->with('admin', 123)
|
||||
->method('findByParticipant')
|
||||
->with('admin')
|
||||
->willReturn([$assignment]);
|
||||
$this->assignedUsersMapper->expects($this->never())
|
||||
$this->assignedUsersMapper->expects($this->once())
|
||||
->method('delete')
|
||||
->with($assignment);
|
||||
$this->aclMapper->expects($this->once())
|
||||
|
||||
@@ -258,17 +258,6 @@ class CardServiceTest extends TestCase {
|
||||
->method('find')
|
||||
->willReturn($card, $clonedCard);
|
||||
|
||||
$this->cardMapper->expects($this->any())
|
||||
->method('findBoardId')
|
||||
->willReturn(1234);
|
||||
|
||||
$this->labelMapper->expects($this->any())
|
||||
->method('find')
|
||||
->willReturn(Label::fromRow([
|
||||
'id' => 1,
|
||||
'boardId' => 1234,
|
||||
]));
|
||||
|
||||
// check if users are assigned
|
||||
$this->assignmentService->expects($this->once())
|
||||
->method('assignUser')
|
||||
@@ -444,17 +433,8 @@ class CardServiceTest extends TestCase {
|
||||
public function testAssignLabel() {
|
||||
$card = new Card();
|
||||
$card->setArchived(false);
|
||||
$card->setId(123);
|
||||
$label = new Label();
|
||||
$label->setBoardId(1);
|
||||
$this->cardMapper->expects($this->once())->method('find')->willReturn($card);
|
||||
$this->cardMapper->expects($this->once())->method('assignLabel');
|
||||
$this->cardMapper->expects($this->once())
|
||||
->method('findBoardId')
|
||||
->willReturn(1);
|
||||
$this->labelMapper->expects($this->once())
|
||||
->method('find')
|
||||
->willReturn($label);
|
||||
$this->cardService->assignLabel(123, 999);
|
||||
}
|
||||
|
||||
@@ -470,17 +450,8 @@ class CardServiceTest extends TestCase {
|
||||
public function testRemoveLabel() {
|
||||
$card = new Card();
|
||||
$card->setArchived(false);
|
||||
$card->setId(123);
|
||||
$label = new Label();
|
||||
$label->setBoardId(1);
|
||||
$this->cardMapper->expects($this->once())->method('find')->willReturn($card);
|
||||
$this->cardMapper->expects($this->once())->method('removeLabel');
|
||||
$this->cardMapper->expects($this->once())
|
||||
->method('findBoardId')
|
||||
->willReturn(1);
|
||||
$this->labelMapper->expects($this->once())
|
||||
->method('find')
|
||||
->willReturn($label);
|
||||
$this->cardService->removeLabel(123, 999);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,12 @@ class DefaultBoardServiceTest extends TestCase {
|
||||
/** @var CardService */
|
||||
private $cardService;
|
||||
|
||||
/** @var LabelService */
|
||||
private $labelService;
|
||||
|
||||
/** @var AttachmentService */
|
||||
private $attachmentService;
|
||||
|
||||
/** @var BoardMapper */
|
||||
private $boardMapper;
|
||||
|
||||
@@ -62,6 +68,8 @@ class DefaultBoardServiceTest extends TestCase {
|
||||
$this->boardService = $this->createMock(BoardService::class);
|
||||
$this->stackService = $this->createMock(StackService::class);
|
||||
$this->cardService = $this->createMock(CardService::class);
|
||||
$this->labelService = $this->createMock(LabelService::class);
|
||||
$this->attachmentService = $this->createMock(AttachmentService::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->l10n = $this->createMock(IL10N::class);
|
||||
$this->userId = 'admin';
|
||||
@@ -72,7 +80,9 @@ class DefaultBoardServiceTest extends TestCase {
|
||||
$this->boardService,
|
||||
$this->stackService,
|
||||
$this->cardService,
|
||||
$this->config
|
||||
$this->config,
|
||||
$this->labelService,
|
||||
$this->attachmentService,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -109,8 +119,8 @@ class DefaultBoardServiceTest extends TestCase {
|
||||
}
|
||||
|
||||
public function testCreateDefaultBoard() {
|
||||
$title = 'Personal';
|
||||
$color = '317CCC';
|
||||
$title = 'Welcome to Nextcloud Deck!';
|
||||
$color = 'bf678b';
|
||||
$boardId = 5;
|
||||
|
||||
$board = new Board();
|
||||
@@ -128,34 +138,70 @@ class DefaultBoardServiceTest extends TestCase {
|
||||
return $text;
|
||||
});
|
||||
|
||||
$stackCustomId = '122';
|
||||
$stackCustom = $this->assembleTestStack('Custom lists - click to rename!', $stackCustomId, $boardId);
|
||||
|
||||
$stackToDoId = '123';
|
||||
$stackToDo = $this->assembleTestStack('To do', $stackToDoId, $boardId);
|
||||
$stackToDo = $this->assembleTestStack('To Do', $stackToDoId, $boardId);
|
||||
|
||||
$stackDoingId = '124';
|
||||
$stackDoing = $this->assembleTestStack('Doing', $stackDoingId, $boardId);
|
||||
$stackDoing = $this->assembleTestStack('In Progress', $stackDoingId, $boardId);
|
||||
|
||||
$stackDoneId = '125';
|
||||
$stackDone = $this->assembleTestStack('Done', $stackDoneId, $boardId);
|
||||
$this->stackService->expects($this->exactly(3))
|
||||
->method('create')
|
||||
->withConsecutive(
|
||||
[$this->l10n->t('To do'), $boardId, 1],
|
||||
[$this->l10n->t('Doing'), $boardId, 1],
|
||||
[$this->l10n->t('Done'), $boardId, 1]
|
||||
)
|
||||
->willReturnOnConsecutiveCalls($stackToDo, $stackDoing, $stackDone);
|
||||
|
||||
$cardExampleTask3 = $this->assembleTestCard('Example Task 3', $stackToDoId, $this->userId);
|
||||
$cardExampleTask2 = $this->assembleTestCard('Example Task 2', $stackDoingId, $this->userId);
|
||||
$cardExampleTask1 = $this->assembleTestCard('Example Task 1', $stackDoneId, $this->userId);
|
||||
$this->cardService->expects($this->exactly(3))
|
||||
$this->stackService->expects($this->exactly(4))
|
||||
->method('create')
|
||||
->withConsecutive(
|
||||
['Example Task 3', $stackToDoId, 'text', 0, $this->userId],
|
||||
['Example Task 2', $stackDoingId, 'text', 0, $this->userId],
|
||||
['Example Task 1', $stackDoneId, 'text', 0, $this->userId]
|
||||
[$this->l10n->t('Custom lists - click to rename!'), $boardId, 0],
|
||||
[$this->l10n->t('To Do'), $boardId, 1],
|
||||
[$this->l10n->t('In Progress'), $boardId, 2],
|
||||
[$this->l10n->t('Done'), $boardId, 3]
|
||||
)
|
||||
->willReturnonConsecutiveCalls($cardExampleTask3, $cardExampleTask2, $cardExampleTask1);
|
||||
->willReturnOnConsecutiveCalls($stackCustom, $stackToDo, $stackDoing, $stackDone);
|
||||
|
||||
$cardExampleTask1 = $this->assembleTestCard(
|
||||
'1. Open to learn more about boards and cards',
|
||||
$stackCustomId,
|
||||
$this->userId
|
||||
);
|
||||
$cardExampleTask2 = $this->assembleTestCard(
|
||||
'2. Drag cards left and right, up and down',
|
||||
$stackToDoId,
|
||||
$this->userId
|
||||
);
|
||||
$cardExampleTask3 = $this->assembleTestCard(
|
||||
'Create your first card!',
|
||||
$stackToDoId,
|
||||
$this->userId
|
||||
);
|
||||
$cardExampleTask4 = $this->assembleTestCard(
|
||||
'3. Apply rich formatting and link content',
|
||||
$stackDoingId,
|
||||
$this->userId
|
||||
);
|
||||
$cardExampleTask5 = $this->assembleTestCard(
|
||||
'4. Share, comment and collaborate!',
|
||||
$stackDoneId,
|
||||
$this->userId
|
||||
);
|
||||
|
||||
$this->cardService->expects($this->exactly(5))
|
||||
->method('create')
|
||||
->withConsecutive(
|
||||
['1. Open to learn more about boards and cards', $stackCustomId, 'text', 0, $this->userId],
|
||||
['2. Drag cards left and right, up and down', $stackToDoId, 'text', 0, $this->userId],
|
||||
['Create your first card!', $stackToDoId, 'text', 1, $this->userId],
|
||||
['3. Apply rich formatting and link content', $stackDoingId, 'text', 0, $this->userId],
|
||||
['4. Share, comment and collaborate!', $stackDoneId, 'text', 0, $this->userId]
|
||||
)
|
||||
->willReturnonConsecutiveCalls(
|
||||
$cardExampleTask1,
|
||||
$cardExampleTask2,
|
||||
$cardExampleTask3,
|
||||
$cardExampleTask4,
|
||||
$cardExampleTask5
|
||||
);
|
||||
|
||||
$result = $this->service->createDefaultBoard($title, $this->userId, $color);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user