Compare commits
38 Commits
feat/workf
...
v1.10.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c407c06ff | ||
|
|
febd4b1a0b | ||
|
|
12c3e476f9 | ||
|
|
ec8c782b5a | ||
|
|
0575926692 | ||
|
|
617671c004 | ||
|
|
2f9cf4df37 | ||
|
|
7e5e0e2814 | ||
|
|
dd09c2ad69 | ||
|
|
87dfdd62d4 | ||
|
|
bd77b12f9b | ||
|
|
b861f2b1cd | ||
|
|
8cf3853387 | ||
|
|
313b5b0e15 | ||
|
|
7c81c7237b | ||
|
|
82eb262433 | ||
|
|
5ba5eb89b2 | ||
|
|
b714be7829 | ||
|
|
36e66e4345 | ||
|
|
542c70eac1 | ||
|
|
f54722cd5a | ||
|
|
5c29392428 | ||
|
|
b8071def95 | ||
|
|
fba6dc0a45 | ||
|
|
536029e6c6 | ||
|
|
77b81f4686 | ||
|
|
7ba4b2617a | ||
|
|
56e9d5ceb4 | ||
|
|
bb569f7df7 | ||
|
|
4060c7a14a | ||
|
|
4cebac2306 | ||
|
|
2fd8cab627 | ||
|
|
4921f3dd62 | ||
|
|
a268d428bf | ||
|
|
ab11f47afa | ||
|
|
0751f604ec | ||
|
|
c2aec9f312 | ||
|
|
04e9373c58 |
34
.github/dependabot.yml
vendored
34
.github/dependabot.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/appbuild.yml
vendored
2
.github/workflows/appbuild.yml
vendored
@@ -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
|
||||
|
||||
13
.github/workflows/appstore-build-publish.yml
vendored
13
.github/workflows/appstore-build-publish.yml
vendored
@@ -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 }}
|
||||
|
||||
8
.github/workflows/command-rebase.yml
vendored
8
.github/workflows/command-rebase.yml
vendored
@@ -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 }}
|
||||
|
||||
204
.github/workflows/cypress.yml
vendored
204
.github/workflows/cypress.yml
vendored
@@ -5,142 +5,120 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- stable*
|
||||
|
||||
env:
|
||||
# Adjust APP_NAME if your repository name is different
|
||||
APP_NAME: ${{ github.event.repository.name }}
|
||||
|
||||
# This represents the server branch to checkout.
|
||||
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
|
||||
# e.g. 'main', 'stable27' or 'feature/my-feature
|
||||
# n.b. server will use head_ref, as we want to test the PR branch.
|
||||
BRANCH: ${{ github.base_ref || github.ref_name }}
|
||||
APP_NAME: deck
|
||||
CYPRESS_baseUrl: http://localhost:8081/index.php
|
||||
|
||||
jobs:
|
||||
init:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
|
||||
npmVersion: ${{ steps.versions.outputs.npmVersion }}
|
||||
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
|
||||
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||
with:
|
||||
files: "composer.json"
|
||||
|
||||
- name: Install composer dependencies
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
run: composer install --no-dev
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: "^20"
|
||||
fallbackNpm: "^9"
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||
|
||||
- name: Install node dependencies & build app
|
||||
run: |
|
||||
npm ci
|
||||
TESTING=true npm run build --if-present
|
||||
|
||||
- name: Save context
|
||||
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
|
||||
with:
|
||||
key: cypress-context-${{ github.run_id }}
|
||||
path: ./
|
||||
|
||||
cypress:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
needs: init
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Run multiple copies of the current job in parallel
|
||||
# Please increase the number or runners as your tests suite grows
|
||||
containers: ["component", 1, 2, 3]
|
||||
|
||||
name: runner ${{ matrix.containers }}
|
||||
node-version: [14.x]
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.0' ]
|
||||
databases: [ 'sqlite' ]
|
||||
server-versions: [ 'stable27' ]
|
||||
|
||||
steps:
|
||||
- name: Restore context
|
||||
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
fail-on-cache-miss: true
|
||||
key: cypress-context-${{ github.run_id }}
|
||||
path: ./
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
|
||||
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
||||
- name: Register text Git reference
|
||||
run: |
|
||||
text_app_ref="$(if [ "${{ matrix.server-versions }}" = "master" ]; then echo -n "main"; else echo -n "${{ matrix.server-versions }}"; fi)"
|
||||
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
node-version: ${{ needs.init.outputs.nodeVersion }}
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
|
||||
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
|
||||
- name: Checkout submodules
|
||||
shell: bash
|
||||
run: |
|
||||
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
||||
git submodule sync --recursive
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||
|
||||
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
|
||||
uses: cypress-io/github-action@db1693016f23ccf9043f4b2428f9b04e5d502a73 # v5.8.1
|
||||
- name: Checkout ${{ env.APP_NAME }}
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout text
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: nextcloud/text
|
||||
ref: ${{ env.text_app_ref }}
|
||||
path: apps/text
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.25.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
ini-values:
|
||||
apc.enable_cli=on
|
||||
coverage: none
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
PHP_CLI_SERVER_WORKERS: 10
|
||||
run: |
|
||||
mkdir data
|
||||
php occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
php occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
|
||||
php occ config:system:set debug --value=true --type=boolean
|
||||
php -f index.php
|
||||
php -S 0.0.0.0:8081 &
|
||||
export OC_PASS=1234561
|
||||
php occ user:add --password-from-env user1
|
||||
php occ user:add --password-from-env user2
|
||||
php occ app:enable deck
|
||||
php occ app:list
|
||||
cd apps/deck
|
||||
composer install --no-dev
|
||||
npm ci
|
||||
npm run build
|
||||
cd ../../
|
||||
curl -v http://localhost:8081/index.php/login
|
||||
|
||||
- name: Cypress run
|
||||
uses: cypress-io/github-action@v5
|
||||
with:
|
||||
record: true
|
||||
parallel: true
|
||||
# cypress run type
|
||||
component: ${{ matrix.containers == 'component' }}
|
||||
group: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
|
||||
# cypress env
|
||||
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
|
||||
tag: ${{ github.event_name }}
|
||||
parallel: false
|
||||
wait-on: '${{ env.CYPRESS_baseUrl }}'
|
||||
working-directory: 'apps/${{ env.APP_NAME }}'
|
||||
config: defaultCommandTimeout=10000,video=false
|
||||
env:
|
||||
# Needs to be prefixed with CYPRESS_
|
||||
CYPRESS_BRANCH: ${{ env.BRANCH }}
|
||||
# https://github.com/cypress-io/github-action/issues/124
|
||||
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
|
||||
# Needed for some specific code workarounds
|
||||
TESTING: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
npm_package_name: ${{ env.APP_NAME }}
|
||||
|
||||
- name: Upload snapshots
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
if: always()
|
||||
- name: Upload test failure screenshots
|
||||
uses: actions/upload-artifact@v3
|
||||
if: failure()
|
||||
with:
|
||||
name: snapshots_${{ matrix.containers }}
|
||||
path: cypress/snapshots
|
||||
name: Upload screenshots
|
||||
path: apps/${{ env.APP_NAME }}/cypress/screenshots/
|
||||
retention-days: 5
|
||||
|
||||
- name: Extract NC logs
|
||||
if: failure() && matrix.containers != 'component'
|
||||
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
|
||||
|
||||
- name: Upload NC logs
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
if: failure() && matrix.containers != 'component'
|
||||
- name: Upload nextcloud logs
|
||||
uses: actions/upload-artifact@v3
|
||||
if: failure()
|
||||
with:
|
||||
name: nc_logs_${{ matrix.containers }}
|
||||
path: nextcloud.log
|
||||
|
||||
summary:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [init, cypress]
|
||||
|
||||
if: always()
|
||||
|
||||
name: cypress-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi
|
||||
name: Upload nextcloud log
|
||||
path: data/nextcloud.log
|
||||
retention-days: 5
|
||||
|
||||
34
.github/workflows/fixup.yml
vendored
34
.github/workflows/fixup.yml
vendored
@@ -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 }}
|
||||
|
||||
6
.github/workflows/integration.yml
vendored
6
.github/workflows/integration.yml
vendored
@@ -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
|
||||
@@ -151,4 +151,4 @@ jobs:
|
||||
repo: context.repo.repo,
|
||||
body: comment
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
8
.github/workflows/lint-eslint.yml
vendored
8
.github/workflows/lint-eslint.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
7
.github/workflows/lint-php-cs.yml
vendored
7
.github/workflows/lint-php-cs.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
7
.github/workflows/lint-php.yml
vendored
7
.github/workflows/lint-php.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
8
.github/workflows/lint-stylelint.yml
vendored
8
.github/workflows/lint-stylelint.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
@@ -25,7 +25,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
|
||||
|
||||
12
.github/workflows/npm-audit-fix.yml
vendored
12
.github/workflows/npm-audit-fix.yml
vendored
@@ -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"
|
||||
|
||||
6
.github/workflows/phpunit.yml
vendored
6
.github/workflows/phpunit.yml
vendored
@@ -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
|
||||
|
||||
5
.github/workflows/psalm.yml
vendored
5
.github/workflows/psalm.yml
vendored
@@ -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 }}
|
||||
|
||||
|
||||
31
.github/workflows/update-nextcloud-ocp.yml
vendored
31
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
847
composer.lock
generated
847
composer.lock
generated
File diff suppressed because it is too large
Load Diff
32
l10n/ar.js
32
l10n/ar.js
@@ -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" : "أنشى بطاقة ",
|
||||
|
||||
32
l10n/ar.json
32
l10n/ar.json
@@ -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" : "أنشى بطاقة ",
|
||||
|
||||
@@ -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 d’ID de la targeta",
|
||||
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
|
||||
|
||||
@@ -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 d’ID de la targeta",
|
||||
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
|
||||
|
||||
@@ -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,7 +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",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"Close" : "Sulge",
|
||||
|
||||
@@ -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,7 +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",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD",
|
||||
"Cancel" : "Loobu",
|
||||
"Close" : "Sulge",
|
||||
|
||||
61
l10n/gl.js
61
l10n/gl.js
@@ -63,35 +63,27 @@ OC.L10N.register(
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
|
||||
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}",
|
||||
"{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 vostede por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a vostede.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
|
||||
"The card \"%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».",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a vostede nun comentario en {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede 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",
|
||||
"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 insíraos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
|
||||
"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,8 +111,6 @@ 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",
|
||||
@@ -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" : "Recurso compartido 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 vostede",
|
||||
"Deck settings" : "Axustes do Tarxeteiro",
|
||||
"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,22 +258,14 @@ 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 {nome}\n* Última modificación en {lastMod}",
|
||||
"{stack} in {board}" : "{stack} en {board}",
|
||||
"Click to expand description" : "Prema para ampliar 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 ampliar 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" : "Ligar a un taboleiro",
|
||||
"Link to a card" : "Ligar a unha tarxeta",
|
||||
"Create a card" : "Crear unha tarxeta",
|
||||
@@ -313,8 +274,8 @@ OC.L10N.register(
|
||||
"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"
|
||||
},
|
||||
|
||||
61
l10n/gl.json
61
l10n/gl.json
@@ -61,35 +61,27 @@
|
||||
"{user} has restored the attachment {attachment} to card {card}" : "{user} restaurou o anexo {attachment} da tarxeta {card}",
|
||||
"You have commented on card {card}" : "Vostede comentou na tarxeta {card}",
|
||||
"{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 vostede por %s.",
|
||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} asignoulle a tarxeta {deck-card} en {deck-board} a vostede.",
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "A tarxeta «%s» en «%s» acadou a súa data de caducidade.",
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "A tarxeta {deck-card} en {deck-board} chegou á súa data de caducidade.",
|
||||
"The card \"%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».",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionouno a vostede nun comentario en {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "O taboleiro «%s» foi compartido con vostede 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",
|
||||
"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 insíraos na súa descrición de Markdown\n- 💬 Debata co seu equipo usando os comentarios\n- ⚡ Faga un seguimento dos cambios no fluxo de actividade\n- 🚀 Teña o seu proxecto organizado",
|
||||
"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,8 +109,6 @@
|
||||
"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",
|
||||
@@ -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" : "Recurso compartido 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 vostede",
|
||||
"Deck settings" : "Axustes do Tarxeteiro",
|
||||
"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,22 +256,14 @@
|
||||
"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 {nome}\n* Última modificación en {lastMod}",
|
||||
"{stack} in {board}" : "{stack} en {board}",
|
||||
"Click to expand description" : "Prema para ampliar 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 ampliar 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" : "Ligar a un taboleiro",
|
||||
"Link to a card" : "Ligar a unha tarxeta",
|
||||
"Create a card" : "Crear unha tarxeta",
|
||||
@@ -311,8 +272,8 @@
|
||||
"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);"
|
||||
|
||||
11
l10n/ko.js
11
l10n/ko.js
@@ -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;");
|
||||
|
||||
11
l10n/ko.json
11
l10n/ko.json
@@ -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;"
|
||||
}
|
||||
@@ -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ă",
|
||||
|
||||
@@ -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ă",
|
||||
|
||||
@@ -79,12 +79,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" : "Deck 看板、卡片和评论",
|
||||
"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" : "Deck 面板及卡片",
|
||||
"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" : "Deck是一个看板风格的管理工具,旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用 Markdown 写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的 Markdown 描述中 \n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
|
||||
"Add board" : "添加面板",
|
||||
"Select the board to link to a project" : "选择要链接到一个项目的面板",
|
||||
"Search by board title" : "通过标题搜索面板",
|
||||
@@ -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" : "创建一张卡片",
|
||||
|
||||
@@ -77,12 +77,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" : "Deck 看板、卡片和评论",
|
||||
"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" : "Deck 面板及卡片",
|
||||
"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" : "Deck是一个看板风格的管理工具,旨在为与Nextcloud集成的团队进行个人规划和项目管理。\n\n\n- 📥 添加您的任务到卡片并将之整理好\n- 📄 用 Markdown 写下额外的注释\n- 🔖 分配标签以更好地管理您的工作\n- 👥 与您的团队、朋友或家人分享\n- 📎 附件文件并将其嵌入到您的 Markdown 描述中 \n- 💬 使用评论与您的团队沟通\n- ⚡ 在活动流中跟踪变更情况\n- 🚀 让您的项目井井有条",
|
||||
"Add board" : "添加面板",
|
||||
"Select the board to link to a project" : "选择要链接到一个项目的面板",
|
||||
"Search by board title" : "通过标题搜索面板",
|
||||
@@ -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" : "创建一张卡片",
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
@@ -109,6 +109,5 @@ class UserExport extends Command {
|
||||
}
|
||||
}
|
||||
$output->writeln(json_encode($data, JSON_PRETTY_PRINT));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
*/
|
||||
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 {
|
||||
private $attachmentService;
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,20 +23,20 @@
|
||||
*
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
@@ -25,8 +25,8 @@ 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 {
|
||||
private $userId;
|
||||
|
||||
@@ -36,7 +36,7 @@ class ConfigController extends OCSController {
|
||||
$AppName,
|
||||
IRequest $request,
|
||||
ConfigService $configService
|
||||
) {
|
||||
) {
|
||||
parent::__construct($AppName, $request);
|
||||
|
||||
$this->configService = $configService;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Service\LabelService;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\IRequest;
|
||||
use OCP\AppFramework\Controller;
|
||||
|
||||
class LabelController extends Controller {
|
||||
private $labelService;
|
||||
|
||||
@@ -23,25 +23,25 @@
|
||||
|
||||
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;
|
||||
@@ -64,7 +64,7 @@ class PageController extends Controller {
|
||||
IURLGenerator $urlGenerator,
|
||||
CardService $cardService,
|
||||
IConfig $config
|
||||
) {
|
||||
) {
|
||||
parent::__construct($AppName, $request);
|
||||
|
||||
$this->permissionService = $permissionService;
|
||||
|
||||
@@ -24,14 +24,14 @@ 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -25,10 +25,10 @@ namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Service\StackService;
|
||||
|
||||
use OCP\AppFramework\Controller;
|
||||
|
||||
use OCP\IRequest;
|
||||
|
||||
use OCP\AppFramework\Controller;
|
||||
|
||||
class StackController extends Controller {
|
||||
private $userId;
|
||||
private $stackService;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 [];
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
namespace OCA\Deck\Db;
|
||||
|
||||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\ICache;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IRequest;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace OCA\Deck\Validators;
|
||||
|
||||
|
||||
66244
package-lock.json
generated
66244
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
214
package.json
214
package.json
@@ -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.5",
|
||||
"@nextcloud/auth": "^2.1.0",
|
||||
"@nextcloud/axios": "^2.3.0",
|
||||
"@nextcloud/dialogs": "^4.1.0",
|
||||
"@nextcloud/event-bus": "^3.1.0",
|
||||
"@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.2",
|
||||
"@nextcloud/vue": "^7.12.0",
|
||||
"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.2.3",
|
||||
"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.15.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"
|
||||
]
|
||||
}
|
||||
}
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@
|
||||
<ignoreFiles>
|
||||
<directory name="vendor/phpunit/php-code-coverage" />
|
||||
<directory name="vendor/vimeo" />
|
||||
<directory name="vendor/friendsofphp" />
|
||||
</ignoreFiles>
|
||||
</extraFiles>
|
||||
<issueHandlers>
|
||||
|
||||
22
src/App.vue
22
src/App.vue
@@ -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>
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
|
||||
namespace OCA\Deck\Service;
|
||||
|
||||
use \Test\TestCase;
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
use OCA\Deck\Db\Card;
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Db\Stack;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use \Test\TestCase;
|
||||
|
||||
class DefaultBoardServiceTest extends TestCase {
|
||||
|
||||
|
||||
@@ -23,12 +23,11 @@
|
||||
|
||||
namespace OCA\Deck\Service;
|
||||
|
||||
use \Test\TestCase;
|
||||
use OCA\Deck\Activity\ActivityManager;
|
||||
use OCA\Deck\Db\AssignmentMapper;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
use OCA\Deck\Db\Card;
|
||||
use OCA\Deck\Db\CardMapper;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
use OCA\Deck\Db\ChangeHelper;
|
||||
use OCA\Deck\Db\Label;
|
||||
use OCA\Deck\Db\LabelMapper;
|
||||
@@ -38,6 +37,7 @@ use OCA\Deck\Model\CardDetails;
|
||||
use OCA\Deck\Validators\StackServiceValidator;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use \Test\TestCase;
|
||||
|
||||
/**
|
||||
* Class StackServiceTest
|
||||
@@ -117,17 +117,17 @@ class StackServiceTest extends TestCase {
|
||||
$this->permissionService->expects($this->once())->method('checkPermission');
|
||||
$this->stackMapper->expects($this->once())->method('findAll')->willReturn($this->getStacks());
|
||||
$this->cardService->expects($this->atLeastOnce())->method('enrichCards')->will(
|
||||
$this->returnCallback(
|
||||
function ($cards) {
|
||||
foreach ($cards as $card) {
|
||||
$card->setLabels($this->getLabels()[$card->getId()]);
|
||||
}
|
||||
return array_map(function ($card) {
|
||||
return new CardDetails($card);
|
||||
}, $cards);
|
||||
}
|
||||
)
|
||||
);
|
||||
$this->returnCallback(
|
||||
function ($cards) {
|
||||
foreach ($cards as $card) {
|
||||
$card->setLabels($this->getLabels()[$card->getId()]);
|
||||
}
|
||||
return array_map(function ($card) {
|
||||
return new CardDetails($card);
|
||||
}, $cards);
|
||||
}
|
||||
)
|
||||
);
|
||||
$this->cardMapper->expects($this->any())->method('findAll')->willReturn($this->getCards(222));
|
||||
|
||||
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
*/
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCP\AppFramework\Http;
|
||||
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IRequest;
|
||||
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Db\Board;
|
||||
|
||||
class BoardApiControllerTest extends \Test\TestCase {
|
||||
private $appName = 'deck';
|
||||
private $userId = 'admin';
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Service\Importer\BoardImportService;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IRequest;
|
||||
use OCA\Deck\Service\Importer\BoardImportService;
|
||||
|
||||
class BoardImportApiControllerTest extends \Test\TestCase {
|
||||
private $appName = 'deck';
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
*/
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Card;
|
||||
use OCA\Deck\Service\AssignmentService;
|
||||
use OCA\Deck\Service\CardService;
|
||||
use OCP\AppFramework\Http;
|
||||
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IRequest;
|
||||
|
||||
use OCA\Deck\Db\Card;
|
||||
use OCA\Deck\Service\CardService;
|
||||
|
||||
class CardApiControllerTest extends \Test\TestCase {
|
||||
private $controller;
|
||||
private $request;
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
*/
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Label;
|
||||
use OCA\Deck\Service\LabelService;
|
||||
use OCP\AppFramework\Http;
|
||||
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IRequest;
|
||||
|
||||
use OCA\Deck\Db\Label;
|
||||
use OCA\Deck\Service\LabelService;
|
||||
|
||||
class LabelApiControllerTest extends \Test\TestCase {
|
||||
private $controller;
|
||||
private $request;
|
||||
|
||||
@@ -29,9 +29,9 @@ use OCA\Deck\Service\CardService;
|
||||
use OCA\Deck\Service\ConfigService;
|
||||
use OCA\Deck\Service\PermissionService;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IInitialStateService;
|
||||
use OCP\IRequest;
|
||||
use OCP\IConfig;
|
||||
use OCP\IURLGenerator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
*/
|
||||
namespace OCA\Deck\Controller;
|
||||
|
||||
use OCA\Deck\Db\Stack;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\StackService;
|
||||
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IRequest;
|
||||
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\StackService;
|
||||
use OCA\Deck\Db\Stack;
|
||||
|
||||
class StackApiControllerTest extends \Test\TestCase {
|
||||
private $appName = 'deck';
|
||||
private $userId = 'admin';
|
||||
|
||||
Reference in New Issue
Block a user