Compare commits
57 Commits
fix/2749-c
...
feat/6118-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09748aebb9 | ||
|
|
db00879b6a | ||
|
|
7b1ca0b233 | ||
|
|
c379955805 | ||
|
|
af3a0ef029 | ||
|
|
e003106d1d | ||
|
|
10842caffd | ||
|
|
efa935f117 | ||
|
|
5498e04a12 | ||
|
|
634e6fe4f7 | ||
|
|
119b942eef | ||
|
|
ae69c891f3 | ||
|
|
0a97ba3e9a | ||
|
|
4c0b1f5391 | ||
|
|
eabb9d4464 | ||
|
|
4a1c9dc6a8 | ||
|
|
5f36c33232 | ||
|
|
3dbb73807f | ||
|
|
82aa1d7d10 | ||
|
|
2e200cb6a7 | ||
|
|
2138a0b810 | ||
|
|
307b3eb50e | ||
|
|
76e49ebbba | ||
|
|
011e046c28 | ||
|
|
2630b6ccac | ||
|
|
2e552f474a | ||
|
|
a364ca8733 | ||
|
|
8da918a6a8 | ||
|
|
5aca5b4499 | ||
|
|
e8cde5b690 | ||
|
|
4beb7fceaa | ||
|
|
0c07a4fd76 | ||
|
|
4fa1d18467 | ||
|
|
a660e5b859 | ||
|
|
b76387b862 | ||
|
|
2dacd99fd6 | ||
|
|
68b9e0fb40 | ||
|
|
f21282c5d6 | ||
|
|
a145cccf34 | ||
|
|
9a87f287e3 | ||
|
|
3dd70f2f8b | ||
|
|
4ec4f86963 | ||
|
|
973d13023b | ||
|
|
1bf3442e82 | ||
|
|
5bb0f87248 | ||
|
|
cca82f152d | ||
|
|
bc809b2d3f | ||
|
|
3422c851cf | ||
|
|
c621d158b2 | ||
|
|
2677957c74 | ||
|
|
1ef7447248 | ||
|
|
6d2a01cb21 | ||
|
|
7fbf03b548 | ||
|
|
c7cf43a75c | ||
|
|
9c290daa06 | ||
|
|
97ecbf5e50 | ||
|
|
502cadf091 |
280
.github/workflows/appstore-build-publish.yml
vendored
280
.github/workflows/appstore-build-publish.yml
vendored
@@ -9,167 +9,167 @@
|
||||
name: Build and publish app release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-latest
|
||||
build_and_publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Only allowed to be run on nextcloud-releases repositories
|
||||
if: ${{ github.repository_owner == 'nextcloud-releases' }}
|
||||
# Only allowed to be run on nextcloud-releases repositories
|
||||
if: ${{ github.repository_owner == 'nextcloud-releases' }}
|
||||
|
||||
steps:
|
||||
- name: Check actor permission
|
||||
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
|
||||
with:
|
||||
require: write
|
||||
steps:
|
||||
- name: Check actor permission
|
||||
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
|
||||
with:
|
||||
require: write
|
||||
|
||||
- name: Set app env
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
- name: Set app env
|
||||
run: |
|
||||
# Split and keep last
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
|
||||
- name: Get appinfo data
|
||||
id: appinfo
|
||||
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//dependencies//nextcloud/@min-version"
|
||||
- name: Get appinfo data
|
||||
id: appinfo
|
||||
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
expression: "//info//dependencies//nextcloud/@min-version"
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
# Continue if no package.json
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
# Continue if no package.json
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Get php version
|
||||
id: php-versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
- name: Get php version
|
||||
id: php-versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
with:
|
||||
filename: ${{ env.APP_NAME }}/appinfo/info.xml
|
||||
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
with:
|
||||
php-version: ${{ steps.php-versions.outputs.php-min }}
|
||||
coverage: none
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: "${{ env.APP_NAME }}/composer.json"
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: "${{ env.APP_NAME }}/composer.json"
|
||||
|
||||
- name: Install composer dependencies
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
composer install --no-dev
|
||||
- name: Install composer dependencies
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
composer install --no-dev
|
||||
|
||||
- name: Build ${{ env.APP_NAME }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
env:
|
||||
NODE_ENV: production
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
- name: Build ${{ env.APP_NAME }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Check Krankerl config
|
||||
id: krankerl
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: ${{ env.APP_NAME }}/krankerl.toml
|
||||
- name: Check Krankerl config
|
||||
id: krankerl
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: ${{ env.APP_NAME }}/krankerl.toml
|
||||
|
||||
- name: Install Krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
||||
- name: Install Krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
|
||||
sudo dpkg -i krankerl_0.14.0_amd64.deb
|
||||
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
krankerl package
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
|
||||
if: steps.krankerl.outputs.files_exists == 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
krankerl package
|
||||
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
|
||||
if: steps.krankerl.outputs.files_exists != 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
make appstore
|
||||
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
|
||||
if: steps.krankerl.outputs.files_exists != 'true'
|
||||
run: |
|
||||
cd ${{ env.APP_NAME }}
|
||||
make appstore
|
||||
|
||||
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
||||
continue-on-error: true
|
||||
id: server-checkout
|
||||
run: |
|
||||
NCVERSION=${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
||||
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
|
||||
unzip latest-$NCVERSION.zip
|
||||
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
|
||||
continue-on-error: true
|
||||
id: server-checkout
|
||||
run: |
|
||||
NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
|
||||
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
|
||||
unzip latest-$NCVERSION.zip
|
||||
|
||||
- name: Checkout server master fallback
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||
with:
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
path: nextcloud
|
||||
- name: Checkout server master fallback
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||
with:
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
path: nextcloud
|
||||
|
||||
- name: Sign app
|
||||
run: |
|
||||
# Extracting release
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -xvf ${{ env.APP_NAME }}.tar.gz
|
||||
cd ../../../
|
||||
# Setting up keys
|
||||
echo "${{ secrets.APP_PRIVATE_KEY }}" > ${{ env.APP_NAME }}.key
|
||||
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
|
||||
# Signing
|
||||
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
|
||||
# Rebuilding archive
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
||||
- name: Sign app
|
||||
run: |
|
||||
# Extracting release
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -xvf ${{ env.APP_NAME }}.tar.gz
|
||||
cd ../../../
|
||||
# Setting up keys
|
||||
echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
|
||||
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
|
||||
# Signing
|
||||
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
|
||||
# Rebuilding archive
|
||||
cd ${{ env.APP_NAME }}/build/artifacts
|
||||
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
|
||||
|
||||
- name: Attach tarball to github release
|
||||
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
|
||||
id: attach_to_release
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
|
||||
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
|
||||
tag: ${{ github.ref }}
|
||||
overwrite: true
|
||||
- name: Attach tarball to github release
|
||||
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
|
||||
id: attach_to_release
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
|
||||
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
|
||||
tag: ${{ github.ref }}
|
||||
overwrite: true
|
||||
|
||||
- name: Upload app to Nextcloud appstore
|
||||
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
|
||||
with:
|
||||
app_name: ${{ env.APP_NAME }}
|
||||
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
||||
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
|
||||
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
- name: Upload app to Nextcloud appstore
|
||||
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
|
||||
with:
|
||||
app_name: ${{ env.APP_NAME }}
|
||||
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
|
||||
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
|
||||
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- uses: mdecoleman/pr-branch-name@bab4c71506bcd299fb350af63bb8e53f2940a599 # v2.0.0
|
||||
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
|
||||
id: branchname
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
|
||||
# Enable GitHub auto merge
|
||||
- name: Auto merge
|
||||
uses: alexwilson/enable-github-automerge-action@3a349b20acc6235b856fb0b1c95a36cb5373da2f # main
|
||||
uses: alexwilson/enable-github-automerge-action@984aa5760674115463cb7835dc156fcc17413419 # main
|
||||
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
26
CHANGELOG.md
26
CHANGELOG.md
@@ -5,6 +5,32 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.14.0-beta.1
|
||||
|
||||
### Fixed
|
||||
|
||||
- fix: card details focus issue with screen reader @luka-nextcloud [#5858](https://github.com/nextcloud/deck/pull/5858)
|
||||
- Cleaning up unused indicies @mintsoft [#5612](https://github.com/nextcloud/deck/pull/5612)
|
||||
- Change import command's config default argument @JimMadge [#5722](https://github.com/nextcloud/deck/pull/5722)
|
||||
- don't reset update time when no update was written to db @grnd-alt [#6005](https://github.com/nextcloud/deck/pull/6005)
|
||||
- docs: Fix symlink to readme @juliushaertl [#6033](https://github.com/nextcloud/deck/pull/6033)
|
||||
- perf: Avoid fetching labels and owner details on permission check @juliushaertl [#6010](https://github.com/nextcloud/deck/pull/6010)
|
||||
- Only check path for being accessible when the storage is a object home @mejo- [#6062](https://github.com/nextcloud/deck/pull/6062)
|
||||
- Fix: incorrect height of editing windows and edit bar @pschopen [#6088](https://github.com/nextcloud/deck/pull/6088)
|
||||
- fix: design review issues @luka-nextcloud [#6113](https://github.com/nextcloud/deck/pull/6113)
|
||||
- fix: remove redundant log @luka-nextcloud [#6115](https://github.com/nextcloud/deck/pull/6115)
|
||||
- fix: Adjust dependencies to fix filepicker @susnux [#5964](https://github.com/nextcloud/deck/pull/5964)
|
||||
- fix: Remove bindParam usage with simpler query @juliushaertl [#6065](https://github.com/nextcloud/deck/pull/6065)
|
||||
|
||||
### Other
|
||||
|
||||
- Adds link to Nextcloud Deck for iOS in README.md file @StCyr [#5886](https://github.com/nextcloud/deck/pull/5886)
|
||||
- choir(i18n): Change filter title @rakekniven [#5957](https://github.com/nextcloud/deck/pull/5957)
|
||||
- chore: Clean up permission service @juliushaertl [#6011](https://github.com/nextcloud/deck/pull/6011)
|
||||
- Update User_documentation_en.md @StCyr [#6029](https://github.com/nextcloud/deck/pull/6029)
|
||||
- chore: Move comments event handler to use proper event dispatcher @juliushaertl [#6008](https://github.com/nextcloud/deck/pull/6008)
|
||||
- Migrate REUSE to TOML format @AndyScherzinger [#6084](https://github.com/nextcloud/deck/pull/6084)
|
||||
|
||||
## 1.13.0-beta.1
|
||||
|
||||
### Added
|
||||
|
||||
@@ -105,6 +105,12 @@ You can use the provided Makefile to run all tests by using:
|
||||
|
||||
make test
|
||||
|
||||
#### Running behat integration tests
|
||||
|
||||
Within `tests/integration/` run `composer install` and then choose one of the two options:
|
||||
- Run tests with a local php server: `bash run.sh`
|
||||
- Run against an existing Nextcloud installation: `BEHAT_SERVER_URL=http://nextcloud.local ./vendor/bin/behat --colors features/decks.feature`
|
||||
|
||||
### Documentation
|
||||
|
||||
The documentation for our REST API can be found at https://deck.readthedocs.io/en/latest/API/
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.14.0-dev</version>
|
||||
<version>1.14.0-beta.1</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<documentation>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"justinrainbow/json-schema": "^5.2"
|
||||
"justinrainbow/json-schema": "^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"roave/security-advisories": "dev-master",
|
||||
|
||||
227
composer.lock
generated
227
composer.lock
generated
@@ -4,27 +4,144 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "91d1163b8b5b076f39a79a9c394d0217",
|
||||
"content-hash": "ee1c5b69795943e43d6277064d284ae0",
|
||||
"packages": [
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
"version": "5.3.0",
|
||||
"name": "icecave/parity",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jsonrainbow/json-schema.git",
|
||||
"reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
|
||||
"url": "https://github.com/icecave/parity.git",
|
||||
"reference": "0109fef58b3230d23b20b2ac52ecdf477218d300"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
|
||||
"reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
|
||||
"url": "https://api.github.com/repos/icecave/parity/zipball/0109fef58b3230d23b20b2ac52ecdf477218d300",
|
||||
"reference": "0109fef58b3230d23b20b2ac52ecdf477218d300",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"icecave/repr": "~1",
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
|
||||
"eloquent/liberator": "~1",
|
||||
"icecave/archer": "~1"
|
||||
},
|
||||
"suggest": {
|
||||
"eloquent/asplode": "Drop-in exception-based error handling."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Icecave\\Parity": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "James Harris",
|
||||
"email": "james.harris@icecave.com.au",
|
||||
"homepage": "https://github.com/jmalloc"
|
||||
}
|
||||
],
|
||||
"description": "A customizable deep comparison library.",
|
||||
"homepage": "https://github.com/IcecaveStudios/parity",
|
||||
"keywords": [
|
||||
"compare",
|
||||
"comparison",
|
||||
"equal",
|
||||
"equality",
|
||||
"greater",
|
||||
"less",
|
||||
"sort",
|
||||
"sorting"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/icecave/parity/issues",
|
||||
"source": "https://github.com/icecave/parity/tree/1.0.0"
|
||||
},
|
||||
"time": "2014-01-17T05:56:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "icecave/repr",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/icecave/repr.git",
|
||||
"reference": "8a3d2953adf5f464a06e3e2587aeacc97e2bed07"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/icecave/repr/zipball/8a3d2953adf5f464a06e3e2587aeacc97e2bed07",
|
||||
"reference": "8a3d2953adf5f464a06e3e2587aeacc97e2bed07",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"icecave/archer": "~1"
|
||||
},
|
||||
"suggest": {
|
||||
"eloquent/asplode": "Drop-in exception-based error handling."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Icecave\\Repr\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "James Harris",
|
||||
"email": "james.harris@icecave.com.au",
|
||||
"homepage": "https://github.com/jmalloc"
|
||||
}
|
||||
],
|
||||
"description": "A library for generating string representations of any value, inspired by Python's reprlib library.",
|
||||
"homepage": "https://github.com/IcecaveStudios/repr",
|
||||
"keywords": [
|
||||
"human",
|
||||
"readable",
|
||||
"repr",
|
||||
"representation",
|
||||
"string"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/icecave/repr/issues",
|
||||
"source": "https://github.com/icecave/repr/tree/1.0.1"
|
||||
},
|
||||
"time": "2014-07-25T05:44:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
"version": "6.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jsonrainbow/json-schema.git",
|
||||
"reference": "a38c6198d53b09c0702f440585a4f4a5d9137bd9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/a38c6198d53b09c0702f440585a4f4a5d9137bd9",
|
||||
"reference": "a38c6198d53b09c0702f440585a4f4a5d9137bd9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"icecave/parity": "1.0.0",
|
||||
"marc-mabe/php-enum": "^2.0 || ^3.0 || ^4.0",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2.2.20 || ~2.19.0",
|
||||
"json-schema/json-schema-test-suite": "1.2.0",
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
},
|
||||
@@ -32,6 +149,11 @@
|
||||
"bin/validate-json"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"JsonSchema\\": "src/JsonSchema/"
|
||||
@@ -60,16 +182,89 @@
|
||||
}
|
||||
],
|
||||
"description": "A library to validate a json schema.",
|
||||
"homepage": "https://github.com/justinrainbow/json-schema",
|
||||
"homepage": "https://github.com/jsonrainbow/json-schema",
|
||||
"keywords": [
|
||||
"json",
|
||||
"schema"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/jsonrainbow/json-schema/issues",
|
||||
"source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
|
||||
"source": "https://github.com/jsonrainbow/json-schema/tree/6.0.0"
|
||||
},
|
||||
"time": "2024-07-06T21:00:26+00:00"
|
||||
"time": "2024-07-30T17:49:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "marc-mabe/php-enum",
|
||||
"version": "v4.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/marc-mabe/php-enum.git",
|
||||
"reference": "3da42cc1daceaf98c858e56f59d1ccd52b011fdc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/3da42cc1daceaf98c858e56f59d1ccd52b011fdc",
|
||||
"reference": "3da42cc1daceaf98c858e56f59d1ccd52b011fdc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-reflection": "*",
|
||||
"php": "^7.1 | ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpbench/phpbench": "^0.16.10 || ^1.0.4",
|
||||
"phpstan/phpstan": "^1.3.1",
|
||||
"phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11",
|
||||
"vimeo/psalm": "^4.17.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.6-dev",
|
||||
"dev-3.x": "3.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"MabeEnum\\": "src/"
|
||||
},
|
||||
"classmap": [
|
||||
"stubs/Stringable.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marc Bennewitz",
|
||||
"email": "dev@mabe.berlin",
|
||||
"homepage": "https://mabe.berlin/",
|
||||
"role": "Lead"
|
||||
}
|
||||
],
|
||||
"description": "Simple and fast implementation of enumerations with native PHP",
|
||||
"homepage": "https://github.com/marc-mabe/php-enum",
|
||||
"keywords": [
|
||||
"enum",
|
||||
"enum-map",
|
||||
"enum-set",
|
||||
"enumeration",
|
||||
"enumerator",
|
||||
"enummap",
|
||||
"enumset",
|
||||
"map",
|
||||
"set",
|
||||
"type",
|
||||
"type-hint",
|
||||
"typehint"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/marc-mabe/php-enum/issues",
|
||||
"source": "https://github.com/marc-mabe/php-enum/tree/v4.7.0"
|
||||
},
|
||||
"time": "2022-04-19T02:21:46+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -249,12 +444,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||
"reference": "13c7fcd3f86213789ab064e3e1bf58e9d5133db6"
|
||||
"reference": "fb567bbfffc34cdd48efd19990b6b452c2eea6eb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/13c7fcd3f86213789ab064e3e1bf58e9d5133db6",
|
||||
"reference": "13c7fcd3f86213789ab064e3e1bf58e9d5133db6",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/fb567bbfffc34cdd48efd19990b6b452c2eea6eb",
|
||||
"reference": "fb567bbfffc34cdd48efd19990b6b452c2eea6eb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -286,7 +481,7 @@
|
||||
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
|
||||
},
|
||||
"time": "2024-07-13T00:37:22+00:00"
|
||||
"time": "2024-08-03T00:37:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
import './commands.js'
|
||||
|
||||
Cypress.on('uncaught:exception', (err) => {
|
||||
return !err.message.includes('ResizeObserver loop limit exceeded')
|
||||
return !err.message.includes('ResizeObserver loop limit exceeded') && !err.message.includes('ResizeObserver loop completed with undelivered notifications')
|
||||
})
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
|
||||
@@ -29,6 +29,7 @@ OC.L10N.register(
|
||||
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
|
||||
"Comments" : "Displegadennoù",
|
||||
"Modified" : "Cheñchet",
|
||||
"Created" : "Krouet",
|
||||
"Save" : "Enrollañ",
|
||||
"Reply" : "Respont",
|
||||
"Update" : "Adnevesaat",
|
||||
@@ -38,7 +39,7 @@ OC.L10N.register(
|
||||
"seconds ago" : "eilenn zo",
|
||||
"Search" : "Klask",
|
||||
"Shared with you" : "Rannet ganeoc'h",
|
||||
"No notifications" : "Kemenaden ebet",
|
||||
"No notifications" : "Kemennadenn ebet",
|
||||
"Today" : "Hiziv",
|
||||
"Tomorrow" : "Warc'hoaz",
|
||||
"Close" : "Seriñ",
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
"Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
|
||||
"Comments" : "Displegadennoù",
|
||||
"Modified" : "Cheñchet",
|
||||
"Created" : "Krouet",
|
||||
"Save" : "Enrollañ",
|
||||
"Reply" : "Respont",
|
||||
"Update" : "Adnevesaat",
|
||||
@@ -36,7 +37,7 @@
|
||||
"seconds ago" : "eilenn zo",
|
||||
"Search" : "Klask",
|
||||
"Shared with you" : "Rannet ganeoc'h",
|
||||
"No notifications" : "Kemenaden ebet",
|
||||
"No notifications" : "Kemennadenn ebet",
|
||||
"Today" : "Hiziv",
|
||||
"Tomorrow" : "Warc'hoaz",
|
||||
"Close" : "Seriñ",
|
||||
|
||||
@@ -251,6 +251,7 @@ OC.L10N.register(
|
||||
"Remove due date" : "Suprimeix la data de caducitat",
|
||||
"Mark as done" : "Marcat com a fet",
|
||||
"Due at:" : "Venciment a:",
|
||||
"Not done" : "No s'ha fet",
|
||||
"Unarchive card" : "Desarxiva targeta",
|
||||
"Archive card" : "Arxiva la targeta",
|
||||
"Select Date" : "Selecciona la data",
|
||||
|
||||
@@ -249,6 +249,7 @@
|
||||
"Remove due date" : "Suprimeix la data de caducitat",
|
||||
"Mark as done" : "Marcat com a fet",
|
||||
"Due at:" : "Venciment a:",
|
||||
"Not done" : "No s'ha fet",
|
||||
"Unarchive card" : "Desarxiva targeta",
|
||||
"Archive card" : "Arxiva la targeta",
|
||||
"Select Date" : "Selecciona la data",
|
||||
|
||||
16
l10n/el.js
16
l10n/el.js
@@ -37,6 +37,10 @@ OC.L10N.register(
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "Ο/η {user} αρχειοθέτησε την κάρτα {card} στην λίστα {stack} του πίνακα {board} ",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Επαναφέρατε από το αρχείο την καρτέλα {card} της λίστας {stack} του πίνακα {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "Ο/η {user} επανέφερε από το αρχείο την κάρτα {card} της λίστας {stack} του πίνακα {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"You have removed the due date of card {card}" : "Καταργήσατε την ημερομηνία λήξης της καρτέλας {card}",
|
||||
"{user} has removed the due date of card {card}" : "Ο/η {user} κατάργησε την ημερομηνία λήξης της καρτέλας {card}",
|
||||
"You have set the due date of card {card} to {after}" : "Ορίσατε την ημερομηνία λήξης της καρτέλας {card} σε {after}",
|
||||
@@ -84,6 +88,7 @@ OC.L10N.register(
|
||||
"Deck board" : "Πίνακας του Deck",
|
||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||
"Card comments" : "Σχόλια καρτέλας",
|
||||
"%s on %s" : "%s στο %s",
|
||||
"Deck boards and cards" : "Πίνακες και κάρτες Deck",
|
||||
@@ -143,6 +148,8 @@ OC.L10N.register(
|
||||
"Filter by tag" : "Φίλτρο ανά ετικέτα",
|
||||
"Filter by assigned user" : "Φίλτρο ανά χρήστη",
|
||||
"Unassigned" : "Χωρίς ανάθεση",
|
||||
"Filter by status" : "Φίλτρο με βάση την κατάσταση",
|
||||
"Open and completed" : "Ανοιχτά και ολοκληρωμένα",
|
||||
"Open" : "Ανοιχτός",
|
||||
"Completed" : "Ολοκληρωμένες",
|
||||
"Filter by due date" : "Φίλτρο ανά ημερομηνία λήξης",
|
||||
@@ -153,6 +160,7 @@ OC.L10N.register(
|
||||
"No due date" : "Χωρίς ημερομηνία λήξης",
|
||||
"Clear filter" : "Εκκαθάριση φίλτρου",
|
||||
"View Modes" : "Τρόποι προβολής",
|
||||
"Toggle View Modes" : "Εναλλαγή τρόπων προβολής",
|
||||
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
||||
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
||||
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
||||
@@ -171,6 +179,8 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Διαγραμμένες λίστες",
|
||||
"Undo" : "Αναίρεση",
|
||||
"Deleted cards" : "Διαγραμμένες καρτέλες",
|
||||
"Share board with a user, group or team …" : "Κοινή χρήση πίνακα με έναν χρήστη, μια ομάδα ή team ...",
|
||||
"Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …",
|
||||
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
||||
"Board owner" : "Κάτοχος πίνακα",
|
||||
"(Group)" : "(Ομάδα)",
|
||||
@@ -200,6 +210,7 @@ OC.L10N.register(
|
||||
"title and color value must be provided" : "ο τίτλος και η τιμή χρώματος πρέπει να παρέχονται",
|
||||
"Board name" : "Όνομα πίνακα",
|
||||
"Members" : "Μέλη",
|
||||
"Assign to users/groups/team" : "Ανάθεση σε χρήστες/ομάδες/teams",
|
||||
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||
@@ -246,6 +257,7 @@ OC.L10N.register(
|
||||
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
||||
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
||||
"Due at:" : "Λήγει στις:",
|
||||
"Not done" : "Μη ολοκληρωμένο",
|
||||
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
||||
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
||||
"Select Date" : "Επιλέξτε ημερομηνία",
|
||||
@@ -299,6 +311,7 @@ OC.L10N.register(
|
||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||
"Deck settings" : "Ρυθμίσεις Deck",
|
||||
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
||||
"Show card ID badge" : "Εμφάνιση ID κάρτας",
|
||||
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||
@@ -371,6 +384,7 @@ OC.L10N.register(
|
||||
"List is empty" : "Η λίστα είναι κενή",
|
||||
"Limit deck usage of groups" : "Περιορίστε τη χρήση της εφαρμογής deck σε ομάδες",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ο περιορισμός του Deck θα εμποδίσει τους χρήστες που δεν είναι μέρος αυτών των ομάδων να δημιουργούν δικούς τους πίνακες. Οι χρήστες θα εξακολουθήσουν να εργάζονται σε πίνακες που έχουν διαμοιραστεί μαζί τους.",
|
||||
"Not completed" : "Μη ολοκληρωμένο"
|
||||
"Not completed" : "Μη ολοκληρωμένο",
|
||||
"Filter by completed" : "Φίλτρο ανά ολοκλήρωση"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
16
l10n/el.json
16
l10n/el.json
@@ -35,6 +35,10 @@
|
||||
"{user} has archived card {card} in list {stack} on board {board}" : "Ο/η {user} αρχειοθέτησε την κάρτα {card} στην λίστα {stack} του πίνακα {board} ",
|
||||
"You have unarchived card {card} in list {stack} on board {board}" : "Επαναφέρατε από το αρχείο την καρτέλα {card} της λίστας {stack} του πίνακα {board}",
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "Ο/η {user} επανέφερε από το αρχείο την κάρτα {card} της λίστας {stack} του πίνακα {board}",
|
||||
"You have marked the card {card} as done in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"You have marked the card {card} as undone in list {stack} on board {board}" : "Έχετε επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} έχει επισημάνει την κάρτα {card} ως μη ολοκληρωμένη στη λίστα {stack} του πίνακα {board}",
|
||||
"You have removed the due date of card {card}" : "Καταργήσατε την ημερομηνία λήξης της καρτέλας {card}",
|
||||
"{user} has removed the due date of card {card}" : "Ο/η {user} κατάργησε την ημερομηνία λήξης της καρτέλας {card}",
|
||||
"You have set the due date of card {card} to {after}" : "Ορίσατε την ημερομηνία λήξης της καρτέλας {card} σε {after}",
|
||||
@@ -82,6 +86,7 @@
|
||||
"Deck board" : "Πίνακας του Deck",
|
||||
"Owned by %1$s" : "Ανήκει στον/στην %1$s",
|
||||
"Deck boards, cards and comments" : "Πίνακες, κάρτες και σχόλια Deck",
|
||||
"Create a new deck card" : "Δημιουργήστε μια νέα κάρτα",
|
||||
"Card comments" : "Σχόλια καρτέλας",
|
||||
"%s on %s" : "%s στο %s",
|
||||
"Deck boards and cards" : "Πίνακες και κάρτες Deck",
|
||||
@@ -141,6 +146,8 @@
|
||||
"Filter by tag" : "Φίλτρο ανά ετικέτα",
|
||||
"Filter by assigned user" : "Φίλτρο ανά χρήστη",
|
||||
"Unassigned" : "Χωρίς ανάθεση",
|
||||
"Filter by status" : "Φίλτρο με βάση την κατάσταση",
|
||||
"Open and completed" : "Ανοιχτά και ολοκληρωμένα",
|
||||
"Open" : "Ανοιχτός",
|
||||
"Completed" : "Ολοκληρωμένες",
|
||||
"Filter by due date" : "Φίλτρο ανά ημερομηνία λήξης",
|
||||
@@ -151,6 +158,7 @@
|
||||
"No due date" : "Χωρίς ημερομηνία λήξης",
|
||||
"Clear filter" : "Εκκαθάριση φίλτρου",
|
||||
"View Modes" : "Τρόποι προβολής",
|
||||
"Toggle View Modes" : "Εναλλαγή τρόπων προβολής",
|
||||
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
|
||||
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
|
||||
"Toggle compact mode" : "Εναλλαγή λειτουργίας μικρού μεγέθους",
|
||||
@@ -169,6 +177,8 @@
|
||||
"Deleted lists" : "Διαγραμμένες λίστες",
|
||||
"Undo" : "Αναίρεση",
|
||||
"Deleted cards" : "Διαγραμμένες καρτέλες",
|
||||
"Share board with a user, group or team …" : "Κοινή χρήση πίνακα με έναν χρήστη, μια ομάδα ή team ...",
|
||||
"Searching for users, groups and teams …" : "Αναζήτηση χρηστών, ομάδων και teams …",
|
||||
"No participants found" : "Δε βρέθηκαν συμμετέχοντες",
|
||||
"Board owner" : "Κάτοχος πίνακα",
|
||||
"(Group)" : "(Ομάδα)",
|
||||
@@ -198,6 +208,7 @@
|
||||
"title and color value must be provided" : "ο τίτλος και η τιμή χρώματος πρέπει να παρέχονται",
|
||||
"Board name" : "Όνομα πίνακα",
|
||||
"Members" : "Μέλη",
|
||||
"Assign to users/groups/team" : "Ανάθεση σε χρήστες/ομάδες/teams",
|
||||
"Assign a user to this card…" : "Ανάθεση χρήστη στην καρτέλα...",
|
||||
"Select a user to assign to this card…" : "Επιλέξτε έναν χρήστη για να του αναθέσετε αυτή την κάρτα...",
|
||||
"Upload new files" : "Ανεβάστε νέα αρχεία",
|
||||
@@ -244,6 +255,7 @@
|
||||
"Remove due date" : "Αφαίρεση ημερομηνίας λήξης",
|
||||
"Mark as done" : "Σήμανση ως ολοκληρωμένου",
|
||||
"Due at:" : "Λήγει στις:",
|
||||
"Not done" : "Μη ολοκληρωμένο",
|
||||
"Unarchive card" : "Αναίρεση αρχειοθέτησης καρτέλας",
|
||||
"Archive card" : "Αρχειοθέτηση καρτέλας",
|
||||
"Select Date" : "Επιλέξτε ημερομηνία",
|
||||
@@ -297,6 +309,7 @@
|
||||
"Shared with you" : "Διαμοιρασμένα μαζί σας",
|
||||
"Deck settings" : "Ρυθμίσεις Deck",
|
||||
"Use bigger card view" : "Χρησιμοποιήστε μεγαλύτερη προβολή καρτέλας",
|
||||
"Show card ID badge" : "Εμφάνιση ID κάρτας",
|
||||
"Show boards in calendar/tasks" : "Εμφάνιση πινάκων στο ημερολόγιο / εργασίες",
|
||||
"Limit board creation to some groups" : "Περιορισμός της δημιουργίας πινάκων σε ορισμένες ομάδες",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Οι χρήστες εκτός αυτών των ομάδων δεν θα μπορούν να δημιουργούν τους δικούς τους πίνακες, αλλά θα μπορούν να εργάζονται σε πίνακες που τους έχουν διαμοιραστεί.",
|
||||
@@ -369,6 +382,7 @@
|
||||
"List is empty" : "Η λίστα είναι κενή",
|
||||
"Limit deck usage of groups" : "Περιορίστε τη χρήση της εφαρμογής deck σε ομάδες",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ο περιορισμός του Deck θα εμποδίσει τους χρήστες που δεν είναι μέρος αυτών των ομάδων να δημιουργούν δικούς τους πίνακες. Οι χρήστες θα εξακολουθήσουν να εργάζονται σε πίνακες που έχουν διαμοιραστεί μαζί τους.",
|
||||
"Not completed" : "Μη ολοκληρωμένο"
|
||||
"Not completed" : "Μη ολοκληρωμένο",
|
||||
"Filter by completed" : "Φίλτρο ανά ολοκλήρωση"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -28,9 +28,11 @@ OC.L10N.register(
|
||||
"Do you want to overwrite it?" : "¿Deseas sobre escribirlo?",
|
||||
"Drop your files to upload" : "Arrastre sus archivos para cargar",
|
||||
"Add card" : "Agregar tarjeta",
|
||||
"Active filters" : "Filtros activos",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Completado",
|
||||
"Clear filter" : "Limpiar filtro",
|
||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||
"Open details" : "Abrir detalles",
|
||||
@@ -85,12 +87,15 @@ OC.L10N.register(
|
||||
"Archive board" : "Archivar tablero",
|
||||
"No notifications" : "No hay notificaciones",
|
||||
"Delete board" : "Borrar tableros",
|
||||
"No reminder" : "Sin recordatorio",
|
||||
"An error occurred" : "Ha ocurrido un error",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share" : "Compartir",
|
||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
|
||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||
"Next week" : "Semana siguiente",
|
||||
"Next month" : "Próximo mes"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -26,9 +26,11 @@
|
||||
"Do you want to overwrite it?" : "¿Deseas sobre escribirlo?",
|
||||
"Drop your files to upload" : "Arrastre sus archivos para cargar",
|
||||
"Add card" : "Agregar tarjeta",
|
||||
"Active filters" : "Filtros activos",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Completado",
|
||||
"Clear filter" : "Limpiar filtro",
|
||||
"Hide archived cards" : "Ocultar tarjetas archivadas",
|
||||
"Show archived cards" : "Mostrar tarjetas archivadas",
|
||||
"Open details" : "Abrir detalles",
|
||||
@@ -83,12 +85,15 @@
|
||||
"Archive board" : "Archivar tablero",
|
||||
"No notifications" : "No hay notificaciones",
|
||||
"Delete board" : "Borrar tableros",
|
||||
"No reminder" : "Sin recordatorio",
|
||||
"An error occurred" : "Ha ocurrido un error",
|
||||
"Today" : "Hoy",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Close" : "Cerrar",
|
||||
"Error creating the share" : "Error creando el recurso compartido",
|
||||
"Share" : "Compartir",
|
||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …"
|
||||
"Searching for users, groups and circles …" : "Buscando usuarios, grupos y círculos …",
|
||||
"Next week" : "Semana siguiente",
|
||||
"Next month" : "Próximo mes"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -110,6 +110,7 @@ OC.L10N.register(
|
||||
"Archived cards" : "Arkistoidut kortit",
|
||||
"Add list" : "Lisää lista",
|
||||
"List name" : "Listan nimi",
|
||||
"Active filters" : "Aktiiviset suodattimet",
|
||||
"Apply filter" : "Toteuta suodatus",
|
||||
"Filter by tag" : "Suodata tunnisteen perusteella",
|
||||
"Filter by assigned user" : "Suodata määritetyn käyttäjän mukaan",
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
"Archived cards" : "Arkistoidut kortit",
|
||||
"Add list" : "Lisää lista",
|
||||
"List name" : "Listan nimi",
|
||||
"Active filters" : "Aktiiviset suodattimet",
|
||||
"Apply filter" : "Toteuta suodatus",
|
||||
"Filter by tag" : "Suodata tunnisteen perusteella",
|
||||
"Filter by assigned user" : "Suodata määritetyn käyttäjän mukaan",
|
||||
|
||||
@@ -150,8 +150,8 @@ OC.L10N.register(
|
||||
"Filter by assigned user" : "Filtrar polo usuario asignado",
|
||||
"Unassigned" : "Sen asignar",
|
||||
"Filter by status" : "Filtrar polo estado",
|
||||
"Open and completed" : "Aberto e rematado",
|
||||
"Open" : "Abrir",
|
||||
"Open and completed" : "Aberto ou rematado",
|
||||
"Open" : "Aberto",
|
||||
"Completed" : "Completado",
|
||||
"Filter by due date" : "Filtrar pola data de caducidade",
|
||||
"Overdue" : "Caducado",
|
||||
|
||||
@@ -148,8 +148,8 @@
|
||||
"Filter by assigned user" : "Filtrar polo usuario asignado",
|
||||
"Unassigned" : "Sen asignar",
|
||||
"Filter by status" : "Filtrar polo estado",
|
||||
"Open and completed" : "Aberto e rematado",
|
||||
"Open" : "Abrir",
|
||||
"Open and completed" : "Aberto ou rematado",
|
||||
"Open" : "Aberto",
|
||||
"Completed" : "Completado",
|
||||
"Filter by due date" : "Filtrar pola data de caducidade",
|
||||
"Overdue" : "Caducado",
|
||||
|
||||
@@ -174,6 +174,7 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Törölt listák",
|
||||
"Undo" : "Visszavonás",
|
||||
"Deleted cards" : "Törölt kártyák",
|
||||
"Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…",
|
||||
"No participants found" : "Nem találhatók résztvevők",
|
||||
"Board owner" : "Tábla tulajdonosa",
|
||||
"(Group)" : "(Csoport)",
|
||||
|
||||
@@ -172,6 +172,7 @@
|
||||
"Deleted lists" : "Törölt listák",
|
||||
"Undo" : "Visszavonás",
|
||||
"Deleted cards" : "Törölt kártyák",
|
||||
"Searching for users, groups and teams …" : "Felhasználók, csoportok és csapatok keresése…",
|
||||
"No participants found" : "Nem találhatók résztvevők",
|
||||
"Board owner" : "Tábla tulajdonosa",
|
||||
"(Group)" : "(Csoport)",
|
||||
|
||||
@@ -186,7 +186,7 @@ OC.L10N.register(
|
||||
"Board owner" : "보드 소유자",
|
||||
"(Group)" : "(그룹)",
|
||||
"(Team)" : "(팀)",
|
||||
"Can edit" : "수정할 수 있음",
|
||||
"Can edit" : "편집 허용",
|
||||
"Can share" : "공유할 수 있음",
|
||||
"Can manage" : "관리 가능",
|
||||
"Owner" : "소유자",
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
"Board owner" : "보드 소유자",
|
||||
"(Group)" : "(그룹)",
|
||||
"(Team)" : "(팀)",
|
||||
"Can edit" : "수정할 수 있음",
|
||||
"Can edit" : "편집 허용",
|
||||
"Can share" : "공유할 수 있음",
|
||||
"Can manage" : "관리 가능",
|
||||
"Owner" : "소유자",
|
||||
|
||||
@@ -150,7 +150,7 @@ OC.L10N.register(
|
||||
"Filter by assigned user" : "Отбор по назначению:",
|
||||
"Unassigned" : "Без назначения",
|
||||
"Filter by status" : "Отбор по состоянию:",
|
||||
"Open and completed" : "Открытые и завершённые",
|
||||
"Open and completed" : "Открытые или завершённые",
|
||||
"Open" : "Открытые",
|
||||
"Completed" : "Завершённые",
|
||||
"Filter by due date" : "Отбор по сроку исполнения:",
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
"Filter by assigned user" : "Отбор по назначению:",
|
||||
"Unassigned" : "Без назначения",
|
||||
"Filter by status" : "Отбор по состоянию:",
|
||||
"Open and completed" : "Открытые и завершённые",
|
||||
"Open and completed" : "Открытые или завершённые",
|
||||
"Open" : "Открытые",
|
||||
"Completed" : "Завершённые",
|
||||
"Filter by due date" : "Отбор по сроку исполнения:",
|
||||
|
||||
@@ -4,6 +4,14 @@ OC.L10N.register(
|
||||
"Finished" : "Završeno",
|
||||
"copy" : "kopiraj",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fajl je otpremljen",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fajl za otpremljivanje premašuje upload_max_filesize direktivu u php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fajl za otpremanje premašuje MAX_FILE_SIZE navedenu u HTML obrascu",
|
||||
"The file was only partially uploaded" : "Fajl je parcijalno otpremljen",
|
||||
"No file was uploaded" : "Nijedan fajl nije otpremljen",
|
||||
"Missing a temporary folder" : "Nedostaje privremena fascikla",
|
||||
"Could not write file to disk" : "Ne mogu da upišem fajl na disk",
|
||||
"A PHP extension stopped the file upload" : "PHP ekstenzija je zaustavila otpremanje fajla",
|
||||
"Add board" : "Dodaj tablu",
|
||||
"Move card" : "Premesti karticu",
|
||||
"Cancel" : "Otkaži",
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
"Finished" : "Završeno",
|
||||
"copy" : "kopiraj",
|
||||
"Done" : "Done",
|
||||
"The file was uploaded" : "Fajl je otpremljen",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fajl za otpremljivanje premašuje upload_max_filesize direktivu u php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fajl za otpremanje premašuje MAX_FILE_SIZE navedenu u HTML obrascu",
|
||||
"The file was only partially uploaded" : "Fajl je parcijalno otpremljen",
|
||||
"No file was uploaded" : "Nijedan fajl nije otpremljen",
|
||||
"Missing a temporary folder" : "Nedostaje privremena fascikla",
|
||||
"Could not write file to disk" : "Ne mogu da upišem fajl na disk",
|
||||
"A PHP extension stopped the file upload" : "PHP ekstenzija je zaustavila otpremanje fajla",
|
||||
"Add board" : "Dodaj tablu",
|
||||
"Move card" : "Premesti karticu",
|
||||
"Cancel" : "Otkaži",
|
||||
|
||||
15
l10n/vi.js
15
l10n/vi.js
@@ -149,6 +149,8 @@ OC.L10N.register(
|
||||
"Filter by tag" : "Lọc theo nhãn",
|
||||
"Filter by assigned user" : "Lọc theo người dùng được phân công",
|
||||
"Unassigned" : "Chưa được phân công",
|
||||
"Filter by status" : "Lọc theo trạng thái",
|
||||
"Open and completed" : "Đã mở và hoàn thành",
|
||||
"Open" : "Mở",
|
||||
"Completed" : "Hoàn thành",
|
||||
"Filter by due date" : "Lọc theo thời hạn",
|
||||
@@ -161,7 +163,7 @@ OC.L10N.register(
|
||||
"View Modes" : "Chế độ xem",
|
||||
"Toggle View Modes" : "Chế độ xem chuyển đổi",
|
||||
"Hide archived cards" : "Ẩn tác vụ đã lưu trữ",
|
||||
"Show archived cards" : "Hiện tác vụ đã lưu trữ",
|
||||
"Show archived cards" : "Hiển thị các thẻ đã lưu trữ",
|
||||
"Toggle compact mode" : "Chuyển đổi chế độ thu gọn",
|
||||
"Hide card cover images" : "Ẩn hình ảnh bìa thẻ",
|
||||
"Show card cover images" : "Hiển thị hình ảnh bìa thẻ",
|
||||
@@ -178,9 +180,12 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Danh sách đã bị xóa",
|
||||
"Undo" : "Hoàn tác",
|
||||
"Deleted cards" : "Thẻ đã xóa",
|
||||
"Share board with a user, group or team …" : "Chia sẻ bảng với người dùng, nhóm hoặc đội ...",
|
||||
"Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...",
|
||||
"No participants found" : "Không tìm thấy người tham gia",
|
||||
"Board owner" : "Chủ sở hữu bảng",
|
||||
"(Group)" : "(Nhóm)",
|
||||
"(Team)" : "(Đội)",
|
||||
"Can edit" : "Có thể chỉnh sửa",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Có thể quản lý",
|
||||
@@ -206,7 +211,9 @@ OC.L10N.register(
|
||||
"title and color value must be provided" : "tiều đề và giá trị màu phải được cung cấp",
|
||||
"Board name" : "Tên bảng",
|
||||
"Members" : "Thành viên",
|
||||
"Assign to users/groups/team" : "Gán cho người dùng/nhóm/đội",
|
||||
"Assign a user to this card…" : "Gán một người dùng cho thẻ này...",
|
||||
"Select a user to assign to this card…" : "Chọn một người dùng để gán cho thẻ này…",
|
||||
"Upload new files" : "Tải lên các tệp mới",
|
||||
"Share from Files" : "Chia sẻ từ Thư mục",
|
||||
"Pending share" : "Chia sẻ đang chờ xử lý",
|
||||
@@ -251,6 +258,7 @@ OC.L10N.register(
|
||||
"Remove due date" : "Xóa thời hạn",
|
||||
"Mark as done" : "Đánh dấu là đã hoàn thành",
|
||||
"Due at:" : "Đến lúc:",
|
||||
"Not done" : "Chưa hoàn thành",
|
||||
"Unarchive card" : "Thẻ chưa lưu trữ",
|
||||
"Archive card" : "Lưu trữ thẻ",
|
||||
"Select Date" : "Chọn ngày",
|
||||
@@ -259,6 +267,7 @@ OC.L10N.register(
|
||||
"Set due date for this weekend" : "Đặt ngày hết hạn cho cuối tuần này",
|
||||
"Set due date for next week" : "Đặt ngày hết hạn cho tuần sau",
|
||||
"Assign a tag to this card…" : "Gán một \"thẻ phân biệt\" cho thẻ này ...",
|
||||
"Select or create a tag…" : "Chọn hoặc tạo một thẻ…",
|
||||
"Create a new tag:" : "Tạo một thẻ phân biệt mới:",
|
||||
"(group)" : "(nhóm)",
|
||||
"Next week – {timeLocale}" : "Tuần sau - {timeLocale}",
|
||||
@@ -273,6 +282,7 @@ OC.L10N.register(
|
||||
"Card deleted" : "Thẻ đã bị xóa",
|
||||
"seconds ago" : "vài giây trước",
|
||||
"Keyboard shortcuts" : "Phím tắt",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Tăng cường năng suất của bạn khi sử dụng Deck với các phím tắt.",
|
||||
"Board actions" : "Hành động cho Bảng",
|
||||
"Keyboard shortcut" : "Phím tắt bàn phím",
|
||||
"Action" : "Hành động",
|
||||
@@ -375,6 +385,7 @@ OC.L10N.register(
|
||||
"List is empty" : "Danh sách trống",
|
||||
"Limit deck usage of groups" : "Giới hạn việc sử dụng Kế Hoạch của các nhóm",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Giới hạn của Kế Hoạch sẽ chặn người dùng không thuộc nhóm đó khỏi việc tạo bảng của riêng họ. Người dùng vẫn có thể làm việc trên các bảng đã được chia sẻ với họ.",
|
||||
"Not completed" : "Chưa hoàn thành"
|
||||
"Not completed" : "Chưa hoàn thành",
|
||||
"Filter by completed" : "Lọc theo đã việc đã hoàn thành"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
15
l10n/vi.json
15
l10n/vi.json
@@ -147,6 +147,8 @@
|
||||
"Filter by tag" : "Lọc theo nhãn",
|
||||
"Filter by assigned user" : "Lọc theo người dùng được phân công",
|
||||
"Unassigned" : "Chưa được phân công",
|
||||
"Filter by status" : "Lọc theo trạng thái",
|
||||
"Open and completed" : "Đã mở và hoàn thành",
|
||||
"Open" : "Mở",
|
||||
"Completed" : "Hoàn thành",
|
||||
"Filter by due date" : "Lọc theo thời hạn",
|
||||
@@ -159,7 +161,7 @@
|
||||
"View Modes" : "Chế độ xem",
|
||||
"Toggle View Modes" : "Chế độ xem chuyển đổi",
|
||||
"Hide archived cards" : "Ẩn tác vụ đã lưu trữ",
|
||||
"Show archived cards" : "Hiện tác vụ đã lưu trữ",
|
||||
"Show archived cards" : "Hiển thị các thẻ đã lưu trữ",
|
||||
"Toggle compact mode" : "Chuyển đổi chế độ thu gọn",
|
||||
"Hide card cover images" : "Ẩn hình ảnh bìa thẻ",
|
||||
"Show card cover images" : "Hiển thị hình ảnh bìa thẻ",
|
||||
@@ -176,9 +178,12 @@
|
||||
"Deleted lists" : "Danh sách đã bị xóa",
|
||||
"Undo" : "Hoàn tác",
|
||||
"Deleted cards" : "Thẻ đã xóa",
|
||||
"Share board with a user, group or team …" : "Chia sẻ bảng với người dùng, nhóm hoặc đội ...",
|
||||
"Searching for users, groups and teams …" : "Đang tìm kiếm người dùng, nhóm và đội ...",
|
||||
"No participants found" : "Không tìm thấy người tham gia",
|
||||
"Board owner" : "Chủ sở hữu bảng",
|
||||
"(Group)" : "(Nhóm)",
|
||||
"(Team)" : "(Đội)",
|
||||
"Can edit" : "Có thể chỉnh sửa",
|
||||
"Can share" : "Can share",
|
||||
"Can manage" : "Có thể quản lý",
|
||||
@@ -204,7 +209,9 @@
|
||||
"title and color value must be provided" : "tiều đề và giá trị màu phải được cung cấp",
|
||||
"Board name" : "Tên bảng",
|
||||
"Members" : "Thành viên",
|
||||
"Assign to users/groups/team" : "Gán cho người dùng/nhóm/đội",
|
||||
"Assign a user to this card…" : "Gán một người dùng cho thẻ này...",
|
||||
"Select a user to assign to this card…" : "Chọn một người dùng để gán cho thẻ này…",
|
||||
"Upload new files" : "Tải lên các tệp mới",
|
||||
"Share from Files" : "Chia sẻ từ Thư mục",
|
||||
"Pending share" : "Chia sẻ đang chờ xử lý",
|
||||
@@ -249,6 +256,7 @@
|
||||
"Remove due date" : "Xóa thời hạn",
|
||||
"Mark as done" : "Đánh dấu là đã hoàn thành",
|
||||
"Due at:" : "Đến lúc:",
|
||||
"Not done" : "Chưa hoàn thành",
|
||||
"Unarchive card" : "Thẻ chưa lưu trữ",
|
||||
"Archive card" : "Lưu trữ thẻ",
|
||||
"Select Date" : "Chọn ngày",
|
||||
@@ -257,6 +265,7 @@
|
||||
"Set due date for this weekend" : "Đặt ngày hết hạn cho cuối tuần này",
|
||||
"Set due date for next week" : "Đặt ngày hết hạn cho tuần sau",
|
||||
"Assign a tag to this card…" : "Gán một \"thẻ phân biệt\" cho thẻ này ...",
|
||||
"Select or create a tag…" : "Chọn hoặc tạo một thẻ…",
|
||||
"Create a new tag:" : "Tạo một thẻ phân biệt mới:",
|
||||
"(group)" : "(nhóm)",
|
||||
"Next week – {timeLocale}" : "Tuần sau - {timeLocale}",
|
||||
@@ -271,6 +280,7 @@
|
||||
"Card deleted" : "Thẻ đã bị xóa",
|
||||
"seconds ago" : "vài giây trước",
|
||||
"Keyboard shortcuts" : "Phím tắt",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Tăng cường năng suất của bạn khi sử dụng Deck với các phím tắt.",
|
||||
"Board actions" : "Hành động cho Bảng",
|
||||
"Keyboard shortcut" : "Phím tắt bàn phím",
|
||||
"Action" : "Hành động",
|
||||
@@ -373,6 +383,7 @@
|
||||
"List is empty" : "Danh sách trống",
|
||||
"Limit deck usage of groups" : "Giới hạn việc sử dụng Kế Hoạch của các nhóm",
|
||||
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Giới hạn của Kế Hoạch sẽ chặn người dùng không thuộc nhóm đó khỏi việc tạo bảng của riêng họ. Người dùng vẫn có thể làm việc trên các bảng đã được chia sẻ với họ.",
|
||||
"Not completed" : "Chưa hoàn thành"
|
||||
"Not completed" : "Chưa hoàn thành",
|
||||
"Filter by completed" : "Lọc theo đã việc đã hoàn thành"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -12,6 +12,7 @@ use OCA\Deck\Db\CardMapper;
|
||||
use OCA\Deck\Db\StackMapper;
|
||||
use OCA\Deck\Model\CardDetails;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\CommentService;
|
||||
use OCP\App\IAppManager;
|
||||
use OCP\DB\Exception;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
@@ -27,6 +28,7 @@ class UserExport extends Command {
|
||||
private StackMapper $stackMapper,
|
||||
private CardMapper $cardMapper,
|
||||
private AssignmentMapper $assignedUsersMapper,
|
||||
private CommentService $commentService,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
@@ -56,6 +58,9 @@ class UserExport extends Command {
|
||||
|
||||
$data = [];
|
||||
foreach ($boards as $board) {
|
||||
if ($board->getDeletedAt() > 0) {
|
||||
continue;
|
||||
}
|
||||
$fullBoard = $this->boardMapper->find($board->getId(), true, true);
|
||||
$data[$board->getId()] = $fullBoard->jsonSerialize();
|
||||
$stacks = $this->stackMapper->findAll($board->getId());
|
||||
@@ -68,7 +73,13 @@ class UserExport extends Command {
|
||||
$fullCard->setAssignedUsers($assignedUsers);
|
||||
|
||||
$cardDetails = new CardDetails($fullCard, $fullBoard);
|
||||
$data[$board->getId()]['stacks'][$stack->getId()]['cards'][] = $cardDetails->jsonSerialize();
|
||||
$comments = $this->commentService->list($card->getId());
|
||||
|
||||
$cardDetails->setCommentsCount(count($comments->getData()));
|
||||
|
||||
$cardJson = $cardDetails->jsonSerialize();
|
||||
$cardJson['comments'] = $comments->getData();
|
||||
$data[$board->getId()]['stacks'][$stack->getId()]['cards'][] = $cardJson;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class CommentEventListener implements IEventListener {
|
||||
private function activityHandler(CommentsEvent $event): void {
|
||||
$comment = $event->getComment();
|
||||
$card = $this->cardMapper->find($comment->getObjectId());
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_COMMENT_CREATE, ['comment' => $comment]);
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_COMMENT_CREATE, ['comment' => $comment], $comment->getActorId());
|
||||
}
|
||||
|
||||
private function notificationHandler(CommentsEvent $event): void {
|
||||
|
||||
@@ -562,6 +562,11 @@ class BoardService {
|
||||
foreach ($stacks as $stack) {
|
||||
$newStack = new Stack();
|
||||
$newStack->setTitle($stack->getTitle());
|
||||
if ($stack->getOrder() == null) {
|
||||
$newStack->setOrder(999);
|
||||
} else {
|
||||
$newStack->setOrder($stack->getOrder());
|
||||
}
|
||||
$newStack->setBoardId($newBoard->getId());
|
||||
$this->stackMapper->insert($newStack);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
namespace OCA\Deck\Service\Importer\Systems;
|
||||
|
||||
use OC\Comments\Comment;
|
||||
use OCA\Deck\BadRequestException;
|
||||
use OCA\Deck\Db\Acl;
|
||||
use OCA\Deck\Db\Assignment;
|
||||
@@ -103,8 +104,20 @@ class DeckJsonService extends ABoardImportService {
|
||||
}
|
||||
|
||||
public function getComments(): array {
|
||||
// Comments are not implemented in export
|
||||
return [];
|
||||
$comments = [];
|
||||
foreach ($this->tmpCards as $sourceCard) {
|
||||
if (!property_exists($sourceCard, "comments")) {
|
||||
continue;
|
||||
}
|
||||
$commentsOriginal = $sourceCard->comments;
|
||||
foreach ($commentsOriginal as $commentOriginal) {
|
||||
$comment = new Comment();
|
||||
$comment->setActor($commentOriginal->actorType, $commentOriginal->actorId)
|
||||
->setMessage($commentOriginal->message)->setCreationDateTime(\DateTime::createFromFormat('Y-m-d\TH:i:sP', $commentOriginal->creationDateTime));
|
||||
$comments[$this->cards[$sourceCard->id]->getId()][$commentOriginal->id] = $comment;
|
||||
}
|
||||
}
|
||||
return $comments;
|
||||
}
|
||||
|
||||
public function getCardLabelAssignment(): array {
|
||||
|
||||
182
package-lock.json
generated
182
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"version": "1.14.0-dev",
|
||||
"version": "1.14.0-beta.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "deck",
|
||||
"version": "1.14.0-dev",
|
||||
"version": "1.14.0-beta.1",
|
||||
"license": "agpl",
|
||||
"dependencies": {
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
@@ -16,15 +16,15 @@
|
||||
"@nextcloud/capabilities": "^1.2.0",
|
||||
"@nextcloud/dialogs": "^5.3.5",
|
||||
"@nextcloud/event-bus": "^3.3.1",
|
||||
"@nextcloud/files": "^3.5.1",
|
||||
"@nextcloud/files": "^3.7.0",
|
||||
"@nextcloud/initial-state": "^2.2.0",
|
||||
"@nextcloud/l10n": "^3.1.0",
|
||||
"@nextcloud/moment": "^1.3.1",
|
||||
"@nextcloud/notify_push": "^1.3.0",
|
||||
"@nextcloud/router": "^3.0.1",
|
||||
"@nextcloud/vue": "^8.14.0",
|
||||
"@nextcloud/vue": "^8.15.1",
|
||||
"blueimp-md5": "^2.19.0",
|
||||
"chroma-js": "^2.4.2",
|
||||
"chroma-js": "^2.6.0",
|
||||
"dompurify": "^3.1.6",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^14.1.0",
|
||||
@@ -55,7 +55,7 @@
|
||||
"@relative-ci/agent": "^4.2.9",
|
||||
"@vue/test-utils": "^2.4.6",
|
||||
"@vue/vue2-jest": "^29.2.6",
|
||||
"cypress": "^13.13.0",
|
||||
"cypress": "^13.13.2",
|
||||
"eslint-plugin-cypress": "^3.3.0",
|
||||
"eslint-webpack-plugin": "^4.2.0",
|
||||
"jest": "^29.7.0",
|
||||
@@ -3697,18 +3697,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/files": {
|
||||
"version": "3.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.5.1.tgz",
|
||||
"integrity": "sha512-GkVWUgkBSVt27Carmp/DbnDiqHq03w3VQWt8xszacp/IQSB9G+8/KCvi8zxldac2q7lQ8NpHlB/Bqy8o+OOc0A==",
|
||||
"version": "3.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.7.0.tgz",
|
||||
"integrity": "sha512-u7Hwt7/13empViLvwHPQk1AnKjhDYf7tkXeCLaO6e03am2uqBlYwc3iUS4cZye5CuaEeJeW251jPUGTtRXjjWQ==",
|
||||
"dependencies": {
|
||||
"@nextcloud/auth": "^2.3.0",
|
||||
"@nextcloud/capabilities": "^1.2.0",
|
||||
"@nextcloud/l10n": "^3.1.0",
|
||||
"@nextcloud/logger": "^3.0.2",
|
||||
"@nextcloud/paths": "^2.1.0",
|
||||
"@nextcloud/paths": "^2.2.0",
|
||||
"@nextcloud/router": "^3.0.1",
|
||||
"@nextcloud/sharing": "^0.2.1",
|
||||
"@nextcloud/sharing": "^0.2.2",
|
||||
"cancelable-promise": "^4.3.1",
|
||||
"is-svg": "^5.0.1",
|
||||
"typedoc-plugin-missing-exports": "^3.0.0",
|
||||
"typescript-event-target": "^1.1.1",
|
||||
"webdav": "^5.6.0"
|
||||
},
|
||||
@@ -3820,21 +3822,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/paths": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/paths/-/paths-2.1.0.tgz",
|
||||
"integrity": "sha512-8wX0gqwez0bTuAS8A0OEiqbbp0ZsqLr07zSErmS6OYhh9KZcSt/kO6lQV5tnrFqIqJVsxwz4kHUjtZXh6DSf9Q==",
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/paths/node_modules/core-js": {
|
||||
"version": "3.33.2",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz",
|
||||
"integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==",
|
||||
"hasInstallScript": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/core-js"
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/paths/-/paths-2.2.1.tgz",
|
||||
"integrity": "sha512-M3ShLjrxR7B48eKThLMoqbxTqTKyQXcwf9TgeXQGbCIhiHoXU6as5j8l5qNv/uZlANokVdowpuWHBi3b2+YNNA==",
|
||||
"engines": {
|
||||
"node": "^20.0.0",
|
||||
"npm": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/router": {
|
||||
@@ -3901,9 +3894,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@nextcloud/vue": {
|
||||
"version": "8.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.14.0.tgz",
|
||||
"integrity": "sha512-hB3dG7tZWpItC74PfbTLW02754qYXFDH+h7Ksq6b7e8WlhnKLWrhNGKhSpNDt9/g+vb5bSIOxbiDZIJZ63hAuQ==",
|
||||
"version": "8.15.1",
|
||||
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.15.1.tgz",
|
||||
"integrity": "sha512-gZEcXPNhRGYhjSd/IeTs0jQ5P8tPIv9BJm5A8qsdpB1Mb/Xb9suhJv1xHaeGcOGoUCcs7A66coPkCgv1zcSJ2w==",
|
||||
"dependencies": {
|
||||
"@floating-ui/dom": "^1.1.0",
|
||||
"@linusborg/vue-simple-portal": "^0.1.5",
|
||||
@@ -3916,6 +3909,7 @@
|
||||
"@nextcloud/l10n": "^3.0.1",
|
||||
"@nextcloud/logger": "^3.0.1",
|
||||
"@nextcloud/router": "^3.0.0",
|
||||
"@nextcloud/sharing": "^0.2.2",
|
||||
"@nextcloud/timezones": "^0.1.1",
|
||||
"@nextcloud/vue-select": "^3.25.0",
|
||||
"@vueuse/components": "^10.9.0",
|
||||
@@ -4240,6 +4234,24 @@
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/@shikijs/core": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.0.tgz",
|
||||
"integrity": "sha512-mc1cLbm6UQ8RxLc0dZES7v5rkH+99LxQp/ZvTqV3NLyYsO/fD6JhEflP1H5b2SDq9gI0+0G36AVZWxvounfR9w==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/hast": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@shikijs/core/node_modules/@types/hast": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
|
||||
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/unist": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@sideway/address": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
|
||||
@@ -6886,9 +6898,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/chroma-js": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz",
|
||||
"integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A=="
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.6.0.tgz",
|
||||
"integrity": "sha512-BLHvCB9s8Z1EV4ethr6xnkl/P2YRFOGqfgvuMG/MyCbZPrTA+NeiByY6XvgF0zP4/2deU2CXnWyMa3zu1LqQ3A=="
|
||||
},
|
||||
"node_modules/chrome-trace-event": {
|
||||
"version": "1.0.3",
|
||||
@@ -7717,13 +7729,13 @@
|
||||
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
|
||||
},
|
||||
"node_modules/cypress": {
|
||||
"version": "13.13.0",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz",
|
||||
"integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==",
|
||||
"version": "13.13.2",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.2.tgz",
|
||||
"integrity": "sha512-PvJQU33933NvS1StfzEb8/mu2kMy4dABwCF+yd5Bi7Qly1HOVf+Bufrygee/tlmty/6j5lX+KIi8j9Q3JUMbhA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@cypress/request": "^3.0.0",
|
||||
"@cypress/request": "^3.0.1",
|
||||
"@cypress/xvfb": "^1.2.4",
|
||||
"@types/sinonjs__fake-timers": "8.1.1",
|
||||
"@types/sizzle": "^2.3.2",
|
||||
@@ -10006,9 +10018,9 @@
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/fast-xml-parser": {
|
||||
"version": "4.3.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz",
|
||||
"integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==",
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
|
||||
"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@@ -14377,6 +14389,12 @@
|
||||
"yallist": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/lunr": {
|
||||
"version": "2.3.9",
|
||||
"resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
|
||||
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/make-dir": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
|
||||
@@ -18098,6 +18116,25 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/shiki": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.0.tgz",
|
||||
"integrity": "sha512-BuAxWOm5JhRcbSOl7XCei8wGjgJJonnV0oipUupPY58iULxUGyHhW5CF+9FRMuM1pcJ5cGEJGll1LusX6FwpPA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@shikijs/core": "1.12.0",
|
||||
"@types/hast": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/shiki/node_modules/@types/hast": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
|
||||
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/unist": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
|
||||
@@ -19659,11 +19696,64 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/typedoc": {
|
||||
"version": "0.26.5",
|
||||
"resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz",
|
||||
"integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"lunr": "^2.3.9",
|
||||
"markdown-it": "^14.1.0",
|
||||
"minimatch": "^9.0.5",
|
||||
"shiki": "^1.9.1",
|
||||
"yaml": "^2.4.5"
|
||||
},
|
||||
"bin": {
|
||||
"typedoc": "bin/typedoc"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x"
|
||||
}
|
||||
},
|
||||
"node_modules/typedoc-plugin-missing-exports": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-3.0.0.tgz",
|
||||
"integrity": "sha512-R7D8fYrK34mBFZSlF1EqJxfqiUSlQSmyrCiQgTQD52nNm6+kUtqwiaqaNkuJ2rA2wBgWFecUA8JzHT7x2r7ePg==",
|
||||
"peerDependencies": {
|
||||
"typedoc": "0.26.x"
|
||||
}
|
||||
},
|
||||
"node_modules/typedoc/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/typedoc/node_modules/minimatch": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
||||
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.2.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
|
||||
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
@@ -21107,6 +21197,18 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
|
||||
"integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"yaml": "bin.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs": {
|
||||
"version": "17.7.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
||||
|
||||
10
package.json
10
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"description": "",
|
||||
"version": "1.14.0-dev",
|
||||
"version": "1.14.0-beta.1",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julius Härtl",
|
||||
@@ -37,15 +37,15 @@
|
||||
"@nextcloud/capabilities": "^1.2.0",
|
||||
"@nextcloud/dialogs": "^5.3.5",
|
||||
"@nextcloud/event-bus": "^3.3.1",
|
||||
"@nextcloud/files": "^3.5.1",
|
||||
"@nextcloud/files": "^3.7.0",
|
||||
"@nextcloud/initial-state": "^2.2.0",
|
||||
"@nextcloud/l10n": "^3.1.0",
|
||||
"@nextcloud/moment": "^1.3.1",
|
||||
"@nextcloud/notify_push": "^1.3.0",
|
||||
"@nextcloud/router": "^3.0.1",
|
||||
"@nextcloud/vue": "^8.14.0",
|
||||
"@nextcloud/vue": "^8.15.1",
|
||||
"blueimp-md5": "^2.19.0",
|
||||
"chroma-js": "^2.4.2",
|
||||
"chroma-js": "^2.6.0",
|
||||
"dompurify": "^3.1.6",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^14.1.0",
|
||||
@@ -83,7 +83,7 @@
|
||||
"@relative-ci/agent": "^4.2.9",
|
||||
"@vue/test-utils": "^2.4.6",
|
||||
"@vue/vue2-jest": "^29.2.6",
|
||||
"cypress": "^13.13.0",
|
||||
"cypress": "^13.13.2",
|
||||
"eslint-plugin-cypress": "^3.3.0",
|
||||
"eslint-webpack-plugin": "^4.2.0",
|
||||
"jest": "^29.7.0",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
:placeholder="t('deck', 'Card name')"
|
||||
required
|
||||
pattern=".*\S+.*"
|
||||
@focus="onCreateCardFocus"
|
||||
@keydown.esc="stopCardCreation">
|
||||
<input v-show="!stateCardCreating"
|
||||
class="icon-confirm"
|
||||
@@ -211,6 +212,13 @@ export default {
|
||||
},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
showAddCard(newValue) {
|
||||
if (!newValue) {
|
||||
this.$store.dispatch('toggleShortcutLock', false)
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
stopCardCreation(e) {
|
||||
@@ -300,6 +308,9 @@ export default {
|
||||
this.stateCardCreating = false
|
||||
}
|
||||
},
|
||||
onCreateCardFocus() {
|
||||
this.$store.dispatch('toggleShortcutLock', true)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -109,6 +109,7 @@ export default {
|
||||
showArchived: state => state.showArchived,
|
||||
currentBoard: state => state.currentBoard,
|
||||
showCardCover: state => state.showCardCover,
|
||||
shortcutLock: state => state.shortcutLock,
|
||||
}),
|
||||
...mapGetters([
|
||||
'isArchived',
|
||||
@@ -184,6 +185,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
focus(card) {
|
||||
if (this.shortcutLock) {
|
||||
return
|
||||
}
|
||||
card = this.$refs[`card${card}`]
|
||||
card.focus()
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~9",
|
||||
"behat/behat": "~3.14.0",
|
||||
"guzzlehttp/guzzle": "7.8.1",
|
||||
"guzzlehttp/guzzle": "7.9.2",
|
||||
"jarnaiz/behat-junit-formatter": "^1.3",
|
||||
"sabre/dav": "4.6.0",
|
||||
"symfony/event-dispatcher": "~5.4"
|
||||
|
||||
@@ -16,7 +16,13 @@ class ServerContext implements Context {
|
||||
|
||||
public function __construct($baseUrl) {
|
||||
$this->rawBaseUrl = $baseUrl;
|
||||
$this->__tConstruct($baseUrl . '/index.php/ocs/', ['admin', 'admin'], '123456');
|
||||
|
||||
$testServerUrl = getenv('BEHAT_SERVER_URL');
|
||||
if ($testServerUrl !== false) {
|
||||
$this->rawBaseUrl = rtrim($testServerUrl, '/');
|
||||
}
|
||||
|
||||
$this->__tConstruct($this->rawBaseUrl . '/ocs/', ['admin', 'admin'], '123456');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ use OCA\Deck\Command\BoardImport;
|
||||
use OCA\Deck\Command\UserExport;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\CardService;
|
||||
use OCA\Deck\Service\CommentService;
|
||||
use OCA\Deck\Service\Importer\BoardImportService;
|
||||
use OCA\Deck\Service\Importer\Systems\DeckJsonService;
|
||||
use OCA\Deck\Service\PermissionService;
|
||||
@@ -194,6 +195,7 @@ class ImportExportTest extends \Test\TestCase {
|
||||
self::getFreshService(StackMapper::class),
|
||||
self::getFreshService(CardMapper::class),
|
||||
self::getFreshService(AssignmentMapper::class),
|
||||
self::getFreshService(CommentService::class)
|
||||
);
|
||||
$exporter->setApplication($application);
|
||||
$exporter->run($input, $output);
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
namespace OCA\Deck\Command;
|
||||
|
||||
use OC\Comments\Comment;
|
||||
use OCA\Deck\Db\AssignmentMapper;
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
@@ -31,7 +32,9 @@ use OCA\Deck\Db\CardMapper;
|
||||
use OCA\Deck\Db\Stack;
|
||||
use OCA\Deck\Db\StackMapper;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\CommentService;
|
||||
use OCP\App\IAppManager;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IUserManager;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
@@ -46,6 +49,7 @@ class UserExportTest extends \Test\TestCase {
|
||||
protected $assignedUserMapper;
|
||||
protected $userManager;
|
||||
protected $groupManager;
|
||||
protected $commentService;
|
||||
|
||||
private UserExport $userExport;
|
||||
|
||||
@@ -59,7 +63,8 @@ class UserExportTest extends \Test\TestCase {
|
||||
$this->assignedUserMapper = $this->createMock(AssignmentMapper::class);
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->groupManager = $this->createMock(IGroupManager::class);
|
||||
$this->userExport = new UserExport($this->appManager, $this->boardMapper, $this->boardService, $this->stackMapper, $this->cardMapper, $this->assignedUserMapper, $this->userManager, $this->groupManager);
|
||||
$this->commentService = $this->createMock(CommentService::class);
|
||||
$this->userExport = new UserExport($this->appManager, $this->boardMapper, $this->boardService, $this->stackMapper, $this->cardMapper, $this->assignedUserMapper, $this->commentService);
|
||||
}
|
||||
|
||||
public function getBoard($id) {
|
||||
@@ -80,6 +85,13 @@ class UserExportTest extends \Test\TestCase {
|
||||
$card->setTitle('Card ' . $id);
|
||||
return $card;
|
||||
}
|
||||
|
||||
public function getComment($id) {
|
||||
$comment = new Comment();
|
||||
$comment->setActor("users", "admin");
|
||||
$comment->setMessage("fake comment" . $id);
|
||||
return $comment;
|
||||
}
|
||||
public function testExecute() {
|
||||
$input = $this->createMock(InputInterface::class);
|
||||
$input->expects($this->once())->method('getArgument')->with('user-id')->willReturn('admin');
|
||||
@@ -107,6 +119,13 @@ class UserExportTest extends \Test\TestCase {
|
||||
$this->getCard(2),
|
||||
$this->getCard(3),
|
||||
];
|
||||
|
||||
$comments = [
|
||||
$this->getComment(1),
|
||||
$this->getComment(2),
|
||||
$this->getComment(3),
|
||||
];
|
||||
$this->commentService->expects($this->exactly(count($cards) * count($stacks) * count($boards)))->method('list')->willReturn(new DataResponse($comments));
|
||||
$this->cardMapper->expects($this->exactly(count($boards) * count($stacks)))
|
||||
->method('findAllByStack')
|
||||
->willReturn($cards);
|
||||
|
||||
Reference in New Issue
Block a user