Compare commits
106 Commits
v1.10.0-be
...
backport/4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9207f567b1 | ||
|
|
24d4d86aa4 | ||
|
|
c30bf3c936 | ||
|
|
e4e5c9a651 | ||
|
|
9e813f322a | ||
|
|
70144b9061 | ||
|
|
27af65731e | ||
|
|
2778e5940c | ||
|
|
e20f2eac97 | ||
|
|
a91262b153 | ||
|
|
084c3649b2 | ||
|
|
c6584b93f3 | ||
|
|
57ed57ce23 | ||
|
|
77a81d273a | ||
|
|
b2e3d75b75 | ||
|
|
4de693a402 | ||
|
|
08febcb29a | ||
|
|
c1b6cc1149 | ||
|
|
2f43aabb2e | ||
|
|
50293ffbb4 | ||
|
|
a52bc5dc3f | ||
|
|
5acf52370a | ||
|
|
85e46f2513 | ||
|
|
db485aa713 | ||
|
|
e8aaa7c165 | ||
|
|
281d6c2af7 | ||
|
|
c8714ec821 | ||
|
|
84b2036374 | ||
|
|
5c65bf9b00 | ||
|
|
237f832ad1 | ||
|
|
d019d80efa | ||
|
|
42a2ef39db | ||
|
|
ed7c9fbf05 | ||
|
|
4f4627a600 | ||
|
|
7900c73d90 | ||
|
|
0030b8c20c | ||
|
|
fbc7d3135d | ||
|
|
7350ae2ef3 | ||
|
|
9cebe7ac56 | ||
|
|
bfe45c5af4 | ||
|
|
c3c8faffea | ||
|
|
96508580fd | ||
|
|
ee7fcefd73 | ||
|
|
ac31ff6efe | ||
|
|
af6111b51e | ||
|
|
6700c903eb | ||
|
|
10e48aded1 | ||
|
|
e80ba82d77 | ||
|
|
48202e6d98 | ||
|
|
e3ba870577 | ||
|
|
56fae37144 | ||
|
|
af9177584c | ||
|
|
d850c744cd | ||
|
|
cd60f4bf80 | ||
|
|
eddb6fc460 | ||
|
|
6684023424 | ||
|
|
43bec159ff | ||
|
|
27d960340e | ||
|
|
3cda8eab77 | ||
|
|
aac5c1ff72 | ||
|
|
65c0fcfdc9 | ||
|
|
c71d54a26e | ||
|
|
0224da2127 | ||
|
|
3114e1a477 | ||
|
|
375c78271d | ||
|
|
2b903ecf7f | ||
|
|
9e256921ba | ||
|
|
d7e85ac4da | ||
|
|
4495fc3554 | ||
|
|
6996c862ce | ||
|
|
f81d98fb4b | ||
|
|
cd942a1dfb | ||
|
|
ddd15e7451 | ||
|
|
21908ef534 | ||
|
|
426f1a33dd | ||
|
|
713271d525 | ||
|
|
a43efce576 | ||
|
|
07f2fb7c28 | ||
|
|
72563feaf0 | ||
|
|
763a474d11 | ||
|
|
3977d71892 | ||
|
|
25f3da3603 | ||
|
|
2920ca8c86 | ||
|
|
da7e075ee9 | ||
|
|
c7341bed78 | ||
|
|
d9014903ac | ||
|
|
5dad6bb0b0 | ||
|
|
e7529e2d74 | ||
|
|
c0e07dc202 | ||
|
|
2619219618 | ||
|
|
87a0a4ed4f | ||
|
|
df01d8ef79 | ||
|
|
9f38e51d9b | ||
|
|
3f2e343541 | ||
|
|
ea6006bec0 | ||
|
|
1e625d3955 | ||
|
|
4b0a27d6b5 | ||
|
|
9cc38000fd | ||
|
|
3574abe0cb | ||
|
|
fb5aed2143 | ||
|
|
3506ac2a42 | ||
|
|
1f2f8fe001 | ||
|
|
97d9c4cc2c | ||
|
|
b169ecd0fe | ||
|
|
912376a99d | ||
|
|
3ec2ad99b1 |
4
.github/workflows/appbuild.yml
vendored
4
.github/workflows/appbuild.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
- name: Set up npm7
|
||||
run: npm i -g npm@7
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@2.25.1
|
||||
uses: shivammathur/setup-php@2.24.0
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer
|
||||
|
||||
4
.github/workflows/appstore-build-publish.yml
vendored
4
.github/workflows/appstore-build-publish.yml
vendored
@@ -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@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
|
||||
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
|
||||
id: versions
|
||||
# Continue if no package.json
|
||||
continue-on-error: true
|
||||
@@ -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.1 # v2
|
||||
uses: shivammathur/setup-php@2.24.0 # v2
|
||||
with:
|
||||
php-version: ${{ env.PHP_VERSION }}
|
||||
coverage: none
|
||||
|
||||
4
.github/workflows/command-rebase.yml
vendored
4
.github/workflows/command-rebase.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
|
||||
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # v2.1.1
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
|
||||
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # v2.1.1
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
4
.github/workflows/cypress.yml
vendored
4
.github/workflows/cypress.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.0' ]
|
||||
databases: [ 'sqlite' ]
|
||||
server-versions: [ 'master' ]
|
||||
server-versions: [ 'stable26' ]
|
||||
|
||||
steps:
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
path: apps/text
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.25.1
|
||||
uses: shivammathur/setup-php@2.24.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
|
||||
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: ['stable26']
|
||||
|
||||
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.1
|
||||
uses: shivammathur/setup-php@2.24.0
|
||||
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
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
2
.github/workflows/lint-eslint.yml
vendored
2
.github/workflows/lint-eslint.yml
vendored
@@ -41,7 +41,7 @@ jobs:
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
|
||||
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^16'
|
||||
|
||||
2
.github/workflows/lint-php-cs.yml
vendored
2
.github/workflows/lint-php-cs.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@2.25.1 # v2
|
||||
uses: shivammathur/setup-php@2.24.0 # v2
|
||||
with:
|
||||
php-version: 8.1
|
||||
coverage: none
|
||||
|
||||
2
.github/workflows/lint-php.yml
vendored
2
.github/workflows/lint-php.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@2.25.1 # v2
|
||||
uses: shivammathur/setup-php@2.24.0 # v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
coverage: none
|
||||
|
||||
2
.github/workflows/lint-stylelint.yml
vendored
2
.github/workflows/lint-stylelint.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
|
||||
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^16'
|
||||
|
||||
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.1
|
||||
uses: shivammathur/setup-php@2.24.0
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer
|
||||
|
||||
71
.github/workflows/npm-audit-fix.yml
vendored
71
.github/workflows/npm-audit-fix.yml
vendored
@@ -1,71 +0,0 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# 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
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# At 2:30 on Sundays
|
||||
- cron: '30 2 * * 0'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["main", "master", "stable26", "stable25", "stable24"]
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
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@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^16'
|
||||
fallbackNpm: '^7'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
|
||||
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: Fix npm audit
|
||||
run: |
|
||||
npm audit fix
|
||||
|
||||
- name: Run npm ci and npm run build
|
||||
if: always()
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v3
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: "chore(deps): fix npm audit"
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
|
||||
title: "[${{ matrix.branches }}] Fix npm audit"
|
||||
body: |
|
||||
Auto-generated fix of npm audit
|
||||
labels: |
|
||||
dependencies
|
||||
3. to review
|
||||
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']
|
||||
php-versions: ['8.0', '8.1', '8.2']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['master']
|
||||
server-versions: ['stable26']
|
||||
|
||||
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.1
|
||||
uses: shivammathur/setup-php@2.24.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
tools: phpunit
|
||||
|
||||
2
.github/workflows/psalm.yml
vendored
2
.github/workflows/psalm.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@2.25.1 # v2
|
||||
uses: shivammathur/setup-php@2.24.0 # v2
|
||||
with:
|
||||
php-version: 8.1
|
||||
coverage: none
|
||||
|
||||
6
.github/workflows/update-nextcloud-ocp.yml
vendored
6
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["master", "stable26", "stable25", "stable24"]
|
||||
branches: ["master", "stable25", "stable24"]
|
||||
|
||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php8.1
|
||||
uses: shivammathur/setup-php@2.25.1 # v2
|
||||
uses: shivammathur/setup-php@2.24.0 # v2
|
||||
with:
|
||||
php-version: 8.1
|
||||
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v3
|
||||
uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04 # v3
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
|
||||
|
||||
66
CHANGELOG.md
66
CHANGELOG.md
@@ -1,48 +1,52 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.10.0-beta.1
|
||||
|
||||
### Added
|
||||
|
||||
- Compatibility with Nextcloud 27
|
||||
## 1.9.2
|
||||
|
||||
### Fixed
|
||||
|
||||
- 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)
|
||||
- Gracefully handle not found card for a share @mejo- [#4566](https://github.com/nextcloud/deck/pull/4566)
|
||||
- Prevent tag itself being edit button if user lacks permissions @joshtrichards [#4574](https://github.com/nextcloud/deck/pull/4574)
|
||||
- chore: Remove unused @nextcloud/vue-dashboard @juliushaertl [#4586](https://github.com/nextcloud/deck/pull/4586)
|
||||
- Update Description.vue: Fixes the issue of hidden text by menu bar @pschopen [#4617](https://github.com/nextcloud/deck/pull/4617)
|
||||
- allow user to toggle visibility of the calendar for a deck board @schiessle [#4622](https://github.com/nextcloud/deck/pull/4622)
|
||||
- fix: Append datetime picker to body to avoid cut off @juliushaertl [#4643](https://github.com/nextcloud/deck/pull/4643)
|
||||
- fix: Bring back overdue column by removing faulty condition @juliushaertl [#4660](https://github.com/nextcloud/deck/pull/4660)
|
||||
- fix(sessions): Do not send close request without token @juliushaertl [#4510](https://github.com/nextcloud/deck/pull/4510)
|
||||
- tests(integration): Add test for multiple board shares to the same user @juliushaertl [#4494](https://github.com/nextcloud/deck/pull/4494)
|
||||
- fix(API): Fix board API details parameter to work as expected @nickvergessen [#4518](https://github.com/nextcloud/deck/pull/4518)
|
||||
- Fix : Overlapping expiry dates on tags @Jerome-Herbinet [#4535](https://github.com/nextcloud/deck/pull/4535)
|
||||
- Fix consistency of a "Create card" wording with its equivalent for Notes ("New card") @Jerome-Herbinet [#4534](https://github.com/nextcloud/deck/pull/4534)
|
||||
- tests(integration): Add integration tests for due dates @juliushaertl [#4489](https://github.com/nextcloud/deck/pull/4489)
|
||||
- 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)
|
||||
- fix: Properly overwrite z-index of datepicker above modal [#4665](https://github.com/nextcloud/deck/pull/4665)
|
||||
|
||||
|
||||
## 1.9.0-beta.1
|
||||
## 1.9.1
|
||||
|
||||
### Fixed
|
||||
|
||||
- Gracefully handle not found card for a share [#4567](https://github.com/nextcloud/deck/pull/4567)
|
||||
- fix: Adapt NcEmptyContent usages to new slots [#4562](https://github.com/nextcloud/deck/pull/4562)
|
||||
- allow user to toggle visibility of the calendar for a deck board [#4625](https://github.com/nextcloud/deck/pull/4625)
|
||||
- fix: Append datetime picker to body to avoid cut off [#4644](https://github.com/nextcloud/deck/pull/4644)
|
||||
- chore: Remove unused @nextcloud/vue-dashboard @juliushaertl [#4650](https://github.com/nextcloud/deck/pull/4650)
|
||||
- fix: Bring back overdue column by removing faulty condition [#4662](https://github.com/nextcloud/deck/pull/4662)
|
||||
- Fix : Overlapping expiry dates on tags [#4537](https://github.com/nextcloud/deck/pull/4537)
|
||||
- Better display of card dates (creation and change dates) [#4619](https://github.com/nextcloud/deck/pull/4619)
|
||||
- Update dependencies
|
||||
|
||||
## 1.9.0
|
||||
|
||||
### Added
|
||||
|
||||
- Export Board @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
|
||||
- basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
|
||||
- feat(Description): Use text as editor if available @juliushaertl [#4399](https://github.com/nextcloud/deck/pull/4399)
|
||||
- Live updates on board collaboration using notify_push @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
|
||||
- Basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
|
||||
- Use text as editor if available [#4399](https://github.com/nextcloud/deck/pull/4399)
|
||||
- Improve reference provider and add reference widgets @julien-nc [#4422](https://github.com/nextcloud/deck/pull/4422)
|
||||
- live updates 🎉 @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
|
||||
- Tag creation from card view @juliushaertl [#4344](https://github.com/nextcloud/deck/pull/4344)
|
||||
- Optimize query performance with larger board or card count @[#4452](https://github.com/nextcloud/deck/pull/4452)
|
||||
- Export Board as CSV @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- fix(cards): Fix card sizing by limiting too wide style rules [#4521](https://github.com/nextcloud/deck/pull/4521)
|
||||
- fix(references): Mute NoPermissionException as it is expected to happen for references [#4516](https://github.com/nextcloud/deck/pull/4516)
|
||||
- fix(API): Fix board API details parameter to work as expected [#4519](https://github.com/nextcloud/deck/pull/4519)
|
||||
- fix(sessions): Do not send close request without token [#4525](https://github.com/nextcloud/deck/pull/4525)
|
||||
- fix: Avoid mutating the due date when calculating days @juliushaertl [#4488](https://github.com/nextcloud/deck/pull/4488)
|
||||
- fix: Pass user id along to properly check permissions in background jobs @juliushaertl [#4485](https://github.com/nextcloud/deck/pull/4485)
|
||||
- fix: Use passed userid when getting attachment folder @juliushaertl [#4487](https://github.com/nextcloud/deck/pull/4487)
|
||||
- fix: Use proper z-index for text menubar @juliushaertl [#4490](https://github.com/nextcloud/deck/pull/4490)
|
||||
- fix(dashboard): Fix undefined array index @marcelklehr [#4492](https://github.com/nextcloud/deck/pull/4492)
|
||||
- fix: Always return sorted index array to make sure a json array is the result @juliushaertl [#4493](https://github.com/nextcloud/deck/pull/4493)
|
||||
- Fix component renaming so that acl works on shares again @small1 [#4315](https://github.com/nextcloud/deck/pull/4315)
|
||||
- fix(Sidebar): Only close sidebar on v-click-outside for specific targets @juliushaertl [#4350](https://github.com/nextcloud/deck/pull/4350)
|
||||
- add basic e2e tests for stack title @shoetten [#4206](https://github.com/nextcloud/deck/pull/4206)
|
||||
@@ -52,10 +56,6 @@ All notable changes to this project will be documented in this file.
|
||||
- perf: Register notifier and resource listener lazy @juliushaertl [#4439](https://github.com/nextcloud/deck/pull/4439)
|
||||
- perf: Lazy load dashboard components @juliushaertl [#4440](https://github.com/nextcloud/deck/pull/4440)
|
||||
- Optimise upcomming overview creation @Raudius [#3793](https://github.com/nextcloud/deck/pull/3793)
|
||||
- Performance boost @juliushaertl [#4452](https://github.com/nextcloud/deck/pull/4452)
|
||||
|
||||
### Other
|
||||
- Dependency updates
|
||||
|
||||
|
||||
## 1.8.0-beta.1
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.10.0-beta.1</version>
|
||||
<version>1.9.2</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="27" max-version="27"/>
|
||||
<nextcloud min-version="26" max-version="26"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"symfony/event-dispatcher": "^4.0",
|
||||
"vimeo/psalm": "^5.4",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"nextcloud/ocp": "dev-master"
|
||||
"nextcloud/ocp": "dev-stable26"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
|
||||
368
composer.lock
generated
368
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "22d201a4569de6d4fafbc13277ae91a6",
|
||||
"content-hash": "7f234626b3fd062832a6387b9434427c",
|
||||
"packages": [
|
||||
{
|
||||
"name": "cogpowered/finediff",
|
||||
@@ -299,6 +299,79 @@
|
||||
],
|
||||
"time": "2021-03-30T17:13:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/package-versions-deprecated",
|
||||
"version": "1.11.99.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/package-versions-deprecated.git",
|
||||
"reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
|
||||
"reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.1.0 || ^2.0",
|
||||
"php": "^7 || ^8"
|
||||
},
|
||||
"replace": {
|
||||
"ocramius/package-versions": "1.11.99"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.9.3 || ^2.0@dev",
|
||||
"ext-zip": "^1.13",
|
||||
"phpunit/phpunit": "^6.5 || ^7"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "PackageVersions\\Installer",
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PackageVersions\\": "src/PackageVersions"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
||||
"support": {
|
||||
"issues": "https://github.com/composer/package-versions-deprecated/issues",
|
||||
"source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-17T14:14:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/pcre",
|
||||
"version": "1.0.1",
|
||||
@@ -626,49 +699,6 @@
|
||||
},
|
||||
"time": "2021-08-05T19:00:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9",
|
||||
"phpunit/phpunit": "^7.5|^8.5|^9.5",
|
||||
"psr/log": "^1|^2|^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
|
||||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
|
||||
},
|
||||
"time": "2022-05-02T15:47:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.5.0",
|
||||
@@ -1072,16 +1102,16 @@
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.11.1",
|
||||
"version": "1.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
|
||||
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
|
||||
"reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1119,7 +1149,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1127,20 +1157,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-08T13:26:56+00:00"
|
||||
"time": "2022-03-03T13:19:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netresearch/jsonmapper",
|
||||
"version": "v4.2.0",
|
||||
"version": "v4.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/cweiske/jsonmapper.git",
|
||||
"reference": "f60565f8c0566a31acf06884cdaa591867ecc956"
|
||||
"reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956",
|
||||
"reference": "f60565f8c0566a31acf06884cdaa591867ecc956",
|
||||
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/cfa81ea1d35294d64adb9c68aa4cb9e92400e53f",
|
||||
"reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1176,9 +1206,9 @@
|
||||
"support": {
|
||||
"email": "cweiske@cweiske.de",
|
||||
"issues": "https://github.com/cweiske/jsonmapper/issues",
|
||||
"source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0"
|
||||
"source": "https://github.com/cweiske/jsonmapper/tree/v4.1.0"
|
||||
},
|
||||
"time": "2023-04-09T17:37:40+00:00"
|
||||
"time": "2022-12-08T20:46:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nextcloud/coding-standard",
|
||||
@@ -1223,26 +1253,24 @@
|
||||
},
|
||||
{
|
||||
"name": "nextcloud/ocp",
|
||||
"version": "dev-master",
|
||||
"version": "dev-stable26",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||
"reference": "5636b942e35ee391b1103150261d83d3d753d657"
|
||||
"reference": "37923c381f59247ae6a4049561454f5d3cc2fa01"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/5636b942e35ee391b1103150261d83d3d753d657",
|
||||
"reference": "5636b942e35ee391b1103150261d83d3d753d657",
|
||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/37923c381f59247ae6a4049561454f5d3cc2fa01",
|
||||
"reference": "37923c381f59247ae6a4049561454f5d3cc2fa01",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4 || ~8.0 || ~8.1",
|
||||
"psr/clock": "^1.0",
|
||||
"psr/container": "^1.1.1",
|
||||
"psr/event-dispatcher": "^1.0",
|
||||
"psr/log": "^1.1"
|
||||
},
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@@ -1262,22 +1290,22 @@
|
||||
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
|
||||
"support": {
|
||||
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
|
||||
"source": "https://github.com/nextcloud-deps/ocp/tree/stable26"
|
||||
},
|
||||
"time": "2023-02-08T00:37:37+00:00"
|
||||
"time": "2023-05-05T00:32:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.15.4",
|
||||
"version": "v4.15.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
|
||||
"reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
||||
"reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
|
||||
"reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1318,9 +1346,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4"
|
||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
|
||||
},
|
||||
"time": "2023-03-05T19:49:14+00:00"
|
||||
"time": "2023-01-16T22:05:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phar-io/manifest",
|
||||
@@ -1654,27 +1682,24 @@
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "1.7.1",
|
||||
"version": "1.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "dfc078e8af9c99210337325ff5aa152872c98714"
|
||||
"reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714",
|
||||
"reference": "dfc078e8af9c99210337325ff5aa152872c98714",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
|
||||
"reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.0",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.0",
|
||||
"phpstan/phpdoc-parser": "^1.13"
|
||||
"phpdocumentor/reflection-common": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-tokenizer": "*",
|
||||
"phpbench/phpbench": "^1.2",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
@@ -1706,74 +1731,29 @@
|
||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1"
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2"
|
||||
},
|
||||
"time": "2023-03-27T19:02:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "1.20.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd",
|
||||
"reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^1.5",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpstan/phpstan-strict-rules": "^1.0",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"symfony/process": "^5.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PHPStan\\PhpDocParser\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.20.4"
|
||||
},
|
||||
"time": "2023-05-02T09:19:37+00:00"
|
||||
"time": "2022-10-14T12:47:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "9.2.26",
|
||||
"version": "9.2.24",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1"
|
||||
"reference": "2cf940ebc6355a9d430462811b5aaa308b174bed"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
|
||||
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed",
|
||||
"reference": "2cf940ebc6355a9d430462811b5aaa308b174bed",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-xmlwriter": "*",
|
||||
"nikic/php-parser": "^4.15",
|
||||
"nikic/php-parser": "^4.14",
|
||||
"php": ">=7.3",
|
||||
"phpunit/php-file-iterator": "^3.0.3",
|
||||
"phpunit/php-text-template": "^2.0.2",
|
||||
@@ -1788,8 +1768,8 @@
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-pcov": "PHP extension that provides line coverage",
|
||||
"ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
|
||||
"ext-pcov": "*",
|
||||
"ext-xdebug": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -1822,7 +1802,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26"
|
||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1830,7 +1810,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-06T12:58:08+00:00"
|
||||
"time": "2023-01-26T08:26:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-file-iterator",
|
||||
@@ -2075,16 +2055,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.6.7",
|
||||
"version": "9.6.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
|
||||
"reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7b1615e3e887d6c719121c6d4a44b0ab9645555",
|
||||
"reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2117,8 +2097,8 @@
|
||||
"sebastian/version": "^3.0.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-soap": "To be able to generate mocks based on WSDL files",
|
||||
"ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
|
||||
"ext-soap": "*",
|
||||
"ext-xdebug": "*"
|
||||
},
|
||||
"bin": [
|
||||
"phpunit"
|
||||
@@ -2157,8 +2137,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2174,7 +2153,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-14T08:58:40+00:00"
|
||||
"time": "2023-02-04T13:37:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
@@ -2225,54 +2204,6 @@
|
||||
},
|
||||
"time": "2021-02-03T23:26:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/clock",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/clock.git",
|
||||
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
|
||||
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Clock\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for reading the clock.",
|
||||
"homepage": "https://github.com/php-fig/clock",
|
||||
"keywords": [
|
||||
"clock",
|
||||
"now",
|
||||
"psr",
|
||||
"psr-20",
|
||||
"time"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-fig/clock/issues",
|
||||
"source": "https://github.com/php-fig/clock/tree/1.0.0"
|
||||
},
|
||||
"time": "2022-11-25T14:36:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "1.1.2",
|
||||
@@ -3882,16 +3813,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v5.4.23",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c"
|
||||
"reference": "dccb8d251a9017d5994c988b034d3e18aaabf740"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/90f21e27d0d88ce38720556dd164d4a1e4c3934c",
|
||||
"reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740",
|
||||
"reference": "dccb8d251a9017d5994c988b034d3e18aaabf740",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3956,12 +3887,12 @@
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"cli",
|
||||
"command-line",
|
||||
"command line",
|
||||
"console",
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v5.4.23"
|
||||
"source": "https://github.com/symfony/console/tree/v5.4.19"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3977,7 +3908,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-24T18:47:29+00:00"
|
||||
"time": "2023-01-01T08:32:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -4211,16 +4142,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v5.4.23",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5"
|
||||
"reference": "648bfaca6a494f3e22378123bcee2894045dc9d8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5",
|
||||
"reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/648bfaca6a494f3e22378123bcee2894045dc9d8",
|
||||
"reference": "648bfaca6a494f3e22378123bcee2894045dc9d8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4255,7 +4186,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v5.4.23"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v5.4.19"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4271,7 +4202,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-02T11:38:35+00:00"
|
||||
"time": "2023-01-14T19:14:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
@@ -5185,16 +5116,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v5.4.22",
|
||||
"version": "v5.4.19",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"
|
||||
"reference": "0a01071610fd861cc160dfb7e2682ceec66064cb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
|
||||
"reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/0a01071610fd861cc160dfb7e2682ceec66064cb",
|
||||
"reference": "0a01071610fd861cc160dfb7e2682ceec66064cb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5251,7 +5182,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v5.4.22"
|
||||
"source": "https://github.com/symfony/string/tree/v5.4.19"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5267,7 +5198,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-14T06:11:53+00:00"
|
||||
"time": "2023-01-01T08:32:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
@@ -5321,22 +5252,22 @@
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
"version": "5.11.0",
|
||||
"version": "5.7.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vimeo/psalm.git",
|
||||
"reference": "c9b192ab8400fdaf04b2b13d110575adc879aa90"
|
||||
"reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vimeo/psalm/zipball/c9b192ab8400fdaf04b2b13d110575adc879aa90",
|
||||
"reference": "c9b192ab8400fdaf04b2b13d110575adc879aa90",
|
||||
"url": "https://api.github.com/repos/vimeo/psalm/zipball/e028ba46ba0d7f9a78bc3201c251e137383e145f",
|
||||
"reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"amphp/amp": "^2.4.2",
|
||||
"amphp/byte-stream": "^1.5",
|
||||
"composer-runtime-api": "^2",
|
||||
"composer/package-versions-deprecated": "^1.10.0",
|
||||
"composer/semver": "^1.4 || ^2.0 || ^3.0",
|
||||
"composer/xdebug-handler": "^2.0 || ^3.0",
|
||||
"dnoegel/php-xdg-base-dir": "^0.1.1",
|
||||
@@ -5351,7 +5282,7 @@
|
||||
"felixfbecker/language-server-protocol": "^1.5.2",
|
||||
"fidry/cpu-core-counter": "^0.4.1 || ^0.5.1",
|
||||
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
|
||||
"nikic/php-parser": "^4.14",
|
||||
"nikic/php-parser": "^4.13",
|
||||
"php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0",
|
||||
"sebastian/diff": "^4.0 || ^5.0",
|
||||
"spatie/array-to-xml": "^2.17.0 || ^3.0",
|
||||
@@ -5362,7 +5293,6 @@
|
||||
"psalm/psalm": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"amphp/phpunit-util": "^2.0",
|
||||
"bamarni/composer-bin-plugin": "^1.4",
|
||||
"brianium/paratest": "^6.9",
|
||||
"ext-curl": "*",
|
||||
@@ -5421,9 +5351,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/vimeo/psalm/issues",
|
||||
"source": "https://github.com/vimeo/psalm/tree/5.11.0"
|
||||
"source": "https://github.com/vimeo/psalm/tree/5.7.7"
|
||||
},
|
||||
"time": "2023-05-04T21:35:44+00:00"
|
||||
"time": "2023-02-25T01:05:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
|
||||
50
l10n/ast.js
50
l10n/ast.js
@@ -1,50 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"Deck" : "Deck",
|
||||
"Personal" : "Personal",
|
||||
"%s on %s" : "%s en %s",
|
||||
"Finished" : "Finó",
|
||||
"Action needed" : "Precísase aición",
|
||||
"Later" : "Más sero",
|
||||
"Done" : "Fecho",
|
||||
"The file was uploaded" : "Xubióse'l ficheru",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu perpasa la direutiva de xuba upload_max_filesize en php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML",
|
||||
"No file was uploaded" : "Nun se xubieron fichjeros",
|
||||
"Missing a temporary folder" : "Falta un direutoriu temporal",
|
||||
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
|
||||
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Data non válida, el formatu ha ser AAAA-MM-DD",
|
||||
"Cancel" : "Encaboxar",
|
||||
"Close" : "Zarrar",
|
||||
"File already exists" : "Yá esiste'l ficheru",
|
||||
"Show archived cards" : "Amosar tarxetes archivaes",
|
||||
"Details" : "Detalles",
|
||||
"Sharing" : "Compartiendo",
|
||||
"Tags" : "Etiquetes",
|
||||
"Undo" : "Desfacer",
|
||||
"Can edit" : "Can edit",
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Desaniciar",
|
||||
"Edit" : "Editar",
|
||||
"Members" : "Miembros",
|
||||
"Download" : "Baxar",
|
||||
"Attachments" : "Axuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Modified" : "Modificóse'l",
|
||||
"Created" : "Creóse",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Save" : "Guardar",
|
||||
"Reply" : "Rempuesta",
|
||||
"Update" : "Anovar",
|
||||
"Description" : "Descripción",
|
||||
"(group)" : "(grupu)",
|
||||
"seconds ago" : "hai segundos",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No notifications" : "Ensin avisos",
|
||||
"Share" : "Share"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,48 +0,0 @@
|
||||
{ "translations": {
|
||||
"Deck" : "Deck",
|
||||
"Personal" : "Personal",
|
||||
"%s on %s" : "%s en %s",
|
||||
"Finished" : "Finó",
|
||||
"Action needed" : "Precísase aición",
|
||||
"Later" : "Más sero",
|
||||
"Done" : "Fecho",
|
||||
"The file was uploaded" : "Xubióse'l ficheru",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu perpasa la direutiva de xuba upload_max_filesize en php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML",
|
||||
"No file was uploaded" : "Nun se xubieron fichjeros",
|
||||
"Missing a temporary folder" : "Falta un direutoriu temporal",
|
||||
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
|
||||
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Data non válida, el formatu ha ser AAAA-MM-DD",
|
||||
"Cancel" : "Encaboxar",
|
||||
"Close" : "Zarrar",
|
||||
"File already exists" : "Yá esiste'l ficheru",
|
||||
"Show archived cards" : "Amosar tarxetes archivaes",
|
||||
"Details" : "Detalles",
|
||||
"Sharing" : "Compartiendo",
|
||||
"Tags" : "Etiquetes",
|
||||
"Undo" : "Desfacer",
|
||||
"Can edit" : "Can edit",
|
||||
"Can share" : "Can share",
|
||||
"Owner" : "Owner",
|
||||
"Delete" : "Desaniciar",
|
||||
"Edit" : "Editar",
|
||||
"Members" : "Miembros",
|
||||
"Download" : "Baxar",
|
||||
"Attachments" : "Axuntos",
|
||||
"Comments" : "Comentarios",
|
||||
"Modified" : "Modificóse'l",
|
||||
"Created" : "Creóse",
|
||||
"Today" : "Güei",
|
||||
"Tomorrow" : "Mañana",
|
||||
"Save" : "Guardar",
|
||||
"Reply" : "Rempuesta",
|
||||
"Update" : "Anovar",
|
||||
"Description" : "Descripción",
|
||||
"(group)" : "(grupu)",
|
||||
"seconds ago" : "hai segundos",
|
||||
"Shared with you" : "Shared with you",
|
||||
"No notifications" : "Ensin avisos",
|
||||
"Share" : "Share"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -81,6 +81,7 @@ OC.L10N.register(
|
||||
"Deck board" : "Доска",
|
||||
"Owned by %1$s" : "Владелец: %1$s",
|
||||
"Deck boards, cards and comments" : "Доски, карточки и комментарии",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Из %1$s, в %2$s/%3$s, принадлежит %4$s",
|
||||
"Card comments" : "Комментарии карточки",
|
||||
"%s on %s" : "%s на %s",
|
||||
"Deck boards and cards" : "Доски и карточки",
|
||||
@@ -156,6 +157,7 @@ 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" : "Создайте список чтобы добавить карточки на эту доску",
|
||||
@@ -296,10 +298,12 @@ OC.L10N.register(
|
||||
"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" : "Ссылка на карточку",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"Deck board" : "Доска",
|
||||
"Owned by %1$s" : "Владелец: %1$s",
|
||||
"Deck boards, cards and comments" : "Доски, карточки и комментарии",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Из %1$s, в %2$s/%3$s, принадлежит %4$s",
|
||||
"Card comments" : "Комментарии карточки",
|
||||
"%s on %s" : "%s на %s",
|
||||
"Deck boards and cards" : "Доски и карточки",
|
||||
@@ -154,6 +155,7 @@
|
||||
"Toggle compact mode" : "Выбор компактного или обычного режима просмотра",
|
||||
"Open details" : "Открыть подробности",
|
||||
"Details" : "Свойства",
|
||||
"Currently present people" : "Присутствующие в настоящее время люди",
|
||||
"Loading board" : "Загрузка доски",
|
||||
"No lists available" : "Нет ни одного списка",
|
||||
"Create a new list to add cards to this board" : "Создайте список чтобы добавить карточки на эту доску",
|
||||
@@ -294,10 +296,12 @@
|
||||
"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" : "Ссылка на карточку",
|
||||
|
||||
14
l10n/sv.js
14
l10n/sv.js
@@ -78,7 +78,7 @@ OC.L10N.register(
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar i {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tavlan \"%s\" har delats med dig av %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} har delat {deck-board} med dig.",
|
||||
"Deck board" : "Deck-plank",
|
||||
"Deck board" : "Deck-tavla",
|
||||
"Owned by %1$s" : "Ägd av %1$s",
|
||||
"Deck boards, cards and comments" : "Deck tavlor, kort och kommentarer",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Från %1$s, i %2$s/%3$s, ägd av %4$s",
|
||||
@@ -92,7 +92,7 @@ OC.L10N.register(
|
||||
"Later" : "Senare",
|
||||
"copy" : "kopiera",
|
||||
"To do" : "Att göra",
|
||||
"Doing" : "Gör",
|
||||
"Doing" : "Pågående",
|
||||
"Done" : "Klart",
|
||||
"Example Task 3" : "Exempeluppgift 3",
|
||||
"Example Task 2" : "Exempeluppgift 2",
|
||||
@@ -249,7 +249,7 @@ OC.L10N.register(
|
||||
"Write a description …" : "Ange en beskrivning ...",
|
||||
"Choose attachment" : "Välj bilaga",
|
||||
"(group)" : " (grupp)",
|
||||
"Todo items" : "Todo saker",
|
||||
"Todo items" : "Att göra saker",
|
||||
"{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa",
|
||||
"Edit card title" : "Ändra korttitel",
|
||||
"Assign to me" : "Tilldela till mig",
|
||||
@@ -289,7 +289,7 @@ OC.L10N.register(
|
||||
"Only assigned cards" : "Bara tilldelade kort",
|
||||
"No reminder" : "Ingen påminnelse",
|
||||
"An error occurred" : "Ett fel uppstod",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera brädet {title}? Detta kommer radera all data som tillhör brädet inklusive arkiverade kort.",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera tavla {title}? Detta kommer radera all data som tillhör tavlan inklusive arkiverade kort.",
|
||||
"Delete the board?" : "Ta bort tavlan?",
|
||||
"Loading filtered view" : "Laddar filtrerad vy",
|
||||
"No due" : "Inget slut",
|
||||
@@ -316,9 +316,9 @@ OC.L10N.register(
|
||||
"Share with a Deck card" : "Dela med ett Deck-kort",
|
||||
"Share {file} with a Deck card" : "Dela {file} med ett Deck-kort",
|
||||
"Share" : "Dela",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra brädet {title} för {user}?",
|
||||
"Transfer the board for {user} successfully" : "Överförde brädet för {user}",
|
||||
"Failed to transfer the board for {user}" : "Misslyckades med att överföra brädet för {user}",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra tavla {title} för {user}?",
|
||||
"Transfer the board for {user} successfully" : "Överförde tavlan för {user}",
|
||||
"Failed to transfer the board for {user}" : "Misslyckades med att överföra tavlan för {user}",
|
||||
"Add a new list" : "Lägg till en ny lista",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla."
|
||||
},
|
||||
|
||||
14
l10n/sv.json
14
l10n/sv.json
@@ -76,7 +76,7 @@
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nämnt dig i en kommentar i {deck-card}.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tavlan \"%s\" har delats med dig av %s.",
|
||||
"{user} has shared {deck-board} with you." : "{user} har delat {deck-board} med dig.",
|
||||
"Deck board" : "Deck-plank",
|
||||
"Deck board" : "Deck-tavla",
|
||||
"Owned by %1$s" : "Ägd av %1$s",
|
||||
"Deck boards, cards and comments" : "Deck tavlor, kort och kommentarer",
|
||||
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Från %1$s, i %2$s/%3$s, ägd av %4$s",
|
||||
@@ -90,7 +90,7 @@
|
||||
"Later" : "Senare",
|
||||
"copy" : "kopiera",
|
||||
"To do" : "Att göra",
|
||||
"Doing" : "Gör",
|
||||
"Doing" : "Pågående",
|
||||
"Done" : "Klart",
|
||||
"Example Task 3" : "Exempeluppgift 3",
|
||||
"Example Task 2" : "Exempeluppgift 2",
|
||||
@@ -247,7 +247,7 @@
|
||||
"Write a description …" : "Ange en beskrivning ...",
|
||||
"Choose attachment" : "Välj bilaga",
|
||||
"(group)" : " (grupp)",
|
||||
"Todo items" : "Todo saker",
|
||||
"Todo items" : "Att göra saker",
|
||||
"{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa",
|
||||
"Edit card title" : "Ändra korttitel",
|
||||
"Assign to me" : "Tilldela till mig",
|
||||
@@ -287,7 +287,7 @@
|
||||
"Only assigned cards" : "Bara tilldelade kort",
|
||||
"No reminder" : "Ingen påminnelse",
|
||||
"An error occurred" : "Ett fel uppstod",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera brädet {title}? Detta kommer radera all data som tillhör brädet inklusive arkiverade kort.",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera tavla {title}? Detta kommer radera all data som tillhör tavlan inklusive arkiverade kort.",
|
||||
"Delete the board?" : "Ta bort tavlan?",
|
||||
"Loading filtered view" : "Laddar filtrerad vy",
|
||||
"No due" : "Inget slut",
|
||||
@@ -314,9 +314,9 @@
|
||||
"Share with a Deck card" : "Dela med ett Deck-kort",
|
||||
"Share {file} with a Deck card" : "Dela {file} med ett Deck-kort",
|
||||
"Share" : "Dela",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra brädet {title} för {user}?",
|
||||
"Transfer the board for {user} successfully" : "Överförde brädet för {user}",
|
||||
"Failed to transfer the board for {user}" : "Misslyckades med att överföra brädet för {user}",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra tavla {title} för {user}?",
|
||||
"Transfer the board for {user} successfully" : "Överförde tavlan för {user}",
|
||||
"Failed to transfer the board for {user}" : "Misslyckades med att överföra tavlan för {user}",
|
||||
"Add a new list" : "Lägg till en ny lista",
|
||||
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
|
||||
@@ -173,7 +173,7 @@ OC.L10N.register(
|
||||
"Can manage" : "可以管理",
|
||||
"Owner" : "所有者",
|
||||
"Delete" : "删除",
|
||||
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
|
||||
"Failed to create share with {displayName}" : "用{displayName}创建分享失败",
|
||||
"Transfer" : "传输",
|
||||
"Archive all cards" : "归档所有卡片",
|
||||
"Delete list" : "删除列表",
|
||||
@@ -285,7 +285,7 @@ OC.L10N.register(
|
||||
"Create a card" : "创建一张卡片",
|
||||
"Message from {author} in {conversationName}" : "{conversationName} 会话中来自 {author} 的消息",
|
||||
"Something went wrong" : "发生了错误",
|
||||
"Failed to upload {name}" : "未能上传 {name}",
|
||||
"Failed to upload {name}" : "未能上传{name}",
|
||||
"Maximum file size of {size} exceeded" : "文件容量已超过 {size} 的上限",
|
||||
"Error creating the share" : "创建分享出错",
|
||||
"Share with a Deck card" : "分享给一张看板卡片",
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
"Can manage" : "可以管理",
|
||||
"Owner" : "所有者",
|
||||
"Delete" : "删除",
|
||||
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
|
||||
"Failed to create share with {displayName}" : "用{displayName}创建分享失败",
|
||||
"Transfer" : "传输",
|
||||
"Archive all cards" : "归档所有卡片",
|
||||
"Delete list" : "删除列表",
|
||||
@@ -283,7 +283,7 @@
|
||||
"Create a card" : "创建一张卡片",
|
||||
"Message from {author} in {conversationName}" : "{conversationName} 会话中来自 {author} 的消息",
|
||||
"Something went wrong" : "发生了错误",
|
||||
"Failed to upload {name}" : "未能上传 {name}",
|
||||
"Failed to upload {name}" : "未能上传{name}",
|
||||
"Maximum file size of {size} exceeded" : "文件容量已超过 {size} 的上限",
|
||||
"Error creating the share" : "创建分享出错",
|
||||
"Share with a Deck card" : "分享给一张看板卡片",
|
||||
|
||||
@@ -186,28 +186,28 @@ class DeckProvider implements IProvider {
|
||||
|
||||
private function getIcon(IEvent $event) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('deck', 'deck-dark.svg')));
|
||||
if (str_contains($event->getSubject(), '_update')) {
|
||||
if (strpos($event->getSubject(), '_update') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'change.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), '_create')) {
|
||||
if (strpos($event->getSubject(), '_create') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'add-color.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), '_delete')) {
|
||||
if (strpos($event->getSubject(), '_delete') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'delete-color.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), 'archive')) {
|
||||
if (strpos($event->getSubject(), 'archive') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('deck', 'archive.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), '_restore')) {
|
||||
if (strpos($event->getSubject(), '_restore') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/history.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), 'attachment_')) {
|
||||
if (strpos($event->getSubject(), 'attachment_') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'places/files.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), 'comment_')) {
|
||||
if (strpos($event->getSubject(), 'comment_') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/comment.svg')));
|
||||
}
|
||||
if (str_contains($event->getSubject(), 'label_')) {
|
||||
if (strpos($event->getSubject(), 'label_') !== false) {
|
||||
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/tag.svg')));
|
||||
}
|
||||
return $event;
|
||||
|
||||
@@ -53,7 +53,7 @@ class AttachmentController extends Controller {
|
||||
* @throws \OCA\Deck\NotFoundException
|
||||
*/
|
||||
public function display($cardId, $attachmentId) {
|
||||
if (!str_contains($attachmentId, ':')) {
|
||||
if (strpos($attachmentId, ':') === false) {
|
||||
$type = 'deck_file';
|
||||
} else {
|
||||
[$type, $attachmentId] = explode(':', $attachmentId);
|
||||
@@ -76,7 +76,7 @@ class AttachmentController extends Controller {
|
||||
* @NoAdminRequired
|
||||
*/
|
||||
public function update($cardId, $attachmentId) {
|
||||
if (!str_contains($attachmentId, ':')) {
|
||||
if (strpos($attachmentId, ':') === false) {
|
||||
$type = 'deck_file';
|
||||
} else {
|
||||
[$type, $attachmentId] = explode(':', $attachmentId);
|
||||
@@ -88,7 +88,7 @@ class AttachmentController extends Controller {
|
||||
* @NoAdminRequired
|
||||
*/
|
||||
public function delete($cardId, $attachmentId) {
|
||||
if (!str_contains($attachmentId, ':')) {
|
||||
if (strpos($attachmentId, ':') === false) {
|
||||
$type = 'deck_file';
|
||||
} else {
|
||||
[$type, $attachmentId] = explode(':', $attachmentId);
|
||||
@@ -100,7 +100,7 @@ class AttachmentController extends Controller {
|
||||
* @NoAdminRequired
|
||||
*/
|
||||
public function restore($cardId, $attachmentId) {
|
||||
if (!str_contains($attachmentId, ':')) {
|
||||
if (strpos($attachmentId, ':') === false) {
|
||||
$type = 'deck_file';
|
||||
} else {
|
||||
[$type, $attachmentId] = explode(':', $attachmentId);
|
||||
|
||||
@@ -68,7 +68,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
|
||||
$reflection = new \ReflectionClass($this);
|
||||
$json = [];
|
||||
foreach ($properties as $property => $value) {
|
||||
if (!str_starts_with($property, '_') && $reflection->hasProperty($property)) {
|
||||
if (strpos($property, '_') !== 0 && $reflection->hasProperty($property)) {
|
||||
$propertyReflection = $reflection->getProperty($property);
|
||||
if (!$propertyReflection->isPrivate() && !in_array($property, $this->_resolvedProperties, true)) {
|
||||
$json[$property] = $this->getter($property);
|
||||
@@ -129,7 +129,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
|
||||
|
||||
public function __call(string $methodName, array $args) {
|
||||
$attr = lcfirst(substr($methodName, 7));
|
||||
if (array_key_exists($attr, $this->_resolvedProperties) && str_starts_with($methodName, 'resolve')) {
|
||||
if (array_key_exists($attr, $this->_resolvedProperties) && strpos($methodName, 'resolve') === 0) {
|
||||
if ($this->_resolvedProperties[$attr] !== null) {
|
||||
return $this->_resolvedProperties[$attr];
|
||||
}
|
||||
@@ -137,7 +137,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
|
||||
}
|
||||
|
||||
$attr = lcfirst(substr($methodName, 3));
|
||||
if (array_key_exists($attr, $this->_resolvedProperties) && str_starts_with($methodName, 'set')) {
|
||||
if (array_key_exists($attr, $this->_resolvedProperties) && strpos($methodName, 'set') === 0) {
|
||||
if (!is_scalar($args[0])) {
|
||||
$args[0] = $args[0]['primaryKey'];
|
||||
}
|
||||
|
||||
@@ -51,11 +51,11 @@ class BeforeTemplateRenderedListener implements IEventListener {
|
||||
Util::addStyle('deck', 'deck');
|
||||
|
||||
$pathInfo = $this->request->getPathInfo();
|
||||
if (str_starts_with($pathInfo, '/apps/calendar')) {
|
||||
if (strpos($pathInfo, '/apps/calendar') === 0) {
|
||||
Util::addScript('deck', 'deck-calendar');
|
||||
}
|
||||
|
||||
if (str_starts_with($pathInfo, '/call/') || str_starts_with($pathInfo, '/apps/spreed')) {
|
||||
if (strpos($pathInfo, '/call/') === 0 || strpos($pathInfo, '/apps/spreed') === 0) {
|
||||
Util::addScript('deck', 'deck-talk');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class ResourceAdditionalScriptsListener implements IEventListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (str_starts_with($this->request->getPathInfo(), '/call/')) {
|
||||
if (strpos($this->request->getPathInfo(), '/call/') === 0) {
|
||||
// Talk integration has its own entrypoint which already includes collections handling
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class ExceptionMiddleware extends Middleware {
|
||||
], $exception->getStatus());
|
||||
}
|
||||
|
||||
if (str_starts_with(get_class($controller), 'OCA\\Deck\\Controller\\')) {
|
||||
if (strpos(get_class($controller), 'OCA\\Deck\\Controller\\') === 0) {
|
||||
$response = [
|
||||
'status' => 500,
|
||||
'message' => $exceptionMessage,
|
||||
|
||||
@@ -41,7 +41,7 @@ class FilterStringParser {
|
||||
public function __construct(IL10N $l10n) {
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
|
||||
public function parse(?string $filter): SearchQuery {
|
||||
$query = new SearchQuery();
|
||||
if (empty($filter)) {
|
||||
@@ -71,7 +71,7 @@ class FilterStringParser {
|
||||
}
|
||||
|
||||
private function parseFilterToken(SearchQuery $query, string $token): bool {
|
||||
if (!str_contains($token, ':')) {
|
||||
if (strpos($token, ':') === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ use OCA\Deck\Db\StackMapper;
|
||||
use OCA\Deck\Event\CardCreatedEvent;
|
||||
use OCA\Deck\Event\CardDeletedEvent;
|
||||
use OCA\Deck\Event\CardUpdatedEvent;
|
||||
use OCA\Deck\Model\CardDetails;
|
||||
use OCA\Deck\NoPermissionException;
|
||||
use OCA\Deck\Notification\NotificationHelper;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
@@ -156,12 +155,7 @@ class CardService {
|
||||
$card->setAssignedUsers($cardAssignedUsers);
|
||||
}
|
||||
|
||||
return array_map(
|
||||
function (Card $card): CardDetails {
|
||||
return new CardDetails($card);
|
||||
},
|
||||
$cards
|
||||
);
|
||||
return $cards;
|
||||
}
|
||||
public function fetchDeleted($boardId) {
|
||||
$this->cardServiceValidator->check(compact('boardId'));
|
||||
|
||||
@@ -99,7 +99,15 @@ class StackService {
|
||||
return;
|
||||
}
|
||||
|
||||
$stack->setCards($this->cardService->enrichCards($cards));
|
||||
$this->cardService->enrichCards($cards);
|
||||
$cards = array_map(
|
||||
function (Card $card): CardDetails {
|
||||
return new CardDetails($card);
|
||||
},
|
||||
$cards
|
||||
);
|
||||
|
||||
$stack->setCards($cards);
|
||||
}
|
||||
|
||||
private function enrichStacksWithCards($stacks, $since = -1) {
|
||||
|
||||
@@ -55,7 +55,7 @@ abstract class BaseValidator {
|
||||
// The format for specifying validation rules and parameters follows an
|
||||
// easy {rule}:{parameters} formatting convention. For instance the
|
||||
// rule "Max:3" states that the value may only be three letters.
|
||||
if (str_contains($rule, ':')) {
|
||||
if (strpos($rule, ':') !== false) {
|
||||
[$rule, $parameter] = explode(':', $rule, 2);
|
||||
if (!$this->{$rule}($value, $parameter)) {
|
||||
throw new BadRequestException(
|
||||
|
||||
65743
package-lock.json
generated
65743
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
32
package.json
32
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"description": "",
|
||||
"version": "1.10.0-beta.1",
|
||||
"version": "1.9.2",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julius Härtl",
|
||||
@@ -20,6 +20,7 @@
|
||||
"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",
|
||||
@@ -30,7 +31,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@babel/runtime": "^7.21.5",
|
||||
"@babel/runtime": "^7.21.0",
|
||||
"@nextcloud/auth": "^2.0.0",
|
||||
"@nextcloud/axios": "^2.3.0",
|
||||
"@nextcloud/dialogs": "^4.0.1",
|
||||
@@ -40,16 +41,17 @@
|
||||
"@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.3",
|
||||
"@nextcloud/router": "^2.0.1",
|
||||
"@nextcloud/vue": "^7.8.4",
|
||||
"@nextcloud/vue-richtext": "^2.0.4",
|
||||
"blueimp-md5": "^2.19.0",
|
||||
"dompurify": "^3.0.2",
|
||||
"dompurify": "^3.0.0",
|
||||
"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",
|
||||
"nextcloud-vue-collections": "^0.11.0",
|
||||
"p-queue": "^7.3.4",
|
||||
"url-search-params-polyfill": "^8.1.1",
|
||||
"vue": "^2.7.14",
|
||||
@@ -76,16 +78,16 @@
|
||||
"@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.11.0",
|
||||
"eslint-plugin-cypress": "^2.13.3",
|
||||
"eslint-webpack-plugin": "^4.0.1",
|
||||
"jest": "^29.5.0",
|
||||
"@nextcloud/webpack-vue-config": "^5.4.0",
|
||||
"@relative-ci/agent": "^4.1.3",
|
||||
"@vue/test-utils": "^1.3.4",
|
||||
"@vue/vue2-jest": "^29.2.2",
|
||||
"cypress": "^12.7.0",
|
||||
"eslint-plugin-cypress": "^2.12.1",
|
||||
"eslint-webpack-plugin": "^4.0.0",
|
||||
"jest": "^29.4.3",
|
||||
"jest-serializer-vue": "^3.1.0",
|
||||
"stylelint-webpack-plugin": "^4.1.1",
|
||||
"stylelint-webpack-plugin": "^4.1.0",
|
||||
"vue-template-compiler": "^2.7.14"
|
||||
},
|
||||
"jest": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div v-if="activity" class="activity">
|
||||
<div class="activity--header">
|
||||
<img :src="activity.icon" class="activity--icon">
|
||||
<NcRichText class="activity--subject" :text="message.subject" :arguments="message.parameters" />
|
||||
<RichText class="activity--subject" :text="message.subject" :arguments="message.parameters" />
|
||||
<div class="activity--timestamp">
|
||||
{{ relativeDate(activity.datetime) }}
|
||||
</div>
|
||||
@@ -35,7 +35,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { NcRichText, NcUserBubble } from '@nextcloud/vue'
|
||||
import { RichText } from '@nextcloud/vue-richtext'
|
||||
import { NcUserBubble } from '@nextcloud/vue'
|
||||
import moment from '@nextcloud/moment'
|
||||
import DOMPurify from 'dompurify'
|
||||
import relativeDate from '../mixins/relativeDate.js'
|
||||
@@ -60,7 +61,7 @@ const InternalLink = {
|
||||
export default {
|
||||
name: 'ActivityEntry',
|
||||
components: {
|
||||
NcRichText,
|
||||
RichText,
|
||||
},
|
||||
mixins: [relativeDate],
|
||||
props: {
|
||||
|
||||
@@ -27,39 +27,31 @@
|
||||
@close="closeSidebar">
|
||||
<NcAppSidebarTab id="sharing"
|
||||
:order="0"
|
||||
:name="t('deck', 'Sharing')">
|
||||
<template #icon>
|
||||
<SharingIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Sharing')"
|
||||
icon="icon-shared">
|
||||
<SharingTabSidebar :board="board" />
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab id="tags"
|
||||
:order="1"
|
||||
:name="t('deck', 'Tags')">
|
||||
<template #icon>
|
||||
<TagsIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Tags')"
|
||||
icon="icon-tag">
|
||||
<TagsTabSidebar :board="board" />
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab v-if="canEdit"
|
||||
id="deleted"
|
||||
:order="2"
|
||||
:name="t('deck', 'Deleted items')">
|
||||
<template #icon>
|
||||
<TrashIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Deleted items')"
|
||||
icon="icon-delete">
|
||||
<DeletedTabSidebar :board="board" />
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab v-if="hasActivity"
|
||||
id="activity"
|
||||
:order="3"
|
||||
:name="t('deck', 'Timeline')">
|
||||
<template #icon>
|
||||
<ActivityIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Timeline')"
|
||||
icon="icon-activity">
|
||||
<TimelineTabSidebar :board="board" />
|
||||
</NcAppSidebarTab>
|
||||
</NcAppSidebar>
|
||||
@@ -72,10 +64,7 @@ import TagsTabSidebar from './TagsTabSidebar.vue'
|
||||
import DeletedTabSidebar from './DeletedTabSidebar.vue'
|
||||
import TimelineTabSidebar from './TimelineTabSidebar.vue'
|
||||
import { NcAppSidebar, NcAppSidebarTab } from '@nextcloud/vue'
|
||||
import ActivityIcon from 'vue-material-design-icons/LightningBolt.vue'
|
||||
import SharingIcon from 'vue-material-design-icons/ShareVariant.vue'
|
||||
import TagsIcon from 'vue-material-design-icons/TagMultiple.vue'
|
||||
import TrashIcon from 'vue-material-design-icons/Delete.vue'
|
||||
|
||||
const capabilities = window.OC.getCapabilities()
|
||||
|
||||
export default {
|
||||
@@ -87,10 +76,6 @@ export default {
|
||||
TagsTabSidebar,
|
||||
DeletedTabSidebar,
|
||||
TimelineTabSidebar,
|
||||
ActivityIcon,
|
||||
SharingIcon,
|
||||
TagsIcon,
|
||||
TrashIcon,
|
||||
},
|
||||
props: {
|
||||
id: {
|
||||
|
||||
@@ -25,13 +25,9 @@
|
||||
</form>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div v-if="canManage && !isArchived" class="label-title" @click="clickEdit(label)">
|
||||
<div class="label-title" @click="clickEdit(label)">
|
||||
<span :style="{ backgroundColor: `#${label.color}`, color: textColor(label.color) }">{{ label.title }}</span>
|
||||
</div>
|
||||
<div v-else class="label-title">
|
||||
<span :style="{ backgroundColor: `#${label.color}`, color: textColor(label.color) }">{{ label.title }}</span>
|
||||
</div>
|
||||
|
||||
<NcActions v-if="canManage && !isArchived">
|
||||
<NcActionButton icon="icon-rename" @click="clickEdit(label)">
|
||||
{{ t('deck', 'Edit') }}
|
||||
|
||||
@@ -50,38 +50,32 @@
|
||||
|
||||
<NcAppSidebarTab id="details"
|
||||
:order="0"
|
||||
:name="t('deck', 'Details')">
|
||||
:name="t('deck', 'Details')"
|
||||
icon="icon-home">
|
||||
<CardSidebarTabDetails :card="currentCard" />
|
||||
<template #icon>
|
||||
<HomeIcon :size="20" />
|
||||
</template>
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab id="attachments"
|
||||
:order="1"
|
||||
:name="t('deck', 'Attachments')">
|
||||
<template #icon>
|
||||
<AttachmentIcon :size="20" />
|
||||
<AttachmentIcon :size="20" decorative />
|
||||
</template>
|
||||
<CardSidebarTabAttachments :card="currentCard" />
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab id="comments"
|
||||
:order="2"
|
||||
:name="t('deck', 'Comments')">
|
||||
<template #icon>
|
||||
<CommentIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Comments')"
|
||||
icon="icon-comment">
|
||||
<CardSidebarTabComments :card="currentCard" :tab-query="tabQuery" />
|
||||
</NcAppSidebarTab>
|
||||
|
||||
<NcAppSidebarTab v-if="hasActivity"
|
||||
id="timeline"
|
||||
:order="3"
|
||||
:name="t('deck', 'Timeline')">
|
||||
<template #icon>
|
||||
<ActivityIcon :size="20" />
|
||||
</template>
|
||||
:name="t('deck', 'Timeline')"
|
||||
icon="icon-activity">
|
||||
<CardSidebarTabActivity :card="currentCard" />
|
||||
</NcAppSidebarTab>
|
||||
</NcAppSidebar>
|
||||
@@ -98,9 +92,6 @@ import CardSidebarTabActivity from './CardSidebarTabActivity.vue'
|
||||
import relativeDate from '../../mixins/relativeDate.js'
|
||||
import moment from '@nextcloud/moment'
|
||||
import AttachmentIcon from 'vue-material-design-icons/Paperclip.vue'
|
||||
import HomeIcon from 'vue-material-design-icons/Home.vue'
|
||||
import CommentIcon from 'vue-material-design-icons/Comment.vue'
|
||||
import ActivityIcon from 'vue-material-design-icons/LightningBolt.vue'
|
||||
|
||||
import { showError } from '@nextcloud/dialogs'
|
||||
import { getLocale } from '@nextcloud/l10n'
|
||||
@@ -117,10 +108,7 @@ export default {
|
||||
CardSidebarTabComments,
|
||||
CardSidebarTabActivity,
|
||||
CardSidebarTabDetails,
|
||||
ActivityIcon,
|
||||
AttachmentIcon,
|
||||
CommentIcon,
|
||||
HomeIcon,
|
||||
},
|
||||
mixins: [relativeDate],
|
||||
props: {
|
||||
|
||||
@@ -453,6 +453,6 @@ export default {
|
||||
<style>
|
||||
.mx-datepicker-main.mx-datepicker-popup {
|
||||
/* above the modal */
|
||||
z-index: 9999;
|
||||
z-index: 9999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</NcActionButton>
|
||||
</NcActions>
|
||||
</div>
|
||||
<NcRichText class="comment--content"
|
||||
<RichText class="comment--content"
|
||||
:text="richText(comment)"
|
||||
:arguments="richArgs(comment)"
|
||||
:autolink="true" />
|
||||
@@ -54,7 +54,7 @@
|
||||
</div>
|
||||
<CommentItem v-if="comment.replyTo" :reply="true" :comment="comment.replyTo" />
|
||||
<div v-show="!edit" ref="richTextElement">
|
||||
<NcRichText class="comment--content"
|
||||
<RichText class="comment--content"
|
||||
:text="richText(comment)"
|
||||
:arguments="richArgs(comment)"
|
||||
:autolink="true" />
|
||||
@@ -64,7 +64,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { NcAvatar, NcActions, NcActionButton, NcRichText, NcUserBubble } from '@nextcloud/vue'
|
||||
import { NcAvatar, NcActions, NcActionButton, NcUserBubble } from '@nextcloud/vue'
|
||||
import { RichText } from '@nextcloud/vue-richtext'
|
||||
import CommentForm from './CommentForm.vue'
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import md5 from 'blueimp-md5'
|
||||
@@ -92,7 +93,7 @@ export default {
|
||||
NcActions,
|
||||
NcActionButton,
|
||||
CommentForm,
|
||||
NcRichText,
|
||||
RichText,
|
||||
ReplyIcon,
|
||||
},
|
||||
mixins: [relativeDate],
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<template>
|
||||
<div v-if="searchQuery!==''" class="global-search">
|
||||
<h2>
|
||||
<NcRichText :text="t('deck', 'Search for {searchQuery} in all boards')" :arguments="queryStringArgs" />
|
||||
<RichText :text="t('deck', 'Search for {searchQuery} in all boards')" :arguments="queryStringArgs" />
|
||||
<div v-if="loading" class="icon-loading-small" />
|
||||
</h2>
|
||||
<NcActions>
|
||||
@@ -57,8 +57,9 @@ import { mapState } from 'vuex'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import InfiniteLoading from 'vue-infinite-loading'
|
||||
import { RichText } from '@nextcloud/vue-richtext'
|
||||
import Placeholder from './Placeholder.vue'
|
||||
import { NcActions, NcActionButton, NcRichText } from '@nextcloud/vue'
|
||||
import { NcActions, NcActionButton } from '@nextcloud/vue'
|
||||
|
||||
const createCancelToken = () => axios.CancelToken.source()
|
||||
|
||||
@@ -87,7 +88,7 @@ function search({ query, cursor }) {
|
||||
|
||||
export default {
|
||||
name: 'GlobalSearchResults',
|
||||
components: { CardItem, InfiniteLoading, NcRichText, Placeholder, NcActions, NcActionButton },
|
||||
components: { CardItem, InfiniteLoading, RichText, Placeholder, NcActions, NcActionButton },
|
||||
data() {
|
||||
return {
|
||||
results: [],
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
import { subscribe } from '@nextcloud/event-bus'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
|
||||
import './shared-init.js'
|
||||
|
||||
subscribe('calendar:handle-todo-click', ({ calendarId, taskId }) => {
|
||||
const deckAppPrefix = 'app-generated--deck--board-'
|
||||
if (calendarId.startsWith(deckAppPrefix)) {
|
||||
|
||||
@@ -26,10 +26,7 @@ import './../css/collections.css'
|
||||
import FileSharingPicker from './views/FileSharingPicker.js'
|
||||
import { buildSelector } from './helpers/selector.js'
|
||||
|
||||
// eslint-disable-next-line
|
||||
__webpack_nonce__ = btoa(OC.requestToken);
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = OC.linkTo('deck', 'js/');
|
||||
import './shared-init.js'
|
||||
|
||||
Vue.prototype.t = t
|
||||
Vue.prototype.n = n
|
||||
|
||||
@@ -22,12 +22,9 @@
|
||||
|
||||
import './css/dashboard.scss'
|
||||
|
||||
const debug = process.env.NODE_ENV !== 'production'
|
||||
import './shared-init.js'
|
||||
|
||||
// eslint-disable-next-line
|
||||
__webpack_nonce__ = btoa(OC.requestToken);
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = OC.linkTo('deck', 'js/');
|
||||
const debug = process.env.NODE_ENV !== 'production'
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
OCA.Dashboard.register('deck', async (el) => {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { registerWidget } from '@nextcloud/vue/dist/Components/NcRichText.js'
|
||||
import { registerWidget } from '@nextcloud/vue-richtext'
|
||||
import { Tooltip } from '@nextcloud/vue'
|
||||
import Vue from 'vue'
|
||||
import CardReferenceWidget from './views/CardReferenceWidget.vue'
|
||||
@@ -28,6 +28,8 @@ import CommentReferenceWidget from './views/CommentReferenceWidget.vue'
|
||||
|
||||
import { translate, translatePlural } from '@nextcloud/l10n'
|
||||
|
||||
import './shared-init.js'
|
||||
|
||||
Vue.prototype.t = translate
|
||||
Vue.prototype.n = translatePlural
|
||||
Vue.prototype.OC = window.OC
|
||||
|
||||
@@ -27,10 +27,7 @@ import CardCreateDialog from './CardCreateDialog.vue'
|
||||
import { buildSelector } from './helpers/selector.js'
|
||||
import './init-collections.js'
|
||||
|
||||
// eslint-disable-next-line
|
||||
__webpack_nonce__ = btoa(OC.requestToken);
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = OC.linkTo('deck', 'js/');
|
||||
import './shared-init.js'
|
||||
|
||||
Vue.prototype.t = t
|
||||
Vue.prototype.n = n
|
||||
|
||||
@@ -25,23 +25,17 @@ import router from './router.js'
|
||||
import store from './store/main.js'
|
||||
import { sync } from 'vuex-router-sync'
|
||||
import { translate, translatePlural } from '@nextcloud/l10n'
|
||||
import { generateFilePath } from '@nextcloud/router'
|
||||
import { showError } from '@nextcloud/dialogs'
|
||||
import { subscribe } from '@nextcloud/event-bus'
|
||||
import { Tooltip } from '@nextcloud/vue'
|
||||
import ClickOutside from 'vue-click-outside'
|
||||
import './shared-init.js'
|
||||
import './models/index.js'
|
||||
import './sessions.js'
|
||||
|
||||
// the server snap.js conflicts with vertical scrolling so we disable it
|
||||
document.body.setAttribute('data-snap-ignore', 'true')
|
||||
|
||||
// eslint-disable-next-line
|
||||
__webpack_nonce__ = btoa(OC.requestToken)
|
||||
if (!process.env.HOT) {
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = generateFilePath('deck', '', 'js/')
|
||||
}
|
||||
sync(store, router)
|
||||
|
||||
Vue.prototype.t = translate
|
||||
|
||||
12
src/shared-init.js
Normal file
12
src/shared-init.js
Normal file
@@ -0,0 +1,12 @@
|
||||
import { generateFilePath } from '@nextcloud/router'
|
||||
|
||||
// eslint-disable-next-line
|
||||
__webpack_nonce__ = btoa(OC.requestToken)
|
||||
|
||||
if (!process.env.WEBPACK_SERVE) {
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = generateFilePath('deck', '', 'js/')
|
||||
} else {
|
||||
// eslint-disable-next-line
|
||||
__webpack_public_path__ = 'http://127.0.0.1:3000/'
|
||||
}
|
||||
@@ -67,7 +67,7 @@
|
||||
'description': true,
|
||||
'short-description': shortDescription,
|
||||
}">
|
||||
<NcRichText v-tooltip.top="{ content: shortDescription ? t('deck', 'Click to expand description') : undefined }"
|
||||
<RichText v-tooltip.top="{ content: shortDescription ? t('deck', 'Click to expand description') : undefined }"
|
||||
:text="card.description"
|
||||
:use-markdown="true"
|
||||
@click.native="shortDescription = !shortDescription" />
|
||||
@@ -90,7 +90,7 @@ import DeckIcon from '../components/icons/DeckIcon.vue'
|
||||
import AvatarList from '../components/cards/AvatarList.vue'
|
||||
import labelStyle from '../mixins/labelStyle.js'
|
||||
|
||||
import { NcRichText } from '@nextcloud/vue'
|
||||
import { RichText } from '@nextcloud/vue-richtext'
|
||||
import moment from '@nextcloud/moment'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
|
||||
@@ -103,7 +103,7 @@ export default {
|
||||
CalendarBlankIcon,
|
||||
CardBulletedOutlineIcon,
|
||||
TextIcon,
|
||||
NcRichText,
|
||||
RichText,
|
||||
},
|
||||
|
||||
mixins: [labelStyle],
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
'description': true,
|
||||
'short-description': shortDescription,
|
||||
}">
|
||||
<NcRichText v-tooltip.top="{ content: shortDescription ? t('deck', 'Click to expand description') : undefined }"
|
||||
<RichText v-tooltip.top="{ content: shortDescription ? t('deck', 'Click to expand description') : undefined }"
|
||||
:text="card.description"
|
||||
:use-markdown="true"
|
||||
@click.native="shortDescription = !shortDescription" />
|
||||
@@ -84,7 +84,7 @@
|
||||
'comment': true,
|
||||
'short-comment': shortComment,
|
||||
}">
|
||||
<NcRichText v-tooltip.top="{ content: shortComment ? t('deck', 'Click to expand comment') : undefined }"
|
||||
<RichText v-tooltip.top="{ content: shortComment ? t('deck', 'Click to expand comment') : undefined }"
|
||||
:text="commentMessageText"
|
||||
:use-markdown="false"
|
||||
@click.native="shortComment = !shortComment" />
|
||||
@@ -103,7 +103,7 @@ import DeckIcon from '../components/icons/DeckIcon.vue'
|
||||
import AvatarList from '../components/cards/AvatarList.vue'
|
||||
import labelStyle from '../mixins/labelStyle.js'
|
||||
|
||||
import { NcRichText } from '@nextcloud/vue'
|
||||
import { RichText } from '@nextcloud/vue-richtext'
|
||||
import moment from '@nextcloud/moment'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
|
||||
@@ -116,7 +116,7 @@ export default {
|
||||
CalendarBlankIcon,
|
||||
TextIcon,
|
||||
CardBulletedOutlineIcon,
|
||||
NcRichText,
|
||||
RichText,
|
||||
CommentProcessingOutlineIcon,
|
||||
},
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<template #icon>
|
||||
<PlusIcon :size="20" />
|
||||
</template>
|
||||
{{ t('deck', 'New card') }}
|
||||
{{ t('deck', 'Add card') }}
|
||||
</NcButton>
|
||||
<CardCreateDialog v-if="showAddCardModal" @close="toggleAddCardModel" />
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~9",
|
||||
"behat/behat": "~3.13.0",
|
||||
"guzzlehttp/guzzle": "7.5.1",
|
||||
"behat/behat": "~3.12.0",
|
||||
"guzzlehttp/guzzle": "7.5.0",
|
||||
"jarnaiz/behat-junit-formatter": "^1.3",
|
||||
"sabre/dav": "4.4.0",
|
||||
"symfony/event-dispatcher": "~5.4"
|
||||
|
||||
@@ -90,19 +90,3 @@ Feature: acl
|
||||
And the current user should not have "edit" permissions on the board
|
||||
And the current user should have "share" permissions on the board
|
||||
And the current user should not have "manage" permissions on the board
|
||||
|
||||
Scenario: Share a board multiple times
|
||||
Given Logging in using web as "user0"
|
||||
And creates a board named "Double shared board" with color "ff0000"
|
||||
And shares the board with user "user1"
|
||||
And shares the board with group "group1"
|
||||
And creates a board named "Single shared board" with color "00ff00"
|
||||
And shares the board with user "user1"
|
||||
When Logging in using web as "user1"
|
||||
And fetching the board list
|
||||
Then the response should have a status code "200"
|
||||
And the response should be a list of objects
|
||||
And the response should contain an element with the properties
|
||||
| property | value |
|
||||
| title | Double shared board |
|
||||
|
||||
|
||||
@@ -219,17 +219,6 @@ class BoardContext implements Context {
|
||||
$this->card = json_decode((string)$this->getResponse()->getBody(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^get the card details$/
|
||||
*/
|
||||
public function getCard() {
|
||||
$this->requestContext->sendJSONrequest('GET', '/index.php/apps/deck/cards/' . $this->card['id'], array_merge(
|
||||
$this->card
|
||||
));
|
||||
$this->requestContext->getResponse()->getBody()->seek(0);
|
||||
$this->card = json_decode((string)$this->getResponse()->getBody(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^set the card duedate to "([^"]*)"$/
|
||||
*/
|
||||
|
||||
@@ -166,29 +166,4 @@ class RequestContext implements Context {
|
||||
$this->getResponse()->getBody()->seek(0);
|
||||
return json_decode((string)$this->getResponse()->getBody(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^the response should be a list of objects$/
|
||||
*/
|
||||
public function theResponseShouldBeAListOfObjects() {
|
||||
$jsonResponse = $this->getResponseBodyFromJson();
|
||||
Assert::assertEquals(array_keys($jsonResponse), range(0, count($jsonResponse) - 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* @When /^the response should contain an element with the properties$/
|
||||
*/
|
||||
public function responseContainsElement(TableNode $element) {
|
||||
$json = $this->getResponseBodyFromJson();
|
||||
$found = array_filter($json, function ($board) use ($element) {
|
||||
foreach ($element as $row) {
|
||||
if ($row['value'] !== $board[$row['property']]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
Assert::assertEquals(1, count($found));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,29 +32,3 @@ Feature: decks
|
||||
And creates a board named "MyBoard" with color "000000"
|
||||
And create a stack named "ToDo"
|
||||
When create a card named "This is a very ong name that exceeds the maximum length of a deck board created which is longer than 255 characters This is a very ong name that exceeds the maximum length of a deck board created which is longer than 255 characters This is a very ong name that exceeds the maximum length of a deck board created which is longer than 255 characters"
|
||||
|
||||
Scenario: Setting a duedate on a card
|
||||
Given acting as user "user0"
|
||||
And creates a board named "MyBoard" with color "000000"
|
||||
And create a stack named "ToDo"
|
||||
And create a card named "Overdue task"
|
||||
When get the card details
|
||||
And the response should be a JSON array with the following mandatory values
|
||||
|key|value|
|
||||
|title|Overdue task|
|
||||
|duedate||
|
||||
|overdue|0|
|
||||
And set the card attribute "duedate" to "2020-12-12 13:37:00"
|
||||
When get the card details
|
||||
And the response should be a JSON array with the following mandatory values
|
||||
|key|value|
|
||||
|title|Overdue task|
|
||||
|duedate|2020-12-12T13:37:00+00:00|
|
||||
|overdue|3|
|
||||
And set the card attribute "duedate" to ""
|
||||
When get the card details
|
||||
And the response should be a JSON array with the following mandatory values
|
||||
|key|value|
|
||||
|title|Overdue task|
|
||||
|duedate||
|
||||
|overdue|0|
|
||||
|
||||
@@ -98,7 +98,7 @@ class ActivityManagerTest extends TestCase {
|
||||
->willReturn($this->l10n);
|
||||
|
||||
foreach ($managerClass->getConstants() as $constant => $value) {
|
||||
if (str_starts_with($constant, 'SUBJECT')) {
|
||||
if (strpos($constant, 'SUBJECT') === 0) {
|
||||
$format = $this->activityManager->getActivityFormat('cz', $value, [], false);
|
||||
if ($format !== '') {
|
||||
$this->assertStringContainsString('{user}', $format);
|
||||
|
||||
@@ -34,7 +34,6 @@ 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;
|
||||
use OCA\Deck\Validators\CardServiceValidator;
|
||||
@@ -189,10 +188,7 @@ class CardServiceTest extends TestCase {
|
||||
$cardExpected->setRelatedBoard($boardMock);
|
||||
$cardExpected->setRelatedStack($stackMock);
|
||||
$cardExpected->setLabels([]);
|
||||
$expected = new CardDetails($cardExpected);
|
||||
|
||||
$actual = $this->cardService->find(123);
|
||||
$this->assertEquals($expected->jsonSerialize(), $actual->jsonSerialize());
|
||||
$this->assertEquals($cardExpected, $this->cardService->find(123));
|
||||
}
|
||||
|
||||
public function testCreate() {
|
||||
|
||||
@@ -76,7 +76,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
|
||||
}
|
||||
|
||||
public function testValidateUsersWithNotStringNextcloud() {
|
||||
$this->expectExceptionMessage('User on setting uidRelation is invalid');
|
||||
$this->expectErrorMessage('User on setting uidRelation is invalid');
|
||||
$importService = $this->createMock(BoardImportService::class);
|
||||
$importService
|
||||
->method('getConfig')
|
||||
@@ -92,7 +92,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
|
||||
}
|
||||
|
||||
public function testValidateUsersWithNotFoundUser() {
|
||||
$this->expectExceptionMessage('User on setting uidRelation not found: nextcloud_user');
|
||||
$this->expectErrorMessage('User on setting uidRelation not found: nextcloud_user');
|
||||
$importService = $this->createMock(BoardImportService::class);
|
||||
$importService
|
||||
->method('getConfig')
|
||||
@@ -124,7 +124,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
|
||||
}
|
||||
|
||||
public function testGetBoardWithNoName() {
|
||||
$this->expectExceptionMessage('Invalid name of board');
|
||||
$this->expectErrorMessage('Invalid name of board');
|
||||
$importService = $this->createMock(BoardImportService::class);
|
||||
$this->service->setImportService($importService);
|
||||
$this->service->getBoard();
|
||||
|
||||
@@ -33,7 +33,6 @@ use OCA\Deck\Db\Label;
|
||||
use OCA\Deck\Db\LabelMapper;
|
||||
use OCA\Deck\Db\Stack;
|
||||
use OCA\Deck\Db\StackMapper;
|
||||
use OCA\Deck\Model\CardDetails;
|
||||
use OCA\Deck\Validators\StackServiceValidator;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use Psr\Log\LoggerInterface;
|
||||
@@ -122,9 +121,6 @@ class StackServiceTest extends TestCase {
|
||||
foreach ($cards as $card) {
|
||||
$card->setLabels($this->getLabels()[$card->getId()]);
|
||||
}
|
||||
return array_map(function ($card) {
|
||||
return new CardDetails($card);
|
||||
}, $cards);
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
const webpack = require('webpack');
|
||||
const merge = require('webpack-merge');
|
||||
const dev = require('./webpack.dev.js');
|
||||
|
||||
module.exports = merge(dev, {
|
||||
devServer: {
|
||||
hot: true,
|
||||
port: 3000,
|
||||
/**
|
||||
* This makes sure the main entrypoint is written to disk so it is
|
||||
* loaded by Nextcloud though our existing addScript calls
|
||||
*/
|
||||
writeToDisk: (filePath) => {
|
||||
return /deck\.js$/.test(filePath);
|
||||
},
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*'
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
||||
'process.env.HOT': true
|
||||
})
|
||||
]
|
||||
})
|
||||
41
webpack.js
41
webpack.js
@@ -1,8 +1,11 @@
|
||||
const webpackConfig = require('@nextcloud/webpack-vue-config')
|
||||
const webpack = require('webpack')
|
||||
const path = require('path')
|
||||
const ESLintPlugin = require('eslint-webpack-plugin')
|
||||
const StyleLintPlugin = require('stylelint-webpack-plugin')
|
||||
|
||||
const buildMode = process.env.NODE_ENV
|
||||
const isDev = buildMode === 'development'
|
||||
const isDevServer = process.env.WEBPACK_SERVE
|
||||
|
||||
webpackConfig.entry = {
|
||||
...webpackConfig.entry,
|
||||
@@ -13,15 +16,35 @@ webpackConfig.entry = {
|
||||
reference: path.join(__dirname, 'src', 'init-reference.js'),
|
||||
}
|
||||
|
||||
webpackConfig.stats = {
|
||||
context: path.resolve(__dirname, 'src'),
|
||||
assets: true,
|
||||
entrypoints: true,
|
||||
chunks: true,
|
||||
modules: true,
|
||||
if (isDevServer) {
|
||||
webpackConfig.output.publicPath = 'http://127.0.0.1:3000/'
|
||||
webpackConfig.plugins.push(
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.WEBPACK_SERVE': true,
|
||||
})
|
||||
)
|
||||
} else {
|
||||
webpackConfig.stats = {
|
||||
context: path.resolve(__dirname, 'src'),
|
||||
assets: true,
|
||||
entrypoints: true,
|
||||
chunks: true,
|
||||
modules: true,
|
||||
}
|
||||
}
|
||||
|
||||
// Workaround for https://github.com/nextcloud/webpack-vue-config/pull/432 causing problems with nextcloud-vue-collections
|
||||
webpackConfig.resolve.alias = {}
|
||||
webpackConfig.plugins.push(
|
||||
new ESLintPlugin({
|
||||
extensions: ['js', 'vue'],
|
||||
files: 'src',
|
||||
failOnError: !isDev,
|
||||
})
|
||||
)
|
||||
webpackConfig.plugins.push(
|
||||
new StyleLintPlugin({
|
||||
files: 'src/**/*.{css,scss,vue}',
|
||||
failOnError: !isDev,
|
||||
}),
|
||||
)
|
||||
|
||||
module.exports = webpackConfig
|
||||
|
||||
Reference in New Issue
Block a user