Compare commits

..

38 Commits

Author SHA1 Message Date
Julius Härtl
3c407c06ff Merge pull request #4771 from nextcloud/release/1.10.0 2023-06-12 10:53:33 +02:00
Julius Härtl
febd4b1a0b Merge pull request #4800 from nextcloud/automated/noid/stable27-fix-npm-audit 2023-06-12 09:12:54 +02:00
nextcloud-command
12c3e476f9 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-11 03:36:39 +00:00
Nextcloud bot
ec8c782b5a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-11 00:52:40 +00:00
Julius Härtl
0575926692 Merge pull request #4781 from nextcloud/dependabot/npm_and_yarn/stable27/url-search-params-polyfill-8.2.3 2023-06-10 12:48:48 +02:00
dependabot[bot]
617671c004 Merge pull request #4792 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.14.0 2023-06-10 04:58:49 +00:00
dependabot[bot]
2f9cf4df37 Merge pull request #4778 from nextcloud/dependabot/npm_and_yarn/stable27/vue/test-utils-1.3.6 2023-06-10 03:43:39 +00:00
dependabot[bot]
7e5e0e2814 Chore(deps-dev): Bump cypress from 12.13.0 to 12.14.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.13.0 to 12.14.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.13.0...v12.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 03:28:13 +00:00
dependabot[bot]
dd09c2ad69 Merge pull request #4783 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/vue-7.12.0 2023-06-10 03:21:26 +00:00
dependabot[bot]
87dfdd62d4 Chore(deps): Bump @nextcloud/vue from 7.11.6 to 7.12.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.11.6 to 7.12.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.12.0/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.11.6...v7.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 03:02:09 +00:00
dependabot[bot]
bd77b12f9b Chore(deps): Bump url-search-params-polyfill from 8.2.2 to 8.2.3
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 8.2.2 to 8.2.3.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 01:57:56 +00:00
dependabot[bot]
b861f2b1cd Chore(deps-dev): Bump @vue/test-utils from 1.3.5 to 1.3.6
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-10 01:57:50 +00:00
Julius Härtl
8cf3853387 Merge pull request #4773 from nextcloud/backport/4765/stable27 2023-06-09 17:44:21 +02:00
Git'Fellow
313b5b0e15 Ensure boardId is an integer
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-06-09 07:43:11 +00:00
Julius Härtl
7c81c7237b chore(release): Bump version to 1.10.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-09 09:31:18 +02:00
dependabot[bot]
82eb262433 Merge pull request #4756 from nextcloud/dependabot/npm_and_yarn/stable27/babel/runtime-7.22.3 2023-06-03 03:41:37 +00:00
dependabot[bot]
5ba5eb89b2 Merge pull request #4758 from nextcloud/dependabot/npm_and_yarn/stable27/url-search-params-polyfill-8.2.2 2023-06-03 03:21:04 +00:00
dependabot[bot]
b714be7829 Chore(deps): Bump url-search-params-polyfill from 8.1.1 to 8.2.2
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 8.1.1 to 8.2.2.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/commits)

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-03 01:57:51 +00:00
Nextcloud bot
542c70eac1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-03 00:31:46 +00:00
Julius Härtl
f54722cd5a Merge pull request #4736 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/auth-2.1.0 2023-05-30 10:55:55 +02:00
dependabot[bot]
5c29392428 Merge pull request #4738 from nextcloud/dependabot/npm_and_yarn/stable27/babel/runtime-7.22.0 2023-05-27 06:50:57 +00:00
dependabot[bot]
b8071def95 Merge pull request #4733 from nextcloud/dependabot/npm_and_yarn/stable27/cypress-12.13.0 2023-05-27 03:17:23 +00:00
dependabot[bot]
fba6dc0a45 Chore(deps): Bump @babel/runtime from 7.21.5 to 7.22.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.21.5 to 7.22.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.0/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 03:11:38 +00:00
dependabot[bot]
536029e6c6 Chore(deps): Bump @nextcloud/auth from 2.0.0 to 2.1.0
Bumps [@nextcloud/auth](https://github.com/nextcloud/nextcloud-auth) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-auth/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-auth/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-auth/compare/v2.0.0...v2.1.0)

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

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

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

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

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

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

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

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -23,7 +23,7 @@ jobs:
# containers: [1, 2, 3]
php-versions: [ '8.0' ]
databases: [ 'sqlite' ]
server-versions: [ 'master' ]
server-versions: [ 'stable27' ]
steps:
- name: Use Node.js ${{ matrix.node-version }}
@@ -64,7 +64,7 @@ jobs:
path: apps/text
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.4
uses: shivammathur/setup-php@2.25.1
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -19,10 +19,11 @@
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^5.4",
"php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-master"
"nextcloud/ocp": "dev-stable27"
},
"config": {
"optimize-autoloader": true,
"classmap-authoritative": true,
"allow-plugins": {
"composer/package-versions-deprecated": true
},

882
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -68,7 +68,6 @@ OC.L10N.register(
"Changes in the <strong>Deck app</strong>" : "تغييرات في <strong>تطبيق Deck</strong> ",
"A <strong>comment</strong> was created on a card" : "<strong>تعليق</strong> تم إنشاؤه على بطاقة",
"Upcoming cards" : "البطاقات القادمة",
"Load more" : "حمّل أكثر",
"Personal" : "شخصي",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "البطاقة \"%s\" على \"%s\" كُلفت بها من قبل %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} قام بتكليف البطاقة {deck-board} على {deck-board} لك",
@@ -79,12 +78,8 @@ OC.L10N.register(
"The board \"%s\" has been shared with you by %s." : "تمت مشاركة اللوح \"%s\" معك من قبل %s.",
"{user} has shared {deck-board} with you." : "{user} قام بمشاركة {deck-board} معك.",
"Deck board" : "لوح Deck",
"Owned by %1$s" : "يملكها %1$s",
"Deck boards, cards and comments" : "الرُّقع و البطاقات و الملاحظات",
"From %1$s, in %2$s/%3$s, owned by %4$s" : " من %1$s، في %2$s/%3$s، يملكها %4$s",
"Card comments" : "تعليقات البطاقة ",
"%s on %s" : "%s على %s",
"Deck boards and cards" : "الرُّقع و البطاقات",
"No data was provided to create an attachment." : "لا بيانات تم تقديمها لانشاء مرفق",
"Finished" : "اكتمل",
"To review" : "لإعادة المراجعة",
@@ -106,12 +101,10 @@ OC.L10N.register(
"Could not write file to disk" : "لم يستطع كتابة ملف للقرص",
"A PHP extension stopped the file upload" : "إضافة البي اچ بي PHP أوقفت رفع الملف",
"No file uploaded or file size exceeds maximum of %s" : "لم يتم تحميل أي ملف أو أن يتجاوز حجم الملف الحد الأقصى %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
"Card not found" : "لم يتم العثور على البطاقة ",
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Personal planning and team project organization" : "التخطيط الشخصي و تنظيم مشروع الفريق",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "التطبيق Deck \"الرُّقعة\" هو أداة لتنظيم المهام الشخصية و الجماعية في نكست كلاود على نمط \"خطوط التصنيع أو التجميع في المصانع\" و المعروف بـ kanban.\n\n\n- 📥 أكتب مهمتك او مهمة فريقك على بطاقة و ضع البطاقة في الرُّقعة على كدسة البطاقات من ذات التصنيف أو المرحلة من الإنجاز\n- 📄 دوّن ملاحظاتك الإضافية على البطاقة بصيغة ماركداون markdown\n- 🔖 و يمكنك أيضاً إسناد البطاقة أي المهمة إلى شخص أو أشخاص في فريقك\n- 👥 شارك البطاقة مع من ترغب من أعضاء فريقك أو عائلتك أو أصدقائك\n- 📎 إرفاق ملفات و تضمينها بصيغة ماركداون في البطاقة\n- 💬ناقش البطاقة مع زملائك في خانة الملاحظات\n- ⚡ تابع ما يُستجد من عمليات و تطوّرات على البطاقة أو المهمة\n- 🚀 حافظ على مشروعك مُنسّقاً باستمرار.",
"Add board" : "إضافة لوح",
"Select the board to link to a project" : "تحديد اللوح لربطه بمشروع",
"Search by board title" : "بحث بواسطة عنوان اللوح",
@@ -140,7 +133,6 @@ OC.L10N.register(
"Archived cards" : "البطاقات المؤرشفة",
"Add list" : "إضافة قائمة",
"List name" : "قامة اسماء",
"Active filters" : "فلاتر نشطة",
"Apply filter" : "تطبيق التصفية",
"Filter by tag" : "تصفية بواسطة الوسم",
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
@@ -157,7 +149,6 @@ OC.L10N.register(
"Toggle compact mode" : "تبديل النمط المضغوط",
"Open details" : "افتح التفاصيل",
"Details" : "التفاصيل",
"Currently present people" : "أشخاص معروضون حاليّاً",
"Loading board" : "جارِ تحميل اللوح..",
"No lists available" : "لا يوجد قائمة متاحه ",
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
@@ -181,17 +172,10 @@ OC.L10N.register(
"Owner" : "المالك",
"Delete" : "حذف ",
"Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل الرُّقعة {title} إلى {user} ؟",
"Transfer the board." : "نقل الرُّقعة.",
"Transfer" : "نقل",
"The board has been transferred to {user}" : "تمّ نقل الرُّقعة إلى {user}",
"Failed to transfer the board to {user}" : "إخفاق في نقل الرُّقعة إلى {user}",
"Edit list title" : "عدّل اسم القائمة",
"Archive all cards" : "أرشفة جميع البطاقات ",
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
"Delete list" : "حذف القائمة",
"Archive all cards in this list" : "أرشفة جميع البطاقات في القائمة ",
"Unarchive all cards in this list" : "تراجع عن أرشفة كل البطاقات في هذه القائمة",
"Add a new card" : "إضافة بطاقة جديدة",
"Card name" : "اسم البطاقة ",
"List deleted" : "القائمة حٌذفت ",
@@ -202,11 +186,9 @@ OC.L10N.register(
"Members" : "الاعضاء",
"Upload new files" : "رفع ملفات جديدة",
"Share from Files" : "مشاركة من الملفات",
"Pending share" : "مشاركة مُعلّقة",
"Add this attachment" : "إضافة هذا المرفق",
"Show in Files" : "عرض في الملفات ",
"Download" : "تنزيل",
"Remove attachment" : "حذف المُرفق",
"Delete Attachment" : "مسح المرفق",
"Restore Attachment" : "إستعادة المرفق",
"File to share" : "ملف للمشاركة",
@@ -249,9 +231,7 @@ OC.L10N.register(
"Write a description …" : "كتابة وصف...",
"Choose attachment" : "اختيار مرفق",
"(group)" : "(مجموعة)",
"Todo items" : "قائمة المهام",
"{count} comments, {unread} unread" : "{عدد} التعليقات، {غير مقروءة} غير مقروءة",
"Edit card title" : "تعديل اسم القائمة",
"Assign to me" : "ينسب لي",
"Unassign myself" : "إلغاء تعييني ",
"Move card" : "حرك البطاقة",
@@ -260,15 +240,12 @@ OC.L10N.register(
"Archive card" : "أرشفة البطاقة",
"Delete card" : "حذف البطاقة",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"List is empty" : "القائمة فارغة",
"Card deleted" : "البطاقة حٌذفت ",
"seconds ago" : "ثوانٍ مضت",
"All boards" : "جميع الالواح",
"Archived boards" : "الالواح المؤرشفة",
"Shared with you" : "تم مشاركتها معك",
"Deck settings" : "إعدادات الرُّقعة",
"Use bigger card view" : "استخدام بطاقة عرض أكبر ",
"Show card ID badge" : "أعرض شارة رقم البطاقة",
"Show boards in calendar/tasks" : "إظهار اللوح في التقويم/المهام",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
@@ -277,7 +254,6 @@ OC.L10N.register(
"Clone board" : "استنسخ اللوح",
"Unarchive board" : "إلغاء أرشفة اللوح",
"Archive board" : "أرشفة اللوح ",
"Export board" : "صدّر الرُّقعة",
"Turn on due date reminders" : "تفعيل التذكيرات للموعد المحدد ",
"Turn off due date reminders" : "إيقاف تشغيل التذكيرات للموعد المحددد",
"Due date reminders" : "تذكيرات الموعد المحدد ",
@@ -289,22 +265,14 @@ OC.L10N.register(
"Only assigned cards" : "البطاقات المخصصة فقط",
"No reminder" : "لا يوجد تذكير ",
"An error occurred" : "حدث خطأ",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "هل أنت متأكد من حذف الرقعة {title}؟ هذا سيؤدي إلى حذف كل بيانات هذه الرُّقعة بما في ذلك البطاقات المؤرشفة.",
"Delete the board?" : "مسح اللوح؟",
"Loading filtered view" : "جارِ تحميل التصفية ",
"No due" : "غير محدد",
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
"No results found" : "لا يتم العثور على أي نتائج ",
"Deck board {name}\n* Last modified on {lastMod}" : "اسم الرُّقعة {name} \n* آخر تعديل لها في {lastMod}",
"{stack} in {board}" : "{stack} في {board}",
"Click to expand description" : "إضعط للتوسّع في الوصف",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* أُنشأت في {created}\n* آخر تعديل لها في {lastMod}\n* {nbAttachments} مُرفقات\n* {nbComments} مُلاحظات",
"{nbCards} cards" : "{nbCards} بطاقات",
"Click to expand comment" : "إضغط للتوسع في الملاحظات",
"No upcoming cards" : "لا يوجد بطاقات قادمة ",
"upcoming cards" : "البطاقات القادمة",
"New card" : "بطاقة جديدة",
"Due on {date}" : "مطلوب في {date}",
"Link to a board" : "ربط بلوح",
"Link to a card" : "ربط ببطاقة",
"Create a card" : "أنشى بطاقة ",

View File

@@ -66,7 +66,6 @@
"Changes in the <strong>Deck app</strong>" : "تغييرات في <strong>تطبيق Deck</strong> ",
"A <strong>comment</strong> was created on a card" : "<strong>تعليق</strong> تم إنشاؤه على بطاقة",
"Upcoming cards" : "البطاقات القادمة",
"Load more" : "حمّل أكثر",
"Personal" : "شخصي",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "البطاقة \"%s\" على \"%s\" كُلفت بها من قبل %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} قام بتكليف البطاقة {deck-board} على {deck-board} لك",
@@ -77,12 +76,8 @@
"The board \"%s\" has been shared with you by %s." : "تمت مشاركة اللوح \"%s\" معك من قبل %s.",
"{user} has shared {deck-board} with you." : "{user} قام بمشاركة {deck-board} معك.",
"Deck board" : "لوح Deck",
"Owned by %1$s" : "يملكها %1$s",
"Deck boards, cards and comments" : "الرُّقع و البطاقات و الملاحظات",
"From %1$s, in %2$s/%3$s, owned by %4$s" : " من %1$s، في %2$s/%3$s، يملكها %4$s",
"Card comments" : "تعليقات البطاقة ",
"%s on %s" : "%s على %s",
"Deck boards and cards" : "الرُّقع و البطاقات",
"No data was provided to create an attachment." : "لا بيانات تم تقديمها لانشاء مرفق",
"Finished" : "اكتمل",
"To review" : "لإعادة المراجعة",
@@ -104,12 +99,10 @@
"Could not write file to disk" : "لم يستطع كتابة ملف للقرص",
"A PHP extension stopped the file upload" : "إضافة البي اچ بي PHP أوقفت رفع الملف",
"No file uploaded or file size exceeds maximum of %s" : "لم يتم تحميل أي ملف أو أن يتجاوز حجم الملف الحد الأقصى %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : " هذه الملاحظات فيها أكثر من %s حرفاً.\n تمّت إضافتها كمُرفق إلى البطاقة التي اسمها%s.\n الموجودة على الرابط %s.",
"Card not found" : "لم يتم العثور على البطاقة ",
"Path is already shared with this card" : "تم مشاركة المسار بالفعل مع هذه البطاقة ",
"Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Personal planning and team project organization" : "التخطيط الشخصي و تنظيم مشروع الفريق",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "التطبيق Deck \"الرُّقعة\" هو أداة لتنظيم المهام الشخصية و الجماعية في نكست كلاود على نمط \"خطوط التصنيع أو التجميع في المصانع\" و المعروف بـ kanban.\n\n\n- 📥 أكتب مهمتك او مهمة فريقك على بطاقة و ضع البطاقة في الرُّقعة على كدسة البطاقات من ذات التصنيف أو المرحلة من الإنجاز\n- 📄 دوّن ملاحظاتك الإضافية على البطاقة بصيغة ماركداون markdown\n- 🔖 و يمكنك أيضاً إسناد البطاقة أي المهمة إلى شخص أو أشخاص في فريقك\n- 👥 شارك البطاقة مع من ترغب من أعضاء فريقك أو عائلتك أو أصدقائك\n- 📎 إرفاق ملفات و تضمينها بصيغة ماركداون في البطاقة\n- 💬ناقش البطاقة مع زملائك في خانة الملاحظات\n- ⚡ تابع ما يُستجد من عمليات و تطوّرات على البطاقة أو المهمة\n- 🚀 حافظ على مشروعك مُنسّقاً باستمرار.",
"Add board" : "إضافة لوح",
"Select the board to link to a project" : "تحديد اللوح لربطه بمشروع",
"Search by board title" : "بحث بواسطة عنوان اللوح",
@@ -138,7 +131,6 @@
"Archived cards" : "البطاقات المؤرشفة",
"Add list" : "إضافة قائمة",
"List name" : "قامة اسماء",
"Active filters" : "فلاتر نشطة",
"Apply filter" : "تطبيق التصفية",
"Filter by tag" : "تصفية بواسطة الوسم",
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
@@ -155,7 +147,6 @@
"Toggle compact mode" : "تبديل النمط المضغوط",
"Open details" : "افتح التفاصيل",
"Details" : "التفاصيل",
"Currently present people" : "أشخاص معروضون حاليّاً",
"Loading board" : "جارِ تحميل اللوح..",
"No lists available" : "لا يوجد قائمة متاحه ",
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
@@ -179,17 +170,10 @@
"Owner" : "المالك",
"Delete" : "حذف ",
"Failed to create share with {displayName}" : "فشل في إنشاء المشاركة مع {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "هل أنت متأكد أنك تريد نقل الرُّقعة {title} إلى {user} ؟",
"Transfer the board." : "نقل الرُّقعة.",
"Transfer" : "نقل",
"The board has been transferred to {user}" : "تمّ نقل الرُّقعة إلى {user}",
"Failed to transfer the board to {user}" : "إخفاق في نقل الرُّقعة إلى {user}",
"Edit list title" : "عدّل اسم القائمة",
"Archive all cards" : "أرشفة جميع البطاقات ",
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
"Delete list" : "حذف القائمة",
"Archive all cards in this list" : "أرشفة جميع البطاقات في القائمة ",
"Unarchive all cards in this list" : "تراجع عن أرشفة كل البطاقات في هذه القائمة",
"Add a new card" : "إضافة بطاقة جديدة",
"Card name" : "اسم البطاقة ",
"List deleted" : "القائمة حٌذفت ",
@@ -200,11 +184,9 @@
"Members" : "الاعضاء",
"Upload new files" : "رفع ملفات جديدة",
"Share from Files" : "مشاركة من الملفات",
"Pending share" : "مشاركة مُعلّقة",
"Add this attachment" : "إضافة هذا المرفق",
"Show in Files" : "عرض في الملفات ",
"Download" : "تنزيل",
"Remove attachment" : "حذف المُرفق",
"Delete Attachment" : "مسح المرفق",
"Restore Attachment" : "إستعادة المرفق",
"File to share" : "ملف للمشاركة",
@@ -247,9 +229,7 @@
"Write a description …" : "كتابة وصف...",
"Choose attachment" : "اختيار مرفق",
"(group)" : "(مجموعة)",
"Todo items" : "قائمة المهام",
"{count} comments, {unread} unread" : "{عدد} التعليقات، {غير مقروءة} غير مقروءة",
"Edit card title" : "تعديل اسم القائمة",
"Assign to me" : "ينسب لي",
"Unassign myself" : "إلغاء تعييني ",
"Move card" : "حرك البطاقة",
@@ -258,15 +238,12 @@
"Archive card" : "أرشفة البطاقة",
"Delete card" : "حذف البطاقة",
"Move card to another board" : "حرك البطاقة الى لوح اخر",
"List is empty" : "القائمة فارغة",
"Card deleted" : "البطاقة حٌذفت ",
"seconds ago" : "ثوانٍ مضت",
"All boards" : "جميع الالواح",
"Archived boards" : "الالواح المؤرشفة",
"Shared with you" : "تم مشاركتها معك",
"Deck settings" : "إعدادات الرُّقعة",
"Use bigger card view" : "استخدام بطاقة عرض أكبر ",
"Show card ID badge" : "أعرض شارة رقم البطاقة",
"Show boards in calendar/tasks" : "إظهار اللوح في التقويم/المهام",
"Limit deck usage of groups" : "تقييد استخدام Deck للمجموعات",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "سيؤدي تقييد Deck إلى منع المستخدمين الذين ليسوا جزءًا من تلك المجموعات من إنشاء لوحاتهم الخاصة. سيظل المستخدمون قادرين على العمل على اللوحات التي تمت مشاركتها معهم.",
@@ -275,7 +252,6 @@
"Clone board" : "استنسخ اللوح",
"Unarchive board" : "إلغاء أرشفة اللوح",
"Archive board" : "أرشفة اللوح ",
"Export board" : "صدّر الرُّقعة",
"Turn on due date reminders" : "تفعيل التذكيرات للموعد المحدد ",
"Turn off due date reminders" : "إيقاف تشغيل التذكيرات للموعد المحددد",
"Due date reminders" : "تذكيرات الموعد المحدد ",
@@ -287,22 +263,14 @@
"Only assigned cards" : "البطاقات المخصصة فقط",
"No reminder" : "لا يوجد تذكير ",
"An error occurred" : "حدث خطأ",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "هل أنت متأكد من حذف الرقعة {title}؟ هذا سيؤدي إلى حذف كل بيانات هذه الرُّقعة بما في ذلك البطاقات المؤرشفة.",
"Delete the board?" : "مسح اللوح؟",
"Loading filtered view" : "جارِ تحميل التصفية ",
"No due" : "غير محدد",
"Search for {searchQuery} in all boards" : "البحث عن {searchQuery} في جميع اللوح",
"No results found" : "لا يتم العثور على أي نتائج ",
"Deck board {name}\n* Last modified on {lastMod}" : "اسم الرُّقعة {name} \n* آخر تعديل لها في {lastMod}",
"{stack} in {board}" : "{stack} في {board}",
"Click to expand description" : "إضعط للتوسّع في الوصف",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* أُنشأت في {created}\n* آخر تعديل لها في {lastMod}\n* {nbAttachments} مُرفقات\n* {nbComments} مُلاحظات",
"{nbCards} cards" : "{nbCards} بطاقات",
"Click to expand comment" : "إضغط للتوسع في الملاحظات",
"No upcoming cards" : "لا يوجد بطاقات قادمة ",
"upcoming cards" : "البطاقات القادمة",
"New card" : "بطاقة جديدة",
"Due on {date}" : "مطلوب في {date}",
"Link to a board" : "ربط بلوح",
"Link to a card" : "ربط ببطاقة",
"Create a card" : "أنشى بطاقة ",

View File

@@ -266,7 +266,7 @@ OC.L10N.register(
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres de Targetes",
"Deck settings" : "Paràmetres del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",

View File

@@ -264,7 +264,7 @@
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres de Targetes",
"Deck settings" : "Paràmetres del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",

View File

@@ -4,7 +4,6 @@ OC.L10N.register(
"Personal" : "Isiklik",
"Finished" : "Lõpetatud",
"Later" : "Hiljem",
"copy" : "koopia",
"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",
@@ -13,8 +12,6 @@ OC.L10N.register(
"No file was uploaded" : "Ühtegi faili ei latud üles",
"Missing a temporary folder" : "Ajutine kausta on puudu",
"Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus",
"A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise",
"No file uploaded or file size exceeds maximum of %s" : "Faili ei laaditud üles või selle suurus ületab maksimaalse %s",
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
"Cancel" : "Loobu",
"Close" : "Sulge",

View File

@@ -2,7 +2,6 @@
"Personal" : "Isiklik",
"Finished" : "Lõpetatud",
"Later" : "Hiljem",
"copy" : "koopia",
"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",
@@ -11,8 +10,6 @@
"No file was uploaded" : "Ühtegi faili ei latud üles",
"Missing a temporary folder" : "Ajutine kausta on puudu",
"Could not write file to disk" : "Faili kirjutamine kettale ebaõnnestus",
"A PHP extension stopped the file upload" : "PHP laiendus peatas faili üleslaadimise",
"No file uploaded or file size exceeds maximum of %s" : "Faili ei laaditud üles või selle suurus ületab maksimaalse %s",
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
"Cancel" : "Loobu",
"Close" : "Sulge",

View File

@@ -1,97 +1,89 @@
OC.L10N.register(
"deck",
{
"You have created a new board {board}" : "Vde. creou o novo taboleiro {board}",
"You have created a new board {board}" : "Vostede creou o novo taboleiro {board}",
"{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}",
"You have deleted the board {board}" : "Vde. eliminou o taboleiro {board}",
"You have deleted the board {board}" : "Vostede eliminou o taboleiro {board}",
"{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}",
"You have restored the board {board}" : "Vde. restaurou o taboleiro {board}",
"You have restored the board {board}" : "Vostede restaurou o taboleiro {board}",
"{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}",
"You have shared the board {board} with {acl}" : "Vde. compartiu o taboleiro {board} con {acl}",
"You have shared the board {board} with {acl}" : "Vostede compartiu o taboleiro {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}",
"You have removed {acl} from the board {board}" : "Vde. retirou a {acl} do taboleiro {board}",
"You have removed {acl} from the board {board}" : "Vostede retirou a {acl} do taboleiro {board}",
"{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}",
"You have renamed the board {before} to {board}" : "Vde. renomeou o taboleiro {before} como {board}",
"You have renamed the board {before} to {board}" : "Vostede renomeou o taboleiro {before} como {board}",
"{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}",
"You have archived the board {board}" : "Vde. arquivou o taboleiro {board}",
"You have archived the board {board}" : "Vostede arquivou o taboleiro {board}",
"{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}",
"You have unarchived the board {board}" : "Vde. desarquivou o taboleiro {board}",
"You have unarchived the board {board}" : "Vostede desarquivou o taboleiro {board}",
"{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}",
"You have created a new list {stack} on board {board}" : "Vde. creou unha nova lista {stack} no taboleiro {board}",
"You have created a new list {stack} on board {board}" : "Vostede creou unha nova lista {stack} no taboleiro {board}",
"{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vde. renomeou a lista {before} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vostede renomeou a lista {before} no taboleiro {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vde. eliminou a lista {stack} do taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vostede eliminou a lista {stack} do taboleiro {board}",
"{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vde. creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vostede creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vde. eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vostede eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vde. engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vostede engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vde. actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vostede actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vde. arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vostede arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vde. desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vostede desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the due date of card {card}" : "Vde. retirou a caducidade da tarxeta {card}",
"You have removed the due date of card {card}" : "Vostede retirou a caducidade da tarxeta {card}",
"{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}",
"You have set the due date of card {card} to {after}" : "Vde. estabeleceu a caducidade da tarxeta {card} a {after}",
"You have set the due date of card {card} to {after}" : "Vostede estabeleceu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vde. actualizou a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vostede actualizou a caducidade da tarxeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vde. engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vostede engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vde. retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vostede retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vde. asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vostede asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vde. desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vostede desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vde. moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vostede moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have added the attachment {attachment} to card {card}" : "Vde. engadiu o anexo {attachment} na tarxeta {card}",
"You have added the attachment {attachment} to card {card}" : "Vostede engadiu o anexo {attachment} na tarxeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vde. actualizou o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vostede actualizou o anexo {attachment} na tarxeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vde. eliminou o anexo {attachment} da tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vostede eliminou o anexo {attachment} da tarxeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vde. restaurou o anexo {attachment} na tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vostede restaurou o anexo {attachment} na tarxeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
"You have commented on card {card}" : "Vde. comentou na tarxeta {card}",
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}",
"{user} has commented on card {card}" : "{user} comentou na tarxeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro",
"Deck" : "Tarxeteiro",
"Changes in the <strong>Deck app</strong>" : "Cambios na <strong>aplicación Tarxeteiro</strong>",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Deck",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Cambios na <strong>aplicación Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Creouse un <strong>comentario</strong> nunha tarxeta",
"Upcoming cards" : "Tarxetas próximas",
"Load more" : "Cargar máis",
"Personal" : "Persoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a Vde. por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a Vde.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a Vde. nun comentario en «%s».",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a Vde. nun comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con Vde. por %s.",
"{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.",
"Deck board" : "Taboleiro do Tarxeteiro",
"Owned by %1$s" : "Propiedade de %1$s",
"Deck boards, cards and comments" : "Taboleiros do Tarxeteiro, tarxetas e comentarios",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, propiedade de %4$s",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a vostede por %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a vostede nun comentario en «%s».",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede por %s.",
"Deck board" : "Taboleiro do Deck",
"Card comments" : "Comentarios da tarxeta",
"%s on %s" : "%s en %s",
"Deck boards and cards" : "Taboleiros do Tarxeteiro e tarxetas",
"No data was provided to create an attachment." : "Non se forneceu ningún dato para crear un anexo.",
"Finished" : "Rematado",
"To review" : "Para revisar",
"Action needed" : "Necesita unha acción",
"Later" : "Após",
"Later" : "Despois",
"copy" : "copiar",
"To do" : "Tarefa pendente",
"To do" : "Para facer",
"Doing" : "Facendo",
"Done" : "Feito",
"Example Task 3" : "Tarefa de exemplo 3",
@@ -106,12 +98,10 @@ OC.L10N.register(
"Could not write file to disk" : "Non foi posíbel escribir o ficheiro no disco",
"A PHP extension stopped the file upload" : "Unha extensión PHP detivo o envío de ficheiros",
"No file uploaded or file size exceeds maximum of %s" : "Non se enviou ningún ficheiro ou o tamaño do ficheiro supera 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 comentario ten máis de %s caracteres.\nEngadido como anexo á tarxeta co nome %s.\nAccesíbel no URL: %s.",
"Card not found" : "Non se atopou a tarxeta",
"Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta",
"Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e integreos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
"Add board" : "Engadir taboleiro",
"Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto",
"Search by board title" : "Buscar polo título do taboleiro",
@@ -121,14 +111,12 @@ OC.L10N.register(
"Select a list" : "Seleccionar unha lista",
"Card title" : "Título da tarxeta",
"Cancel" : "Cancelar",
"Creating the new card …" : "Creando unha nova tarxeta…",
"Card \"{card}\" was added to \"{board}\"" : "A tarxeta «{card}» foi engdida a «{board}»",
"Open card" : "Abrir a tarxeta",
"Close" : "Pechar",
"Create card" : "Crear tarxeta",
"Select a card" : "Seleccione unha tarxeta",
"Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto",
"Link to card" : "Ligazón á tarxeta",
"Link to card" : "Ligar á tarxeta",
"File already exists" : "O ficheiro xa existe",
"A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.",
"Do you want to overwrite it?" : "Quere sobrescribilo?",
@@ -140,7 +128,6 @@ OC.L10N.register(
"Archived cards" : "Tarxetas arquivadas",
"Add list" : "Engadir unha lista",
"List name" : "Nome da lista",
"Active filters" : "Filtros activos",
"Apply filter" : "Aplicar filtro",
"Filter by tag" : "Filtrar pola etiqueta",
"Filter by assigned user" : "Filtrar polo usuario asignado",
@@ -157,7 +144,6 @@ OC.L10N.register(
"Toggle compact mode" : "Alternar o modo compacto",
"Open details" : "Abrir detalles",
"Details" : "Detalles",
"Currently present people" : "Persoas presentes na actualidade",
"Loading board" : "Cargando o taboleiro",
"No lists available" : "Non hai listas dispoñíbeis",
"Create a new list to add cards to this board" : "Crear unha nova lista para engadir tarxetas a este taboleiro",
@@ -181,17 +167,10 @@ OC.L10N.register(
"Owner" : "Propietario",
"Delete" : "Eliminar",
"Failed to create share with {displayName}" : "Produciuse un fallo ao crear o uso compartido con {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Confirma que quere transferir o taboleiro {title} a {user}?",
"Transfer the board." : "Transferir o taboleiro.",
"Transfer" : "Transferencia",
"The board has been transferred to {user}" : "O taboleiro foi transferido a {user}",
"Failed to transfer the board to {user}" : "Produciuse un fallo ao transferir o taboleiro a {user}",
"Edit list title" : "Editar o título da lista",
"Archive all cards" : "Arquivar todas as tarxetas",
"Unarchive all cards" : "Desarquivar todas as tarxetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Arquivar todas as tarxetas desta lista",
"Unarchive all cards in this list" : "Desarquivar todas as tarxetas desta lista",
"Add a new card" : "Engadir unha nova tarxeta",
"Card name" : "Nome da tarxeta",
"List deleted" : "Lista eliminada",
@@ -202,11 +181,9 @@ OC.L10N.register(
"Members" : "Membros",
"Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Compartición pendente",
"Add this attachment" : "Engadir este anexo",
"Show in Files" : "Amosar en Ficheiros",
"Download" : "Descargar",
"Remove attachment" : "Retirar o anexo",
"Delete Attachment" : "Eliminar o anexo",
"Restore Attachment" : "Restaurar o anexo",
"File to share" : "Ficheiro para compartir",
@@ -219,7 +196,6 @@ OC.L10N.register(
"Created" : "Creado",
"The title cannot be empty." : "O título non pode estar baleiro.",
"No comments yet. Begin the discussion!" : "Aínda non hai comentarios. Comece o debate!",
"Failed to load comments" : "Produciuse un fallo ao cargar os comentarios",
"Assign a tag to this card…" : "Asignar unha etiqueta a esta tarxeta…",
"Assign to users" : "Asignar a usuarios",
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
@@ -236,7 +212,6 @@ OC.L10N.register(
"The comment cannot be empty." : "O comentario non pode estar baleiro",
"The comment cannot be longer than 1000 characters." : "O comentario non pode ter máis de 1000 caracteres.",
"In reply to" : "En resposta a",
"Cancel reply" : "Cancelar a resposta",
"Reply" : "Responder",
"Update" : "Actualizar",
"Description" : "Descrición",
@@ -249,9 +224,6 @@ OC.L10N.register(
"Write a description …" : "Escriba unha descrición…",
"Choose attachment" : "Escoller o anexo",
"(group)" : "(grupo)",
"Todo items" : "Elementos pendentes",
"{count} comments, {unread} unread" : "{count} comentarios, {unread} sen ler",
"Edit card title" : "Editar o título da tarxeta",
"Assign to me" : "Asignarme",
"Unassign myself" : "Desasignarme",
"Move card" : "Mover a tarxeta",
@@ -262,22 +234,19 @@ OC.L10N.register(
"Move card to another board" : "Mover a tarxeta a outro taboleiro",
"List is empty" : "A lista está baleira",
"Card deleted" : "Tarxeta eliminada",
"seconds ago" : "segundos atrás",
"seconds ago" : "hai uns segundos",
"All boards" : "Todos os taboleiros",
"Archived boards" : "Taboleiros arquivados",
"Shared with you" : "Compartido con Vde.",
"Deck settings" : "Axustes do Tarxeteiro",
"Shared with you" : "Compartido con vostede",
"Use bigger card view" : "Usa a vista de tarxeta máis grande",
"Show card ID badge" : "Amosar o distintivo de identificación da tarxeta",
"Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas",
"Limit deck usage of groups" : "Limitar o uso da plataforma a grupos",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitando o Tarxeteiro bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitando Deck bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Board details" : "Detalles do taboleiro",
"Edit board" : "Editar taboleiro",
"Clone board" : "Clonar taboleiro",
"Unarchive board" : "Desarquivar taboleiro",
"Archive board" : "Arquivar taboleiro",
"Export board" : "Exportar taboleiro",
"Turn on due date reminders" : "Activar os lembretes de data de caducidade",
"Turn off due date reminders" : "Desctivar os lembretes de data de caducidade",
"Due date reminders" : "Lembretes de data de caducidade",
@@ -289,32 +258,24 @@ OC.L10N.register(
"Only assigned cards" : "Só as tarxetas asignadas",
"No reminder" : "Non hai lembretes",
"An error occurred" : "Produciuse un erro",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Confirma que quere eliminar o taboleiro {title}? Isto eliminará todos os datos deste taboleiro, incluídas as tarxetas arquivadas.",
"Delete the board?" : "Eliminar o taboleiro?",
"Loading filtered view" : "Cargando a vista filtrada",
"No due" : "Sen caducidade",
"Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros",
"No results found" : "Non se atoparon resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {name}\n* Última modificación en {lastMod}",
"{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Prema para despregar a descrición",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarxetas",
"Click to expand comment" : "Prema para despregar o comentario",
"No upcoming cards" : "Non hai tarxetas próximas",
"upcoming cards" : "tarxetas próximas",
"New card" : "Nova tarxeta",
"Due on {date}" : "Caduca o {date}",
"Link to a board" : "Ligazón a un taboleiro",
"Link to a card" : "Ligazón a unha tarxeta",
"Link to a board" : "Ligar a un taboleiro",
"Link to a card" : "Ligar a unha tarxeta",
"Create a card" : "Crear unha tarxeta",
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
"Something went wrong" : "Algo foi mal",
"Failed to upload {name}" : "Produciuse un fallo ao actualizar {name}",
"Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}",
"Error creating the share" : "Produciuse un erro ao crear a compartición",
"Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro",
"Share {file} with a Deck card" : "Compartir {file} cunha tarxeta de Tarxeteiro",
"Share with a Deck card" : "Compartir cunha tarxeta Deck",
"Share {file} with a Deck card" : "Compartir {file} cunha tarxeta Deck",
"Share" : "Compartir",
"Add a new list" : "Engadir unha lista nova"
},

View File

@@ -1,95 +1,87 @@
{ "translations": {
"You have created a new board {board}" : "Vde. creou o novo taboleiro {board}",
"You have created a new board {board}" : "Vostede creou o novo taboleiro {board}",
"{user} has created a new board {board}" : "{user} creou o novo taboleiro {board}",
"You have deleted the board {board}" : "Vde. eliminou o taboleiro {board}",
"You have deleted the board {board}" : "Vostede eliminou o taboleiro {board}",
"{user} has deleted the board {board}" : "{user} eliminou o taboleiro {board}",
"You have restored the board {board}" : "Vde. restaurou o taboleiro {board}",
"You have restored the board {board}" : "Vostede restaurou o taboleiro {board}",
"{user} has restored the board {board}" : "{user} restaurou o taboleiro {board}",
"You have shared the board {board} with {acl}" : "Vde. compartiu o taboleiro {board} con {acl}",
"You have shared the board {board} with {acl}" : "Vostede compartiu o taboleiro {board} con {acl}",
"{user} has shared the board {board} with {acl}" : "{user} compartiu o taboleiro {board} con {acl}",
"You have removed {acl} from the board {board}" : "Vde. retirou a {acl} do taboleiro {board}",
"You have removed {acl} from the board {board}" : "Vostede retirou a {acl} do taboleiro {board}",
"{user} has removed {acl} from the board {board}" : "{user} retirou a {acl} do taboleiro {board}",
"You have renamed the board {before} to {board}" : "Vde. renomeou o taboleiro {before} como {board}",
"You have renamed the board {before} to {board}" : "Vostede renomeou o taboleiro {before} como {board}",
"{user} has renamed the board {before} to {board}" : "{user} renomeou o taboleiro {before} como {board}",
"You have archived the board {board}" : "Vde. arquivou o taboleiro {board}",
"You have archived the board {board}" : "Vostede arquivou o taboleiro {board}",
"{user} has archived the board {before}" : "{user} arquivou o taboleiro {before}",
"You have unarchived the board {board}" : "Vde. desarquivou o taboleiro {board}",
"You have unarchived the board {board}" : "Vostede desarquivou o taboleiro {board}",
"{user} has unarchived the board {before}" : "{user} desarquivou o taboleiro {before}",
"You have created a new list {stack} on board {board}" : "Vde. creou unha nova lista {stack} no taboleiro {board}",
"You have created a new list {stack} on board {board}" : "Vostede creou unha nova lista {stack} no taboleiro {board}",
"{user} has created a new list {stack} on board {board}" : "{user} creou unha nova lista {stack} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vde. renomeou a lista {before} no taboleiro {board}",
"You have renamed list {before} to {stack} on board {board}" : "Vostede renomeou a lista {before} no taboleiro {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} renomeou a lista {before} como {stack} no taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vde. eliminou a lista {stack} do taboleiro {board}",
"You have deleted list {stack} on board {board}" : "Vostede eliminou a lista {stack} do taboleiro {board}",
"{user} has deleted list {stack} on board {board}" : "{user} eliminou a lista {stack} do taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vde. creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have created card {card} in list {stack} on board {board}" : "Vostede creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} creou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vde. eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Vostede eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} eliminou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have renamed the card {before} to {card}" : "Renomeou a tarxeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} renomeou a tarxeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vde. engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have added a description to card {card} in list {stack} on board {board}" : "Vostede engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} engadiu a descrición á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vde. actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Vostede actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} actualizou a descrición da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vde. arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have archived card {card} in list {stack} on board {board}" : "Vostede arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} arquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vde. desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Vostede desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} desarquivou a tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the due date of card {card}" : "Vde. retirou a caducidade da tarxeta {card}",
"You have removed the due date of card {card}" : "Vostede retirou a caducidade da tarxeta {card}",
"{user} has removed the due date of card {card}" : "{user} retirou a caducidade da tarxeta {card}",
"You have set the due date of card {card} to {after}" : "Vde. estabeleceu a caducidade da tarxeta {card} a {after}",
"You have set the due date of card {card} to {after}" : "Vostede estabeleceu a caducidade da tarxeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} estabeleceu a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vde. actualizou a caducidade da tarxeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Vostede actualizou a caducidade da tarxeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} actualizou a caducidade da tarxeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vde. engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Vostede engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} engadiu a etiqueta {label} á tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vde. retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Vostede retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} retirou a etiqueta {label} da tarxeta {card} na lista {stack} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vde. asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Vostede asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} asignou a {assigneduser} á tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vde. desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Vostede desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} desasignou a {assigneduser} da tarxeta {card} no taboleiro {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vde. moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Vostede moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} moveu a tarxeta {card} dende a lista {stackBefore} cara a lista {stack}",
"You have added the attachment {attachment} to card {card}" : "Vde. engadiu o anexo {attachment} na tarxeta {card}",
"You have added the attachment {attachment} to card {card}" : "Vostede engadiu o anexo {attachment} na tarxeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} engadiu o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vde. actualizou o anexo {attachment} na tarxeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Vostede actualizou o anexo {attachment} na tarxeta {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} actualizou o anexo {attachment} na tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vde. eliminou o anexo {attachment} da tarxeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Vostede eliminou o anexo {attachment} da tarxeta {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} eliminou o anexo {attachment} da tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vde. restaurou o anexo {attachment} na tarxeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Vostede restaurou o anexo {attachment} na tarxeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
"You have commented on card {card}" : "Vde. comentou na tarxeta {card}",
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}",
"{user} has commented on card {card}" : "{user} comentou na tarxeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Tarxeteiro",
"Deck" : "Tarxeteiro",
"Changes in the <strong>Deck app</strong>" : "Cambios na <strong>aplicación Tarxeteiro</strong>",
"A <strong>card description</strong> inside the Deck app has been changed" : "Cambiouse a <strong>descripción da tarxeta</strong> dentro da aplicación Deck",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Cambios na <strong>aplicación Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Creouse un <strong>comentario</strong> nunha tarxeta",
"Upcoming cards" : "Tarxetas próximas",
"Load more" : "Cargar máis",
"Personal" : "Persoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a Vde. por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a Vde.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a Vde. nun comentario en «%s».",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a Vde. nun comentario en {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con Vde. por %s.",
"{user} has shared {deck-board} with you." : "{user} compartiu {deck-board} con vostede.",
"Deck board" : "Taboleiro do Tarxeteiro",
"Owned by %1$s" : "Propiedade de %1$s",
"Deck boards, cards and comments" : "Taboleiros do Tarxeteiro, tarxetas e comentarios",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "De %1$s, en %2$s/%3$s, propiedade de %4$s",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "A tarxeta «%s» en «%s» foi asignada a vostede por %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» chegou á súa data de caducidade.",
"%s has mentioned you in a comment on \"%s\"." : "%s mencionouno a vostede nun comentario en «%s».",
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede por %s.",
"Deck board" : "Taboleiro do Deck",
"Card comments" : "Comentarios da tarxeta",
"%s on %s" : "%s en %s",
"Deck boards and cards" : "Taboleiros do Tarxeteiro e tarxetas",
"No data was provided to create an attachment." : "Non se forneceu ningún dato para crear un anexo.",
"Finished" : "Rematado",
"To review" : "Para revisar",
"Action needed" : "Necesita unha acción",
"Later" : "Após",
"Later" : "Despois",
"copy" : "copiar",
"To do" : "Tarefa pendente",
"To do" : "Para facer",
"Doing" : "Facendo",
"Done" : "Feito",
"Example Task 3" : "Tarefa de exemplo 3",
@@ -104,12 +96,10 @@
"Could not write file to disk" : "Non foi posíbel escribir o ficheiro no disco",
"A PHP extension stopped the file upload" : "Unha extensión PHP detivo o envío de ficheiros",
"No file uploaded or file size exceeds maximum of %s" : "Non se enviou ningún ficheiro ou o tamaño do ficheiro supera 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 comentario ten máis de %s caracteres.\nEngadido como anexo á tarxeta co nome %s.\nAccesíbel no URL: %s.",
"Card not found" : "Non se atopou a tarxeta",
"Path is already shared with this card" : "A ruta xa está compartida con esta tarxeta",
"Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planificación persoal e organización de proxectos de equipo",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tarxeteiro é unha ferramenta de organización de estilo kanban dirixida a planificación persoal e organización de proxectos para equipos integrados con Nextcloud. \n\n\n- 📥 Engada as súas tarefas ás tarxetas e fagas ordenadas\n- 📄 Escriba notas adicionais en Markdown\n- 🔖 Asigne etiquetas para unha mellor organización\n- 👥 Comparta co seu equipo, amigos ou a súa familia\n- 📎 Anexe ficheiros e integreos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
"Add board" : "Engadir taboleiro",
"Select the board to link to a project" : "Seleccione o taboleiro para ligar a un proxecto",
"Search by board title" : "Buscar polo título do taboleiro",
@@ -119,14 +109,12 @@
"Select a list" : "Seleccionar unha lista",
"Card title" : "Título da tarxeta",
"Cancel" : "Cancelar",
"Creating the new card …" : "Creando unha nova tarxeta…",
"Card \"{card}\" was added to \"{board}\"" : "A tarxeta «{card}» foi engdida a «{board}»",
"Open card" : "Abrir a tarxeta",
"Close" : "Pechar",
"Create card" : "Crear tarxeta",
"Select a card" : "Seleccione unha tarxeta",
"Select the card to link to a project" : "Seleccione a tarxeta para ligar a un proxecto",
"Link to card" : "Ligazón á tarxeta",
"Link to card" : "Ligar á tarxeta",
"File already exists" : "O ficheiro xa existe",
"A file with the name {filename} already exists." : "Xa existe un ficheiro co nome {filename}.",
"Do you want to overwrite it?" : "Quere sobrescribilo?",
@@ -138,7 +126,6 @@
"Archived cards" : "Tarxetas arquivadas",
"Add list" : "Engadir unha lista",
"List name" : "Nome da lista",
"Active filters" : "Filtros activos",
"Apply filter" : "Aplicar filtro",
"Filter by tag" : "Filtrar pola etiqueta",
"Filter by assigned user" : "Filtrar polo usuario asignado",
@@ -155,7 +142,6 @@
"Toggle compact mode" : "Alternar o modo compacto",
"Open details" : "Abrir detalles",
"Details" : "Detalles",
"Currently present people" : "Persoas presentes na actualidade",
"Loading board" : "Cargando o taboleiro",
"No lists available" : "Non hai listas dispoñíbeis",
"Create a new list to add cards to this board" : "Crear unha nova lista para engadir tarxetas a este taboleiro",
@@ -179,17 +165,10 @@
"Owner" : "Propietario",
"Delete" : "Eliminar",
"Failed to create share with {displayName}" : "Produciuse un fallo ao crear o uso compartido con {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Confirma que quere transferir o taboleiro {title} a {user}?",
"Transfer the board." : "Transferir o taboleiro.",
"Transfer" : "Transferencia",
"The board has been transferred to {user}" : "O taboleiro foi transferido a {user}",
"Failed to transfer the board to {user}" : "Produciuse un fallo ao transferir o taboleiro a {user}",
"Edit list title" : "Editar o título da lista",
"Archive all cards" : "Arquivar todas as tarxetas",
"Unarchive all cards" : "Desarquivar todas as tarxetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Arquivar todas as tarxetas desta lista",
"Unarchive all cards in this list" : "Desarquivar todas as tarxetas desta lista",
"Add a new card" : "Engadir unha nova tarxeta",
"Card name" : "Nome da tarxeta",
"List deleted" : "Lista eliminada",
@@ -200,11 +179,9 @@
"Members" : "Membros",
"Upload new files" : "Enviar novos ficheiros",
"Share from Files" : "Compartir dende «Ficheiros»",
"Pending share" : "Compartición pendente",
"Add this attachment" : "Engadir este anexo",
"Show in Files" : "Amosar en Ficheiros",
"Download" : "Descargar",
"Remove attachment" : "Retirar o anexo",
"Delete Attachment" : "Eliminar o anexo",
"Restore Attachment" : "Restaurar o anexo",
"File to share" : "Ficheiro para compartir",
@@ -217,7 +194,6 @@
"Created" : "Creado",
"The title cannot be empty." : "O título non pode estar baleiro.",
"No comments yet. Begin the discussion!" : "Aínda non hai comentarios. Comece o debate!",
"Failed to load comments" : "Produciuse un fallo ao cargar os comentarios",
"Assign a tag to this card…" : "Asignar unha etiqueta a esta tarxeta…",
"Assign to users" : "Asignar a usuarios",
"Assign to users/groups/circles" : "Asignar a usuarios/grupos/círculos",
@@ -234,7 +210,6 @@
"The comment cannot be empty." : "O comentario non pode estar baleiro",
"The comment cannot be longer than 1000 characters." : "O comentario non pode ter máis de 1000 caracteres.",
"In reply to" : "En resposta a",
"Cancel reply" : "Cancelar a resposta",
"Reply" : "Responder",
"Update" : "Actualizar",
"Description" : "Descrición",
@@ -247,9 +222,6 @@
"Write a description …" : "Escriba unha descrición…",
"Choose attachment" : "Escoller o anexo",
"(group)" : "(grupo)",
"Todo items" : "Elementos pendentes",
"{count} comments, {unread} unread" : "{count} comentarios, {unread} sen ler",
"Edit card title" : "Editar o título da tarxeta",
"Assign to me" : "Asignarme",
"Unassign myself" : "Desasignarme",
"Move card" : "Mover a tarxeta",
@@ -260,22 +232,19 @@
"Move card to another board" : "Mover a tarxeta a outro taboleiro",
"List is empty" : "A lista está baleira",
"Card deleted" : "Tarxeta eliminada",
"seconds ago" : "segundos atrás",
"seconds ago" : "hai uns segundos",
"All boards" : "Todos os taboleiros",
"Archived boards" : "Taboleiros arquivados",
"Shared with you" : "Compartido con Vde.",
"Deck settings" : "Axustes do Tarxeteiro",
"Shared with you" : "Compartido con vostede",
"Use bigger card view" : "Usa a vista de tarxeta máis grande",
"Show card ID badge" : "Amosar o distintivo de identificación da tarxeta",
"Show boards in calendar/tasks" : "Amosar taboleiros no calendario/tarefas",
"Limit deck usage of groups" : "Limitar o uso da plataforma a grupos",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitando o Tarxeteiro bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitando Deck bloqueará os usuarios que non formen parte destes grupos, para crear os seus propios taboleiros. Os usuarios aínda así poderán traballar en taboleiros compartidos con eles.",
"Board details" : "Detalles do taboleiro",
"Edit board" : "Editar taboleiro",
"Clone board" : "Clonar taboleiro",
"Unarchive board" : "Desarquivar taboleiro",
"Archive board" : "Arquivar taboleiro",
"Export board" : "Exportar taboleiro",
"Turn on due date reminders" : "Activar os lembretes de data de caducidade",
"Turn off due date reminders" : "Desctivar os lembretes de data de caducidade",
"Due date reminders" : "Lembretes de data de caducidade",
@@ -287,32 +256,24 @@
"Only assigned cards" : "Só as tarxetas asignadas",
"No reminder" : "Non hai lembretes",
"An error occurred" : "Produciuse un erro",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Confirma que quere eliminar o taboleiro {title}? Isto eliminará todos os datos deste taboleiro, incluídas as tarxetas arquivadas.",
"Delete the board?" : "Eliminar o taboleiro?",
"Loading filtered view" : "Cargando a vista filtrada",
"No due" : "Sen caducidade",
"Search for {searchQuery} in all boards" : "Resultados de busca para {searchQuery} en todos os taboleiros",
"No results found" : "Non se atoparon resultados",
"Deck board {name}\n* Last modified on {lastMod}" : "Taboleiro do Tarxeteiro {name}\n* Última modificación en {lastMod}",
"{stack} in {board}" : "{stack} en {board}",
"Click to expand description" : "Prema para despregar a descrición",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Creado o {created}\n* Última modificación o {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentarios",
"{nbCards} cards" : "{nbCards} tarxetas",
"Click to expand comment" : "Prema para despregar o comentario",
"No upcoming cards" : "Non hai tarxetas próximas",
"upcoming cards" : "tarxetas próximas",
"New card" : "Nova tarxeta",
"Due on {date}" : "Caduca o {date}",
"Link to a board" : "Ligazón a un taboleiro",
"Link to a card" : "Ligazón a unha tarxeta",
"Link to a board" : "Ligar a un taboleiro",
"Link to a card" : "Ligar a unha tarxeta",
"Create a card" : "Crear unha tarxeta",
"Message from {author} in {conversationName}" : "Mensaxe de {author} en {conversationName}",
"Something went wrong" : "Algo foi mal",
"Failed to upload {name}" : "Produciuse un fallo ao actualizar {name}",
"Maximum file size of {size} exceeded" : "Excedeuse o tamaño máximo de ficheiro de {size}",
"Error creating the share" : "Produciuse un erro ao crear a compartición",
"Share with a Deck card" : "Compartir cunha tarxeta de Tarxeteiro",
"Share {file} with a Deck card" : "Compartir {file} cunha tarxeta de Tarxeteiro",
"Share with a Deck card" : "Compartir cunha tarxeta Deck",
"Share {file} with a Deck card" : "Compartir {file} cunha tarxeta Deck",
"Share" : "Compartir",
"Add a new list" : "Engadir unha lista nova"
},"pluralForm" :"nplurals=2; plural=(n != 1);"

View File

@@ -10,7 +10,6 @@ OC.L10N.register(
"The board \"%s\" has been shared with you by %s." : "\"%s\" 게시판을 %s 님이 공유했습니다.",
"Deck board" : "Deck 보드",
"%s on %s" : "%s(%s의)",
"No data was provided to create an attachment." : "첨부할 데이터가 제공되지 않았습니다.",
"Finished" : "완료됨",
"To review" : "리뷰할 항목",
"Action needed" : "동작 필요",
@@ -29,9 +28,8 @@ OC.L10N.register(
"Missing a temporary folder" : "임시 폴더 없음",
"Could not write file to disk" : "디스크에 파일을 쓸 수 없음",
"A PHP extension stopped the file upload" : "PHP 확장 기능에서 파일 업로드를 차단함",
"No file uploaded or file size exceeds maximum of %s" : "파일이 업로드 되지 않았거나 크기가 %s(을)를 초과함",
"Card not found" : "카드 없음",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"Add board" : "보드 추가",
"Search by board title" : "보드 제목으로 검색",
"Select board" : "보드 선택",
@@ -64,7 +62,6 @@ OC.L10N.register(
"No due date" : "기한 없음",
"Hide archived cards" : "보관된 카드 숨기기",
"Show archived cards" : "보관된 카드 보기",
"Toggle compact mode" : "컴팩트 모드 전환",
"Open details" : "자세한 정보 열기",
"Details" : "세부사항",
"Sharing" : "공유",
@@ -72,7 +69,7 @@ OC.L10N.register(
"Deleted items" : "삭제된 항목",
"Timeline" : "타임라인",
"Undo" : "실행 취소",
"No participants found" : "참자를 찾을 수 없음",
"No participants found" : "참자를 찾을 수 없음",
"(Group)" : "(그룹)",
"Can edit" : "편집할 수 있음",
"Can share" : "공유할 수 있음",
@@ -83,7 +80,7 @@ OC.L10N.register(
"Edit" : "편집",
"Members" : "구성원",
"Upload new files" : "새로운 파일 업로드",
"Share from Files" : "파일에서 공유",
"Share from Files" : "파일 공유",
"Download" : "다운로드",
"File to share" : "공유할 파일",
"Invalid path selected" : "잘못된 경로가 선택됨",
@@ -126,9 +123,7 @@ OC.L10N.register(
"An error occurred" : "오류가 발생함",
"Delete the board?" : "보드를 삭제합니까?",
"No results found" : "결과 없음",
"{stack} in {board}" : "{board}의 {stack}",
"Something went wrong" : "잘못된 접근",
"Error creating the share" : "공유를 만드는 중 오류 발생",
"Share" : "공유"
},
"nplurals=1; plural=0;");

View File

@@ -8,7 +8,6 @@
"The board \"%s\" has been shared with you by %s." : "\"%s\" 게시판을 %s 님이 공유했습니다.",
"Deck board" : "Deck 보드",
"%s on %s" : "%s(%s의)",
"No data was provided to create an attachment." : "첨부할 데이터가 제공되지 않았습니다.",
"Finished" : "완료됨",
"To review" : "리뷰할 항목",
"Action needed" : "동작 필요",
@@ -27,9 +26,8 @@
"Missing a temporary folder" : "임시 폴더 없음",
"Could not write file to disk" : "디스크에 파일을 쓸 수 없음",
"A PHP extension stopped the file upload" : "PHP 확장 기능에서 파일 업로드를 차단함",
"No file uploaded or file size exceeds maximum of %s" : "파일이 업로드 되지 않았거나 크기가 %s(을)를 초과함",
"Card not found" : "카드 없음",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.",
"Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"Add board" : "보드 추가",
"Search by board title" : "보드 제목으로 검색",
"Select board" : "보드 선택",
@@ -62,7 +60,6 @@
"No due date" : "기한 없음",
"Hide archived cards" : "보관된 카드 숨기기",
"Show archived cards" : "보관된 카드 보기",
"Toggle compact mode" : "컴팩트 모드 전환",
"Open details" : "자세한 정보 열기",
"Details" : "세부사항",
"Sharing" : "공유",
@@ -70,7 +67,7 @@
"Deleted items" : "삭제된 항목",
"Timeline" : "타임라인",
"Undo" : "실행 취소",
"No participants found" : "참자를 찾을 수 없음",
"No participants found" : "참자를 찾을 수 없음",
"(Group)" : "(그룹)",
"Can edit" : "편집할 수 있음",
"Can share" : "공유할 수 있음",
@@ -81,7 +78,7 @@
"Edit" : "편집",
"Members" : "구성원",
"Upload new files" : "새로운 파일 업로드",
"Share from Files" : "파일에서 공유",
"Share from Files" : "파일 공유",
"Download" : "다운로드",
"File to share" : "공유할 파일",
"Invalid path selected" : "잘못된 경로가 선택됨",
@@ -124,9 +121,7 @@
"An error occurred" : "오류가 발생함",
"Delete the board?" : "보드를 삭제합니까?",
"No results found" : "결과 없음",
"{stack} in {board}" : "{board}의 {stack}",
"Something went wrong" : "잘못된 접근",
"Error creating the share" : "공유를 만드는 중 오류 발생",
"Share" : "공유"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -23,7 +23,6 @@ OC.L10N.register(
"Cancel" : "Anulează",
"Close" : "Închide",
"File already exists" : "Fișierul există deja",
"Add card" : "Adaugă card",
"Archived cards" : "Carduri arhivate",
"Add list" : "Adaugă listă ",
"Filter by tag" : "Filtrare după etichetă",

View File

@@ -21,7 +21,6 @@
"Cancel" : "Anulează",
"Close" : "Închide",
"File already exists" : "Fișierul există deja",
"Add card" : "Adaugă card",
"Archived cards" : "Carduri arhivate",
"Add list" : "Adaugă listă ",
"Filter by tag" : "Filtrare după etichetă",

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,31 +1,31 @@
OC.L10N.register(
"deck",
{
"You have created a new board {board}" : "您创建了一个新面板{board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板{board}",
"You have deleted the board {board}" : "您删除了面板{board}",
"{user} has deleted the board {board}" : "{user}删除了面板{board}",
"You have restored the board {board}" : "您还原了面板{board}",
"{user} has restored the board {board}" : "{user}还原了{board}",
"You have shared the board {board} with {acl}" : "您已分享{board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user}已使用{acl}享面板{board}",
"You have removed {acl} from the board {board}" : "您从面板{board}中移除了{acl}",
"{user} has removed {acl} from the board {board}" : "{user}从面板{board}中移除了{acl} ",
"You have renamed the board {before} to {board}" : "您将面板{before}重命名为{board}",
"{user} has renamed the board {before} to {board}" : "{user}将面板{before}重命名为{board}",
"You have archived the board {board}" : "您已将面板{board}归档",
"{user} has archived the board {before}" : "{user}已将面板{before}归档",
"You have unarchived the board {board}" : "您已将面板{board}取消归档",
"{user} has unarchived the board {before}" : "{user}已将面板{before}取消归档",
"You have created a new list {stack} on board {board}" : "您在{board}上创建了一个新列表{stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board}上创建了一个新列表{stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板{board}上的列表{before}重命名为{stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user}将面板{board}上的列表{before}重命名为{stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板{board}上的列表{stack}",
"{user} has deleted list {stack} on board {board}" : "{user}删除了面板{board}上的列表{stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中创建了卡片{card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user}在面板 {board}上的列表{stack}中创建了卡片{card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中删除了卡片{card}",
"You have created a new board {board}" : "您创建了一个新面板 {board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板 {board}",
"You have deleted the board {board}" : "您删除了面板 {board}",
"{user} has deleted the board {board}" : "{user} 删除了面板 {board}",
"You have restored the board {board}" : "您恢复了面板 {board}",
"{user} has restored the board {board}" : "{user} 恢复了 {board}",
"You have shared the board {board} with {acl}" : "您已共享 {board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user} 已使用 {acl}享面板 {board}",
"You have removed {acl} from the board {board}" : "您从面板 {board} 中移除了 {acl}",
"{user} has removed {acl} from the board {board}" : "{user} 从面板 {board} 中移除了 {acl} ",
"You have renamed the board {before} to {board}" : "您将面板 {before} 重命名为 {board}",
"{user} has renamed the board {before} to {board}" : "{user} 将面板 {before} 重命名为 {board}",
"You have archived the board {board}" : "您已将面板 {board} 归档",
"{user} has archived the board {before}" : "{user} 已将面板 {before} 归档",
"You have unarchived the board {board}" : "您已将面板 {board} 撤销归档",
"{user} has unarchived the board {before}" : "{user} 已将面板 {before} 撤销归档",
"You have created a new list {stack} on board {board}" : "您在 {board} 上创建了一个新列表 {stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board} 上创建了一个新列表 {stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板 {board} 上的列表 {before} 重命名为 {stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} 将面板 {board} 上的列表 {before} 重命名为 {stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板 {board} 上的列表 {stack}",
"{user} has deleted list {stack} on board {board}" : "{user} 删除了面板 {board} 上的列表 {stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中创建了卡片 {card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中创建了卡片 {card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}",
"{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}",
@@ -77,14 +77,10 @@ OC.L10N.register(
"%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。",
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你",
"The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。",
"{user} has shared {deck-board} with you." : "{user}与你分享了{deck-board}",
"Deck board" : "看板",
"Owned by %1$s" : "由 %1$s 拥有",
"Deck boards, cards and comments" : "看板、卡片和评论",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "自 %1$s位于 %2$s/%3$s由 %4$s 拥有",
"{user} has shared {deck-board} with you." : "{user} 与你分享了 {deck-board}",
"Deck board" : "Deck 看板",
"Card comments" : "卡片评论",
"%s on %s" : "%s 于 %s",
"Deck boards and cards" : "看板及卡片",
"No data was provided to create an attachment." : "未能提供数据以创建附件",
"Finished" : "已完成",
"To review" : "待复核",
@@ -106,12 +102,10 @@ OC.L10N.register(
"Could not write file to disk" : "无法写入文件到磁盘",
"A PHP extension stopped the file upload" : "一个PHP扩展程序中断了文件上传。",
"No file uploaded or file size exceeds maximum of %s" : "没有文件被上传或文件大小超出最大值 %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "此评论超过%s个字符。\n作为附件添加到名称为 %s 的卡片上。\n可通过 URL 访问:%s。",
"Card not found" : "未找到卡片",
"Path is already shared with this card" : "已和这张卡片分享了路径",
"Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD",
"Personal planning and team project organization" : "个人规划和团队项目安排",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "看板应用程序是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
"Add board" : "添加面板",
"Select the board to link to a project" : "选择要链接到一个项目的面板",
"Search by board title" : "通过标题搜索面板",
@@ -157,7 +151,6 @@ OC.L10N.register(
"Toggle compact mode" : "切换简洁模式",
"Open details" : "打开详情",
"Details" : "详情",
"Currently present people" : "当前在线的人",
"Loading board" : "正在加载面板",
"No lists available" : "无列表可用",
"Create a new list to add cards to this board" : "创建新列表后,即可在面板中新建卡片",
@@ -181,17 +174,10 @@ OC.L10N.register(
"Owner" : "所有者",
"Delete" : "删除",
"Failed to create share with {displayName}" : "用{displayName}创建分享失败",
"Are you sure you want to transfer the board {title} to {user}?" : "您确定要将面板 {title} 转移到 {user} 吗?",
"Transfer the board." : "转移面板。",
"Transfer" : "转移",
"The board has been transferred to {user}" : "面板已转移给 {user}",
"Failed to transfer the board to {user}" : "未能将面板转移给 {user}",
"Edit list title" : "编辑列表标题",
"Transfer" : "传输",
"Archive all cards" : "归档所有卡片",
"Unarchive all cards" : "取消归档所有卡片",
"Delete list" : "删除列表",
"Archive all cards in this list" : "将该列表中的所有卡片归档",
"Unarchive all cards in this list" : "取消归档所有此列表中的卡片",
"Add a new card" : "添加一张新卡片",
"Card name" : "卡片名",
"List deleted" : "列表被删除",
@@ -266,9 +252,7 @@ OC.L10N.register(
"All boards" : "全部面板",
"Archived boards" : "已归档面板",
"Shared with you" : "收到的共享",
"Deck settings" : "看板设置",
"Use bigger card view" : "使用较大的卡片视图",
"Show card ID badge" : "显示卡片ID序号",
"Show boards in calendar/tasks" : "在日历/任务中显示看板",
"Limit deck usage of groups" : "按群组限制看板的使用权",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制看板的使用权后,不在指定群组中的用户将不能新建面板,但仍可使用已共享给他们的面板。",
@@ -277,7 +261,6 @@ OC.L10N.register(
"Clone board" : "克隆面板",
"Unarchive board" : "撤销对面板的归档",
"Archive board" : "归档面板",
"Export board" : "导出面板",
"Turn on due date reminders" : "打开截止日期提醒",
"Turn off due date reminders" : "关闭截止日期提醒",
"Due date reminders" : "截止日期提醒",
@@ -289,22 +272,15 @@ OC.L10N.register(
"Only assigned cards" : "仅限已指派的卡片",
"No reminder" : "无提醒",
"An error occurred" : "发生错误",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "您确定要删除面板 {title} 吗?这将删除该面板的所有数据,包括已归档卡片。",
"Delete the board?" : "是否删除面板?",
"Loading filtered view" : "正在加载已筛选的视图",
"No due" : "没有到期的",
"Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}",
"No results found" : "未找到结果",
"Deck board {name}\n* Last modified on {lastMod}" : "看板{name}\n* 最后修改于{lastMod}",
"{stack} in {board}" : "{stack} 于 {board}",
"Click to expand description" : "点击展开描述",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 创建于 {created}\n* 最后修改于 {lastMod}\n* {nbAttachments} 个附件\n* {nbComments} 个评论",
"{nbCards} cards" : "{nbCards} 张卡片",
"Click to expand comment" : "点击展开评论",
"No upcoming cards" : "没有即将到来的卡片",
"upcoming cards" : "即将到来的卡片",
"New card" : "新卡片",
"Due on {date}" : "于 {date} 到期 ",
"Link to a board" : "链接到一个面板",
"Link to a card" : "链接到一张卡片",
"Create a card" : "创建一张卡片",

View File

@@ -1,29 +1,29 @@
{ "translations": {
"You have created a new board {board}" : "您创建了一个新面板{board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板{board}",
"You have deleted the board {board}" : "您删除了面板{board}",
"{user} has deleted the board {board}" : "{user}删除了面板{board}",
"You have restored the board {board}" : "您还原了面板{board}",
"{user} has restored the board {board}" : "{user}还原了{board}",
"You have shared the board {board} with {acl}" : "您已分享{board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user}已使用{acl}享面板{board}",
"You have removed {acl} from the board {board}" : "您从面板{board}中移除了{acl}",
"{user} has removed {acl} from the board {board}" : "{user}从面板{board}中移除了{acl} ",
"You have renamed the board {before} to {board}" : "您将面板{before}重命名为{board}",
"{user} has renamed the board {before} to {board}" : "{user}将面板{before}重命名为{board}",
"You have archived the board {board}" : "您已将面板{board}归档",
"{user} has archived the board {before}" : "{user}已将面板{before}归档",
"You have unarchived the board {board}" : "您已将面板{board}取消归档",
"{user} has unarchived the board {before}" : "{user}已将面板{before}取消归档",
"You have created a new list {stack} on board {board}" : "您在{board}上创建了一个新列表{stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board}上创建了一个新列表{stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板{board}上的列表{before}重命名为{stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user}将面板{board}上的列表{before}重命名为{stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板{board}上的列表{stack}",
"{user} has deleted list {stack} on board {board}" : "{user}删除了面板{board}上的列表{stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中创建了卡片{card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user}在面板 {board}上的列表{stack}中创建了卡片{card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板{board}上的列表{stack}中删除了卡片{card}",
"You have created a new board {board}" : "您创建了一个新面板 {board}",
"{user} has created a new board {board}" : "{user} 创建了一个新面板 {board}",
"You have deleted the board {board}" : "您删除了面板 {board}",
"{user} has deleted the board {board}" : "{user} 删除了面板 {board}",
"You have restored the board {board}" : "您恢复了面板 {board}",
"{user} has restored the board {board}" : "{user} 恢复了 {board}",
"You have shared the board {board} with {acl}" : "您已共享 {board}{acl}",
"{user} has shared the board {board} with {acl}" : "{user} 已使用 {acl}享面板 {board}",
"You have removed {acl} from the board {board}" : "您从面板 {board} 中移除了 {acl}",
"{user} has removed {acl} from the board {board}" : "{user} 从面板 {board} 中移除了 {acl} ",
"You have renamed the board {before} to {board}" : "您将面板 {before} 重命名为 {board}",
"{user} has renamed the board {before} to {board}" : "{user} 将面板 {before} 重命名为 {board}",
"You have archived the board {board}" : "您已将面板 {board} 归档",
"{user} has archived the board {before}" : "{user} 已将面板 {before} 归档",
"You have unarchived the board {board}" : "您已将面板 {board} 撤销归档",
"{user} has unarchived the board {before}" : "{user} 已将面板 {before} 撤销归档",
"You have created a new list {stack} on board {board}" : "您在 {board} 上创建了一个新列表 {stack}面板",
"{user} has created a new list {stack} on board {board}" : "{user}{board} 上创建了一个新列表 {stack}",
"You have renamed list {before} to {stack} on board {board}" : "您将面板 {board} 上的列表 {before} 重命名为 {stack}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} 将面板 {board} 上的列表 {before} 重命名为 {stack}",
"You have deleted list {stack} on board {board}" : "您删除了面板 {board} 上的列表 {stack}",
"{user} has deleted list {stack} on board {board}" : "{user} 删除了面板 {board} 上的列表 {stack}",
"You have created card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中创建了卡片 {card}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中创建了卡片 {card}",
"You have deleted card {card} in list {stack} on board {board}" : "您在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} 在面板 {board} 上的列表 {stack} 中删除了卡片 {card}",
"You have renamed the card {before} to {card}" : "您将卡片 {before} 重命名为 {card}",
"{user} has renamed the card {before} to {card}" : "{user} 将卡片 {before} 重命名为 {card}",
@@ -75,14 +75,10 @@
"%s has mentioned you in a comment on \"%s\"." : "%s 在 “%s” 的评论中提到了您。",
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的一条评论中提到了你",
"The board \"%s\" has been shared with you by %s." : "面板 \"%s\" 已由 %s 共享给您。",
"{user} has shared {deck-board} with you." : "{user}与你分享了{deck-board}",
"Deck board" : "看板",
"Owned by %1$s" : "由 %1$s 拥有",
"Deck boards, cards and comments" : "看板、卡片和评论",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "自 %1$s位于 %2$s/%3$s由 %4$s 拥有",
"{user} has shared {deck-board} with you." : "{user} 与你分享了 {deck-board}",
"Deck board" : "Deck 看板",
"Card comments" : "卡片评论",
"%s on %s" : "%s 于 %s",
"Deck boards and cards" : "看板及卡片",
"No data was provided to create an attachment." : "未能提供数据以创建附件",
"Finished" : "已完成",
"To review" : "待复核",
@@ -104,12 +100,10 @@
"Could not write file to disk" : "无法写入文件到磁盘",
"A PHP extension stopped the file upload" : "一个PHP扩展程序中断了文件上传。",
"No file uploaded or file size exceeds maximum of %s" : "没有文件被上传或文件大小超出最大值 %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "此评论超过%s个字符。\n作为附件添加到名称为 %s 的卡片上。\n可通过 URL 访问:%s。",
"Card not found" : "未找到卡片",
"Path is already shared with this card" : "已和这张卡片分享了路径",
"Invalid date, date format must be YYYY-MM-DD" : "无效日期,日期格式必须为 YYYY-MM-DD",
"Personal planning and team project organization" : "个人规划和团队项目安排",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "看板应用程序是一个看板风格的管理工具旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用Markdown写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的Markdown描述中\n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
"Add board" : "添加面板",
"Select the board to link to a project" : "选择要链接到一个项目的面板",
"Search by board title" : "通过标题搜索面板",
@@ -155,7 +149,6 @@
"Toggle compact mode" : "切换简洁模式",
"Open details" : "打开详情",
"Details" : "详情",
"Currently present people" : "当前在线的人",
"Loading board" : "正在加载面板",
"No lists available" : "无列表可用",
"Create a new list to add cards to this board" : "创建新列表后,即可在面板中新建卡片",
@@ -179,17 +172,10 @@
"Owner" : "所有者",
"Delete" : "删除",
"Failed to create share with {displayName}" : "用{displayName}创建分享失败",
"Are you sure you want to transfer the board {title} to {user}?" : "您确定要将面板 {title} 转移到 {user} 吗?",
"Transfer the board." : "转移面板。",
"Transfer" : "转移",
"The board has been transferred to {user}" : "面板已转移给 {user}",
"Failed to transfer the board to {user}" : "未能将面板转移给 {user}",
"Edit list title" : "编辑列表标题",
"Transfer" : "传输",
"Archive all cards" : "归档所有卡片",
"Unarchive all cards" : "取消归档所有卡片",
"Delete list" : "删除列表",
"Archive all cards in this list" : "将该列表中的所有卡片归档",
"Unarchive all cards in this list" : "取消归档所有此列表中的卡片",
"Add a new card" : "添加一张新卡片",
"Card name" : "卡片名",
"List deleted" : "列表被删除",
@@ -264,9 +250,7 @@
"All boards" : "全部面板",
"Archived boards" : "已归档面板",
"Shared with you" : "收到的共享",
"Deck settings" : "看板设置",
"Use bigger card view" : "使用较大的卡片视图",
"Show card ID badge" : "显示卡片ID序号",
"Show boards in calendar/tasks" : "在日历/任务中显示看板",
"Limit deck usage of groups" : "按群组限制看板的使用权",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制看板的使用权后,不在指定群组中的用户将不能新建面板,但仍可使用已共享给他们的面板。",
@@ -275,7 +259,6 @@
"Clone board" : "克隆面板",
"Unarchive board" : "撤销对面板的归档",
"Archive board" : "归档面板",
"Export board" : "导出面板",
"Turn on due date reminders" : "打开截止日期提醒",
"Turn off due date reminders" : "关闭截止日期提醒",
"Due date reminders" : "截止日期提醒",
@@ -287,22 +270,15 @@
"Only assigned cards" : "仅限已指派的卡片",
"No reminder" : "无提醒",
"An error occurred" : "发生错误",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "您确定要删除面板 {title} 吗?这将删除该面板的所有数据,包括已归档卡片。",
"Delete the board?" : "是否删除面板?",
"Loading filtered view" : "正在加载已筛选的视图",
"No due" : "没有到期的",
"Search for {searchQuery} in all boards" : "在所有看板中搜索 {searchQuery}",
"No results found" : "未找到结果",
"Deck board {name}\n* Last modified on {lastMod}" : "看板{name}\n* 最后修改于{lastMod}",
"{stack} in {board}" : "{stack} 于 {board}",
"Click to expand description" : "点击展开描述",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* 创建于 {created}\n* 最后修改于 {lastMod}\n* {nbAttachments} 个附件\n* {nbComments} 个评论",
"{nbCards} cards" : "{nbCards} 张卡片",
"Click to expand comment" : "点击展开评论",
"No upcoming cards" : "没有即将到来的卡片",
"upcoming cards" : "即将到来的卡片",
"New card" : "新卡片",
"Due on {date}" : "于 {date} 到期 ",
"Link to a board" : "链接到一个面板",
"Link to a card" : "链接到一张卡片",
"Create a card" : "创建一张卡片",

View File

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

View File

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

View File

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

View File

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

View File

@@ -46,12 +46,12 @@ class UserExport extends Command {
private $assignedUsersMapper;
public function __construct(BoardMapper $boardMapper,
BoardService $boardService,
StackMapper $stackMapper,
CardMapper $cardMapper,
AssignmentMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager) {
BoardService $boardService,
StackMapper $stackMapper,
CardMapper $cardMapper,
AssignmentMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager) {
parent::__construct();
$this->cardMapper = $cardMapper;
@@ -79,12 +79,12 @@ class UserExport extends Command {
/**
* @param InputInterface $input
* @param OutputInterface $output
* @return int
* @return void
* @throws DoesNotExistException
* @throws MultipleObjectsReturnedException
* @throws \ReflectionException
*/
protected function execute(InputInterface $input, OutputInterface $output): int {
protected function execute(InputInterface $input, OutputInterface $output) {
$userId = $input->getArgument('user-id');
$this->boardService->setUserId($userId);
@@ -96,7 +96,7 @@ class UserExport extends Command {
$data[$board->getId()] = (array)$fullBoard->jsonSerialize();
$stacks = $this->stackMapper->findAll($board->getId());
foreach ($stacks as $stack) {
$data[$board->getId()]['stacks'][$stack->getId()] = (array)$stack->jsonSerialize();
$data[$board->getId()]['stacks'][] = (array)$stack->jsonSerialize();
$cards = $this->cardMapper->findAllByStack($stack->getId());
foreach ($cards as $card) {
$fullCard = $this->cardMapper->find($card->getId());
@@ -109,6 +109,5 @@ class UserExport extends Command {
}
}
$output->writeln(json_encode($data, JSON_PRETTY_PRINT));
return 0;
}
}

View File

@@ -22,19 +22,18 @@
*/
namespace OCA\Deck\Controller;
use OCA\Deck\Service\AttachmentService;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\AttachmentService;
class AttachmentApiController extends ApiController {
public function __construct(
$appName,
IRequest $request,
private AttachmentService $attachmentService,
) {
private $attachmentService;
public function __construct($appName, IRequest $request, AttachmentService $attachmentService) {
parent::__construct($appName, $request);
$this->attachmentService = $attachmentService;
}
/**

View File

@@ -28,12 +28,13 @@ use OCP\AppFramework\Controller;
use OCP\IRequest;
class AttachmentController extends Controller {
public function __construct(
$appName,
IRequest $request,
private AttachmentService $attachmentService,
) {
/** @var AttachmentService */
private $attachmentService;
public function __construct($appName, IRequest $request, AttachmentService $attachmentService) {
parent::__construct($appName, $request);
$this->attachmentService = $attachmentService;
}
/**

View File

@@ -25,13 +25,13 @@
namespace OCA\Deck\Controller;
use OCA\Deck\Db\Board;
use OCA\Deck\Service\BoardService;
use OCA\Deck\StatusException;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\BoardService;
use Sabre\HTTP\Util;
/**
@@ -40,16 +40,18 @@ use Sabre\HTTP\Util;
* @package OCA\Deck\Controller
*/
class BoardApiController extends ApiController {
private $boardService;
/**
* @param string $appName
* @param IRequest $request
* @param BoardService $service
* @param $userId
*/
public function __construct(
$appName,
IRequest $request,
private BoardService $boardService,
private $userId,
) {
public function __construct($appName, IRequest $request, BoardService $service, $userId) {
parent::__construct($appName, $request);
$this->boardService = $service;
$this->userId = $userId;
}
/**

View File

@@ -33,14 +33,15 @@ use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
class BoardController extends ApiController {
public function __construct(
$appName,
IRequest $request,
private BoardService $boardService,
private PermissionService $permissionService,
private $userId,
) {
private $userId;
private $boardService;
private $permissionService;
public function __construct($appName, IRequest $request, BoardService $boardService, PermissionService $permissionService, $userId) {
parent::__construct($appName, $request);
$this->userId = $userId;
$this->boardService = $boardService;
$this->permissionService = $permissionService;
}
/**
@@ -143,7 +144,7 @@ class BoardController extends ApiController {
/**
* @NoAdminRequired
* @param $aclId
* @return \OCP\AppFramework\Db\Entity|null
* @return \OCP\AppFramework\Db\Entity
*/
public function deleteAcl($aclId) {
return $this->boardService->deleteAcl($aclId);

View File

@@ -30,13 +30,20 @@ use OCP\AppFramework\OCSController;
use OCP\IRequest;
class BoardImportApiController extends OCSController {
/** @var BoardImportService */
private $boardImportService;
/** @var string */
private $userId;
public function __construct(
string $appName,
IRequest $request,
private BoardImportService $boardImportService,
private string $userId,
BoardImportService $boardImportService,
string $userId
) {
parent::__construct($appName, $request);
$this->boardImportService = $boardImportService;
$this->userId = $userId;
}
/**

View File

@@ -23,37 +23,36 @@
*
*/
namespace OCA\Deck\Controller;
namespace OCA\Deck\Controller;
use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\AssignmentService;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\CardService;
/**
* Class BoardApiController
*
* @package OCA\Deck\Controller
*/
/**
* Class BoardApiController
*
* @package OCA\Deck\Controller
*/
class CardApiController extends ApiController {
private $cardService;
private $userId;
private $assignmentService;
/**
* @param string $appName
* @param IRequest $request
* @param CardService $cardService
* @param AssignmentService $assignmentService
* @param $userId
*/
public function __construct(
string $appName,
IRequest $request,
private CardService $cardService,
private AssignmentService $assignmentService,
private $userId,
) {
public function __construct($appName, IRequest $request, CardService $cardService, AssignmentService $assignmentService, $userId) {
parent::__construct($appName, $request);
$this->cardService = $cardService;
$this->userId = $userId;
$this->assignmentService = $assignmentService;
}
/**

View File

@@ -25,18 +25,19 @@ namespace OCA\Deck\Controller;
use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService;
use OCP\AppFramework\Controller;
use OCP\IRequest;
use OCP\AppFramework\Controller;
class CardController extends Controller {
public function __construct(
$appName,
IRequest $request,
private CardService $cardService,
private AssignmentService $assignmentService,
private $userId,
) {
private $userId;
private $cardService;
private $assignmentService;
public function __construct($appName, IRequest $request, CardService $cardService, AssignmentService $assignmentService, $userId) {
parent::__construct($appName, $request);
$this->userId = $userId;
$this->cardService = $cardService;
$this->assignmentService = $assignmentService;
}
/**

View File

@@ -31,15 +31,18 @@ use OCP\AppFramework\OCSController;
use OCP\IRequest;
class CommentsApiController extends OCSController {
/** @var CommentService */
private $commentService;
public function __construct(
string $appName,
IRequest $request,
private CommentService $commentService,
string $corsMethods = 'PUT, POST, GET, DELETE, PATCH',
string $corsAllowedHeaders = 'Authorization, Content-Type, Accept',
int $corsMaxAge = 1728000,
CommentService $commentService,
string $corsMethods = 'PUT, POST, GET, DELETE, PATCH', string $corsAllowedHeaders = 'Authorization, Content-Type, Accept', int $corsMaxAge = 1728000
) {
parent::__construct($appName, $request, $corsMethods, $corsAllowedHeaders, $corsMaxAge);
$this->commentService = $commentService;
}
/**

View File

@@ -30,12 +30,16 @@ use OCP\AppFramework\OCSController;
use OCP\IRequest;
class ConfigController extends OCSController {
private $configService;
public function __construct(
$AppName,
IRequest $request,
private ConfigService $configService,
) {
ConfigService $configService
) {
parent::__construct($AppName, $request);
$this->configService = $configService;
}
/**

View File

@@ -23,11 +23,11 @@
namespace OCA\Deck\Controller;
use OCA\Deck\Service\LabelService;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\LabelService;
/**
* Class BoardApiController
@@ -35,18 +35,21 @@ use OCP\IRequest;
* @package OCA\Deck\Controller
*/
class LabelApiController extends ApiController {
private $labelService;
private $userId;
/**
* @param string $appName
* @param IRequest $request
* @param LabelService $labelService
* @param $userId
*/
public function __construct(
$appName,
IRequest $request,
private LabelService $labelService,
private $userId,
) {
public function __construct($appName, IRequest $request, LabelService $labelService, $userId) {
parent::__construct($appName, $request);
$this->labelService = $labelService;
$this->userId = $userId;
}
/**
* @NoAdminRequired
* @CORS

View File

@@ -24,16 +24,15 @@
namespace OCA\Deck\Controller;
use OCA\Deck\Service\LabelService;
use OCP\AppFramework\Controller;
use OCP\IRequest;
use OCP\AppFramework\Controller;
class LabelController extends Controller {
public function __construct(
$appName,
IRequest $request,
private LabelService $labelService,
) {
private $labelService;
public function __construct($appName, IRequest $request, LabelService $labelService) {
parent::__construct($appName, $request);
$this->labelService = $labelService;
}
/**

View File

@@ -32,13 +32,17 @@ use OCP\AppFramework\OCSController;
use OCP\IRequest;
class OverviewApiController extends OCSController {
public function __construct(
$appName,
IRequest $request,
private OverviewService $dashboardService,
private $userId,
) {
/** @var OverviewService */
private $dashboardService;
/** @var string */
private $userId;
public function __construct($appName, IRequest $request, OverviewService $dashboardService, $userId) {
parent::__construct($appName, $request);
$this->dashboardService = $dashboardService;
$this->userId = $userId;
}
/**

View File

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

View File

@@ -34,12 +34,15 @@ use OCP\AppFramework\OCSController;
use OCP\IRequest;
class SearchController extends OCSController {
public function __construct(
string $appName,
IRequest $request,
private SearchService $searchService,
) {
/**
* @var SearchService
*/
private $searchService;
public function __construct(string $appName, IRequest $request, SearchService $searchService) {
parent::__construct($appName, $request);
$this->searchService = $searchService;
}
/**

View File

@@ -24,23 +24,30 @@ declare(strict_types=1);
namespace OCA\Deck\Controller;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Service\PermissionService;
use OCA\Deck\Service\SessionService;
use OCA\Deck\Service\PermissionService;
use OCA\Deck\Db\BoardMapper;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController;
use OCP\IRequest;
use OCA\Deck\Db\Acl;
class SessionController extends OCSController {
private SessionService $sessionService;
private PermissionService $permissionService;
private BoardMapper $boardMapper;
public function __construct($appName,
IRequest $request,
private SessionService $sessionService,
private PermissionService $permissionService,
private BoardMapper $boardMapper,
SessionService $sessionService,
PermissionService $permissionService,
BoardMapper $boardMapper
) {
parent::__construct($appName, $request);
$this->sessionService = $sessionService;
$this->permissionService = $permissionService;
$this->boardMapper = $boardMapper;
}
/**

View File

@@ -24,13 +24,13 @@
namespace OCA\Deck\Controller;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\StackService;
use OCA\Deck\StatusException;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCA\Deck\Service\StackService;
use OCA\Deck\Service\BoardService;
use Sabre\HTTP\Util;
/**
@@ -39,16 +39,18 @@ use Sabre\HTTP\Util;
* @package OCA\Deck\Controller
*/
class StackApiController extends ApiController {
private $boardService;
private $stackService;
/**
* @param string $appName
* @param IRequest $request
* @param StackService $stackService
*/
public function __construct(
$appName,
IRequest $request,
private StackService $stackService,
private BoardService $boardService,
) {
public function __construct($appName, IRequest $request, StackService $stackService, BoardService $boardService) {
parent::__construct($appName, $request);
$this->stackService = $stackService;
$this->boardService = $boardService;
}
/**

View File

@@ -25,18 +25,17 @@ namespace OCA\Deck\Controller;
use OCA\Deck\Service\StackService;
use OCP\AppFramework\Controller;
use OCP\IRequest;
use OCP\AppFramework\Controller;
class StackController extends Controller {
public function __construct(
string $appName,
IRequest $request,
private StackService $stackService,
private $userId,
) {
private $userId;
private $stackService;
public function __construct($appName, IRequest $request, StackService $stackService, $userId) {
parent::__construct($appName, $request);
$this->userId = $userId;
$this->stackService = $stackService;
}
/**

View File

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

View File

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

View File

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

View File

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

View File

@@ -29,8 +29,8 @@ use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\IGroupManager;
use Psr\Log\LoggerInterface;
/** @template-extends QBMapper<Board> */
@@ -126,9 +126,9 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$groupIds = $this->groupManager->getUserGroupIds($this->userManager->get($userId));
if (count($groupIds) !== 0) {
$qb->orWhere($qb->expr()->andX(
$qb->expr()->in('acl.participant', $qb->createNamedParameter($groupIds, IQueryBuilder::PARAM_STR_ARRAY)),
$qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_GROUP, IQueryBuilder::PARAM_INT)),
));
$qb->expr()->in('acl.participant', $qb->createNamedParameter($groupIds, IQueryBuilder::PARAM_STR_ARRAY)),
$qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_GROUP, IQueryBuilder::PARAM_INT)),
));
}
// Shared to circles of the user
@@ -147,7 +147,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
}
public function findAllForUser(string $userId, ?int $since = null, bool $includeArchived = true, ?int $before = null,
?string $term = null): array {
?string $term = null): array {
$useCache = ($since === -1 && $includeArchived === true && $before === null && $term === null);
if (!isset($this->userBoardCache[$userId]) || !$useCache) {
$groups = $this->groupManager->getUserGroupIds(
@@ -186,7 +186,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
* Find all boards for a given user
*/
public function findAllByUser(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
// FIXME this used to be a UNION to get boards owned by $userId and the user shares in one single query
// Is it possible with the query builder?
$qb = $this->db->getQueryBuilder();
@@ -293,7 +293,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
* Find all boards for a given user
*/
public function findAllByGroups(string $userId, array $groups, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
bool $includeArchived = true, ?int $before = null, ?string $term = null): array {
if (count($groups) <= 0) {
return [];
}
@@ -347,7 +347,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
}
public function findAllByCircles(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null) {
bool $includeArchived = true, ?int $before = null, ?string $term = null) {
$circles = $this->circlesService->getUserCircles($userId);
if (count($circles) === 0) {
return [];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -61,7 +61,7 @@ class BoardImportService {
private ICommentsManager $commentsManager;
private IEventDispatcher $eventDispatcher;
private string $system = '';
private ?ABoardImportService $systemInstance = null;
private ?ABoardImportService $systemInstance;
private array $allowedSystems = [];
/**
* Data object created from config JSON
@@ -143,13 +143,11 @@ class BoardImportService {
}
/**
* @param ?string $system
* @param mixed $system
* @return self
*/
public function setSystem($system): self {
if ($system) {
$this->system = $system;
}
$this->system = $system;
return $this;
}

View File

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

View File

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

View File

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

View File

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

View File

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

66402
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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