Compare commits

..

716 Commits

Author SHA1 Message Date
Julius Härtl
bb569f7df7 Bump version to 1.10.0-beta.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-22 10:36:42 +02:00
dependabot[bot]
4921f3dd62 Merge pull request #4700 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/vue-7.11.6 2023-05-17 21:39:16 +00:00
dependabot[bot]
a268d428bf Merge pull request #4695 from nextcloud/dependabot/npm_and_yarn/stable27/nextcloud/event-bus-3.1.0 2023-05-17 21:34:45 +00:00
dependabot[bot]
ab11f47afa Chore(deps): Bump @nextcloud/vue from 7.11.4 to 7.11.6
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.11.4 to 7.11.6.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.11.6/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.11.4...v7.11.6)

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 18:11:13 +00:00
Julius Härtl
c2aec9f312 Merge pull request #4691 from nextcloud/update-stable27-target-versions 2023-05-17 20:10:22 +02:00
Joas Schilling
04e9373c58 chore(CI): Adjust testing matrix for Nextcloud 27 on stable27
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-17 13:48:54 +02:00
Julius Härtl
2a5eece8fd Merge pull request #4673 from nextcloud/enh/noid/use-primary-element 2023-05-15 08:33:36 +02:00
Julius Härtl
513ad35af9 Merge pull request #4683 from nextcloud/enh/devcontainer 2023-05-15 08:25:59 +02:00
Julius Härtl
352e66fc8d feat: Add devcontainer and update dev docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-14 12:58:02 +02:00
dependabot[bot]
9bffe51fce Merge pull request #4676 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.12.0 2023-05-13 08:45:28 +00:00
dependabot[bot]
31367d3a36 Merge pull request #4675 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.11.4 2023-05-13 08:44:06 +00:00
dependabot[bot]
9a8ecf5cec Merge pull request #4678 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.8 2023-05-13 07:20:54 +00:00
dependabot[bot]
df4b6b117f Chore(deps): Bump @nextcloud/vue from 7.11.3 to 7.11.4
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.11.3 to 7.11.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.11.4/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.11.3...v7.11.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-13 05:46:21 +00:00
dependabot[bot]
82442917de bump cypress from 12.11.0 to 12.12.0
---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-13 05:46:18 +00:00
dependabot[bot]
da1b934b4f Merge pull request #4674 from nextcloud/dependabot/npm_and_yarn/main/dompurify-3.0.3 2023-05-13 05:45:30 +00:00
dependabot[bot]
a963518e88 Chore(deps-dev): Bump phpunit/phpunit from 9.6.7 to 9.6.8
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.7 to 9.6.8.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.8/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.7...9.6.8)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-13 02:58:25 +00:00
dependabot[bot]
a5263db6ca Chore(deps): Bump dompurify from 3.0.2 to 3.0.3
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-13 02:01:56 +00:00
Simon L
9f91ecc116 Use the color-primary-element* variables
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-12 16:26:34 +02:00
Nextcloud bot
ccf1445ccf Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-12 02:43:16 +00:00
Julius Härtl
4deca737ad Merge pull request #4664 from nextcloud/bugfix/4663 2023-05-11 15:15:30 +02:00
Julius Härtl
03e34b291e fix: Properly overwrite z-index of datepicker above modal
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-10 18:18:32 +02:00
Julius Härtl
6cda378fe2 Bump version to 1.10.0-beta.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-10 15:54:25 +02:00
Julius Härtl
c3e2aec149 Merge pull request #4657 from fsamapoor/replace_strpos_usages 2023-05-10 07:46:30 +02:00
Julius Härtl
b9c8e8f315 Merge pull request #4660 from nextcloud/bugfix/noid/overdue 2023-05-10 07:36:17 +02:00
Faraz Samapoor
b8566a3a0d Converts 'strpos()' calls to improve code readability.
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-10 08:55:42 +03:30
Julius Härtl
d028728407 fix: Bring back overdue column by removing faulty condition
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-09 19:27:41 +02:00
dependabot[bot]
c31891654c Merge pull request #4658 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.11.3 2023-05-09 06:17:19 +00:00
dependabot[bot]
e7c04ac19f Chore(deps): Bump @nextcloud/vue from 7.10.0 to 7.11.3
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.10.0 to 7.11.3.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v7.11.3/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.10.0...v7.11.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-09 05:39:52 +00:00
Nextcloud bot
7f250e8ae3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-08 02:40:17 +00:00
Julius Härtl
ca8dfd8cab Merge pull request #4651 from nextcloud/dependabot/github_actions/skjnldsv/read-package-engines-version-actions-2.1 2023-05-07 18:29:06 +02:00
Julius Härtl
ee55bc56fa Merge pull request #4656 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-5.0.1 2023-05-07 18:27:45 +02:00
dependabot[bot]
ff234f68e1 Merge pull request #4655 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-3.0.1 2023-05-06 06:21:07 +00:00
dependabot[bot]
dc344e4d50 Merge pull request #4652 from nextcloud/dependabot/composer/vimeo/psalm-5.11.0 2023-05-06 05:48:23 +00:00
dependabot[bot]
446bfcd22b Chore(deps): Bump peter-evans/create-pull-request from 3.14.0 to 5.0.1
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.14.0 to 5.0.1.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.14.0...284f54f989303d2699d373481a0cfa13ad5a6666)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-06 03:50:14 +00:00
dependabot[bot]
29cce7fde6 Chore(deps): Bump peter-evans/create-or-update-comment
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](3383acd359...ca08ebd5dc)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-06 03:44:06 +00:00
dependabot[bot]
e025d10aca Chore(deps-dev): Bump vimeo/psalm from 5.9.0 to 5.11.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.9.0 to 5.11.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/5.9.0...5.11.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-06 03:21:03 +00:00
dependabot[bot]
2e316331cc Chore(deps): Bump skjnldsv/read-package-engines-version-actions
Bumps [skjnldsv/read-package-engines-version-actions](https://github.com/skjnldsv/read-package-engines-version-actions) from 1.2 to 2.1.
- [Release notes](https://github.com/skjnldsv/read-package-engines-version-actions/releases)
- [Commits](https://github.com/skjnldsv/read-package-engines-version-actions/compare/v1.2...0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7)

---
updated-dependencies:
- dependency-name: skjnldsv/read-package-engines-version-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-06 01:56:35 +00:00
Julius Härtl
65fabe15f7 Merge pull request #4648 from fsamapoor/patch-1 2023-05-04 22:11:14 +02:00
Faraz Samapoor
3f34577064 Refactors lib\Activity\DeckProvider.php to improve code readability.
Converts 'strpos()' calls to 'str_contains()' to improve code readability.

Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-05-04 17:08:53 +03:30
Julius Härtl
284ca3d202 fix: z-index of datepicker in modal
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 13:11:09 +02:00
Julius Härtl
270c4658b8 Merge pull request #4640 from nextcloud/automated/noid/main-fix-npm-audit
[main] Fix npm audit
2023-05-03 12:45:02 +02:00
Julius Härtl
b189146a05 Merge pull request #4643 from nextcloud/bugfix/datetime-picker-position
fix: Append datetime picker to body to avoid cut off
2023-05-03 12:40:49 +02:00
Julius Härtl
b2d035f05d fix: Append datetime picker to body to avoid cut off
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 10:25:40 +02:00
nextcloud-command
9f72a230b5 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-05-03 08:13:29 +00:00
Julius Härtl
6a2d36d10f Update appbuild.yml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 10:06:01 +02:00
Julius Härtl
eb38112605 Create npm-audit-fix.yml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-03 10:05:34 +02:00
dependabot[bot]
b9629abc96 Merge pull request #4634 from nextcloud/dependabot/npm_and_yarn/main/vue/vue2-jest-29.2.4 2023-04-29 07:37:00 +00:00
dependabot[bot]
6acdfe4d1c Merge pull request #4635 from nextcloud/dependabot/npm_and_yarn/main/babel/runtime-7.21.5 2023-04-29 06:40:25 +00:00
dependabot[bot]
0f50af9d0a Chore(deps-dev): Bump @vue/vue2-jest from 29.2.3 to 29.2.4
Bumps [@vue/vue2-jest](https://github.com/vuejs/vue-jest) from 29.2.3 to 29.2.4.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/compare/v29.2.3...v29.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 06:30:51 +00:00
dependabot[bot]
c15fbcab0b Merge pull request #4633 from nextcloud/dependabot/npm_and_yarn/main/eslint-plugin-cypress-2.13.3 2023-04-29 06:30:04 +00:00
dependabot[bot]
24ab06109f Chore(deps): Bump @babel/runtime from 7.21.0 to 7.21.5
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.21.0 to 7.21.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.5/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 03:56:05 +00:00
dependabot[bot]
25e901060e Chore(deps-dev): Bump eslint-plugin-cypress from 2.13.2 to 2.13.3
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.13.2 to 2.13.3.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.13.2...v2.13.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 03:38:18 +00:00
dependabot[bot]
9d49aeb80b Merge pull request #4628 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.11.0 2023-04-29 03:17:48 +00:00
dependabot[bot]
194f920161 Chore(deps-dev): Bump cypress from 12.10.0 to 12.11.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.10.0 to 12.11.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.10.0...v12.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-29 01:58:03 +00:00
Nextcloud bot
8379a88b3e Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-28 02:40:29 +00:00
Julius Härtl
741e4be749 Merge pull request #4623 from nextcloud/deps/update 2023-04-27 15:46:58 +02:00
Julius Härtl
42aff58c6e Merge pull request #4622 from nextcloud/allow-to-change-visibility 2023-04-27 08:43:05 +02:00
Bjoern Schiessle
e2a4737fdb forbid changing the displayname or color of the calendar/deck when the user doesn't has the "manage" permissions
Signed-off-by: Bjoern Schiessle <bjoern@nextcloud.com>
2023-04-27 08:34:46 +02:00
Nextcloud bot
7f6895aa7a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-27 02:40:45 +00:00
Björn Schießle
14d686a6bc Allow user to toggle visibility of the calendar of deck boards
The calendar object needs to be exposed with "write" properties in order to allow users to hide/show the corresponding calendar in the calendar app. It doesn't has any affects on the general permissions for the whole board or the tasks. As soon as you select a task you jump to the deck app where the normal deck permissions are applied.

fixes: https://github.com/nextcloud/deck/issues/4618

Signed-off-by: Björn Schießle <bjoern@nextcloud.com>
2023-04-26 21:50:18 +02:00
Julius Härtl
b76c85f187 Merge pull request #4589 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-3.0.0 2023-04-26 18:37:33 +02:00
Julius Härtl
aea3f19c82 Merge pull request #4588 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-5.0.0 2023-04-26 18:37:26 +02:00
Julius Härtl
f98004f343 Merge pull request #4617 from pschopen/main 2023-04-26 18:12:17 +02:00
Julius Härtl
2066080e56 fix: move sidebar tab icons to material design
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-26 18:05:55 +02:00
Julius Härtl
df0db786be chore: Bump @nextcloud/vue @nextcloud/webpack-vue-config and remove @nextcloud/vue-richtext
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-26 16:41:05 +02:00
Julius Härtl
8f7712011f chore: Bump nextcloud-vue-collections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-26 16:31:14 +02:00
Julius Härtl
ee308c8afd Merge pull request #4586 from nextcloud/chore/remove-nextcloud-vue-dashboard
chore: Remove unused @nextcloud/vue-dashboard
2023-04-26 11:50:09 +02:00
Julius Härtl
bd9538d143 Merge pull request #4604 from nextcloud/Jerome-Herbinet-card-date-patch-1 2023-04-25 10:13:05 +02:00
Jérôme Herbinet
0c825addb1 Following nimishavijay's suggestion
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-04-25 09:05:33 +02:00
Nextcloud bot
ff8b010d78 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-23 02:40:52 +00:00
Philip
d27c083bcc Update Description.vue
Signed-off-by: Philip <65334274+pschopen@users.noreply.github.com>
2023-04-22 22:37:21 +02:00
dependabot[bot]
a7b2c65387 Merge pull request #4616 from nextcloud/dependabot/npm_and_yarn/main/relative-ci/agent-4.1.4 2023-04-22 07:41:42 +00:00
dependabot[bot]
693babf89a Merge pull request #4612 from nextcloud/dependabot/composer/tests/integration/behat/behat-approx-3.13.0 2023-04-22 07:37:38 +00:00
dependabot[bot]
0cf124c8b1 Merge pull request #4615 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.25.1 2023-04-22 07:06:59 +00:00
dependabot[bot]
95f6cfe748 bump @relative-ci/agent from 4.1.3 to 4.1.4
---
updated-dependencies:
- dependency-name: "@relative-ci/agent"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 06:59:21 +00:00
dependabot[bot]
3e39db784c Merge pull request #4611 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.10.0 2023-04-22 06:58:22 +00:00
dependabot[bot]
fbbe30be6d Merge pull request #4609 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/router-2.1.1 2023-04-22 06:56:15 +00:00
dependabot[bot]
7fb0822ce8 Chore(deps-dev): Update behat/behat requirement in /tests/integration
Updates the requirements on [behat/behat](https://github.com/Behat/Behat) to permit the latest version.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.12.0...v3.13.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 06:46:13 +00:00
dependabot[bot]
8329caa94a Merge pull request #4607 from nextcloud/dependabot/composer/tests/integration/guzzlehttp/guzzle-7.5.1 2023-04-22 06:45:29 +00:00
dependabot[bot]
bf015cd951 Chore(deps): Bump shivammathur/setup-php from 2.24.0 to 2.25.1
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.24.0 to 2.25.1.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.24.0...2.25.1)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 03:46:56 +00:00
dependabot[bot]
bee0fde025 bump cypress from 12.9.0 to 12.10.0
---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 03:21:31 +00:00
dependabot[bot]
f18069c504 bump @nextcloud/router from 2.0.1 to 2.1.1
---
updated-dependencies:
- dependency-name: "@nextcloud/router"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 03:18:25 +00:00
dependabot[bot]
8b410a453a Chore(deps-dev): Update guzzlehttp/guzzle requirement
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.5/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.5.0...7.5.1)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-22 03:06:05 +00:00
Jérôme Herbinet
be75d8890c Better display of card dates
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-04-20 10:35:50 +02:00
Nextcloud bot
a79f60bad5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-19 02:40:44 +00:00
Nextcloud bot
1901c986ff Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-16 02:39:48 +00:00
dependabot[bot]
b0245d1bdb Merge pull request #4598 from nextcloud/dependabot/npm_and_yarn/main/stylelint-webpack-plugin-4.1.1 2023-04-15 09:04:37 +00:00
dependabot[bot]
32528866fb Merge pull request #4601 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.7 2023-04-15 08:54:28 +00:00
dependabot[bot]
f1718821fc Chore(deps-dev): Bump stylelint-webpack-plugin from 4.1.0 to 4.1.1
Bumps [stylelint-webpack-plugin](https://github.com/webpack-contrib/stylelint-webpack-plugin) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/webpack-contrib/stylelint-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/stylelint-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/stylelint-webpack-plugin/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: stylelint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 08:49:57 +00:00
dependabot[bot]
384f6c97b8 Merge pull request #4600 from nextcloud/dependabot/npm_and_yarn/main/dompurify-3.0.2 2023-04-15 08:49:28 +00:00
dependabot[bot]
bb09f5510c Merge pull request #4599 from nextcloud/dependabot/npm_and_yarn/main/eslint-webpack-plugin-4.0.1 2023-04-15 08:49:17 +00:00
dependabot[bot]
65f2e75775 Merge pull request #4597 from nextcloud/dependabot/npm_and_yarn/main/vue/test-utils-1.3.5 2023-04-15 08:49:03 +00:00
dependabot[bot]
f75be3a041 Chore(deps-dev): Bump phpunit/phpunit from 9.6.6 to 9.6.7
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.6 to 9.6.7.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.7/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.6...9.6.7)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 03:41:43 +00:00
dependabot[bot]
aaa651be37 bump dompurify from 3.0.1 to 3.0.2
---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 02:58:15 +00:00
dependabot[bot]
baf807b91a Chore(deps-dev): Bump eslint-webpack-plugin from 4.0.0 to 4.0.1
Bumps [eslint-webpack-plugin](https://github.com/webpack-contrib/eslint-webpack-plugin) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/webpack-contrib/eslint-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-webpack-plugin/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: eslint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-15 01:58:20 +00:00
Nextcloud bot
559c5c7696 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-09 02:42:08 +00:00
dependabot[bot]
5c9ad85c7e Chore(deps): Bump peter-evans/create-or-update-comment
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 2.1.1 to 3.0.0.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](67dcc547d3...3383acd359)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-08 03:24:41 +00:00
dependabot[bot]
42c8e90abb Chore(deps): Bump peter-evans/create-pull-request from 4.2.4 to 5.0.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.4 to 5.0.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](38e0b6e68b...5b4a9f6a9e)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-08 03:24:37 +00:00
Nextcloud bot
8b511db4cf Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-06 02:41:09 +00:00
Julius Härtl
bf37cc2ed8 fix: Move dashboard fetching to dedicated store module
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-05 20:56:31 +02:00
dependabot[bot]
711bc47b0d Merge pull request #4544 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/webpack-vue-config-5.5.0 2023-04-05 18:49:57 +00:00
Julius Härtl
faac607b75 chore: Remove unused @nextcloud/vue-dashboard
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-05 20:33:27 +02:00
Julius Härtl
280cc57abc fix: Workaround vue resolving with nextcloud-vue-collections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-05 20:31:04 +02:00
dependabot[bot]
b7a6df8224 Chore(deps-dev): Bump @nextcloud/webpack-vue-config from 5.4.0 to 5.5.0
Dependabot couldn't find the original pull request head commit, 0910e16461b4b75d4de40f5441c237066bdcec74.
2023-04-05 13:56:26 +00:00
Nextcloud bot
d13cc9f000 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-05 02:42:33 +00:00
Julius Härtl
f82297f556 Merge pull request #4574 from joshtrichards/patch-1 2023-04-04 17:52:59 +02:00
Julius Härtl
d067ac80a0 Merge pull request #4489 from nextcloud/tests/4483
tests(integration): Add integration tests for due dates
2023-04-04 17:52:38 +02:00
Julius Härtl
b79566d6a4 tests: Cover setting/resetting card due date with integration test
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-03 15:35:51 +02:00
Julius Härtl
0b2ea0f839 fix: Centralize usage of CardDetails
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-03 15:35:51 +02:00
Julius Härtl
c1a16c9e85 Merge pull request #4578 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.9.0
Chore(deps-dev): Bump cypress from 12.8.1 to 12.9.0
2023-04-03 09:17:34 +02:00
dependabot[bot]
819fc5b3a8 Chore(deps-dev): Bump cypress from 12.8.1 to 12.9.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.8.1 to 12.9.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.8.1...v12.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 06:20:33 +00:00
Josh Richards
bd37672b0f Stop tag being edit button if user lacks perms
Addresses #4554 

Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-04-03 08:18:23 +02:00
dependabot[bot]
d9de349441 Merge pull request #4580 from nextcloud/dependabot/composer/vimeo/psalm-5.9.0 2023-04-01 07:25:39 +00:00
dependabot[bot]
fb6a7a0f3e Chore(deps-dev): Bump vimeo/psalm from 5.8.0 to 5.9.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/5.8.0...5.9.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-01 03:56:13 +00:00
dependabot[bot]
728d2a8ab4 Merge pull request #4575 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.6 2023-04-01 03:48:56 +00:00
dependabot[bot]
4575bd5d67 Merge pull request #4576 from nextcloud/dependabot/npm_and_yarn/main/eslint-plugin-cypress-2.13.2 2023-04-01 03:33:12 +00:00
dependabot[bot]
7d0898ccd4 Chore(deps-dev): Bump eslint-plugin-cypress from 2.12.1 to 2.13.2
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.12.1 to 2.13.2.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.12.1...v2.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-01 01:57:50 +00:00
dependabot[bot]
0ce04e25c3 Chore(deps-dev): Bump phpunit/phpunit from 9.6.5 to 9.6.6
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.5 to 9.6.6.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.5...9.6.6)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-01 01:56:32 +00:00
Julius Härtl
60ea0565c7 Merge pull request #4566 from nextcloud/fix/share_card_not_found 2023-03-29 11:00:05 +02:00
Jonas
a7608b1900 Gracefully handle not found card for a share
Fixes: #3464
Fixes: #4565

Signed-off-by: Jonas <jonas@freesources.org>
2023-03-28 19:14:09 +02:00
Nextcloud bot
d4b5d9e2f6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-28 02:31:35 +00:00
Julius Härtl
89640e1ca1 Merge pull request #4557 from nextcloud/dependabot/github_actions/skjnldsv/read-package-engines-version-actions-2.1 2023-03-27 11:24:27 +02:00
Julius Härtl
25decf95c5 Merge pull request #4561 from nextcloud/bugfix/4523 2023-03-27 10:51:44 +02:00
Julius Härtl
22616d8266 fix: Adapt NcEmptyContent usages to new slots
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-27 10:28:49 +02:00
dependabot[bot]
942b8d8919 Merge pull request #4559 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.8.4 2023-03-25 05:13:48 +00:00
dependabot[bot]
72fff9c811 Chore(deps): Bump @nextcloud/vue from 7.8.1 to 7.8.4
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.8.1 to 7.8.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.8.1...v7.8.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-25 04:52:57 +00:00
dependabot[bot]
a14e6e3134 Chore(deps): Bump skjnldsv/read-package-engines-version-actions
Bumps [skjnldsv/read-package-engines-version-actions](https://github.com/skjnldsv/read-package-engines-version-actions) from 1.2 to 2.1.
- [Release notes](https://github.com/skjnldsv/read-package-engines-version-actions/releases)
- [Commits](1bdcee71fa...0ce2ed60f6)

---
updated-dependencies:
- dependency-name: skjnldsv/read-package-engines-version-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-25 02:56:44 +00:00
dependabot[bot]
a27b070b49 Merge pull request #4548 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-4.2.4 2023-03-18 06:27:35 +00:00
dependabot[bot]
059641a7b0 Merge pull request #4547 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.8.1 2023-03-18 04:15:08 +00:00
dependabot[bot]
f8072c3f28 Merge pull request #4546 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.8.1 2023-03-18 04:14:40 +00:00
dependabot[bot]
f03d48c395 Chore(deps): Bump peter-evans/create-pull-request from 4.2.3 to 4.2.4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](2b011faafd...38e0b6e68b)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-18 04:04:44 +00:00
dependabot[bot]
c947ab04d3 Chore(deps): Bump @nextcloud/vue from 7.8.0 to 7.8.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.8.0 to 7.8.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.8.0...v7.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-18 02:58:33 +00:00
dependabot[bot]
117e3a6497 Chore(deps-dev): Bump cypress from 12.7.0 to 12.8.1
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.7.0 to 12.8.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.7.0...v12.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-18 02:58:18 +00:00
Nextcloud bot
29aae81134 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-18 02:39:33 +00:00
Nextcloud bot
35fbc33e60 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-17 02:39:03 +00:00
Nextcloud bot
1d63e39f6a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 02:40:43 +00:00
Julius Härtl
eaa1b93f15 Merge pull request #4534 from Jerome-Herbinet/patch-3
Fix consistency of a "Create card" wording with its equivalent for Notes ("New card")
2023-03-15 14:53:05 +01:00
Julius Härtl
f8bcaf6ea9 Merge pull request #4535 from Jerome-Herbinet/patch-4
Fix : Overlapping expiry dates on tags
2023-03-15 13:49:41 +01:00
Jérôme Herbinet
de6086b4e1 Fix : Overlapping expiry dates on tags
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-03-15 13:35:22 +01:00
Jérôme Herbinet
8620e7fc6c Consistency of a wording with its equiv. for Notes
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-03-15 13:18:52 +01:00
dependabot[bot]
ad1b5fcca2 Merge pull request #4532 from nextcloud/dependabot/npm_and_yarn/webpack-5.76.1 2023-03-15 06:56:45 +00:00
dependabot[bot]
8383c439d5 Chore(deps): Bump webpack from 5.74.0 to 5.76.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.74.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.74.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-15 06:47:09 +00:00
Nextcloud bot
b7e48a5e40 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-15 02:38:41 +00:00
dependabot[bot]
51a6c614dd Merge pull request #4529 from nextcloud/dependabot/npm_and_yarn/main/jest-29.5.0 2023-03-11 06:13:46 +00:00
dependabot[bot]
d8000a9aa8 Merge pull request #4527 from nextcloud/dependabot/composer/vimeo/psalm-5.8.0 2023-03-11 05:43:25 +00:00
dependabot[bot]
07f0515551 Merge pull request #4526 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.5 2023-03-11 05:23:23 +00:00
dependabot[bot]
988b46e4e8 Chore(deps-dev): Bump jest from 29.4.3 to 29.5.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.3 to 29.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.5.0/packages/jest)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-11 02:58:06 +00:00
dependabot[bot]
7cc6d42ff5 Chore(deps-dev): Bump vimeo/psalm from 5.7.7 to 5.8.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.7.7 to 5.8.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/5.7.7...5.8.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-11 02:56:33 +00:00
dependabot[bot]
d6e8a36171 Chore(deps-dev): Bump phpunit/phpunit from 9.6.4 to 9.6.5
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.4 to 9.6.5.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.4...9.6.5)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-11 02:56:26 +00:00
Julius Härtl
e0542996e3 Merge pull request #4494 from nextcloud/tests/4493
tests(integration): Add test for multiple board shares to the same user
2023-03-10 08:27:39 +01:00
Julius Härtl
47cfdb4a05 Merge pull request #4504 from nextcloud/dependabot/npm_and_yarn/main/vue/vue2-jest-29.2.3 2023-03-10 08:27:21 +01:00
Julius Härtl
d9f83b7833 Merge pull request #4510 from nextcloud/bugfix/noid/close-without-token 2023-03-10 08:26:50 +01:00
Nextcloud bot
5a36c644af Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 02:40:01 +00:00
Julius Härtl
cd3f658741 Merge pull request #4512 from nextcloud/bugfix/4511 2023-03-08 18:32:19 +01:00
Julius Härtl
fc183f6981 Merge pull request #4518 from nextcloud/bugfix/4517/fix-board-api-details 2023-03-08 08:43:32 +01:00
Joas Schilling
83bc2c5cf2 fix(API): Fix board API details parameter to work as expected
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-08 07:38:25 +01:00
Marcel Klehr
e2f80b6e19 Merge pull request #4514 from nextcloud/bugfix/noid/reference-error-logging 2023-03-07 10:24:22 +01:00
Julius Härtl
b207e28c70 fix(references): Mute NoPermissionException as it is expected to happen for references
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 10:06:45 +01:00
Julius Härtl
e4acb37b3b fix(cards): Fix card sizing by limiting too wide style rules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 12:30:02 +01:00
Julius Härtl
25f86beec9 fix(sessions): Do not send close request without token
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 12:04:48 +01:00
dependabot[bot]
6f6df150d1 Merge pull request #4506 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.8.0 2023-03-06 06:26:01 +00:00
dependabot[bot]
b45f182069 Merge pull request #4505 from nextcloud/dependabot/npm_and_yarn/main/dompurify-3.0.1 2023-03-06 06:24:36 +00:00
dependabot[bot]
ac31ed1004 Chore(deps): Bump @nextcloud/vue from 7.7.1 to 7.8.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.7.1 to 7.8.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.7.1...v7.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 07:17:24 +01:00
dependabot[bot]
82ea7ccb83 Chore(deps-dev): Bump @vue/vue2-jest from 29.2.2 to 29.2.3
Bumps [@vue/vue2-jest](https://github.com/vuejs/vue-jest) from 29.2.2 to 29.2.3.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/compare/v29.2.2...v29.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 07:17:18 +01:00
dependabot[bot]
bf3d8f14aa Chore(deps): Bump dompurify from 3.0.0 to 3.0.1
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.0.0...3.0.1)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 07:17:14 +01:00
Nextcloud bot
1d40fd3ab0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 02:39:08 +00:00
dependabot[bot]
1163e544b1 Merge pull request #4500 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.4 2023-03-04 11:04:55 +00:00
dependabot[bot]
967bcc0226 Chore(deps-dev): Bump phpunit/phpunit from 9.6.3 to 9.6.4
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.3 to 9.6.4.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.3...9.6.4)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-04 10:55:57 +00:00
Julius Härtl
1e9d8663a9 Merge pull request #4499 from nextcloud/update-main-version 2023-03-04 11:54:41 +01:00
Nextcloud bot
61db3c2769 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 02:40:21 +00:00
Joas Schilling
65ea7160a5 chore: Add Nextcloud 27 support on main
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-03 11:30:29 +01:00
Julius Härtl
a4c7a65ffa Merge pull request #4459 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/dialogs-4.0.1 2023-03-02 22:41:39 +01:00
Julius Härtl
8a67125503 Merge pull request #4457 from nextcloud/dependabot/npm_and_yarn/main/dompurify-3.0.0 2023-03-02 22:41:34 +01:00
dependabot[bot]
f7fc54e628 Chore(deps): Bump dompurify from 2.4.3 to 3.0.0
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.3 to 3.0.0.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.3...3.0.0)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 22:34:16 +01:00
dependabot[bot]
28ea6ed03e bump @nextcloud/dialogs from 3.2.0 to 4.0.1
---
updated-dependencies:
- dependency-name: "@nextcloud/dialogs"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 22:33:51 +01:00
Julius Härtl
6c4a12707d Merge pull request #4490 from nextcloud/fix/4484
fix: Use proper z-index for text menubar
2023-03-01 22:13:22 +01:00
Julius Härtl
e824d4eb30 tests(integration): Add test for multiple board shares to the same user
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-01 21:49:10 +01:00
Marcel Klehr
8fb7bb83a9 Merge pull request #4493 from nextcloud/bugfix/noid/duplicate-boards 2023-03-01 18:47:20 +01:00
Julius Härtl
fbb410667a fix: Always return sorted index array to make sure a json array is the result
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-01 17:28:13 +01:00
Julius Härtl
f69868ae26 Merge pull request #4492 from nextcloud/fix/undefined-array-index-dashboard 2023-03-01 15:59:33 +01:00
Marcel Klehr
e41627d763 fix(dashboard): Fix undefined array index
fixes #4491

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-03-01 15:43:26 +01:00
Marcel Klehr
4a89db6d67 Merge pull request #4487 from nextcloud/bugfix/3358
fix: Use passed userid when getting attachment folder
2023-02-28 13:28:10 +01:00
Julius Härtl
a2ffdb41af Merge pull request #4488 from nextcloud/bugfix/4483 2023-02-28 09:22:47 +01:00
Julius Härtl
9fe79ed135 fix: Use proper z-index for text menubar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-27 23:46:29 +01:00
Julius Härtl
a198a4eef4 fix: Avoid mutating the due date when calculating days
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-27 23:13:06 +01:00
Julius Härtl
62752f8b72 fix: Use passed userid when getting attachment folder
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-27 22:56:28 +01:00
Joas Schilling
2c96108b2e Merge pull request #4485 from nextcloud/fix/permission-userid
fix: Pass user id along to properly check permissions in background jobs
2023-02-27 12:48:15 +01:00
Julius Härtl
1beff8945b fix: Pass user id along to properly check permissions in background jobs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-27 11:25:45 +01:00
Julius Härtl
ff2ad61b6d Merge pull request #4471 from nextcloud/dependabot/composer/vimeo/psalm-5.7.7 2023-02-27 09:29:51 +01:00
Julius Härtl
05941396c0 Merge pull request #4478 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/l10n-2.1.0 2023-02-27 09:23:04 +01:00
Julius Härtl
6d037e7d94 Merge pull request #4477 from nextcloud/dependabot/npm_and_yarn/main/stylelint-webpack-plugin-4.1.0 2023-02-27 09:06:32 +01:00
Julius Härtl
0768955559 Merge pull request #4479 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.7.0 2023-02-27 09:06:17 +01:00
Julius Härtl
faf35a98a3 Merge pull request #4472 from nextcloud/dependabot/github_actions/actions/github-script-6 2023-02-27 08:39:27 +01:00
Julius Härtl
815cc605a8 Merge pull request #4474 from nextcloud/dependabot/github_actions/svenstaro/upload-release-action-2.5.0 2023-02-27 08:39:20 +01:00
Julius Härtl
3d7410c30c Merge pull request #4481 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.7.1
bump @nextcloud/vue from 7.5.0 to 7.7.1
2023-02-27 08:38:41 +01:00
Julius Härtl
3921bd7f60 Merge pull request #4480 from nextcloud/dependabot/npm_and_yarn/main/babel/runtime-7.21.0
bump @babel/runtime from 7.20.13 to 7.21.0
2023-02-27 08:38:09 +01:00
dependabot[bot]
91ae931461 bump @nextcloud/vue from 7.5.0 to 7.7.1
---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 04:24:11 +00:00
dependabot[bot]
fc4ccf4010 bump @babel/runtime from 7.20.13 to 7.21.0
---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 04:01:01 +00:00
dependabot[bot]
b3cc1da02d chore(deps-dev): bump cypress from 12.5.1 to 12.7.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.5.1 to 12.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.5.1...v12.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:59:05 +00:00
dependabot[bot]
e4bd1efe00 chore(deps): bump @nextcloud/l10n from 2.0.1 to 2.1.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v2.0.1...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:58:33 +00:00
dependabot[bot]
45f3a64ae4 chore(deps-dev): bump stylelint-webpack-plugin from 4.0.0 to 4.1.0
Bumps [stylelint-webpack-plugin](https://github.com/webpack-contrib/stylelint-webpack-plugin) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/webpack-contrib/stylelint-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/stylelint-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/stylelint-webpack-plugin/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: stylelint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:58:04 +00:00
dependabot[bot]
52940ed4a1 chore(deps): bump svenstaro/upload-release-action from 2.4.1 to 2.5.0
Bumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/svenstaro/upload-release-action/releases)
- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)
- [Commits](cc92c9093e...7319e4733e)

---
updated-dependencies:
- dependency-name: svenstaro/upload-release-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:57:50 +00:00
dependabot[bot]
2ba1412ae1 chore(deps): bump actions/github-script from 5 to 6
Bumps [actions/github-script](https://github.com/actions/github-script) from 5 to 6.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:57:45 +00:00
dependabot[bot]
b42ff90e0c chore(deps-dev): bump vimeo/psalm from 5.6.0 to 5.7.7
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.6.0 to 5.7.7.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/5.6.0...5.7.7)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-25 02:56:28 +00:00
Nextcloud bot
de66f47ac9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-24 02:42:08 +00:00
Julius Härtl
f5b1e89a9c release: Bump version to 1.9.0-beta.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-22 17:39:58 +01:00
Nextcloud bot
4e9a00c3a2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-22 02:34:17 +00:00
Julius Härtl
0af2fd45e7 Merge pull request #4273 from alangecker/live-updates
live updates 🎉
2023-02-21 22:18:45 +01:00
chandi Langecker
b4eece879d test(unit): fix tests, mostly due to missing boardId's, which are now required for event emitting
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:22 +01:00
chandi Langecker
c03d067464 style(sessionlist): less incisive borders
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:22 +01:00
chandi Langecker
437f5c9ab5 chore(psalm): adding missing events for annotation
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:22 +01:00
chandi Langecker
2e6b20d71d live updates: remove deleted cards with loadStacks() and not just append them
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:22 +01:00
chandi Langecker
41d8867bdd live updates: listen for stack and board changes
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:22 +01:00
chandi Langecker
322ee92573 live updates for boards
Signed-off-by: chandi Langecker <git@chandi.it>
2023-02-21 21:53:20 +01:00
Nextcloud bot
9674c344ea Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-21 02:33:43 +00:00
Julius Härtl
33912454ae Merge pull request #4460 from nextcloud/dependabot/npm_and_yarn/main/nextcloud-vue-collections-0.11.0
bump nextcloud-vue-collections from 0.10.0 to 0.11.0
2023-02-20 19:03:21 +01:00
Julius Härtl
15c1c9ddc4 Merge pull request #4452 from nextcloud/enh/perf 2023-02-20 16:46:02 +01:00
Nextcloud bot
8bb106b327 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-19 02:34:25 +00:00
dependabot[bot]
43c1a3bbc7 bump nextcloud-vue-collections from 0.10.0 to 0.11.0
---
updated-dependencies:
- dependency-name: nextcloud-vue-collections
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-18 04:39:07 +00:00
Nextcloud bot
5e1b6d248c Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-18 02:34:45 +00:00
Julius Härtl
28a9c66143 ci: Use faster password hashing for CI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:23:29 +01:00
Julius Härtl
b4de6a8f96 fix: Chunk in-queries to 1000 items
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:43 +01:00
Julius Härtl
46df19a3a6 fix: Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:28 +01:00
Julius Härtl
b19b7794bc perf: Cache full/partial board data differently
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
29d21e05e8 chore: Remove some unused methods
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
afcd226be8 refactor: Unify board enrichment
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
4b319d8d23 perf: Avoid extra round trips when checking permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
8ec8a91cab perf: Group queries for fetching overview cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
96d1e14390 perf: Cache stacks per request
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
c01e542044 perf: remove duplicate fetching of assignments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
133e3f3140 tests: Adapt tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
c1e29ab8cb fix: Fix missing getBoardId method on AclEvent
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:27 +01:00
Julius Härtl
af21282468 style: php-cs-fixer
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
ba3cab1036 perf: Combine fetching acls for boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
81c0d96357 perf: Make fetching user details lazy
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
ea8b7999f7 perf: No need to fetch boards every middleware call
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
7bfbbee6e8 perf: Enrich calls in combined sql queries
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
23813b7a03 perf: Add mapper methods to get multiple labels/assignments for cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Julius Härtl
2542b6ed16 ci: Add query count for integration tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-17 09:16:26 +01:00
Nextcloud bot
0878adb124 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-17 02:33:42 +00:00
Nextcloud bot
2d91c8200f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-16 02:33:26 +00:00
Julius Härtl
1aa4da2fab Merge pull request #4442 from nextcloud/dependabot/npm_and_yarn/main/p-queue-7.3.4
Chore(deps): Bump p-queue from 7.3.0 to 7.3.4
2023-02-15 15:05:14 +01:00
Julius Härtl
46b01e905c Merge pull request #4446 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.3
Chore(deps-dev): Bump phpunit/phpunit from 9.6.1 to 9.6.3
2023-02-15 15:05:04 +01:00
Julius Härtl
6872e96b2d Merge pull request #4453 from nextcloud/dependabot/npm_and_yarn/main/jest-29.4.3
Chore(deps-dev): Bump jest from 29.4.1 to 29.4.3
2023-02-15 15:04:51 +01:00
dependabot[bot]
f2f5ec6163 Chore(deps-dev): Bump jest from 29.4.1 to 29.4.3
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.1 to 29.4.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.4.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 12:47:08 +00:00
dependabot[bot]
44f0156663 Chore(deps): Bump p-queue from 7.3.0 to 7.3.4
Bumps [p-queue](https://github.com/sindresorhus/p-queue) from 7.3.0 to 7.3.4.
- [Release notes](https://github.com/sindresorhus/p-queue/releases)
- [Commits](https://github.com/sindresorhus/p-queue/compare/v7.3.0...v7.3.4)

---
updated-dependencies:
- dependency-name: p-queue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 12:47:02 +00:00
dependabot[bot]
5342102d95 Chore(deps-dev): Bump phpunit/phpunit from 9.6.1 to 9.6.3
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.1 to 9.6.3.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.1...9.6.3)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 12:46:36 +00:00
Julius Härtl
2f40583c50 Merge pull request #3793 from nextcloud/enh/upcomming_card_optimisation
Optimise upcomming overview creation
2023-02-15 13:45:44 +01:00
Julius Härtl
2ffecd81d4 chore: Fix typings and update psalm baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-15 13:29:26 +01:00
Julius Härtl
997e479a69 fix: Review feedback on vue tempalte
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-15 13:19:12 +01:00
Raul
7575bd0bf7 Fix due status calculation
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
99f5e8b76e Use presorted cards on front-end view
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
308bf80de0 Add Card::getDaysUntilDue() function
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
4388d898ae Include board summary in card details
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
3a730cf38f Add phpDoc typehints for magic methods
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
6ae61368a7 Update Card serialization (jsonSerialize usages) to use CardDetails model
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Raul
4c729530ce Add CardDetails model
Signed-off-by: Raul <raul@nextcloud.com>
2023-02-15 13:18:11 +01:00
Nextcloud bot
d43277a5b2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-15 02:33:30 +00:00
Nextcloud bot
006ab80a42 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-14 02:33:20 +00:00
Nextcloud bot
fa480003d9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-13 02:32:39 +00:00
Nextcloud bot
a386ad654a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-12 02:33:21 +00:00
Nextcloud bot
33d0d2bbd3 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-11 02:33:35 +00:00
Julius Härtl
fc324f611a Merge pull request #4422 from nextcloud/enh/noid/discoverable-searchable-ref-provider 2023-02-10 14:45:23 +01:00
Nextcloud bot
e1afa830f2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-10 02:34:48 +00:00
Marcel Klehr
9ee8da97a5 Merge pull request #4439 from nextcloud/perf/app-boot 2023-02-09 15:52:23 +01:00
Marcel Klehr
8db953f7d7 Merge pull request #4440 from nextcloud/perf/simplify-dashboard 2023-02-09 11:28:58 +01:00
Julius Härtl
8eca148a6e perf: Lazy load dashboard components
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-09 10:24:32 +01:00
Julius Härtl
403a4dc294 perf: Register notifier and resource listener lazy
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-09 10:10:42 +01:00
Julien Veyssier
f775728802 composer update nextcloud/ocp
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:06 +01:00
Julien Veyssier
514673f6e7 fix integration test to search for comments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:06 +01:00
Julien Veyssier
bbd6f0c26c use deck icon for boards, MDI-card for cards and MDI-comment for comments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:06 +01:00
Julien Veyssier
b4d477dc05 implement BoardReferenceWidget and CommentReferenceWidget
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:05 +01:00
Julien Veyssier
9658ccd843 refactor CommentService a bit, add BoardReferenceProvider and CommentReferenceProvider (no widgets but resolving)
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:05 +01:00
Julien Veyssier
264be93a74 fix search provider names/ids, set results thumbnail urls, use them in ref provider
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:05 +01:00
Julien Veyssier
5830dbd467 implement discoverable searchable reference provider
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-08 14:02:05 +01:00
Nextcloud bot
58a014d401 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-07 02:33:07 +00:00
Julius Härtl
7c6e0dbdfb Merge pull request #4430 from nextcloud/dependabot/npm_and_yarn/main/stylelint-webpack-plugin-4.0.0 2023-02-06 11:26:21 +01:00
Julius Härtl
1ed7f48797 Merge pull request #4434 from nextcloud/dependabot/npm_and_yarn/main/eslint-webpack-plugin-4.0.0 2023-02-06 11:26:00 +01:00
Nextcloud bot
7a72687cbc Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-05 02:32:11 +00:00
dependabot[bot]
6d42c72dc5 bump eslint-webpack-plugin from 3.2.0 to 4.0.0
---
updated-dependencies:
- dependency-name: eslint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 08:23:51 +00:00
dependabot[bot]
6205699174 Merge pull request #4433 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.5.1 2023-02-04 08:22:51 +00:00
dependabot[bot]
0f6fb1fb2c Merge pull request #4432 from nextcloud/dependabot/github_actions/svenstaro/upload-release-action-2.4.1 2023-02-04 08:10:33 +00:00
dependabot[bot]
f63b6775de Merge pull request #4431 from nextcloud/dependabot/npm_and_yarn/main/vue-material-design-icons-5.2.0 2023-02-04 08:10:24 +00:00
dependabot[bot]
d532383f02 Merge pull request #4429 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-2.1.1 2023-02-04 08:09:52 +00:00
dependabot[bot]
d0d02a7f51 bump cypress from 12.4.1 to 12.5.1
---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 08:08:15 +00:00
dependabot[bot]
6f79f7f817 Merge pull request #4427 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/eslint-config-8.2.1 2023-02-04 08:07:07 +00:00
dependabot[bot]
b685f14b3b Merge pull request #4425 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.1 2023-02-04 06:55:51 +00:00
dependabot[bot]
cf3bb646e8 Chore(deps): Bump svenstaro/upload-release-action from 2.4.0 to 2.4.1
Bumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/svenstaro/upload-release-action/releases)
- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)
- [Commits](2728235f7d...cc92c9093e)

---
updated-dependencies:
- dependency-name: svenstaro/upload-release-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 03:01:33 +00:00
dependabot[bot]
095481d24f bump vue-material-design-icons from 5.1.2 to 5.2.0
---
updated-dependencies:
- dependency-name: vue-material-design-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 02:59:24 +00:00
dependabot[bot]
aa922f8fce bump stylelint-webpack-plugin from 3.3.0 to 4.0.0
---
updated-dependencies:
- dependency-name: stylelint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 02:56:30 +00:00
dependabot[bot]
301605d6fc Chore(deps): Bump peter-evans/create-or-update-comment
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](5adcb0bb0f...67dcc547d3)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 02:50:01 +00:00
Nextcloud bot
89ecb65d33 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-04 02:32:47 +00:00
dependabot[bot]
8825a75574 Chore(deps-dev): Bump @nextcloud/eslint-config from 8.2.0 to 8.2.1
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 8.2.0 to 8.2.1.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v8.2.0...v8.2.1)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 02:01:43 +00:00
dependabot[bot]
c962fd1335 Chore(deps-dev): Bump phpunit/phpunit from 9.5.28 to 9.6.1
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.28 to 9.6.1.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.28...9.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 02:00:31 +00:00
Julius Härtl
2f58f9c1c5 Merge pull request #4399 from nextcloud/enh/text-editor 2023-02-03 19:15:41 +01:00
Julius Härtl
1e9060b876 tests(cypress): Basic editor tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-03 15:47:08 +01:00
Julius Härtl
1ad6375f73 fix: Insert attachments and menubar stickyness
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-03 15:47:08 +01:00
Julius Härtl
c9f539bf31 feat(Description): Use text as editor if available
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-02-03 15:47:08 +01:00
Nextcloud bot
0e52215f30 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-02-01 02:32:40 +00:00
Julius Härtl
b71b20bd0d Merge pull request #4419 from xf-/patch-1 2023-01-31 21:24:54 +01:00
xaver
a3b6728738 Remove updated nightly information
Signed-off-by: xaver <xaver.maierhofer@xwissen.info>
2023-01-31 16:07:14 +01:00
Nextcloud bot
27a626f8a5 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-31 02:33:55 +00:00
Julius Härtl
2913730bd8 Merge pull request #4400 from nextcloud/dependabot/composer/vimeo/psalm-5.6.0
Chore(deps-dev): Bump vimeo/psalm from 5.4.0 to 5.6.0
2023-01-30 09:17:41 +01:00
Julius Härtl
1a1b96345f Merge pull request #4414 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-4.2.3 2023-01-30 09:14:57 +01:00
Nextcloud bot
40c7f58491 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-30 02:34:08 +00:00
dependabot[bot]
249a30f949 Merge pull request #4409 from nextcloud/dependabot/npm_and_yarn/main/cypress-12.4.1 2023-01-28 07:56:39 +00:00
dependabot[bot]
56a1f29298 Merge pull request #4410 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.24.0 2023-01-28 07:19:02 +00:00
dependabot[bot]
65901f58db Merge pull request #4411 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/vue-7.5.0 2023-01-28 07:04:21 +00:00
dependabot[bot]
7da5eef913 Merge pull request #4412 from nextcloud/dependabot/npm_and_yarn/main/babel/runtime-7.20.13 2023-01-28 07:04:12 +00:00
dependabot[bot]
4b3f2cc114 Chore(deps-dev): Bump cypress from 12.3.0 to 12.4.1
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.3.0 to 12.4.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.3.0...v12.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 06:58:29 +00:00
dependabot[bot]
94b0a9ecf4 Merge pull request #4406 from nextcloud/dependabot/npm_and_yarn/main/vue/test-utils-1.3.4 2023-01-28 06:57:27 +00:00
dependabot[bot]
aec8c516a8 Merge pull request #4404 from nextcloud/dependabot/npm_and_yarn/main/jest-29.4.1 2023-01-28 06:53:58 +00:00
dependabot[bot]
cd023d338e Merge pull request #4401 from nextcloud/dependabot/github_actions/svenstaro/upload-release-action-2.4.0 2023-01-28 06:33:27 +00:00
dependabot[bot]
0417c436c9 Chore(deps): Bump peter-evans/create-pull-request from 3.14.0 to 4.2.3
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.14.0 to 4.2.3.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](18f7dc018c...2b011faafd)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 03:49:09 +00:00
dependabot[bot]
0bb98b364a bump @babel/runtime from 7.20.7 to 7.20.13
---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 03:21:19 +00:00
dependabot[bot]
b9032489dc bump @nextcloud/vue from 7.4.0 to 7.5.0
---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 03:07:05 +00:00
dependabot[bot]
850dddb2ed Chore(deps): Bump shivammathur/setup-php from 2.23.0 to 2.24.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.23.0 to 2.24.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.23.0...2.24.0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 03:06:43 +00:00
Nextcloud bot
e458dca2b9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-28 02:33:37 +00:00
dependabot[bot]
268edbefd8 Chore(deps-dev): Bump @vue/test-utils from 1.3.3 to 1.3.4
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 02:02:16 +00:00
dependabot[bot]
a71a98a794 Chore(deps-dev): Bump jest from 29.3.1 to 29.4.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.3.1 to 29.4.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.4.1/packages/jest)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 02:01:56 +00:00
dependabot[bot]
260650f787 Chore(deps): Bump svenstaro/upload-release-action from 2.3.0 to 2.4.0
Bumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/svenstaro/upload-release-action/releases)
- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)
- [Commits](133984371c...2728235f7d)

---
updated-dependencies:
- dependency-name: svenstaro/upload-release-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 02:00:37 +00:00
dependabot[bot]
1cf25f8c24 Chore(deps-dev): Bump vimeo/psalm from 5.4.0 to 5.6.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.4.0 to 5.6.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/5.4.0...5.6.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-28 02:00:32 +00:00
dependabot[bot]
4c2a9c7614 Merge pull request #4396 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/l10n-2.0.1 2023-01-27 12:56:52 +00:00
dependabot[bot]
cd3590c6eb Chore(deps): Bump @nextcloud/l10n from 2.0.0 to 2.0.1
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v2.0.0...v2.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 12:38:41 +00:00
Julius Härtl
d7f4585916 Merge pull request #4389 from nextcloud/update-master-php-testing-versions 2023-01-27 13:37:35 +01:00
Nextcloud bot
4ab5d013bb Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-25 02:51:26 +00:00
Julius Härtl
01c2ae23aa chore(psalm): Add type hints to make psalm happy
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-24 11:46:47 +01:00
Julius Härtl
fd90218a8c chore(jest): Switch to @vue/vue2-jest
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-24 08:47:49 +01:00
Julius Härtl
f24bb1439c chore(cypress): Bump php version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-24 08:44:35 +01:00
Joas Schilling
7f7603e3b0 Replace linting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-24 08:38:10 +01:00
Joas Schilling
063e6a1520 Drop 7.4
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-24 08:38:09 +01:00
Joas Schilling
1efd06f2b6 chore(CI): Update master php testing versions and workflow templates
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-24 08:38:09 +01:00
Joas Schilling
5ec251e8cd Merge pull request #4398 from nextcloud/techdebt/noid/update-signature-of-markFieldUpdated
Update signature of Entity::markFieldUpdated
2023-01-24 08:37:54 +01:00
Nextcloud bot
6d9a2c1833 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-24 02:32:45 +00:00
Joas Schilling
96e9571ae4 Update signature of Entity::markFieldUpdated
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-23 11:11:41 +01:00
Nextcloud bot
a1093683a6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-23 02:32:55 +00:00
Nextcloud bot
04a624b0d9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-22 02:32:37 +00:00
Nextcloud bot
ee96c2196e Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-21 02:32:31 +00:00
Nextcloud bot
79dac0c1e2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-17 02:34:17 +00:00
Julius Härtl
c42ac086a1 Merge pull request #4393 from nextcloud/dependabot/npm_and_yarn/main/nextcloud/l10n-2.0.0 2023-01-16 22:28:46 +01:00
dependabot[bot]
5b41617435 Chore(deps): Bump @nextcloud/l10n from 1.6.0 to 2.0.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.6.0 to 2.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.6.0...v2.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 17:44:07 +00:00
Jonas
f1a44dbef9 Merge pull request #4390 from nextcloud/rename_main_branch
Rename main Git development branch from `master` to `main`
2023-01-16 18:42:28 +01:00
dependabot[bot]
5868f37dc2 Merge pull request #4391 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.28 2023-01-16 17:29:58 +00:00
Jonas
528bb867b4 Rename main Git development branch from master to main
Avoid using terms associated with slavery and exploitation.

Signed-off-by: Jonas <jonas@freesources.org>
2023-01-16 17:27:38 +01:00
dependabot[bot]
f09208fc76 Chore(deps-dev): Bump phpunit/phpunit from 9.5.27 to 9.5.28
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.27 to 9.5.28.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.5.28/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.27...9.5.28)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 16:13:32 +00:00
Nextcloud bot
2cceb58826 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-16 02:32:09 +00:00
Julius Härtl
6e4ba1aedf Merge pull request #4385 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2023-01-15 13:49:28 +01:00
nextcloud-command
5c744fd226 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-01-15 02:47:53 +00:00
dependabot[bot]
0eec3969fd Merge pull request #4383 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.4.0 2023-01-14 06:07:54 +00:00
dependabot[bot]
d31bb87581 Merge pull request #4382 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-8.2.0 2023-01-14 06:01:17 +00:00
dependabot[bot]
9f936879ff Chore(deps): Bump @nextcloud/vue from 7.3.0 to 7.4.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.3.0...v7.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-14 03:14:48 +00:00
dependabot[bot]
ac2da9f23a Chore(deps-dev): Bump @nextcloud/eslint-config from 8.1.5 to 8.2.0
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 8.1.5 to 8.2.0.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v8.1.5...v8.2.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-14 03:11:49 +00:00
Nextcloud bot
a8c3f5d196 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-14 02:33:50 +00:00
Nextcloud bot
f37f740940 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-13 02:33:50 +00:00
Nextcloud bot
83089f6d18 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-11 02:32:08 +00:00
Nextcloud bot
08572192c2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-10 02:33:39 +00:00
Nextcloud bot
129bc7370e Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-09 02:32:06 +00:00
dependabot[bot]
9ff685ad4d Merge pull request #4368 from nextcloud/dependabot/npm_and_yarn/master/cypress-12.3.0 2023-01-07 07:06:06 +00:00
dependabot[bot]
f88d8bd7b0 Merge pull request #4367 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.4.3 2023-01-07 06:33:30 +00:00
dependabot[bot]
9cffc9735d Bump cypress from 12.2.0 to 12.3.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.2.0 to 12.3.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.2.0...v12.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 06:26:15 +00:00
dependabot[bot]
b1a4a0b836 Merge pull request #4366 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-8.1.5 2023-01-07 06:25:23 +00:00
dependabot[bot]
93d8023bdc Bump dompurify from 2.4.1 to 2.4.3
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.1 to 2.4.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.1...2.4.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 03:34:32 +00:00
dependabot[bot]
59e8a87baf Bump @nextcloud/eslint-config from 8.1.4 to 8.1.5
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 8.1.4 to 8.1.5.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v8.1.4...v8.1.5)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 03:31:07 +00:00
Nextcloud bot
dd6fbb7fb4 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-07 02:32:11 +00:00
Julius Härtl
05590b3550 Merge pull request #4359 from nextcloud/dependabot/npm_and_yarn/json5-and-json5-and-vue-jest-2.2.3 2023-01-05 17:03:38 +01:00
dependabot[bot]
8ba4b74e2c Bump json5 and vue-jest
Bumps [json5](https://github.com/json5/json5) to 2.2.3 and updates ancestor dependencies [json5](https://github.com/json5/json5), [json5](https://github.com/json5/json5) and [vue-jest](https://github.com/vuejs/vue-jest). These dependencies need to be updated together.


Updates `json5` from 2.2.1 to 2.2.3
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

Updates `json5` from 1.0.1 to 2.2.3
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

Updates `vue-jest` from 3.0.7 to 4.0.1
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/compare/v3.0.7...v4.0.1)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
- dependency-name: json5
  dependency-type: indirect
- dependency-name: vue-jest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-05 15:47:51 +00:00
Julius Härtl
43817fdaeb Merge pull request #4358 from nextcloud/ci/ubuntu-latest
ci: Get rid of outdated ubuntu images on actions
2023-01-05 16:46:59 +01:00
Julius Härtl
f46ecc0b3b ci: Get rid of outdated ubuntu images on actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-05 16:24:12 +01:00
Julius Härtl
aecfdc857d Merge pull request #4356 from p-bo/patch-2 2023-01-05 12:27:38 +01:00
Nextcloud bot
c84caca341 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-05 02:31:58 +00:00
p-bo
b4a6ac2c97 App metadata: add links to user and developer documentation
Signed-off-by: p-bo <pavel.borecki@gmail.com>
2023-01-04 19:12:14 +01:00
Nextcloud bot
c0aaef3c4b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-04 02:25:27 +00:00
Marcel Klehr
5a97b0e858 Merge pull request #3876 from alangecker/sessions
basic notify_push usage with session handling
2023-01-03 15:42:28 +01:00
Julius Härtl
d892979efa chore(psalm): Fix annotations to make psalm happy
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-03 15:22:31 +01:00
chandi Langecker
a1d2e695c6 fix intentation mistake during rebase
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 14:29:48 +01:00
chandi Langecker
a466b76946 use dependency injection for logger
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
e89cd98419 fix broken requests in tests after switch to OCS
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
f03521e2a1 fix syntax error/mistake after rebase
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
541ee13780 sessions: ignore self-emitted update events
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
6d86ec70ef sessions: fix failing tests due to changed api endpoints
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
ccf73736c4 sessions: let's be an OCS API to support extenal clients
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
5386e6e24f make psalm & linter happy
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
0ea384d1e5 session cleanup via background job
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
d7919497b6 stub OCA\NotifyPush\Queue\IQueue
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:11 +01:00
chandi Langecker
b114520d85 update @nextcloud/notify_push to 1.1.3
which resolves the dependency issue:
https://github.com/icewind1991/notify_push-client/pull/5
(during the rebase the commit with an workaround got reverted 5aa36aa5ec)

Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:45:09 +01:00
chandi Langecker
8007a06c94 Update lib/Controller/SessionController.php
Co-authored-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
e1e29feb7b Update lib/Controller/SessionController.php
Co-authored-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi
54b390010c Update lib/Service/SessionService.php
Co-authored-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
a674b5b5b2 fix php7 syntax error (unexpected '|')
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
2d465a707f fix acl test
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
43a1b1a2e5 sessions: integration tests
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
c82a5a1228 session list: minor visual improvements
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
6684730dd7 docs: sessions API documentation
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
ed125e9439 avoid naming conflicts for indexes
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
0272b2d52f fix linter errors after rebase
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
0aede224ec remove refreshData() leftover
there is now no regular refreshing anymore, only after update events

Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
af134959ce optimize sql queries / indexing
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
b3d4ac5218 don't refresh closed sessions when tab is in the background
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
cd7fb9a4bd increase session timeout
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
dd307fa353 use nextcloud's database type constants
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
567b9cc66e use data() for constants instead of a computed property
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
38aed97d69 better session handling
- separated from component
- handle visibilityState / closing of the tab

Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
6bfb54e2b3 use strict types in new php classes
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
7dc64de2de dedicated Listener class, constants for events
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
fd6e15b58c ensure activeSessions is an array
sometimes the resulting json contained an object leading to JS errors

Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:59 +01:00
chandi Langecker
fcfbcc63b4 basic notify_push usage with session handling (rebased)
Signed-off-by: chandi Langecker <git@chandi.it>
2023-01-03 12:43:56 +01:00
Nextcloud bot
0c69404ac9 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-03 02:47:11 +00:00
Julius Härtl
f6826f7746 Merge pull request #4350 from nextcloud/bugfix/noid/close-sidebar
fix(Sidebar): Only close sidebar on v-click-outside for specific targets
2023-01-02 12:07:16 +01:00
Julius Härtl
8b94750e85 fix(Navigation): Default open navigation if no local storage is set
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-02 11:53:46 +01:00
Julius Härtl
4ab70617a5 test(Cypress): Add e2e tests for sharing basics and navigation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-02 11:53:21 +01:00
Julius Härtl
9cc199dc47 fix(Sidebar): Only close sidebar on v-click-outside for specific targets
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-01-02 08:50:53 +01:00
Nextcloud bot
0f71a525c0 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-02 03:17:18 +00:00
Nextcloud bot
d4e6537745 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-01 03:01:25 +00:00
Nextcloud bot
77b2945fff Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-31 03:20:19 +00:00
Julius Härtl
5d4612738b Merge pull request #4206 from shoetten/feature/add-basic-integration-tests
add basic e2e tests for stack title
2022-12-30 15:48:58 +01:00
Julius Härtl
5958632534 test(cypress): Move to @nextcloud/cypress
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-12-30 15:42:33 +01:00
Simon Hötten
2be2afba16 basic e2e tests for stack title edit
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-12-30 14:43:13 +01:00
Simon Hötten
17b6c2a967 add cypress auto generated videos to gitignore
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-12-30 14:43:13 +01:00
Simon Hötten
411972c812 change tooltip wording of list edit
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-12-30 14:43:13 +01:00
Simon Hötten
584675db21 add eslint for cypress tests
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-12-30 14:43:11 +01:00
dependabot[bot]
50ca4de351 Merge pull request #4348 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/router-2.0.1 2022-12-30 13:32:03 +00:00
dependabot[bot]
d8c627178c Merge pull request #4345 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.23.0 2022-12-30 13:27:39 +00:00
Julius Härtl
f817025dfe Merge pull request #4333 from nextcloud/dependabot/composer/vimeo/psalm-5.4.0
Bump vimeo/psalm from 4.30.0 to 5.4.0
2022-12-30 14:26:15 +01:00
dependabot[bot]
238127c3aa Bump @nextcloud/router from 2.0.0 to 2.0.1
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/nextcloud/nextcloud-router/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-router/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-30 13:18:05 +00:00
dependabot[bot]
2c03b30aee Bump shivammathur/setup-php from 2.22.0 to 2.23.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.22.0...2.23.0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-30 13:17:26 +00:00
Julius Härtl
5ab34716c3 chore: Remove stable23 from dependabot
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-12-30 14:17:02 +01:00
Julius Härtl
a96fe36795 Merge pull request #4344 from nextcloud/tag_creation_from_card_view
Tag creation from card view
2022-12-30 14:08:51 +01:00
Julius Härtl
c739d543c2 chore: Fix new psalm errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-12-30 14:08:31 +01:00
Julius Härtl
7f2cdd2d7a Merge pull request #3065 from david-loe/master
Export Board
2022-12-30 13:53:25 +01:00
fschn
6ed19bd2b0 #1472: Implement addLabelToBoardAndCard to also create Labels from the CardSidebar
Signed-off-by: Felix Schnabel <f.schnabel@tum.de>
2022-12-30 13:49:58 +01:00
Marcel Klehr
d25c7feb13 Fix lint errors
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-12-30 12:56:06 +01:00
Marcel Klehr
5eed353d5a Fix psalm errors
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-12-30 12:56:06 +01:00
Marcel Klehr
00b95fe6ce Fix psalm errors
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-12-30 12:56:06 +01:00
David Loe
e256cf23ce Fix Errors
Signed-off-by: David Loe <d.loewens24@gmail.com>
2022-12-30 12:56:06 +01:00
Nextcloud bot
b6756b4617 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-30 12:56:06 +01:00
David Loe
88a9fe2161 Export Board
Signed-off-by: David Loe <d.loewens24@gmail.com>
2022-12-30 12:56:06 +01:00
Julius Härtl
d3cad6adf0 Merge pull request #4342 from nextcloud/automated/noid/master-update-nextcloud-ocp 2022-12-29 18:20:01 +01:00
Nextcloud bot
145ac69d1e Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-27 03:13:45 +00:00
nextcloud-command
df454f4fcf Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-25 02:42:14 +00:00
dependabot[bot]
313c05cdad Merge pull request #4340 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.3.0 2022-12-24 06:14:14 +00:00
dependabot[bot]
c89fdad893 Merge pull request #4339 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.20.7 2022-12-24 05:53:27 +00:00
dependabot[bot]
ad065b4a9a Merge pull request #4338 from nextcloud/dependabot/npm_and_yarn/master/cypress-12.2.0 2022-12-24 05:23:35 +00:00
Nextcloud bot
e34a1a06b6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-24 03:39:56 +00:00
dependabot[bot]
293f56924e Bump @nextcloud/vue from 7.2.0 to 7.3.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.2.0...v7.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-24 03:29:07 +00:00
dependabot[bot]
220cbe18bb Bump @babel/runtime from 7.20.6 to 7.20.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.6 to 7.20.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-24 03:27:29 +00:00
dependabot[bot]
9a6d62e16a Bump cypress from 12.1.0 to 12.2.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.1.0...v12.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-24 03:19:21 +00:00
dependabot[bot]
8ee7b1f1e8 Bump vimeo/psalm from 4.30.0 to 5.4.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.30.0 to 5.4.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.30.0...5.4.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-24 02:00:28 +00:00
Nextcloud bot
bf68dd7edc Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-21 02:38:05 +00:00
Julius Härtl
67adda5f84 Merge pull request #4315 from small1/fixcomponentrenaming
Fix component renaming so that acl works on shares again
2022-12-19 10:55:39 +01:00
Julius Härtl
1f8fc6661c Merge pull request #4322 from nextcloud/dependabot/github_actions/skjnldsv/read-package-engines-version-actions-2.0
Bump skjnldsv/read-package-engines-version-actions from 1.2 to 2.0
2022-12-19 09:49:35 +01:00
Julius Härtl
97e7d2b2d7 Merge pull request #4321 from nextcloud/dependabot/npm_and_yarn/master/cypress-12.1.0
Bump cypress from 11.2.0 to 12.1.0
2022-12-19 09:38:34 +01:00
Julius Härtl
84c96a00b2 Merge pull request #4314 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2022-12-19 09:38:15 +01:00
Julius Härtl
bf5cd72361 Merge pull request #4323 from nextcloud/dependabot/github_actions/cirrus-actions/rebase-1.8
Bump cirrus-actions/rebase from 1.7 to 1.8
2022-12-19 09:38:08 +01:00
Johan Bernhardsson
2f0c89e513 Fix component renaming so that acl works on shares again
Signed-off-by: Johan Bernhardsson <johan.bernhardsson@redpill-linpro.com>
2022-12-19 09:36:41 +01:00
nextcloud-command
59e816124a Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-18 04:19:22 +00:00
Nextcloud bot
632d3c1ef2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-18 02:27:06 +00:00
dependabot[bot]
a6d39488a4 Merge pull request #4324 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-2.3.0 2022-12-17 07:09:56 +00:00
dependabot[bot]
d998a30235 Bump @nextcloud/axios from 2.2.0 to 2.3.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/nextcloud/nextcloud-axios/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-axios/compare/v2.2.0...v2.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 03:54:00 +00:00
dependabot[bot]
8432efddde Bump cirrus-actions/rebase from 1.7 to 1.8
Bumps [cirrus-actions/rebase](https://github.com/cirrus-actions/rebase) from 1.7 to 1.8.
- [Release notes](https://github.com/cirrus-actions/rebase/releases)
- [Commits](https://github.com/cirrus-actions/rebase/compare/1.7...1.8)

---
updated-dependencies:
- dependency-name: cirrus-actions/rebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 03:10:12 +00:00
dependabot[bot]
a70bf65032 Bump skjnldsv/read-package-engines-version-actions from 1.2 to 2.0
Bumps [skjnldsv/read-package-engines-version-actions](https://github.com/skjnldsv/read-package-engines-version-actions) from 1.2 to 2.0.
- [Release notes](https://github.com/skjnldsv/read-package-engines-version-actions/releases)
- [Commits](https://github.com/skjnldsv/read-package-engines-version-actions/compare/v1.2...v2.0)

---
updated-dependencies:
- dependency-name: skjnldsv/read-package-engines-version-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 03:06:52 +00:00
dependabot[bot]
68361c517b Bump cypress from 11.2.0 to 12.1.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 11.2.0 to 12.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v11.2.0...v12.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 03:05:18 +00:00
Nextcloud bot
8bfdd72e37 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-16 02:27:00 +00:00
Nextcloud bot
71afaaefc3 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-14 02:29:25 +00:00
Nextcloud bot
15f8353ecd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-13 02:40:00 +00:00
dependabot[bot]
6907d87d32 Merge pull request #4313 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-4.1.3 2022-12-10 05:53:34 +00:00
dependabot[bot]
35413d5154 Merge pull request #4311 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.2.0 2022-12-10 05:17:23 +00:00
dependabot[bot]
9bde070b9b Merge pull request #4308 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.27 2022-12-10 03:36:57 +00:00
dependabot[bot]
610ea1d36b Bump @relative-ci/agent from 4.1.1 to 4.1.3
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 4.1.1 to 4.1.3.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v4.1.1...v4.1.3)

---
updated-dependencies:
- dependency-name: "@relative-ci/agent"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-10 03:29:04 +00:00
dependabot[bot]
21c5383f6f Bump @nextcloud/vue from 7.1.0 to 7.2.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.1.0...v7.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-10 03:03:03 +00:00
dependabot[bot]
b58807363b Bump phpunit/phpunit from 9.5.26 to 9.5.27
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.26 to 9.5.27.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.26...9.5.27)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-10 02:00:29 +00:00
Julius Härtl
04a6c83d2b Merge pull request #4286 from nextcloud/dependabot/github_actions/cypress-io/github-action-5 2022-12-05 12:29:36 +01:00
Julius Härtl
c1b4708a74 Merge pull request #4292 from nextcloud/automated/noid/master-update-nextcloud-ocp 2022-12-05 11:09:41 +01:00
nextcloud-command
286605ff01 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-04 05:01:25 +00:00
Nextcloud bot
790ecaac67 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-04 02:22:09 +00:00
dependabot[bot]
40b4ed2e1c Merge pull request #4288 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.20.6 2022-12-03 07:18:53 +00:00
dependabot[bot]
844c4d8d9b Merge pull request #4291 from nextcloud/dependabot/npm_and_yarn/decode-uri-component-0.2.2 2022-12-03 07:02:22 +00:00
dependabot[bot]
1aefc990a5 Bump @babel/runtime from 7.20.1 to 7.20.6
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.1 to 7.20.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.6/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 05:15:07 +00:00
dependabot[bot]
329ebc1aec Merge pull request #4287 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.1.0 2022-12-03 05:14:09 +00:00
dependabot[bot]
5fca656e50 Bump decode-uri-component from 0.2.0 to 0.2.2
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 04:49:57 +00:00
dependabot[bot]
c453721d75 Merge pull request #4285 from nextcloud/dependabot/composer/tests/integration/behat/behat-approx-3.12.0 2022-12-03 04:49:24 +00:00
dependabot[bot]
06939a7362 Bump @nextcloud/vue from 7.0.1 to 7.1.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.1 to 7.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.1...v7.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 03:20:30 +00:00
dependabot[bot]
b2e7709092 Bump cypress-io/github-action from 4 to 5
Bumps [cypress-io/github-action](https://github.com/cypress-io/github-action) from 4 to 5.
- [Release notes](https://github.com/cypress-io/github-action/releases)
- [Commits](https://github.com/cypress-io/github-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: cypress-io/github-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 03:15:59 +00:00
dependabot[bot]
d2c2e0bd11 Update behat/behat requirement in /tests/integration
Updates the requirements on [behat/behat](https://github.com/Behat/Behat) to permit the latest version.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.11.0...v3.12.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 03:09:28 +00:00
Nextcloud bot
2b7e8d683b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-01 02:23:00 +00:00
Nextcloud bot
356c8fe518 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-30 02:23:24 +00:00
Julius Härtl
316bc29d70 Merge pull request #4278 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2022-11-27 09:35:12 +01:00
nextcloud-command
b6dc2cb1bf Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-11-27 03:11:58 +00:00
dependabot[bot]
01ab56bada Merge pull request #4276 from nextcloud/dependabot/npm_and_yarn/master/cypress-11.2.0 2022-11-26 04:17:36 +00:00
dependabot[bot]
0d66944a5f Merge pull request #4275 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-2.2.0 2022-11-26 03:49:25 +00:00
dependabot[bot]
4d91364028 Bump cypress from 11.1.0 to 11.2.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 11.1.0 to 11.2.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v11.1.0...v11.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-26 03:28:57 +00:00
dependabot[bot]
a839a95821 Bump @nextcloud/axios from 2.1.0 to 2.2.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/nextcloud/nextcloud-axios/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-axios/compare/v2.1.0...v2.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-26 02:00:51 +00:00
Nextcloud bot
103e86499e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-23 02:25:57 +00:00
Nextcloud bot
c52a7a42c4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-22 02:26:43 +00:00
Nextcloud bot
b366eea8eb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-21 02:22:52 +00:00
Julius Härtl
89a24151ee Merge pull request #4272 from nextcloud/dependabot/npm_and_yarn/master/jest-serializer-vue-3.1.0
Bump jest-serializer-vue from 2.0.2 to 3.1.0
2022-11-20 22:47:48 +01:00
Nextcloud bot
1438127c7b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-20 02:24:02 +00:00
dependabot[bot]
c781d29065 Bump jest-serializer-vue from 2.0.2 to 3.1.0
Bumps [jest-serializer-vue](https://github.com/eddyerburgh/jest-serializer-vue) from 2.0.2 to 3.1.0.
- [Release notes](https://github.com/eddyerburgh/jest-serializer-vue/releases)
- [Changelog](https://github.com/eddyerburgh/jest-serializer-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eddyerburgh/jest-serializer-vue/commits)

---
updated-dependencies:
- dependency-name: jest-serializer-vue
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-19 08:26:38 +00:00
Julius Härtl
9094d611ae Merge pull request #4217 from nextcloud/dependabot/npm_and_yarn/master/cypress-11.1.0
Bump cypress from 10.11.0 to 11.1.0
2022-11-19 09:25:52 +01:00
Julius Härtl
70be562fe3 Merge pull request #4219 from nextcloud/dependabot/npm_and_yarn/master/vue-and-vue-template-compiler-2.7.14
Bump vue and vue-template-compiler
2022-11-19 09:25:43 +01:00
Nextcloud bot
761f2421ba [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-19 02:25:04 +00:00
dependabot[bot]
6d68c0d0e3 Bump vue and vue-template-compiler
Bumps [vue](https://github.com/vuejs/core) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.7.13 to 2.7.14
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

Updates `vue-template-compiler` from 2.7.13 to 2.7.14
- [Release notes](https://github.com/vuejs/vue/releases)
- [Changelog](https://github.com/vuejs/vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue/compare/v2.7.13...v2.7.14)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: vue-template-compiler
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 18:36:18 +00:00
dependabot[bot]
3f8895077d Merge pull request #4220 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-8.1.4 2022-11-18 18:35:20 +00:00
dependabot[bot]
42e756150d Merge pull request #4216 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.4.1 2022-11-18 17:35:39 +00:00
dependabot[bot]
cbb9269920 Bump cypress from 10.11.0 to 11.1.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.11.0 to 11.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.11.0...v11.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:29:36 +00:00
Julius Härtl
a42f0a9b26 Merge pull request #4218 from nextcloud/dependabot/npm_and_yarn/master/jest-29.3.1
Bump jest from 29.2.2 to 29.3.1
2022-11-18 18:28:44 +01:00
Julius Härtl
4ccfc6c1d1 Merge pull request #4222 from nextcloud/dependabot/github_actions/hmarr/auto-approve-action-3
Bump hmarr/auto-approve-action from 2 to 3
2022-11-18 18:28:08 +01:00
dependabot[bot]
a1834f97a8 Bump hmarr/auto-approve-action from 2 to 3
Bumps [hmarr/auto-approve-action](https://github.com/hmarr/auto-approve-action) from 2 to 3.
- [Release notes](https://github.com/hmarr/auto-approve-action/releases)
- [Commits](https://github.com/hmarr/auto-approve-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: hmarr/auto-approve-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:27:41 +00:00
Julius Härtl
86145c6095 Add stable branches for dependabot
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-18 18:26:51 +01:00
dependabot[bot]
3a839da89a Bump @nextcloud/eslint-config from 8.1.2 to 8.1.4
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 8.1.2 to 8.1.4.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v8.1.2...v8.1.4)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:26:00 +00:00
dependabot[bot]
baf381965c Bump jest from 29.2.2 to 29.3.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.2 to 29.3.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.3.1/packages/jest)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:25:00 +00:00
dependabot[bot]
51231ac971 Bump dompurify from 2.4.0 to 2.4.1
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.4.0...2.4.1)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 17:23:38 +00:00
Nextcloud bot
93fb32904b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-17 02:21:25 +00:00
Julius Härtl
2d1d38804a Merge pull request #4209 from nextcloud/automated/noid/master-update-nextcloud-ocp 2022-11-13 16:56:01 +01:00
nextcloud-command
ab12b0fab1 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-11-13 03:38:52 +00:00
dependabot[bot]
a8aa1a44e7 Merge pull request #4205 from nextcloud/dependabot/npm_and_yarn/loader-utils-1.4.2 2022-11-12 06:34:36 +00:00
dependabot[bot]
dd2e47bb0f Bump loader-utils from 1.4.0 to 1.4.2
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-12 03:15:38 +00:00
dependabot[bot]
e01fb76151 Merge pull request #4204 from nextcloud/dependabot/composer/vimeo/psalm-4.30.0 2022-11-12 03:14:11 +00:00
Nextcloud bot
7288168dd7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-12 02:22:13 +00:00
dependabot[bot]
2a48b4606b Bump vimeo/psalm from 4.29.0 to 4.30.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.29.0 to 4.30.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.29.0...4.30.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-12 02:01:17 +00:00
Julius Härtl
fd3fef9ccf Merge pull request #4200 from meltzow/patch-1
add a new mobile client for android and iOS to readme
2022-11-11 15:47:43 +01:00
Julius Härtl
847e2da3c7 Update README.md
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-11 15:47:25 +01:00
Julius Härtl
56935b708a Merge pull request #3598 from nextcloud/bugfix/noid/circle-delete
Handle circle deletion event
2022-11-11 13:27:21 +01:00
Julius Härtl
2ba8fb9afc Also handle user/group deletion in the listener
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-11 10:24:03 +01:00
Julius Härtl
76fd901062 Handle circle deletion event and add cleanup job
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-11 10:24:02 +01:00
Nextcloud bot
b42076ccb8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-11 02:21:17 +00:00
Julius Härtl
4239571455 Merge pull request #4180 from jszeibert/bugfix/4162
minor style fixes
2022-11-10 09:31:15 +01:00
Johannes Szeibert
afc23d3f2c minor style fixes
Signed-off-by: Johannes Szeibert <johannes@szeibert.de>
2022-11-10 09:05:36 +01:00
Nextcloud bot
e0a02609af [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-10 02:22:55 +00:00
Mario Meltzow
78039f8fcb add new mobile client for android and iOS
Signed-off-by: Mario Meltzow <meltzow@users.noreply.github.com>
2022-11-09 22:08:37 +01:00
Marcel Klehr
1a654925e8 Merge pull request #4184 from nextcloud/bugfix/noid/integration-validators 2022-11-09 14:12:33 +01:00
Julius Härtl
071cfca241 Merge pull request #4196 from nextcloud/bugfix/noid/userid-prop
Add missing userId property
2022-11-09 10:57:23 +01:00
Julius Härtl
e93006ded0 Add missing userId property
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-09 08:53:38 +01:00
Nextcloud bot
4bc7a61f8f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-09 02:21:41 +00:00
dependabot[bot]
e55b3a0a26 Merge pull request #4122 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/stylelint-config-2.3.0 2022-11-07 19:49:08 +00:00
Julius Härtl
0c59a85c9c Remove legacy v-deep selector
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-07 20:42:46 +01:00
dependabot[bot]
09e0d2e143 Bump @nextcloud/stylelint-config from 2.2.0 to 2.3.0
Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud/stylelint-config) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/nextcloud/stylelint-config/releases)
- [Changelog](https://github.com/nextcloud/stylelint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/stylelint-config/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/stylelint-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 20:42:45 +01:00
dependabot[bot]
0fd9e62340 Merge pull request #3966 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-8.1.2 2022-11-07 19:28:25 +00:00
Julius Härtl
ccf669bc85 Fix eslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-07 20:22:45 +01:00
dependabot[bot]
5eb0091c35 Bump @nextcloud/eslint-config from 8.0.0 to 8.1.2
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 8.0.0 to 8.1.2.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v8.0.0...v8.1.2)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 20:15:53 +01:00
Julius Härtl
6ea0e24d44 Merge pull request #4074 from shoetten/feature/stack-dragndrop
Improve stack drag and drop behavior
2022-11-07 20:02:44 +01:00
Simon Hötten
cd5753f247 only drag stack by title
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-11-07 19:54:25 +01:00
Simon Hötten
467a3a454e don't edit stack title when dragging
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-11-07 19:54:25 +01:00
Simon Hötten
0ae73b57d5 allow to cancel stack title edit
Signed-off-by: Simon Hötten <s+git@hoetten.org>
2022-11-07 19:54:25 +01:00
Julius Härtl
95837d0626 Merge pull request #4194 from nextcloud/3on108/master
Permanently delete deck cards marked as deleted after 5 min in a cron job
2022-11-07 18:26:06 +01:00
Michal Polacik
8698e2ce3f Permanently delete deck cards marked as deleted after 5 min in a cron job
Limit deleted cards in one cron job run to 500

Converted spaces to tabs

Added missing import for CardMapper class

Added another missing import for CardMapper class

Fixed response object in findToDelete method + fixed 2 misspellings in API.md

Fixed invalid parameter type

Fix DeleteCronTest

Signed-off-by: Marcel Klehr <mklehr@gmx.net>

Fix lint errors

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-11-07 17:26:12 +01:00
Julius Härtl
19f466fd4d Merge pull request #4191 from nextcloud/deps/vue-richtext 2022-11-07 14:55:32 +01:00
Julius Härtl
07bc1456cd Move all to @nextcloud/vue-richtext
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-07 08:35:33 +01:00
Julius Härtl
6bd89da255 Merge pull request #4189 from nextcloud/automated/noid/master-update-nextcloud-ocp 2022-11-07 08:11:43 +01:00
nextcloud-command
c3c886ed7e Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-11-06 03:35:08 +00:00
dependabot[bot]
f28b25c6ba Merge pull request #4186 from nextcloud/dependabot/npm_and_yarn/master/vue/test-utils-1.3.3 2022-11-05 07:07:05 +00:00
dependabot[bot]
fba496ea68 Bump @vue/test-utils from 1.3.0 to 1.3.3
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.0 to 1.3.3.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-05 03:21:09 +00:00
dependabot[bot]
71ca523745 Merge pull request #4185 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.20.1 2022-11-05 03:03:19 +00:00
Nextcloud bot
56f9d8db1d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-05 02:22:29 +00:00
dependabot[bot]
95b1f4ed5e Bump @babel/runtime from 7.20.0 to 7.20.1
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.20.0 to 7.20.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.1/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-05 02:02:19 +00:00
Nextcloud bot
f0bf0d448b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-04 02:21:17 +00:00
Julius Härtl
ed282479a1 Fix validation of attachment data
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-03 20:39:20 +01:00
Julius Härtl
b648947ad7 Merge pull request #2272 from nextcloud/enh/clickOutsideToCloseSidebar 2022-11-03 20:10:33 +01:00
Marcel Klehr
723fb807da Fix lint errors
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-11-03 18:25:48 +01:00
Marcel Klehr
7a23f3b0d2 Fix click-outside for sidebar
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-11-03 18:19:40 +01:00
Jakob Röhrl
8fc4238bd9 try to do it in App.vue
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2022-11-03 15:09:35 +01:00
Jakob Röhrl
d5dfd2c80c click outside to close sidebar
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2022-11-03 15:06:20 +01:00
Nextcloud bot
c32a6070f5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-03 02:21:14 +00:00
Nextcloud bot
1405220d81 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-02 02:21:33 +00:00
Nextcloud bot
ae73912343 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-01 02:21:39 +00:00
Julius Härtl
d8e423b45e Merge pull request #3321 from estromenko/fix-archived-stack-button
Make it possible to unarchive all archived cards
2022-10-31 21:42:14 +01:00
Julius Härtl
805f185191 Merge pull request #4173 from nextcloud/bugfix/noid/card-sanity-check 2022-10-31 21:17:31 +01:00
Julius Härtl
a231061043 Merge pull request #4059 from nextcloud/feature/improve-security-level 2022-10-31 12:59:12 +01:00
Julius Härtl
1f66c66ad3 Unify getting the share for attachments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-31 12:48:51 +01:00
Julius Härtl
39c59a3bd6 Add integration test for attachment handling on cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-31 12:48:50 +01:00
Julius Härtl
bfec6f5ad4 Add some tests for parameter validation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-31 12:47:35 +01:00
Nextcloud bot
f35a9d08e5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-31 02:21:04 +00:00
Julius Härtl
bb8b8c7bb7 Merge pull request #4170 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2022-10-30 08:40:41 +01:00
nextcloud-command
10495e5fe1 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-10-30 03:56:08 +00:00
Nextcloud bot
9caacda036 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-30 02:24:09 +00:00
Julius Härtl
7c960cbc5f Merge pull request #4156 from oneWaveAdrian/2906-visual-card-id
feat: #2906 add card ID badge
2022-10-29 12:37:59 +02:00
Julius Härtl
df10c7b2fe Merge pull request #4168 from nextcloud/dependabot/github_actions/andstor/file-existence-action-2 2022-10-29 12:29:26 +02:00
dependabot[bot]
96c7fe3b94 Merge pull request #4166 from nextcloud/dependabot/npm_and_yarn/master/cypress-10.11.0 2022-10-29 09:10:20 +00:00
Adrian Missy
f7717aa02a feat: #2906 add card ID badge
- adds vscode settings file to gitingore
- adds new badge for card ID
- adds card ID to board filter
- adds settings to disable card ID badge

Signed-off-by: Adrian Missy <adrian.missy@onewavestudios.com>
2022-10-29 10:25:28 +02:00
dependabot[bot]
1598896157 Merge pull request #4169 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.22.0 2022-10-29 06:12:21 +00:00
dependabot[bot]
54f70bc5d0 Bump cypress from 10.10.0 to 10.11.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.10.0 to 10.11.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.10.0...v10.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 05:29:21 +00:00
dependabot[bot]
a740c7ce0d Merge pull request #4167 from nextcloud/dependabot/npm_and_yarn/master/jest-29.2.2 2022-10-29 05:28:22 +00:00
dependabot[bot]
26ff25af72 Merge pull request #4165 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-5.4.0 2022-10-29 04:46:44 +00:00
dependabot[bot]
31da745700 Merge pull request #4164 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.20.0 2022-10-29 04:18:02 +00:00
dependabot[bot]
566f0f923a Merge pull request #4163 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.26 2022-10-29 03:37:06 +00:00
Nextcloud bot
e78fb49cf9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-29 02:23:23 +00:00
dependabot[bot]
2c7878b910 Bump shivammathur/setup-php from 2.21.2 to 2.22.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.21.2 to 2.22.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.21.2...2.22.0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:05:45 +00:00
dependabot[bot]
43d28eb68a Bump andstor/file-existence-action from 1 to 2
Bumps [andstor/file-existence-action](https://github.com/andstor/file-existence-action) from 1 to 2.
- [Release notes](https://github.com/andstor/file-existence-action/releases)
- [Commits](https://github.com/andstor/file-existence-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: andstor/file-existence-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:05:42 +00:00
dependabot[bot]
03832ee93e Bump jest from 29.2.1 to 29.2.2
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.1 to 29.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.2.2/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:03:23 +00:00
dependabot[bot]
bbac134b0f Bump @nextcloud/webpack-vue-config from 5.3.0 to 5.4.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v5.3.0...v5.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:02:44 +00:00
dependabot[bot]
f13c260e9b Bump @babel/runtime from 7.19.4 to 7.20.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.19.4 to 7.20.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.0/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:02:23 +00:00
dependabot[bot]
eb4c572226 Bump phpunit/phpunit from 9.5.25 to 9.5.26
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.25 to 9.5.26.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.25...9.5.26)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 01:01:05 +00:00
Julius Härtl
1c75744f4a Merge pull request #4076 from Jerome-Herbinet/patch-2
Fix : Dashboard Deck widget overlap + align issue
2022-10-27 19:50:32 +02:00
Marcel Klehr
e5959fa8da Update Stack.vue
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-27 12:30:49 +02:00
Marcel Klehr
b47c7aca34 Merge branch 'master' into fix-archived-stack-button
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-27 12:19:53 +02:00
Nextcloud bot
ca91e7a2ed [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 02:21:14 +00:00
Julius Härtl
b92fddaf65 Merge pull request #4150 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2022-10-26 21:13:27 +02:00
dependabot[bot]
b7de565bac Merge pull request #4147 from nextcloud/dependabot/npm_and_yarn/master/jest-29.2.1 2022-10-26 11:50:52 +00:00
dependabot[bot]
9c8e1a9f6e Bump jest from 29.2.0 to 29.2.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.0 to 29.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.2.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-26 13:45:00 +02:00
nextcloud-command
7e479b0505 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-10-25 21:21:52 +02:00
Julius Härtl
8f65ec2ede Merge pull request #4153 from nextcloud/bugfix/4152/fix-duedate-activity 2022-10-25 21:16:08 +02:00
Julius Härtl
6912ae09cf Fix integration test run script
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-25 21:07:21 +02:00
Nextcloud bot
eaa3315348 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 02:26:16 +00:00
Joas Schilling
5669bd73cc Fix Duedate activity
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-24 12:32:56 +02:00
Nextcloud bot
57989384fa [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 02:21:54 +00:00
Julius Härtl
74c04b2d71 Merge pull request #4148 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-4
Bump peter-evans/create-pull-request from 3 to 4
2022-10-22 11:03:42 +02:00
dependabot[bot]
74565debbb Merge pull request #4149 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.0.1 2022-10-22 02:49:33 +00:00
dependabot[bot]
a2744823c1 Bump @nextcloud/vue from 7.0.0 to 7.0.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.0...v7.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 02:23:09 +00:00
dependabot[bot]
a918459105 Bump peter-evans/create-pull-request from 3 to 4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 01:06:06 +00:00
Luka Trovic
1217b37b19 feat: add validators to check values in services
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-10-21 18:08:19 +02:00
Julius Härtl
f9acf7778f Merge pull request #4091 from nextcloud/migrate-master-christophwurst-package 2022-10-21 18:00:04 +02:00
Joas Schilling
8537bd00c7 Migrate to nextcloud/OCP package in master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-20 09:42:13 +02:00
Julius Härtl
4b62c34cc3 Merge pull request #4143 from TehThanos/lintMakeTarget
Added lint rule to Makefile
2022-10-20 08:29:15 +02:00
Thanos Kamber
94d84f2b16 Added lint rule to Makefile
Signed-off-by: Thanos Kamber <thanos.kamber@gmail.com>
2022-10-20 07:41:49 +03:00
Julius Härtl
14e7c33886 Merge pull request #4053 from nextcloud/dependabot/github_actions/actions/upload-artifact-3 2022-10-19 21:50:40 +02:00
Julius Härtl
60ee9f77ca Merge pull request #3774 from Ben-Ro/CTRL/CMD_+_ENTER_to_Save_Changes_on_Card_Description
feat: #3268 CTRL/CMD + ENTER to Save Changes on Card Description
2022-10-19 21:49:40 +02:00
Julius Härtl
3eaba6fe1a Merge pull request #4101 from mokkin/patch-1
disables autocomplete on card creation
2022-10-19 21:10:45 +02:00
Julius Härtl
cef14ed254 Merge pull request #4026 from nextcloud/dependabot/composer/tests/integration/guzzlehttp/guzzle-7.5.0 2022-10-19 21:10:25 +02:00
dependabot[bot]
0828ae6017 Update guzzlehttp/guzzle requirement in /tests/integration
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.5...7.5.0)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 21:04:09 +02:00
ben
3af54d7186 Use VueEasyMDE initialized event instead of setTimeout as proposed by @juliushaertl
Signed-off-by: ben <ben@ro.tt>
2022-10-19 21:02:35 +02:00
ben
f01a4433ed CTRL/CMD + ENTER to Save Changes on Card Description - fixes nextcloud/deck#3268
Signed-off-by: ben <ben@ro.tt>
2022-10-19 21:02:35 +02:00
Jérôme Herbinet
4f5eeffdf9 A bit more space above the bottom button
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2022-10-19 21:01:32 +02:00
Jérôme Herbinet
86ab64160c Fix : Dashboard Deck widget overlap + align issue
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2022-10-19 21:01:32 +02:00
mokkin
b64b29cf6e disables autocomplete on card creation
solves https://github.com/nextcloud/deck/issues/4083

Signed-off-by: mokkin <markus@haybach.com>
2022-10-19 20:57:49 +02:00
Julius Härtl
d93b431554 Merge pull request #4115 from nextcloud/bugfix/4112/fix-duedate-format 2022-10-19 20:56:27 +02:00
Julius Härtl
d00bd159d2 Avoid always setting the current time on card updates
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-19 20:03:22 +02:00
Marcel Klehr
816a8c08f0 Fix duedate tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-19 19:46:10 +02:00
Joas Schilling
2c3113334a Fix issue with duedate format
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-19 19:46:09 +02:00
Julius Härtl
857a0797b4 Pin postgres to 14
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-18 11:25:22 +02:00
Nextcloud bot
efc3511e15 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-18 02:21:38 +00:00
dependabot[bot]
aaccd2e7d2 Merge pull request #4025 from nextcloud/dependabot/npm_and_yarn/master/vue-at-2.5.1 2022-10-17 15:57:09 +00:00
dependabot[bot]
1921143bfd Bump vue-at from 2.5.0 to 2.5.1
Bumps [vue-at](https://github.com/fritx/vue-at) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/fritx/vue-at/releases)
- [Commits](https://github.com/fritx/vue-at/commits)

---
updated-dependencies:
- dependency-name: vue-at
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 14:38:58 +00:00
Julius Härtl
07b7df8e68 Merge pull request #4126 from nextcloud/dependabot/npm_and_yarn/master/vue-and-vue-template-compiler-2.7.13 2022-10-17 16:37:44 +02:00
Julius Härtl
c4804cfcb7 Merge pull request #4134 from DJE98/patch-2
Added nextcloud information in the  development description
2022-10-17 14:56:05 +02:00
Dennis Eisermann
6bc5f1df47 Added nextcloud information in the development description
Added more information about the nextcloud environment manually and with docker in the development description.

Signed-off-by: Dennis Eisermann <73851419+DJE98@users.noreply.github.com>
2022-10-17 14:46:45 +02:00
Julius Härtl
f8a8cc691c Merge pull request #4130 from DJE98/patch-1
Updated nodejs version requirement
2022-10-17 13:46:58 +02:00
Julius Härtl
a4b2a137e5 Merge pull request #4065 from nextcloud/perf/noid/circles-files 2022-10-17 11:39:21 +02:00
Dennis Eisermann
96b5c3da1d Updated nodejs version requirement
Updated nodejs version requirement from 14 to 16

Signed-off-by: Dennis Eisermann <73851419+DJE98@users.noreply.github.com>
2022-10-17 11:24:59 +02:00
Julius Härtl
a716c0968a Merge pull request #4127 from nextcloud/dependabot/composer/vimeo/psalm-4.29.0
Bump vimeo/psalm from 4.28.0 to 4.29.0
2022-10-15 10:38:19 +02:00
dependabot[bot]
48c8333ed1 Bump vue and vue-template-compiler
Bumps [vue](https://github.com/vuejs/core) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.7.9 to 2.7.13
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

Updates `vue-template-compiler` from 2.7.9 to 2.7.13
- [Release notes](https://github.com/vuejs/vue/releases)
- [Changelog](https://github.com/vuejs/vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue/compare/v2.7.9...v2.7.13)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: vue-template-compiler
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 08:13:16 +00:00
dependabot[bot]
8224ff13c3 Merge pull request #4124 from nextcloud/dependabot/npm_and_yarn/master/jest-29.2.0 2022-10-15 08:12:18 +00:00
dependabot[bot]
e150cd25e8 Merge pull request #4125 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.19.4 2022-10-15 04:49:59 +00:00
dependabot[bot]
6206a0cdd1 Bump jest from 29.1.2 to 29.2.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.1.2 to 29.2.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.2.0/packages/jest)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 03:09:51 +00:00
dependabot[bot]
d66b54dd13 Merge pull request #4123 from nextcloud/dependabot/npm_and_yarn/master/cypress-10.10.0 2022-10-15 03:08:42 +00:00
dependabot[bot]
5491c9444e Merge pull request #4121 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.0.0 2022-10-15 02:29:16 +00:00
dependabot[bot]
0fc5708253 Bump vimeo/psalm from 4.28.0 to 4.29.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.28.0 to 4.29.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.28.0...4.29.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 02:09:47 +00:00
dependabot[bot]
918342eeb7 Bump @babel/runtime from 7.19.0 to 7.19.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.19.0 to 7.19.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.19.4/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 01:03:24 +00:00
dependabot[bot]
ec66e0f291 Bump cypress from 10.9.0 to 10.10.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.9.0 to 10.10.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.9.0...v10.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 01:02:49 +00:00
dependabot[bot]
d76a1f539b Bump @nextcloud/vue from 7.0.0-beta.7 to 7.0.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.0-beta.7 to 7.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.0-beta.7...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-15 01:02:19 +00:00
Julius Härtl
c81501c2ea Cache user membership for circles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-14 23:11:19 +02:00
Julius Härtl
d62bd4e99a Merge pull request #3439 from nextcloud/bugfix/3431 2022-10-14 12:46:11 +02:00
Julius Härtl
863ce50a27 Activity: Set event link also for notifications that get emitted from activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-14 10:52:25 +02:00
Julius Härtl
a9c4e626ac Merge pull request #4113 from nextcloud/bugfix/noid/fix-sorting-stacks 2022-10-13 15:27:32 +02:00
Joas Schilling
982df96c3c Fix sorting stacks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-13 14:07:59 +02:00
Julius Härtl
bc070cbeb9 Merge pull request #4114 from nextcloud/tests/drop-mapper-test-util 2022-10-13 14:07:45 +02:00
Julius Härtl
dbac5f82d3 Avoid using dropped Test\AppFramework\Db\MapperTestUtility
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-13 13:01:15 +02:00
Nextcloud bot
58c7786cf7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-13 02:22:21 +00:00
Julius Härtl
14db941950 Merge pull request #4102 from nextcloud/fix/no-card-menu-without-description 2022-10-11 14:53:15 +02:00
dependabot[bot]
36a531c204 Merge pull request #4111 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-2.1.0 2022-10-08 08:13:54 +00:00
dependabot[bot]
0fa1f74699 Merge pull request #4110 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-4.1.1 2022-10-08 07:19:53 +00:00
dependabot[bot]
9189723970 Bump @nextcloud/axios from 2.0.0 to 2.1.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-axios/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-axios/compare/v2.0.0...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-08 04:12:54 +00:00
dependabot[bot]
d7bcdeb5a7 Merge pull request #4109 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-richtext-2.0.4 2022-10-08 04:11:54 +00:00
dependabot[bot]
4d9e81e22f Merge pull request #4108 from nextcloud/dependabot/composer/vimeo/psalm-4.28.0 2022-10-08 02:31:48 +00:00
dependabot[bot]
466c39d12a Bump @relative-ci/agent from 4.1.0 to 4.1.1
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: "@relative-ci/agent"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-08 02:26:40 +00:00
Nextcloud bot
86e7d04c80 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-08 02:21:49 +00:00
dependabot[bot]
a6b5ae3fde Bump @nextcloud/vue-richtext from 2.0.3 to 2.0.4
Bumps [@nextcloud/vue-richtext](https://github.com/nextcloud/vue-richtext) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/nextcloud/vue-richtext/releases)
- [Changelog](https://github.com/nextcloud/vue-richtext/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/vue-richtext/compare/v2.0.3...v2.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-08 02:12:43 +00:00
dependabot[bot]
bb3f41dd69 Bump vimeo/psalm from 4.27.0 to 4.28.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.27.0 to 4.28.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.27.0...4.28.0)

---
updated-dependencies:
- dependency-name: vimeo/psalm
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-08 01:01:00 +00:00
Marcel Klehr
b2bdf4a49d Fix Card menu not displaying when description is not set
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-07 11:36:09 +02:00
Nextcloud bot
91268cdd4c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-06 02:26:14 +00:00
Nextcloud bot
6b621d2faa [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-05 02:21:21 +00:00
Julius Härtl
93db4fd2d8 Merge pull request #4096 from nextcloud/fix/remove-util-constant-uses 2022-10-02 14:17:55 +02:00
Côme Chilliet
f166552de0 Remove uses of Util:: loglevel constants removed from server
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-02 13:54:56 +02:00
Julius Härtl
aab3352624 Merge pull request #4084 from nextcloud/bugfix/noid/fix-missing-icon-for-activities 2022-10-01 14:49:19 +02:00
dependabot[bot]
26f33e5bc6 Merge pull request #4089 from nextcloud/dependabot/npm_and_yarn/master/cypress-10.9.0 2022-10-01 11:10:08 +00:00
dependabot[bot]
da4db42380 Bump cypress from 10.8.0 to 10.9.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.8.0 to 10.9.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.8.0...v10.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 07:38:30 +00:00
dependabot[bot]
aa46b49ab7 Merge pull request #4088 from nextcloud/dependabot/npm_and_yarn/master/jest-29.1.2 2022-10-01 07:37:32 +00:00
dependabot[bot]
b70e893364 Merge pull request #4087 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-richtext-2.0.3 2022-10-01 06:22:52 +00:00
Nextcloud bot
a6bb454df5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-01 02:24:36 +00:00
Nextcloud bot
099e76aeab [tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-01 02:24:14 +00:00
dependabot[bot]
309b00f2d9 Bump jest from 29.0.1 to 29.1.2
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.0.1 to 29.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.1.2/packages/jest)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 02:18:38 +00:00
dependabot[bot]
acd181133c Merge pull request #4085 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.25 2022-10-01 02:12:08 +00:00
dependabot[bot]
86f8999d30 Bump @nextcloud/vue-richtext from 2.0.1 to 2.0.3
Bumps [@nextcloud/vue-richtext](https://github.com/nextcloud/vue-richtext) from 2.0.1 to 2.0.3.
- [Release notes](https://github.com/nextcloud/vue-richtext/releases)
- [Changelog](https://github.com/nextcloud/vue-richtext/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/vue-richtext/compare/v2.0.1...v2.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 02:07:41 +00:00
dependabot[bot]
661a64656e Merge pull request #4086 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.0.0-beta.7 2022-10-01 02:06:43 +00:00
dependabot[bot]
3380103a8f Bump @nextcloud/vue from 7.0.0-beta.6 to 7.0.0-beta.7
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.0-beta.6 to 7.0.0-beta.7.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.0-beta.6...v7.0.0-beta.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 01:03:39 +00:00
dependabot[bot]
7ebf6e4150 Bump phpunit/phpunit from 9.5.24 to 9.5.25
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.24 to 9.5.25.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.24...9.5.25)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 01:02:13 +00:00
Joas Schilling
05fdd9765c Fix missing icon for activity rendering
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-09-30 09:57:02 +02:00
Nextcloud bot
72a8c4dd83 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-30 03:23:38 +00:00
Nextcloud bot
423630bea6 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-28 02:46:15 +00:00
Julius Härtl
2c9bcbae0b Merge pull request #4080 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.0.0-beta.6 2022-09-27 00:20:45 +02:00
dependabot[bot]
f70747ea15 Bump @nextcloud/vue from 7.0.0-beta.5 to 7.0.0-beta.6
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.0-beta.5 to 7.0.0-beta.6.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.0-beta.5...v7.0.0-beta.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-26 22:12:19 +00:00
Julien Veyssier
b4c1525958 Merge pull request #4077 from nextcloud/fix/noid/private-reference-class
use OCP\Collaboration\Reference\Reference
2022-09-26 19:48:36 +02:00
Julien Veyssier
ed5df26704 use OCP\Collaboration\Reference\Reference instead of the recently removed OC\Collaboration\Reference\Reference
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-26 17:23:00 +02:00
Julius Härtl
d8253d41fd Merge pull request #4067 from Jerome-Herbinet/patch-1
Fix : Overlapping problem in the deletions tab
2022-09-26 10:36:56 +02:00
Jérôme Herbinet
4eb7988e2c Merge branch 'master' into patch-1 2022-09-26 09:03:14 +02:00
Nextcloud bot
4f68aed812 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-26 02:47:15 +00:00
Nextcloud bot
322d01d3e1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-24 02:47:21 +00:00
dependabot[bot]
aa34a0cce3 Merge pull request #4073 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-7.0.0-beta.5 2022-09-24 02:42:20 +00:00
dependabot[bot]
93a988f8f1 Bump @nextcloud/vue from 7.0.0-beta.4 to 7.0.0-beta.5
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 7.0.0-beta.4 to 7.0.0-beta.5.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v7.0.0-beta.4...v7.0.0-beta.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-24 01:02:59 +00:00
Julius Härtl
630fa5b07e Merge pull request #4071 from nextcloud/enh/import
Use global import for nextcloud-vue
2022-09-23 12:00:18 +02:00
Julius Härtl
77f623d261 Merge pull request #4066 from nextcloud/bugfix/delete_acl
Fix deleteAcl
2022-09-23 10:05:09 +02:00
Nextcloud bot
30a4e88cff [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-23 02:42:07 +00:00
Julius Härtl
01b897bd8b Fix imports
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-09-22 20:33:58 +02:00
Julius Härtl
be36e6de6a Use global import for nextcloud-vue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-09-22 20:33:58 +02:00
Julius Härtl
96b7a7ccb3 Merge pull request #4069 from nextcloud/fix/noid/reference-widget-style 2022-09-22 20:28:56 +02:00
Julius Härtl
d8dd65d7ee Merge pull request #4070 from nextcloud/update-master-version 2022-09-22 20:28:20 +02:00
Julien Veyssier
aecdcb847d fix width issues
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-22 17:05:53 +02:00
Joas Schilling
a383d389c4 Add Nextcloud 25 support on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-09-22 13:22:33 +02:00
Julien Veyssier
565b2edfdd use richtext component for description, adjust style to make it work in Text
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-22 13:21:33 +02:00
Jérôme Herbinet
c1b4beeb64 Fix : Overlapping problem in the deletions tab
Overlapping problem in the deletions tab fix when titles are long and displayed on two lines 
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2022-09-22 11:09:15 +02:00
raul
9d489564d6 Fix psalm test
Signed-off-by: raul <raul@nextcloud.com>
2022-09-22 08:46:35 +02:00
raul
24a4260e55 Fix deleteAcl
Signed-off-by: raul <raul@nextcloud.com>
2022-09-22 08:46:35 +02:00
dependabot[bot]
71e5c0d743 Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-10 04:06:23 +00:00
Julius Härtl
48d28dc317 Merge branch 'master' into fix-archived-stack-button 2022-08-09 07:43:24 +02:00
Julius Härtl
ad007bd51a Merge branch 'master' into fix-archived-stack-button 2022-08-02 12:24:33 +02:00
estromenko
6ed7f672fc Make it possible to unarchive all archived cards
Signed-off-by: Eduard Stromenko <estromenko@mail.ru>
2022-04-11 15:57:58 +02:00
203 changed files with 8233 additions and 6298 deletions

View File

@@ -0,0 +1,29 @@
{
"image": "ghcr.io/juliushaertl/nextcloud-dev-php80:latest",
"forwardPorts": [80],
"containerEnv": {
"NEXTCLOUD_AUTOINSTALL_APPS": "deck",
"XDEBUG_MODE": "debug"
},
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-intellisense",
"octref.vetur"
],
"settings": {
"php.suggest.basic": false,
"git.alwaysSignOff": true
}
}
},
"workspaceMount": "source=${localWorkspaceFolder},target=/var/www/html/apps-extra/deck,type=bind",
"workspaceFolder": "/var/www/html/apps-extra/deck",
"overrideCommand": true,
"postAttachCommand": "bash ./.devcontainer/setup.sh",
"portsAttributes": {
"80": {
"label": "Webserver"
}
}
}

9
.devcontainer/setup.sh Normal file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
(
cd /tmp && /usr/local/bin/bootstrap.sh apache2ctl start
)
composer install --no-dev
npm ci
npm run dev

View File

@@ -9,6 +9,6 @@ module.exports = {
'jsdoc/check-param-names': ['off'],
'jsdoc/no-undefined-types': ['off'],
'jsdoc/require-property-description': ['off'],
'import/no-named-as-default-member': ['off']
'import/no-named-as-default-member': ['off'],
},
}

View File

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

View File

@@ -1,6 +1,6 @@
* Resolves: # <!-- related github issue -->
* Target version: master
* Target version: main
### Summary

View File

@@ -13,7 +13,7 @@ jobs:
strategy:
matrix:
node-version: [14.x]
node-version: [16.x]
steps:
- uses: actions/checkout@v3
@@ -24,14 +24,14 @@ jobs:
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.21.2
uses: shivammathur/setup-php@2.25.1
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
- name: package
run: |
uname -a

View File

@@ -10,7 +10,7 @@ on:
types: [published]
env:
PHP_VERSION: 7.4
PHP_VERSION: 8.1
jobs:
build_and_publish:
@@ -21,42 +21,42 @@ jobs:
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@v2
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
with:
require: write
- name: Set app env
run: |
# Split and keep last
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
path: ${{ env.APP_NAME }}
- name: Get appinfo data
id: appinfo
uses: skjnldsv/xpath-action@master
uses: skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
with:
filename: ${{ env.APP_NAME }}/appinfo/info.xml
expression: "//info//dependencies//nextcloud/@min-version"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@v1.2
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: "^12"
fallbackNpm: "^6"
fallbackNode: "^16"
fallbackNpm: "^7"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@v3
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -66,14 +66,16 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@2.21.2
uses: shivammathur/setup-php@2.25.1 # v2
with:
php-version: ${{ env.PHP_VERSION }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@v1
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: "${{ env.APP_NAME }}/composer.json"
@@ -91,16 +93,29 @@ jobs:
npm ci
npm run build
- name: Install Krankerl
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.13.0/krankerl_0.13.0_amd64.deb
sudo dpkg -i krankerl_0.13.0_amd64.deb
- name: Check Krankerl config
id: krankerl
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: ${{ env.APP_NAME }}/krankerl.toml
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }}
# Try krankerl, fallback to makefile
- name: Install Krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
sudo dpkg -i krankerl_0.14.0_amd64.deb
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
if: steps.krankerl.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
krankerl package || make appstore
krankerl package
- name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
if: steps.krankerl.outputs.files_exists != 'true'
run: |
cd ${{ env.APP_NAME }}
make appstore
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
continue-on-error: true
@@ -111,7 +126,7 @@ jobs:
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
uses: actions/checkout@v3
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
repository: nextcloud/server
@@ -133,7 +148,7 @@ jobs:
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@v2
uses: svenstaro/upload-release-action@7319e4733ec7a184d739a6f412c40ffc339b69c7 # v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
@@ -143,7 +158,7 @@ jobs:
overwrite: true
- name: Upload app to Nextcloud appstore
uses: nextcloud-releases/nextcloud-appstore-push-action@v1
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
with:
app_name: ${{ env.APP_NAME }}
appstore_token: ${{ secrets.APPSTORE_TOKEN }}

View File

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

View File

@@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- master
- main
- stable*
env:
@@ -21,9 +21,9 @@ jobs:
matrix:
node-version: [14.x]
# containers: [1, 2, 3]
php-versions: [ '7.4' ]
php-versions: [ '8.0' ]
databases: [ 'sqlite' ]
server-versions: [ 'stable25' ]
server-versions: [ 'stable27' ]
steps:
- name: Use Node.js ${{ matrix.node-version }}
@@ -33,6 +33,11 @@ jobs:
- name: Set up npm7
run: npm i -g npm@7
- name: Register text Git reference
run: |
text_app_ref="$(if [ "${{ matrix.server-versions }}" = "master" ]; then echo -n "main"; else echo -n "${{ matrix.server-versions }}"; fi)"
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@v3
with:
@@ -51,8 +56,15 @@ jobs:
with:
path: apps/${{ env.APP_NAME }}
- name: Checkout text
uses: actions/checkout@v3
with:
repository: nextcloud/text
ref: ${{ env.text_app_ref }}
path: apps/text
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.21.2
uses: shivammathur/setup-php@2.25.1
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
@@ -84,7 +96,7 @@ jobs:
curl -v http://localhost:8081/index.php/login
- name: Cypress run
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v5
with:
record: true
parallel: false
@@ -96,7 +108,7 @@ jobs:
npm_package_name: ${{ env.APP_NAME }}
- name: Upload test failure screenshots
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: failure()
with:
name: Upload screenshots
@@ -104,7 +116,7 @@ jobs:
retention-days: 5
- name: Upload nextcloud logs
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: failure()
with:
name: Upload nextcloud log

View File

@@ -15,22 +15,26 @@ on:
permissions:
contents: read
concurrency:
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
pull-requests: write
steps:
# Github actions bot approve
- uses: hmarr/auto-approve-action@v2
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@v2
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}

View File

@@ -5,16 +5,29 @@
name: Pull request checks
on: pull_request
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
commit-message-check:
name: Block fixup and squash commits
commit-message-check:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
permissions:
pull-requests: write
name: Block fixup and squash commits
steps:
- name: Run check
uses: xt0rted/block-autosquash-commits-action@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
runs-on: ubuntu-latest
steps:
- name: Run check
uses: xt0rted/block-autosquash-commits-action@79880c36b4811fe549cfffe20233df88876024e7 # v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -12,6 +12,7 @@ on:
- 'composer.lock'
push:
branches:
- main
- master
- stable*
@@ -25,9 +26,9 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['7.4']
php-versions: ['8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable25']
server-versions: ['stable27']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -70,16 +71,17 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.21.2
uses: shivammathur/setup-php@2.25.1
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu
ini-values:
apc.enable_cli=on
coverage: none
- name: Set up PHPUnit
- name: Set up dependencies
working-directory: apps/${{ env.APP_NAME }}
run: composer i
run: composer i --no-dev
- name: Set up Nextcloud
run: |
@@ -90,11 +92,63 @@ jobs:
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
./occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
./occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu"
cat config/config.php
./occ user:list
./occ app:enable --force ${{ env.APP_NAME }}
./occ config:system:set query_log_file --value '/home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/query.log'
php -S localhost:8080 &
- name: Run behat
working-directory: apps/${{ env.APP_NAME }}/tests/integration
run: ./run.sh
- name: Query count
if: ${{ matrix.databases == 'mysql' }}
uses: actions/github-script@v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let myOutput = ''
let myError = ''
const options = {}
options.listeners = {
stdout: (data) => {
myOutput += data.toString()
},
stderr: (data) => {
myError += data.toString()
}
}
await exec.exec(`/bin/bash -c "cat /home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/query.log | wc -l"`, [], options)
msg = myOutput
const queryCount = parseInt(myOutput, 10)
myOutput = ''
await exec.exec('cat', ['/home/runner/work/${{ env.APP_NAME }}/${{ env.APP_NAME }}/apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options)
const baseCount = parseInt(myOutput, 10)
const absoluteIncrease = queryCount - baseCount
const relativeIncrease = baseCount <= 0 ? 100 : (parseInt((absoluteIncrease / baseCount * 10000), 10) / 100)
if (absoluteIncrease >= 100 || relativeIncrease > 5) {
const comment = `🐢 Performance warning.\nIt looks like the query count of the integration tests increased with this PR.\nDatabase query count is now ` + queryCount + ' was ' + baseCount + ' (+' + relativeIncrease + '%)\nPlease check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.'
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
}
if (queryCount < 100) {
const comment = `🐈 Performance messuring seems broken. Failed to get query count.`
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
}

62
.github/workflows/lint-eslint.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
# 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
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
permissions:
contents: read
concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: eslint
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- 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: Install dependencies
run: npm ci
- name: Lint
run: npm run lint

39
.github/workflows/lint-php-cs.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
# 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: Lint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-cs-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: php-cs
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php
uses: shivammathur/setup-php@2.25.1 # v2
with:
php-version: 8.1
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )

59
.github/workflows/lint-php.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
# 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: Lint
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: lint-php-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
php-lint:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: [ "8.0", "8.1", "8.2" ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.25.1 # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: php-lint
if: always()
name: php-lint-summary
steps:
- name: Summary status
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi

46
.github/workflows/lint-stylelint.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
# 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: Lint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-stylelint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: stylelint
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- 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: Install dependencies
run: npm ci
- name: Lint
run: npm run stylelint

View File

@@ -1,88 +0,0 @@
name: Lint
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
php:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.4', '8.0', '8.1']
name: php${{ matrix.php-versions }} lint
steps:
- uses: actions/checkout@v3
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.21.2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
- name: Lint
run: composer run lint
php-cs-fixer:
name: php-cs check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up php
uses: shivammathur/setup-php@2.21.2
with:
php-version: 7.4
coverage: none
- name: Install dependencies
run: composer i
- name: Run coding standards check
run: composer run cs:check
node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v3
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint
stylelint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
name: stylelint node${{ matrix.node-version }}
steps:
- uses: actions/checkout@v3
- name: Set up node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run stylelint

View File

@@ -25,7 +25,7 @@ jobs:
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.21.2
uses: shivammathur/setup-php@2.25.1
with:
php-version: '7.4'
tools: composer
@@ -44,14 +44,14 @@ jobs:
git config --local user.name "GitHub Action"
git tag -f nightly
- name: Push tag
uses: juliushaertl/github-push-action@master
uses: juliushaertl/github-push-action@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tags: true
force: true
- name: Create Release
id: create_release
uses: juliushaertl/action-release@master
uses: juliushaertl/action-release@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly

71
.github/workflows/npm-audit-fix.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
# 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

View File

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

View File

@@ -13,6 +13,10 @@ on:
- main
- stable*
concurrency:
group: psalm-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
static-analysis:
runs-on: ubuntu-latest
@@ -20,13 +24,15 @@ jobs:
name: Nextcloud
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Set up php
uses: shivammathur/setup-php@v2
uses: shivammathur/setup-php@2.25.1 # v2
with:
php-version: 7.4
php-version: 8.1
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i

View File

@@ -17,22 +17,24 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["master", "stable25", "stable24", "stable23"]
branches: ["master", "stable26", "stable25", "stable24"]
name: update-nextcloud-ocp-${{ matrix.branches }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php7.4
uses: shivammathur/setup-php@v2
- name: Set up php8.1
uses: shivammathur/setup-php@2.25.1 # v2
with:
php-version: 7.4
php-version: 8.1
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer install
@@ -45,14 +47,15 @@ jobs:
run: |
git clean -f 3rdparty
git clean -f vendor
git checkout 3rdparty vendor
git clean -f vendor-bin
git checkout 3rdparty vendor vendor-bin
continue-on-error: true
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true

2
.gitignore vendored
View File

@@ -3,9 +3,11 @@ js/
build/
css/style.css
css/vendor.css
cypress/videos/
tests/integration/vendor/
tests/integration/composer.lock
tests/.phpunit.result.cache
vendor/
.php_cs.cache
\.idea/
settings.json

View File

@@ -1,6 +1,6 @@
[main]
host = https://www.transifex.com
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
lang_map = hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi
[o:nextcloud:p:nextcloud:r:deck]
file_filter = translationfiles/<lang>/deck.po

View File

@@ -1,54 +1,79 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.8.5
## 1.10.0-beta.2
### Fixed
- fix: Properly overwrite z-index of datepicker above modal [#4667](https://github.com/nextcloud/deck/pull/4667)
## 1.8.4
### Fixed
- fix: Use passed userid when getting attachment folder [#4540](https://github.com/nextcloud/deck/pull/4540)
- fix: Adapt NcEmptyContent usages to new slots [#4563](https://github.com/nextcloud/deck/pull/4563)
- Gracefully handle not found card for a share [#4568](https://github.com/nextcloud/deck/pull/4568)
- allow user to toggle visibility of the calendar for a deck board [#4626](https://github.com/nextcloud/deck/pull/4626)
- fix: Append datetime picker to body to avoid cut off [#4645](https://github.com/nextcloud/deck/pull/4645)
- Fix : Overlapping expiry dates on tags [#4536](https://github.com/nextcloud/deck/pull/4536)
- Better display of card dates (creation and change dates) [#4620](https://github.com/nextcloud/deck/pull/4620)
- fix: Properly overwrite z-index of datepicker above modal @juliushaertl [#4664](https://github.com/nextcloud/deck/pull/4664)
- Use the color-primary-element* variables @szaimen [#4673](https://github.com/nextcloud/deck/pull/4673)
- Dependency updates
## 1.8.3
### Other
### Fixed
- feat: Add devcontainer and update dev docs @juliushaertl [#4683](https://github.com/nextcloud/deck/pull/4683)
- chore(CI): Adjust testing matrix for Nextcloud 27 on stable27 @nickvergessen [#4691](https://github.com/nextcloud/deck/pull/4691)
- Fix component renaming so that acl works on shares again [#4328](https://github.com/nextcloud/deck/pull/4328)
- Permanently delete deck cards marked as deleted after 5 min in a cron job [#4301](https://github.com/nextcloud/deck/pull/4301)
- Dependency updates
## 1.8.2
### Fixed
- minor style fixes [#4201](https://github.com/nextcloud/deck/pull/4201)
- feat: add validators to check values in services [#4174](https://github.com/nextcloud/deck/pull/4174)
- Add integration test for attachment handling on cards [#4179](https://github.com/nextcloud/deck/pull/4179)
- Add missing userId property [#4198](https://github.com/nextcloud/deck/pull/4198)
## 1.8.1
### Fixed
- Fix Duedate activity @nickvergessen [#4155](https://github.com/nextcloud/deck/pull/4155)
## 1.8.0
## 1.10.0-beta.1
### Added
- Compatibility with Nextcloud 27
### 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)
## 1.9.0-beta.1
### 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)
- 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)
### Fixed
- 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)
- App metadata: add links to user and developer documentation @p-bo [#4356](https://github.com/nextcloud/deck/pull/4356)
- Update signature of Entity::markFieldUpdated @nickvergessen [#4398](https://github.com/nextcloud/deck/pull/4398)
- Remove updated nightly information @xf- [#4419](https://github.com/nextcloud/deck/pull/4419)
- 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
### Enhancements
- Nextcloud 25 compatibility
- Performance improvements
- Use capped memory cache for board permissions @juliushaertl [#3980](https://github.com/nextcloud/deck/pull/3980)
@@ -59,26 +84,10 @@ All notable changes to this project will be documented in this file.
- Improve filter popover accessibility @juliushaertl [#3820](https://github.com/nextcloud/deck/pull/3820)
- Set ids to skip to content/navigation @juliushaertl [#3924](https://github.com/nextcloud/deck/pull/3924)
- Invert icons properly in dark mode @juliushaertl [#3939](https://github.com/nextcloud/deck/pull/3939)
- Implement card reference widget @eneiluj [#4031](https://github.com/nextcloud/deck/pull/4031)
- Implement new dashboard widget interfaces @eneiluj [#4033](https://github.com/nextcloud/deck/pull/4033)
- Add related resources panel to board sharing tab sidebar @Pytal [#4000](https://github.com/nextcloud/deck/pull/4000)
- Bump dependencies
### Fixed
- Fix sorting stacks [#4116](https://github.com/nextcloud/deck/pull/4116)
- Fix issue with duedate format [#4140](https://github.com/nextcloud/deck/pull/4140)
- Fix missing icon for activity rendering [#4090](https://github.com/nextcloud/deck/pull/4090)
- disables autocomplete on card creation [#4142](https://github.com/nextcloud/deck/pull/4142)
- Set event link also for notifications that get emitted from activities [#4117](https://github.com/nextcloud/deck/pull/4117)
- Fix attachment creator name: show display name @eneiluj [#4036](https://github.com/nextcloud/deck/pull/4036)
- Fix reference provider when caching @eneiluj [#4056](https://github.com/nextcloud/deck/pull/4056)
- Use global import for nextcloud-vue [#4072](https://github.com/nextcloud/deck/pull/4072)
- Disable Create card button while no stack is chosen @icewind1991 [#4014](https://github.com/nextcloud/deck/pull/4014)
- Adjust testing matrix for Nextcloud 25 on stable25 @nickvergessen [#4068](https://github.com/nextcloud/deck/pull/4068)
- Fix Card menu not displaying when description is not set @marcelklehr [#4105](https://github.com/nextcloud/deck/pull/4105)
- Reference widget adjustments for Text [#4075](https://github.com/nextcloud/deck/pull/4075)
- use OCP\Collaboration\Reference\Reference [#4078](https://github.com/nextcloud/deck/pull/4078)
- Cache user membership for circles [#4141](https://github.com/nextcloud/deck/pull/4141)
- set last modified when the card was found. Fixes #3763 @ylebre [#3796](https://github.com/nextcloud/deck/pull/3796)
- Increase file count after sharing @luka-nextcloud [#3682](https://github.com/nextcloud/deck/pull/3682)
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 @Ben-Ro [#3811](https://github.com/nextcloud/deck/pull/3811)
@@ -523,7 +532,7 @@ Android app team for helping to improve our REST API:
- Fix comment activities on Nextcloud 15
- Fix issues with Edge
- API: Fix numeric types that were returned as strings
- API: Fix If-Modified-Since header parsing
- API: Fix If-Modified-Since header parsing
## 0.5.1 - 2018-12-05
@@ -650,7 +659,7 @@ Android app team for helping to improve our REST API:
### Fixed
- Various frontend fixes
- Fix sidebar drag issues
- Improvements for IE11
- Improvements for IE11
- Fix bug when draging a card to an empty stack
## 0.2.1 - 2017-07-04
@@ -724,7 +733,7 @@ Android app team for helping to improve our REST API:
### Fixed
- Various styling improvements
- Fix problems with MySQL and PostgreSQL
- Fix problems with MySQL and PostgreSQL
- Select first color by default when creating boards
- Fix error when changing board permissions
@@ -732,9 +741,9 @@ Android app team for helping to improve our REST API:
### Added
- Sharing boards with other users
- Create and manage boards
- Create and manage boards
- Sort cards on stacks by drag-and-drop
- Assign labels
- Markdown notes for each card
- Archive cards
- Archive cards

View File

@@ -30,6 +30,16 @@ build: clean-dist install-deps build-js
release: clean-dist install-deps-nodev build-js
lint: lint-js lint-php
lint-js:
npm run lint
npm run stylelint
lint-php:
composer run lint 1>/dev/null
composer run cs:check
build-js: install-deps-js
npm run build

View File

@@ -1,6 +1,6 @@
# Deck
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=master)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=master)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=master) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=main)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=main)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=main) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
@@ -20,6 +20,7 @@ Deck is a kanban style organization tool aimed at personal planning and project
### Mobile apps
- [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) - It is available in [F-Droid](https://f-droid.org/de/packages/it.niedermann.nextcloud.deck/) and the [Google Play Store](https://play.google.com/store/apps/details?id=it.niedermann.nextcloud.deck.play)
- [deck NG for Android and iOS](https://github.com/meltzow/deck-ng) - It is available in [Google Play Store](https://play.google.com/store/apps/details?id=net.meltzow.deckng) and [Apple App Store](https://apps.apple.com/us/app/deck-ng/id6443334702)
### 3rd-Party Integrations
@@ -29,28 +30,7 @@ Deck is a kanban style organization tool aimed at personal planning and project
## Installation/Update
This app is supposed to work on the two latest Nextcloud versions.
### Install latest release
You can download and install the latest release from the [Nextcloud app store](https://apps.nextcloud.com/apps/deck)
### Install from git
If you want to run the latest development version from git source, you need to clone the repo to your apps folder:
```
git clone https://github.com/nextcloud/deck.git
cd deck
make install-deps
make build
```
Please make sure you have installed the following dependencies: `make, which, tar, npm, curl, composer`
### Install the nightly builds
Instead of setting everything up manually, you can just [download the nightly build](https://github.com/nextcloud/deck/releases/tag/nightly) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
The app can be installed through the app store within Nextcloud. You can also download the latest release from the [release page](https://github.com/nextcloud-releases/deck/releases).
## Performance limitations
@@ -65,36 +45,46 @@ Improvements on Nextcloud server and Deck itself will improve the situation.
## Developing
### PHP
There are multiple ways to develop on Deck. As you will need a Nextcloud server running, the individual options are described below.
Nothing to prepare, just dig into the code.
### General build instructions
### JavaScript
General build instructions for the app itself are the same for all options.
This requires at least Node 14 and npm 7 to be installed.
To build you will need to have [Node.js](https://nodejs.org/en/) and [Composer](https://getcomposer.org/) installed.
Deck requires running a `make build-js` to install npm dependencies and build the JavaScript code using webpack. While developing you can also use `make watch` to rebuild everytime the code changes.
- Install PHP dependencies: `composer install --no-dev`
- Install JS dependencies: `npm ci`
- Build JavaScript for the frontend
- Development build `npm run dev`
- Watch for changes `npm run watch`
- Production build `npm run build`
#### Hot reloading
### GitHub Codespaces / VS Code devcontainer
Enable debug mode in your config.php `'debug' => true,`
- Open code spaces or the repository in VS Code to start the dev container
- The container will automatically install all dependencies and build the app
- Nextcloud will be installed from the master development branch and be available on a port exposed by the container
### Docker: Simple app development container
- Fork the app
- Clone the repository: `git clone https://github.com/nextcloud/deck.git`
- Go into deck directory: `cd deck`
- Build the app as described in the general build instructions
- Run Nextcloud development container and mount the apps source code into it
Without SSL:
```
npx webpack-dev-server --config webpack.hot.js \
--public localhost:3000 \
--output-public-path 'http://localhost:3000/js/'
docker run --rm \
-p 8080:80 \
-v ~/path/to/app:/var/www/html/apps-extra/app \
ghcr.io/juliushaertl/nextcloud-dev-php80:latest
```
With SSL:
```
npx webpack-dev-server --config webpack.dev.js --https \
--cert ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.crt \
--key ~/repos/nextcloud/nc-dev/data/ssl/nextcloud.local.key \
--public nextcloud.local:3000 \
--output-public-path 'https://nextcloud.local:3000/js/'
```
### Full Nextcloud development environment
You need to setup a [development environment](https://docs.nextcloud.com/server/latest/developer_manual//getting_started/devenv.html) of the current Nextcloud version. You can also alternatively install & run the [nextcloud docker container](https://github.com/juliushaertl/nextcloud-docker-dev).
After the finished installation, you can clone the deck project directly in the `/[nextcloud-docker-dev-dir]/workspace/server/apps/` folder.
### Running tests
You can use the provided Makefile to run all tests by using:

View File

@@ -20,7 +20,7 @@ Your report should include:
- Reproduction steps
A member of the security team will confirm the vulnerability, determine its impact, and develop a fix.
The fix will be applied to the master branch, tested, and packaged in the next security release.
The fix will be applied to the main branch, tested, and packaged in the next security release.
The vulnerability will be publicly announced after the release. Finally, your name will be added
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud community. Note our
[threat model](https://nextcloud.com/security/threat-model) to know what is expected behavior.

View File

@@ -16,9 +16,13 @@
- 🚀 Get your project organized
</description>
<version>1.8.5</version>
<version>1.10.0-beta.2</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<documentation>
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
</documentation>
<namespace>Deck</namespace>
<types>
<dav/>
@@ -34,13 +38,19 @@
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="8.0">mysql</database>
<nextcloud min-version="25" max-version="25"/>
<nextcloud min-version="27" max-version="27"/>
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>
<job>OCA\Deck\Cron\ScheduledNotifications</job>
<job>OCA\Deck\Cron\CardDescriptionActivity</job>
<job>OCA\Deck\Cron\SessionsCleanup</job>
</background-jobs>
<repair-steps>
<live-migration>
<step>OCA\Deck\Migration\DeletedCircleCleanup</step>
</live-migration>
</repair-steps>
<commands>
<command>OCA\Deck\Command\UserExport</command>
<command>OCA\Deck\Command\BoardImport</command>

View File

@@ -40,6 +40,7 @@ return [
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
['name' => 'board#transferOwner', 'url' => '/boards/{boardId}/transferOwner', 'verb' => 'PUT'],
['name' => 'board#export', 'url' => '/boards/{boardId}/export', 'verb' => 'GET'],
// stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
@@ -149,5 +150,10 @@ return [
['name' => 'overview_api#upcomingCards', 'url' => '/api/v{apiVersion}/overview/upcoming', 'verb' => 'GET'],
['name' => 'search#search', 'url' => '/api/v{apiVersion}/search', 'verb' => 'GET'],
// sessions
['name' => 'Session#create', 'url' => '/api/v{apiVersion}/session/create', 'verb' => 'PUT'],
['name' => 'Session#sync', 'url' => '/api/v{apiVersion}/session/sync', 'verb' => 'POST'],
['name' => 'Session#close', 'url' => '/api/v{apiVersion}/session/close', 'verb' => 'POST'],
]
];

View File

@@ -17,9 +17,9 @@
"phpunit/phpunit": "^9",
"nextcloud/coding-standard": "^1.0.0",
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^4.3",
"vimeo/psalm": "^5.4",
"php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-stable25"
"nextcloud/ocp": "dev-stable27"
},
"config": {
"optimize-autoloader": true,
@@ -28,7 +28,7 @@
"composer/package-versions-deprecated": true
},
"platform": {
"php": "7.4"
"php": "8.0"
}
},
"scripts": {
@@ -42,8 +42,8 @@
"@test:unit",
"@test:integration"
],
"test:unit": "phpunit -c tests/phpunit.xml",
"test:integration": "phpunit -c tests/phpunit.integration.xml && cd tests/integration && ./run.sh"
"test:unit": "vendor/bin/phpunit -c tests/phpunit.xml",
"test:integration": "vendor/bin/phpunit -c tests/phpunit.integration.xml && cd tests/integration && ./run.sh"
},
"autoload-dev": {
"psr-4": {

874
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,16 @@
const { defineConfig } = require('cypress')
module.exports = defineConfig({
projectId: '1s7wkc',
viewportWidth: 1280,
viewportHeight: 720,
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
return require('./cypress/plugins/index.js')(on, config)
},
baseUrl: 'http://nextcloud.local/index.php',
experimentalSessionAndOrigin: true,
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
},
projectId: '1s7wkc',
viewportWidth: 1280,
viewportHeight: 720,
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
return require('./cypress/plugins/index.js')(on, config)
},
baseUrl: 'http://nextcloud.local/index.php',
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
},
})

5
cypress/.eslintrc.js Normal file
View File

@@ -0,0 +1,5 @@
module.exports = {
extends: [
'plugin:cypress/recommended',
],
}

View File

@@ -1,15 +1,17 @@
import { randHash } from '../utils'
const randUser = randHash()
import { randUser } from '../utils/index.js'
const user = randUser()
const recipient = randUser()
describe('Board', function() {
const password = 'pass123'
before(function() {
cy.nextcloudCreateUser(randUser, password)
cy.createUser(user)
cy.createUser(recipient)
})
beforeEach(function() {
cy.login(randUser, password)
cy.login(user)
cy.visit('/apps/deck')
})
it('Can create a board', function() {
@@ -21,7 +23,6 @@ describe('Board', function() {
}).as('createBoardRequest')
// Click "Add board"
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3).find('a').first().click({ force: true })
@@ -38,4 +39,18 @@ describe('Board', function() {
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
.contains(board).should('be.visible')
})
it('Shows and hides the navigation', () => {
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('be.visible')
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('not.be.visible')
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.contains('Upcoming cards')
.should('be.visible')
})
})

View File

@@ -1,53 +1,47 @@
import { randHash } from '../utils'
const randUser = randHash()
import { randUser } from '../utils/index.js'
import { sampleBoard } from '../utils/sampleBoard'
const testBoardData = {
title: 'MyBoardTest',
color: '00ff00',
stacks: [
{
title: 'TestList',
cards: [
{
title: 'Hello world',
},
],
},
],
const user = randUser()
const boardData = sampleBoard()
const auth = {
user: user.userId,
password: user.password,
}
const useModal = (useModal) => {
return cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/ocs/v2.php/apps/deck/api/v1.0/config/cardDetailsInModal?format=json`,
auth,
body: { value: useModal },
}).then((response) => {
expect(response.status).to.eq(200)
})
}
describe('Card', function() {
let boardId
before(function() {
cy.nextcloudCreateUser(randUser, randUser)
cy.createUser(user)
cy.login(user)
cy.createExampleBoard({
user: randUser,
password: randUser,
board: testBoardData,
user,
board: boardData,
}).then((board) => {
boardId = board.id
})
})
beforeEach(function() {
cy.login(randUser, randUser)
})
it('Can show card details modal', function() {
cy.openLeftSidebar()
cy.getNavigationEntry(testBoardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
})
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
cy.login(user)
})
it('Can add a card', function() {
cy.visit(`/apps/deck/#/board/${boardId}`)
const newCardTitle = 'Write some cypress tests'
cy.openLeftSidebar()
cy.getNavigationEntry(testBoardData.title)
cy.getNavigationEntry(boardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
@@ -64,4 +58,72 @@ describe('Card', function() {
})
})
describe('Modal', () => {
beforeEach(function() {
cy.login(user)
useModal(true).then(() => {
cy.visit(`/apps/deck/#/board/${boardId}`)
})
})
it('Can show card details modal', function() {
cy.getNavigationEntry(boardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
})
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
})
it('Attachment from files app', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-tabs__tab [data-id="attachments"]').click()
cy.get('button.icon-upload').should('be.visible')
cy.get('button.icon-folder').should('be.visible')
.click()
cy.get('.oc-dialog #picker-filestable tr[data-entryname="welcome.txt"] td.filename').should('be.visible')
.click()
cy.get('.oc-dialog button.primary').click()
cy.get('.attachment-list .basename').contains('welcome.txt')
})
it('Shows the modal with the editor', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save')
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
cy.get('.modal__card .ProseMirror h1').contains('Hello world').should('be.visible')
cy.get('.modal__card .ProseMirror h1')
.click()
.type(' writing more text{enter}- List item{enter}with entries{enter}{enter}Paragraph')
cy.wait('@save', { timeout: 7000 })
cy.reload()
cy.get('.modal__card').should('be.visible')
cy.get('.modal__card .ProseMirror h1').contains('Hello world writing more text').should('be.visible')
cy.get('.modal__card .ProseMirror li').eq(0).contains('List item').should('be.visible')
cy.get('.modal__card .ProseMirror li').eq(1).contains('with entries').should('be.visible')
cy.get('.modal__card .ProseMirror p').contains('Paragraph').should('be.visible')
})
})
describe('Sidebar', () => {
beforeEach(function() {
cy.login(user)
useModal(false).then(() => {
cy.visit(`/apps/deck/#/board/${boardId}`)
})
})
it('Show the sidebar', () => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
cy.get('#app-sidebar-vue')
.find('.ProseMirror h1').contains('Hello world writing more text').should('be.visible')
})
})
})

View File

@@ -1,27 +1,25 @@
import { randHash } from '../utils'
const randUser = randHash()
import { randUser } from '../utils/index.js'
const user = randUser()
describe('Deck dashboard', function() {
const password = 'pass123'
before(function() {
cy.nextcloudCreateUser(randUser, password)
cy.createUser(user)
})
beforeEach(function() {
cy.login(randUser, password)
cy.login(user)
cy.visit('/apps/deck')
})
it('Can show the right title on the dashboard', function() {
cy.get('.board-title h2')
.should('have.length', 1).first()
.should('have.text', 'Upcoming cards')
.should('have.length', 1).first()
.should('have.text', 'Upcoming cards')
})
it('Can see the default "Personal Board" created for user by default', function() {
const defaultBoard = 'Personal'
cy.openLeftSidebar()
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
.first()

View File

@@ -0,0 +1,50 @@
import { randUser } from '../utils/index.js'
import { sampleBoard } from '../utils/sampleBoard'
const user = randUser()
const recipient = randUser()
describe('Board', function() {
before(function() {
cy.createUser(user)
cy.createUser(recipient)
})
beforeEach(function() {
cy.login(user)
})
it('Share a board to a user', function() {
const board = sampleBoard('Read only board')
cy.createExampleBoard({ user, board }).then((board) => {
const boardId = board.id
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.shareBoardWithUi(recipient.userId)
cy.login(recipient)
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.get('.button-vue[aria-label*="Add card"]')
.should('not.exist')
})
})
it('Share a board to a user as writable', function() {
const board = sampleBoard('Editable board')
cy.createExampleBoard({ user, board }).then((board) => {
const boardId = board.id
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.shareBoardWithUi(recipient.userId)
cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click()
cy.login(recipient)
cy.visit(`/apps/deck/#/board/${boardId}`)
cy.get('.board-title').contains(board.title)
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
})
})
})

View File

@@ -1,30 +1,68 @@
import { randHash } from '../utils'
const randUser = randHash()
import { randUser } from '../utils/index.js'
const user = randUser()
const boardTitle = 'TestBoard'
const testBoardData = {
title: boardTitle,
stacks: [
{ title: 'Existing Stack1' },
{ title: 'Existing Stack2' },
],
}
describe('Stack', function() {
const board = 'TestBoard'
const password = 'pass123'
const stack = 'List 1'
before(function() {
cy.nextcloudCreateUser(randUser, password)
cy.deckCreateBoard({ user: randUser, password }, board)
cy.createUser(user)
cy.login(user)
cy.createExampleBoard({
user,
board: testBoardData,
})
})
beforeEach(function() {
cy.logout()
cy.login(randUser, password)
cy.login(user)
cy.visit('/apps/deck')
cy.openLeftSidebar()
cy.getNavigationEntry(boardTitle)
.click({ force: true })
})
it('Can create a stack', function() {
cy.openLeftSidebar()
cy.getNavigationEntry(board)
.click({ force: true })
cy.get('#stack-add button').first().click()
cy.get('#stack-add form input#new-stack-input-main').type(stack)
cy.focused().type('List 1')
cy.get('#stack-add form input[type=submit]').first().click()
cy.get('.board .stack').eq(0).contains(stack).should('be.visible')
cy.contains('List 1').should('be.visible')
})
it('Can edit a stack title', function() {
cy.contains('Existing Stack1')
cy.get('[data-cy-stack="Existing Stack1"]').within(() => {
cy.contains('Existing Stack1').click()
cy.focused().type(' renamed')
cy.get('[data-cy="editStackTitleForm"] input[type="submit"]').click()
})
cy.contains('Existing Stack1 renamed').should('be.visible')
})
it('Can abort a stack title edit via esc', function() {
cy.contains('Existing Stack2').click()
cy.focused().type(' with a new title, maybe?')
cy.focused().type('{esc}')
cy.contains('Existing Stack2').should('be.visible')
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
})
it('Can abort a stack title edit via click outside', function() {
cy.contains('Existing Stack2').click()
cy.focused().type(' with a new title, maybe?')
cy.get('[data-cy-stack="Existing Stack2"]').click('bottom')
cy.contains('Existing Stack2').should('be.visible')
cy.contains('Existing Stack2 with a new title, maybe?').should('not.exist')
})
})

View File

@@ -20,61 +20,13 @@
*
*/
import { addCommands } from '@nextcloud/cypress'
addCommands()
const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
Cypress.env('baseUrl', url)
Cypress.Commands.add('login', (user, password, route = '/apps/deck/') => {
const session = `${user}-${Date.now()}`
cy.session(session, function() {
cy.visit(route)
cy.get('input[name=user]').type(user)
cy.get('input[name=password]').type(password)
cy.get('form[name=login] [type=submit]').click()
cy.url().should('include', route)
})
cy.visit(route)
})
Cypress.Commands.add('logout', (route = '/') => {
cy.session('_guest', function() {})
})
Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
cy.clearCookies()
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/ocs/v1.php/cloud/users?format=json`,
form: true,
body: {
userid: user,
password,
},
auth: { user: 'admin', pass: 'admin' },
headers: {
'OCS-ApiRequest': 'true',
'Content-Type': 'application/x-www-form-urlencoded',
},
}).then((response) => {
cy.log(`Created user ${user}`, response.status)
})
})
Cypress.Commands.add('nextcloudUpdateUser', (user, password, key, value) => {
cy.request({
method: 'PUT',
url: `${Cypress.env('baseUrl')}/ocs/v2.php/cloud/users/${user}`,
form: true,
body: { key, value },
auth: { user, pass: password },
headers: {
'OCS-ApiRequest': 'true',
'Content-Type': 'application/x-www-form-urlencoded',
},
}).then((response) => {
cy.log(`Updated user ${user} ${key} to ${value}`, response.status)
})
})
Cypress.Commands.add('openLeftSidebar', () => {
cy.get('.app-navigation button.app-navigation-toggle').click()
})
@@ -111,14 +63,15 @@ Cypress.Commands.add('deckCreateList', ({ user, password }, title) => {
cy.get('#stack-add form input[type=submit]').first().click()
})
Cypress.Commands.add('createExampleBoard', ({ user, password, board }) => {
Cypress.Commands.add('createExampleBoard', ({ user, board }) => {
const auth = {
user: user.userId,
password: user.password,
}
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards`,
auth: {
user,
password,
},
auth,
body: { title: board.title, color: board.color ?? 'ff0000' },
}).then((boardResponse) => {
expect(boardResponse.status).to.eq(200)
@@ -128,10 +81,7 @@ Cypress.Commands.add('createExampleBoard', ({ user, password, board }) => {
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks`,
auth: {
user,
password,
},
auth,
body: { title: stack.title, order: 0 },
}).then((stackResponse) => {
const stackData = stackResponse.body
@@ -140,15 +90,13 @@ Cypress.Commands.add('createExampleBoard', ({ user, password, board }) => {
cy.request({
method: 'POST',
url: `${Cypress.env('baseUrl')}/index.php/apps/deck/api/v1.0/boards/${boardData.id}/stacks/${stackData.id}/cards`,
auth: {
user,
password,
},
body: { title: card.title },
auth,
body: { title: card.title, description: card.description ?? '' },
})
}
})
}
cy.wrap(boardData)
})
})
@@ -157,3 +105,13 @@ Cypress.Commands.add('getNavigationEntry', (boardTitle) => {
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + boardTitle + ')')
.find('a.app-navigation-entry-link')
})
Cypress.Commands.add('shareBoardWithUi', (userId) => {
cy.get('[aria-label="Open details"]').click()
cy.get('.app-sidebar').should('be.visible')
cy.get('.multiselect__input').type(`${userId}`)
cy.get('.multiselect__content .multiselect__element').first().contains(userId)
cy.get('.multiselect__input').type('{enter}')
cy.get('.shareWithList').contains(userId)
})

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Components App</title>
</head>
<body>
<div data-cy-root></div>
</body>
</html>

View File

@@ -0,0 +1,27 @@
// ***********************************************************
// This example support/component.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
// Alternatively you can use CommonJS syntax:
// require('./commands')
import { mount } from 'cypress/vue2'
Cypress.Commands.add('mount', mount)
// Example use:
// cy.mount(MyComponent)

View File

@@ -14,7 +14,7 @@
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
import './commands.js'
// Alternatively you can use CommonJS syntax:
// require('./commands')

View File

@@ -1 +1,4 @@
import { User } from '@nextcloud/cypress'
export const randHash = () => Math.random().toString(36).replace(/[^a-z]+/g, '').slice(0, 10)
export const randUser = () => new User(randHash(), randHash())

View File

@@ -0,0 +1,38 @@
/*
* @copyright Copyright (c) 2022 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
export const sampleBoard = (title = 'MyTestBoard') => {
return {
title: title,
color: '00ff00',
stacks: [
{
title: 'TestList',
cards: [
{
title: 'Hello world',
description: '# Hello world',
},
],
},
],
}
}

View File

@@ -1066,6 +1066,7 @@ Deck stores user and app configuration values globally and per board. The GET en
| --- | --- |
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
| cardIdBadge | Determines if the ID badges are displayed on cards (boolean) |
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
```
@@ -1079,6 +1080,7 @@ Deck stores user and app configuration values globally and per board. The GET en
"data": {
"calendar": true,
"cardDetailsInModal": true,
"cardIdBadge": true,
"groupLimit": [
{
"id": "admin",
@@ -1109,6 +1111,7 @@ Deck stores user and app configuration values globally and per board. The GET en
| notify-due | `off`, `assigned` or `all` |
| calendar | Boolean |
| cardDetailsInModal | Boolean |
| cardIdBadge | Boolean |
#### Example request
@@ -1391,3 +1394,110 @@ A bad request response is returned if invalid input values are provided. The res
A not found response might be returned if:
- The card for the given cardId could not be found
- The comment could not be found
## Sessions
### PUT /session/create - creates a new session
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
```
curl -X PUT 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": {
"token": "+zcJHf4rC6dobVSbuNa3delkCSfTW8OvYWTyLFvSpIv80FjtgLIj0ARlxspsazNQ"
}
}
}
```
### POST /session/sync - notifies the server, that the session is still open
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
| token | String | The session token from the /sessions/create response |
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/create' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": []
}
}
```
##### 404 Not Found
the provided token is invalid or expired
### POST /session/close - closes the session
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| boardId | Integer | The id of the opened board |
| token | String | The session token from the /sessions/create response |
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/session/close' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true' \
-H 'Content-Type: application/json;charset=utf-8' \
--data '{"boardId":1, "token":"X3DyyoFslArF0t0NBZXzZXzcy8feoX/OEytSNXZtPg9TpUgO5wrkJ38IW3T/FfpV"}'
```
#### Response
##### 200 Success
```json
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": []
}
}
```

View File

@@ -90,7 +90,7 @@ Steps:
* Create the configuration file
* Execute the import informing the import file path, data file and source as `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Example configuration file:
```json
@@ -120,7 +120,7 @@ https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&field
This ID you will use in the configuration file in the `board` property
* Create the configuration file
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/main/lib/Service/Importer/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Example configuration file:
```json

3
img/card.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" style="height: 240px; width: 240px;" viewBox="0 0 24 24">
<path fill="currentColor" d="M12,15H10V13H12V15M18,15H14V13H18V15M8,11H6V9H8V11M18,11H10V9H18V11M20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20M4,6V18H20V6H4Z" />
</svg>

After

Width:  |  Height:  |  Size: 298 B

View File

@@ -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-tavla",
"Deck board" : "Deck-plank",
"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" : "Pågående",
"Doing" : "Gör",
"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" : "Att göra saker",
"Todo items" : "Todo 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 tavla {title}? Detta kommer radera all data som tillhör tavlan 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 brädet {title}? Detta kommer radera all data som tillhör brädet 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 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}",
"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}",
"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."
},

View File

@@ -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-tavla",
"Deck board" : "Deck-plank",
"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" : "Pågående",
"Doing" : "Gör",
"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" : "Att göra saker",
"Todo items" : "Todo 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 tavla {title}? Detta kommer radera all data som tillhör tavlan 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 brädet {title}? Detta kommer radera all data som tillhör brädet 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 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}",
"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}",
"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);"

View File

@@ -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" : "分享给一张看板卡片",

View File

@@ -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" : "分享给一张看板卡片",

View File

@@ -325,7 +325,6 @@ class ActivityManager {
*/
$eventType = 'deck';
$subjectParams = [];
$message = null;
switch ($subject) {
// No need to enhance parameters since entity already contains the required data
case self::SUBJECT_BOARD_CREATE:
@@ -434,10 +433,6 @@ class ActivityManager {
->setSubject($subject, $subjectParams)
->setTimestamp(time());
if ($message !== null) {
$event->setMessage($message);
}
// FIXME: We currently require activities for comments even if they are disabled though settings
// Get rid of this once the frontend fetches comments/activity individually
if ($eventType === 'deck_comment') {

View File

@@ -77,7 +77,7 @@ class DeckProvider implements IProvider {
* @throws \InvalidArgumentException Should be thrown if your provider does not know this event
* @since 11.0.0
*/
public function parse($language, IEvent $event, IEvent $previousEvent = null) {
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent {
if ($event->getApp() !== 'deck') {
throw new \InvalidArgumentException();
}
@@ -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 (strpos($event->getSubject(), '_update') !== false) {
if (str_contains($event->getSubject(), '_update')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'change.svg')));
}
if (strpos($event->getSubject(), '_create') !== false) {
if (str_contains($event->getSubject(), '_create')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'add-color.svg')));
}
if (strpos($event->getSubject(), '_delete') !== false) {
if (str_contains($event->getSubject(), '_delete')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('files', 'delete-color.svg')));
}
if (strpos($event->getSubject(), 'archive') !== false) {
if (str_contains($event->getSubject(), 'archive')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('deck', 'archive.svg')));
}
if (strpos($event->getSubject(), '_restore') !== false) {
if (str_contains($event->getSubject(), '_restore')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/history.svg')));
}
if (strpos($event->getSubject(), 'attachment_') !== false) {
if (str_contains($event->getSubject(), 'attachment_')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'places/files.svg')));
}
if (strpos($event->getSubject(), 'comment_') !== false) {
if (str_contains($event->getSubject(), 'comment_')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/comment.svg')));
}
if (strpos($event->getSubject(), 'label_') !== false) {
if (str_contains($event->getSubject(), 'label_')) {
$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/tag.svg')));
}
return $event;
@@ -294,7 +294,7 @@ class DeckProvider implements IProvider {
if (array_key_exists('comment', $subjectParams)) {
/** @var IComment $comment */
try {
$comment = $this->commentsManager->get((int)$subjectParams['comment']);
$comment = $this->commentsManager->get($subjectParams['comment']);
$event->setParsedMessage($comment->getMessage());
$params['comment'] = [
'type' => 'highlight',

View File

@@ -29,7 +29,7 @@ class DescriptionSetting extends Setting {
* @return string Lowercase a-z and underscore only identifier
* @since 11.0.0
*/
public function getIdentifier() {
public function getIdentifier(): string {
return 'deck_card_description';
}
@@ -37,7 +37,7 @@ class DescriptionSetting extends Setting {
* @return string A translated string
* @since 11.0.0
*/
public function getName() {
public function getName(): string {
return $this->l->t('A <strong>card description</strong> inside the Deck app has been changed');
}
}

View File

@@ -42,7 +42,7 @@ class Filter implements \OCP\Activity\IFilter {
* @return string Lowercase a-z and underscore only identifier
* @since 11.0.0
*/
public function getIdentifier() {
public function getIdentifier(): string {
return 'deck';
}
@@ -50,7 +50,7 @@ class Filter implements \OCP\Activity\IFilter {
* @return string A translated string
* @since 11.0.0
*/
public function getName() {
public function getName(): string {
return $this->l10n->t('Deck');
}
@@ -60,7 +60,7 @@ class Filter implements \OCP\Activity\IFilter {
* priority values. It is required to return a value between 0 and 100.
* @since 11.0.0
*/
public function getPriority() {
public function getPriority(): int {
return 90;
}
@@ -68,7 +68,7 @@ class Filter implements \OCP\Activity\IFilter {
* @return string Full URL to an icon, empty string when none is given
* @since 11.0.0
*/
public function getIcon() {
public function getIcon(): string {
return $this->urlGenerator->imagePath('deck', 'deck-dark.svg');
}
@@ -77,7 +77,7 @@ class Filter implements \OCP\Activity\IFilter {
* @return string[] An array of allowed apps from which activities should be displayed
* @since 11.0.0
*/
public function filterTypes(array $types) {
public function filterTypes(array $types): array {
return array_merge($types, ['deck_comment']);
}
@@ -85,7 +85,7 @@ class Filter implements \OCP\Activity\IFilter {
* @return string[] An array of allowed apps from which activities should be displayed
* @since 11.0.0
*/
public function allowedApps() {
public function allowedApps(): array {
return ['deck'];
}
}

View File

@@ -41,7 +41,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return string Lowercase a-z and underscore only identifier
* @since 11.0.0
*/
public function getIdentifier() {
public function getIdentifier(): string {
return 'deck';
}
@@ -49,7 +49,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return string A translated string
* @since 11.0.0
*/
public function getName() {
public function getName(): string {
return $this->l->t('Changes in the <strong>Deck app</strong>');
}
@@ -59,7 +59,7 @@ class Setting implements \OCP\Activity\ISetting {
* priority values. It is required to return a value between 0 and 100.
* @since 11.0.0
*/
public function getPriority() {
public function getPriority(): int {
return 90;
}
@@ -67,7 +67,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return bool True when the option can be changed for the stream
* @since 11.0.0
*/
public function canChangeStream() {
public function canChangeStream(): bool {
return true;
}
@@ -75,7 +75,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return bool True when the option can be changed for the stream
* @since 11.0.0
*/
public function isDefaultEnabledStream() {
public function isDefaultEnabledStream(): bool {
return true;
}
@@ -83,7 +83,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return bool True when the option can be changed for the mail
* @since 11.0.0
*/
public function canChangeMail() {
public function canChangeMail(): bool {
return true;
}
@@ -91,7 +91,7 @@ class Setting implements \OCP\Activity\ISetting {
* @return bool True when the option can be changed for the stream
* @since 11.0.0
*/
public function isDefaultEnabledMail() {
public function isDefaultEnabledMail(): bool {
return false;
}
}

View File

@@ -29,7 +29,7 @@ class SettingComment extends Setting {
* @return string Lowercase a-z and underscore only identifier
* @since 11.0.0
*/
public function getIdentifier() {
public function getIdentifier(): string {
return 'deck_comment';
}
@@ -37,7 +37,7 @@ class SettingComment extends Setting {
* @return string A translated string
* @since 11.0.0
*/
public function getName() {
public function getName(): string {
return $this->l->t('A <strong>comment</strong> was created on a card');
}
@@ -45,7 +45,7 @@ class SettingComment extends Setting {
* @return bool True when the option can be changed for the stream
* @since 11.0.0
*/
public function canChangeStream() {
public function canChangeStream(): bool {
return false;
}
}

View File

@@ -25,29 +25,35 @@ namespace OCA\Deck\AppInfo;
use Closure;
use Exception;
use OC\EventDispatcher\SymfonyAdapter;
use OCA\Circles\Events\CircleDestroyedEvent;
use OCA\Deck\Activity\CommentEventHandler;
use OCA\Deck\Capabilities;
use OCA\Deck\Collaboration\Resources\ResourceProvider;
use OCA\Deck\Collaboration\Resources\ResourceProviderCard;
use OCA\Deck\Dashboard\DeckWidget;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Event\AclCreatedEvent;
use OCA\Deck\Event\AclDeletedEvent;
use OCA\Deck\Event\AclUpdatedEvent;
use OCA\Deck\Event\BoardUpdatedEvent;
use OCA\Deck\Event\CardCreatedEvent;
use OCA\Deck\Event\CardDeletedEvent;
use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent;
use OCA\Deck\Listeners\BeforeTemplateRenderedListener;
use OCA\Deck\Listeners\ParticipantCleanupListener;
use OCA\Deck\Listeners\FullTextSearchEventListener;
use OCA\Deck\Listeners\ResourceAdditionalScriptsListener;
use OCA\Deck\Listeners\ResourceListener;
use OCA\Deck\Listeners\LiveUpdateListener;
use OCA\Deck\Middleware\DefaultBoardMiddleware;
use OCA\Deck\Middleware\ExceptionMiddleware;
use OCA\Deck\Notification\Notifier;
use OCA\Deck\Reference\BoardReferenceProvider;
use OCA\Deck\Reference\CardReferenceProvider;
use OCA\Deck\Reference\CommentReferenceProvider;
use OCA\Deck\Search\CardCommentProvider;
use OCA\Deck\Search\DeckProvider;
use OCA\Deck\Service\PermissionService;
@@ -60,18 +66,13 @@ use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
use OCP\Collaboration\Reference\RenderReferenceEvent;
use OCP\Collaboration\Resources\IProviderManager;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
use OCP\Comments\CommentsEntityEvent;
use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\GroupDeletedEvent;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IRequest;
use OCP\Server;
use OCP\IUserManager;
use OCP\Notification\IManager as NotificationManager;
use OCP\Share\IManager;
use OCP\User\Events\UserDeletedEvent;
use OCP\Util;
@@ -90,15 +91,13 @@ class Application extends App implements IBootstrap {
$container = $this->getContainer();
$eventDispatcher = $container->get(IEventDispatcher::class);
$eventDispatcher->addListener(RenderReferenceEvent::class, function () {
Util::addScript(self::APP_ID, self::APP_ID . '-card-reference');
Util::addScript(self::APP_ID, self::APP_ID . '-reference');
});
}
public function boot(IBootContext $context): void {
$context->injectFn(Closure::fromCallable([$this, 'registerUserGroupHooks']));
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEntity']));
$context->injectFn(Closure::fromCallable([$this, 'registerCommentsEventHandler']));
$context->injectFn(Closure::fromCallable([$this, 'registerNotifications']));
$context->injectFn(Closure::fromCallable([$this, 'registerCollaborationResources']));
$context->injectFn(function (IManager $shareManager) {
@@ -132,7 +131,8 @@ class Application extends App implements IBootstrap {
// reference widget
$context->registerReferenceProvider(CardReferenceProvider::class);
// $context->registerEventListener(RenderReferenceEvent::class, CardReferenceListener::class);
$context->registerReferenceProvider(BoardReferenceProvider::class);
$context->registerReferenceProvider(CommentReferenceProvider::class);
$context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class);
@@ -143,57 +143,28 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(AclCreatedEvent::class, FullTextSearchEventListener::class);
$context->registerEventListener(AclUpdatedEvent::class, FullTextSearchEventListener::class);
$context->registerEventListener(AclDeletedEvent::class, FullTextSearchEventListener::class);
}
public function registerNotifications(NotificationManager $notificationManager): void {
$notificationManager->registerNotifierService(Notifier::class);
}
// Handling cache invalidation for collections
$context->registerEventListener(AclCreatedEvent::class, ResourceListener::class);
$context->registerEventListener(AclDeletedEvent::class, ResourceListener::class);
private function registerUserGroupHooks(IUserManager $userManager, IGroupManager $groupManager): void {
$container = $this->getContainer();
/** @var IEventDispatcher $eventDispatcher */
$eventDispatcher = $container->get(IEventDispatcher::class);
// Delete user/group acl entries when they get deleted
$eventDispatcher->addListener(UserDeletedEvent::class, static function (Event $event) use ($container): void {
if (!($event instanceof UserDeletedEvent)) {
return;
}
$user = $event->getUser();
// delete existing acl entries for deleted user
/** @var AclMapper $aclMapper */
$aclMapper = $container->get(AclMapper::class);
$acls = $aclMapper->findByParticipant(Acl::PERMISSION_TYPE_USER, $user->getUID());
foreach ($acls as $acl) {
$aclMapper->delete($acl);
}
// delete existing user assignments
$assignmentMapper = $container->get(AssignmentMapper::class);
$assignments = $assignmentMapper->findByParticipant($user->getUID());
foreach ($assignments as $assignment) {
$assignmentMapper->delete($assignment);
}
$context->registerEventListener(UserDeletedEvent::class, ParticipantCleanupListener::class);
$context->registerEventListener(GroupDeletedEvent::class, ParticipantCleanupListener::class);
$context->registerEventListener(CircleDestroyedEvent::class, ParticipantCleanupListener::class);
/** @var BoardMapper $boardMapper */
$boardMapper = $container->get(BoardMapper::class);
$boards = $boardMapper->findAllByOwner($user->getUID());
foreach ($boards as $board) {
$boardMapper->delete($board);
}
});
// Event listening for realtime updates via notify_push
$context->registerEventListener(SessionCreatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(SessionClosedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(BoardUpdatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(CardCreatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(CardUpdatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(CardDeletedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(AclCreatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(AclUpdatedEvent::class, LiveUpdateListener::class);
$context->registerEventListener(AclDeletedEvent::class, LiveUpdateListener::class);
$eventDispatcher->addListener(GroupDeletedEvent::class, static function (Event $event) use ($container): void {
if (!($event instanceof GroupDeletedEvent)) {
return;
}
$group = $event->getGroup();
/** @var AclMapper $aclMapper */
$aclMapper = $container->get(AclMapper::class);
$aclMapper->findByParticipant(Acl::PERMISSION_TYPE_GROUP, $group->getGID());
$acls = $aclMapper->findByParticipant(Acl::PERMISSION_TYPE_GROUP, $group->getGID());
foreach ($acls as $acl) {
$aclMapper->delete($acl);
}
});
$context->registerNotifierService(Notifier::class);
$context->registerEventListener(LoadAdditionalScriptsEvent::class, ResourceAdditionalScriptsListener::class);
}
public function registerCommentsEntity(IEventDispatcher $eventDispatcher): void {
@@ -219,16 +190,8 @@ class Application extends App implements IBootstrap {
});
}
protected function registerCollaborationResources(IProviderManager $resourceManager, SymfonyAdapter $symfonyAdapter): void {
protected function registerCollaborationResources(IProviderManager $resourceManager): void {
$resourceManager->registerResourceProvider(ResourceProvider::class);
$resourceManager->registerResourceProvider(ResourceProviderCard::class);
$symfonyAdapter->addListener('\OCP\Collaboration\Resources::loadAdditionalScripts', static function () {
if (strpos(Server::get(IRequest::class)->getPathInfo(), '/call/') === 0) {
// Talk integration has its own entrypoint which already includes collections handling
return;
}
Util::addScript('deck', 'deck-collections');
});
}
}

View File

@@ -53,7 +53,7 @@ class AttachmentController extends Controller {
* @throws \OCA\Deck\NotFoundException
*/
public function display($cardId, $attachmentId) {
if (strpos($attachmentId, ':') === false) {
if (!str_contains($attachmentId, ':')) {
$type = 'deck_file';
} else {
[$type, $attachmentId] = explode(':', $attachmentId);
@@ -76,7 +76,7 @@ class AttachmentController extends Controller {
* @NoAdminRequired
*/
public function update($cardId, $attachmentId) {
if (strpos($attachmentId, ':') === false) {
if (!str_contains($attachmentId, ':')) {
$type = 'deck_file';
} else {
[$type, $attachmentId] = explode(':', $attachmentId);
@@ -88,7 +88,7 @@ class AttachmentController extends Controller {
* @NoAdminRequired
*/
public function delete($cardId, $attachmentId) {
if (strpos($attachmentId, ':') === false) {
if (!str_contains($attachmentId, ':')) {
$type = 'deck_file';
} else {
[$type, $attachmentId] = explode(':', $attachmentId);
@@ -100,7 +100,7 @@ class AttachmentController extends Controller {
* @NoAdminRequired
*/
public function restore($cardId, $attachmentId) {
if (strpos($attachmentId, ':') === false) {
if (!str_contains($attachmentId, ':')) {
$type = 'deck_file';
} else {
[$type, $attachmentId] = explode(':', $attachmentId);

View File

@@ -60,12 +60,14 @@ class BoardApiController extends ApiController {
* @NoCSRFRequired
*
* Return all of the boards that the current user has access to.
*
* @param bool $details
* @throws StatusException
*/
public function index($details = null) {
public function index(bool $details = false) {
$modified = $this->request->getHeader('If-Modified-Since');
if ($modified === null || $modified === '') {
$boards = $this->boardService->findAll(0, $details);
$boards = $this->boardService->findAll(0, $details === true);
} else {
$date = Util::parseHTTPDate($modified);
if (!$date) {

View File

@@ -169,4 +169,15 @@ class BoardController extends ApiController {
return new DataResponse([], HTTP::STATUS_UNAUTHORIZED);
}
/**
* @NoAdminRequired
* @param $boardId
* @return Board
* @throws \OCP\AppFramework\Db\DoesNotExistException
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
*/
public function export($boardId) {
return $this->boardService->export($boardId);
}
}

View File

@@ -27,6 +27,7 @@ use OCA\Deck\AppInfo\Application;
use OCA\Deck\Service\ConfigService;
use OCA\Deck\Service\PermissionService;
use OCA\Files\Event\LoadSidebar;
use OCA\Text\Event\LoadEditor;
use OCA\Viewer\Event\LoadViewer;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent as CollaborationResourcesEvent;
@@ -90,6 +91,9 @@ class PageController extends Controller {
$this->eventDispatcher->dispatchTyped(new LoadSidebar());
$this->eventDispatcher->dispatchTyped(new CollaborationResourcesEvent());
if (class_exists(LoadEditor::class)) {
$this->eventDispatcher->dispatchTyped(new LoadEditor());
}
if (class_exists(LoadViewer::class)) {
$this->eventDispatcher->dispatchTyped(new LoadViewer());
}

View File

@@ -0,0 +1,91 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Controller;
use OCA\Deck\Service\SessionService;
use OCA\Deck\Service\PermissionService;
use OCA\Deck\Db\BoardMapper;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController;
use OCP\IRequest;
use OCA\Deck\Db\Acl;
class SessionController extends OCSController {
private SessionService $sessionService;
private PermissionService $permissionService;
private BoardMapper $boardMapper;
public function __construct($appName,
IRequest $request,
SessionService $sessionService,
PermissionService $permissionService,
BoardMapper $boardMapper
) {
parent::__construct($appName, $request);
$this->sessionService = $sessionService;
$this->permissionService = $permissionService;
$this->boardMapper = $boardMapper;
}
/**
* @NoAdminRequired
*/
public function create(int $boardId): DataResponse {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
$session = $this->sessionService->initSession($boardId);
return new DataResponse([
'token' => $session->getToken(),
]);
}
/**
* notifies the server that the session is still active
* @NoAdminRequired
* @param $boardId
*/
public function sync(int $boardId, string $token): DataResponse {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
try {
$this->sessionService->syncSession($boardId, $token);
return new DataResponse([]);
} catch (DoesNotExistException $e) {
return new DataResponse([], 404);
}
}
/**
* delete a session if existing
* @NoAdminRequired
* @NoCSRFRequired
* @param $boardId
*/
public function close(int $boardId, string $token) {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
$this->sessionService->closeSession($boardId, $token);
return new DataResponse();
}
}

View File

@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Cron;
use OCA\Deck\Service\SessionService;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCP\ILogger;
class SessionsCleanup extends TimedJob {
private $sessionService;
private $documentService;
private $logger;
private $imageService;
public function __construct(ITimeFactory $time,
SessionService $sessionService,
ILogger $logger) {
parent::__construct($time);
$this->sessionService = $sessionService;
$this->logger = $logger;
$this->setInterval(SessionService::SESSION_VALID_TIME);
}
protected function run($argument) {
$this->logger->debug('Run cleanup job for deck sessions');
$removedSessions = $this->sessionService->removeInactiveSessions();
$this->logger->debug('Removed ' . $removedSessions . ' inactive sessions');
}
}

View File

@@ -59,7 +59,7 @@ class DeckCalendarBackend {
}
public function getBoards(): array {
return $this->boardService->findAll(-1, null, false);
return $this->boardService->findAll(-1, false, false);
}
public function getBoard(int $id): Board {

View File

@@ -117,7 +117,7 @@ class DeckWidget implements IAPIWidget, IButtonWidget, IIconWidget {
$nowTimestamp = (new Datetime())->getTimestamp();
$sinceTimestamp = $since !== null ? (new Datetime($since))->getTimestamp() : null;
$upcomingCards = array_filter($upcomingCards, static function (array $card) use ($nowTimestamp, $sinceTimestamp) {
if ($card['duedate']) {
if (isset($card['duedate'])) {
$ts = (new Datetime($card['duedate']))->getTimestamp();
return $ts > $nowTimestamp && ($sinceTimestamp === null || $ts > $sinceTimestamp);
}

View File

@@ -28,6 +28,7 @@ use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
/** @template-extends DeckMapper<Acl> */
class AclMapper extends DeckMapper implements IPermissionMapper {
public function __construct(IDBConnection $db) {
parent::__construct($db, 'deck_board_acl', Acl::class);
@@ -51,6 +52,20 @@ class AclMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
public function findIn(array $boardIds, ?int $limit = null, ?int $offset = null): array {
$qb = $this->db->getQueryBuilder();
$qb->select('id', 'board_id', 'type', 'participant', 'permission_edit', 'permission_share', 'permission_manage')
->from('deck_board_acl')
->where($qb->expr()->in('board_id', $qb->createParameter('boardIds')))
->setMaxResults($limit)
->setFirstResult($offset);
return iterator_to_array($this->chunkQuery($boardIds, function (array $ids) use ($qb) {
$qb->setParameter('boardIds', $ids, IQueryBuilder::PARAM_INT_ARRAY);
return $this->findEntities($qb);
}));
}
/**
* @param numeric $userId
* @param numeric $id
@@ -110,4 +125,12 @@ class AclMapper extends DeckMapper implements IPermissionMapper {
->andWhere($qb->expr()->eq('board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)));
$qb->executeStatement();
}
public function findByType(int $type): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_board_acl')
->where($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}
}

View File

@@ -28,14 +28,13 @@ namespace OCA\Deck\Db;
use OCA\Deck\NotFoundException;
use OCA\Deck\Service\CirclesService;
use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager;
use PDO;
class AssignmentMapper extends QBMapper implements IPermissionMapper {
/** @template-extends DeckMapper<Assignment> */
class AssignmentMapper extends DeckMapper implements IPermissionMapper {
/** @var CardMapper */
private $cardMapper;
@@ -59,7 +58,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, PDO::PARAM_INT)));
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT)));
$users = $this->findEntities($qb);
foreach ($users as $user) {
$this->mapParticipant($user);
@@ -67,12 +66,29 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
return $users;
}
public function findIn(array $cardIds): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->in('card_id', $qb->createParameter('cardIds')));
$users = iterator_to_array($this->chunkQuery($cardIds, function (array $ids) use ($qb) {
$qb->setParameter('cardIds', $ids, IQueryBuilder::PARAM_INT_ARRAY);
return $this->findEntities($qb);
}));
foreach ($users as $user) {
$this->mapParticipant($user);
}
return $users;
}
public function findByParticipant(string $participant, $type = Assignment::TYPE_USER): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('participant', $qb->createNamedParameter($participant, PDO::PARAM_STR)))
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, PDO::PARAM_INT)));
->where($qb->expr()->eq('participant', $qb->createNamedParameter($participant, IQueryBuilder::PARAM_STR)))
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}
@@ -131,8 +147,8 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
private function getOrigin(Assignment $assignment) {
if ($assignment->getType() === Assignment::TYPE_USER) {
$origin = $this->userManager->get($assignment->getParticipant());
return $origin ? new User($origin) : null;
$origin = $this->userManager->userExists($assignment->getParticipant());
return $origin ? new User($assignment->getParticipant(), $this->userManager) : null;
}
if ($assignment->getType() === Assignment::TYPE_GROUP) {
$origin = $this->groupManager->get($assignment->getParticipant());

View File

@@ -31,6 +31,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUserManager;
/** @template-extends DeckMapper<Attachment> */
class AttachmentMapper extends DeckMapper implements IPermissionMapper {
private $cardMapper;
private $userManager;

View File

@@ -44,6 +44,7 @@ class Board extends RelationalEntity {
protected $users = [];
protected $shared;
protected $stacks = [];
protected $activeSessions = [];
protected $deletedAt = 0;
protected $lastModified = 0;
@@ -59,6 +60,7 @@ class Board extends RelationalEntity {
$this->addRelation('acl');
$this->addRelation('shared');
$this->addRelation('users');
$this->addRelation('activeSessions');
$this->addRelation('permissions');
$this->addRelation('stacks');
$this->addRelation('settings');

View File

@@ -33,6 +33,7 @@ use OCP\IUserManager;
use OCP\IGroupManager;
use Psr\Log\LoggerInterface;
/** @template-extends QBMapper<Board> */
class BoardMapper extends QBMapper implements IPermissionMapper {
private $labelMapper;
private $aclMapper;
@@ -89,9 +90,6 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$this->boardCache[$id] = $this->findEntity($qb);
}
// FIXME is this necessary? it was NOT done with the old mapper
// $this->mapOwner($board);
// Add labels
if ($withLabels && $this->boardCache[$id]->getLabels() === null) {
$labels = $this->labelMapper->findAll($id);
@@ -158,7 +156,21 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$userBoards = $this->findAllByUser($userId, null, null, $since, $includeArchived, $before, $term);
$groupBoards = $this->findAllByGroups($userId, $groups, null, null, $since, $includeArchived, $before, $term);
$circleBoards = $this->findAllByCircles($userId, null, null, $since, $includeArchived, $before, $term);
$allBoards = array_unique(array_merge($userBoards, $groupBoards, $circleBoards));
$allBoards = array_values(array_unique(array_merge($userBoards, $groupBoards, $circleBoards)));
// Could be moved outside
$acls = $this->aclMapper->findIn(array_map(function ($board) {
return $board->getId();
}, $allBoards));
/* @var Board $entry */
foreach ($allBoards as $entry) {
$boardAcls = array_values(array_filter($acls, function ($acl) use ($entry) {
return $acl->getBoardId() === $entry->getId();
}));
$entry->setAcl($boardAcls);
}
foreach ($allBoards as $board) {
$this->boardCache[$board->getId()] = $board;
}
@@ -258,11 +270,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$entry->setShared(1);
}
$entries = array_merge($entries, $sharedEntries);
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}
@@ -335,11 +343,6 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
foreach ($entries as $entry) {
$entry->setShared(2);
}
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}
@@ -396,11 +399,6 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
foreach ($entries as $entry) {
$entry->setShared(2);
}
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}
@@ -454,13 +452,11 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
}
public function mapAcl(Acl &$acl) {
$userManager = $this->userManager;
$groupManager = $this->groupManager;
$acl->resolveRelation('participant', function ($participant) use (&$acl, &$userManager, &$groupManager) {
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
$user = $userManager->get($participant);
if ($user !== null) {
return new User($user);
if ($this->userManager->userExists($acl->getParticipant())) {
return new User($acl->getParticipant(), $this->userManager);
}
$this->logger->debug('User ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant());
return null;
@@ -498,9 +494,8 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
public function mapOwner(Board &$board) {
$userManager = $this->userManager;
$board->resolveRelation('owner', function ($owner) use (&$userManager) {
$user = $userManager->get($owner);
if ($user !== null) {
return new User($user);
if ($this->userManager->userExists($owner)) {
return new User($owner, $userManager);
}
return null;
});

View File

@@ -158,6 +158,21 @@ class Card extends RelationalEntity {
return $calendar;
}
public function getDaysUntilDue(): ?int {
if ($this->getDuedate() === null) {
return null;
}
$today = new DateTime();
$today->setTime(0, 0);
$matchDate = DateTime::createFromInterface($this->getDuedate());
$matchDate->setTime(0, 0);
$diff = $today->diff($matchDate);
return (int) $diff->format('%R%a'); // Extract days count in interval
}
public function getCalendarPrefix(): string {
return 'card';
}

View File

@@ -38,6 +38,7 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\Notification\IManager;
/** @template-extends QBMapper<Card> */
class CardMapper extends QBMapper implements IPermissionMapper {
/** @var LabelMapper */
@@ -253,13 +254,13 @@ class CardMapper extends QBMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
public function findAllWithDue($boardId) {
public function findAllWithDue(array $boardIds) {
$qb = $this->db->getQueryBuilder();
$qb->select('c.*')
->from('deck_cards', 'c')
->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id')
->where($qb->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
->where($qb->expr()->in('s.board_id', $qb->createNamedParameter($boardIds, IQueryBuilder::PARAM_INT_ARRAY)))
->andWhere($qb->expr()->isNotNull('c.duedate'))
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
@@ -269,14 +270,14 @@ class CardMapper extends QBMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
public function findToMeOrNotAssignedCards($boardId, $username) {
public function findToMeOrNotAssignedCards(array $boardIds, string $username) {
$qb = $this->db->getQueryBuilder();
$qb->select('c.*')
->from('deck_cards', 'c')
->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id')
->leftJoin('c', 'deck_assigned_users', 'u', 'c.id = u.card_id')
->where($qb->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
->where($qb->expr()->in('s.board_id', $qb->createNamedParameter($boardIds, IQueryBuilder::PARAM_INT_ARRAY)))
->andWhere($qb->expr()->orX(
$qb->expr()->eq('u.participant', $qb->createNamedParameter($username, IQueryBuilder::PARAM_STR)),
$qb->expr()->isNull('u.participant'))
@@ -606,9 +607,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function mapOwner(Card &$card) {
$userManager = $this->userManager;
$card->resolveRelation('owner', function ($owner) use (&$userManager) {
$user = $userManager->get($owner);
if ($user !== null) {
return new User($user);
if ($userManager->userExists($owner)) {
return new User($owner, $this->userManager);
}
return null;
});

View File

@@ -23,19 +23,20 @@
namespace OCA\Deck\Db;
use Generator;
use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
/**
* Class DeckMapper
*
* @package OCA\Deck\Db
* @template T of Entity
* @template-extends QBMapper<T>
*/
class DeckMapper extends QBMapper {
abstract class DeckMapper extends QBMapper {
/**
* @param $id
* @return \OCP\AppFramework\Db\Entity if not found
* @return T
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
* @throws \OCP\AppFramework\Db\DoesNotExistException
*/
@@ -47,4 +48,21 @@ class DeckMapper extends QBMapper {
return $this->findEntity($qb);
}
/**
* Helper function to split passed array into chunks of 1000 elements and
* call a given callback for fetching query results
*
* Can be useful to limit to 1000 results per query for oracle compatiblity
* but still iterate over all results
*/
public function chunkQuery(array $ids, callable $callback): Generator {
$limit = 1000;
while (!empty($ids)) {
$slice = array_splice($ids, 0, $limit);
foreach ($callback($slice) as $item) {
yield $item;
}
}
}
}

View File

@@ -29,6 +29,7 @@ use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
/** @template-extends DeckMapper<Label> */
class LabelMapper extends DeckMapper implements IPermissionMapper {
public function __construct(IDBConnection $db) {
parent::__construct($db, 'deck_labels', Label::class);
@@ -51,11 +52,6 @@ class LabelMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
/**
* @param Entity $entity
* @return Entity
* @throws \OCP\DB\Exception
*/
public function delete(Entity $entity): Entity {
// delete assigned labels
$this->deleteLabelAssignments($entity->getId());
@@ -83,6 +79,19 @@ class LabelMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
public function findAssignedLabelsForCards($cardIds, $limit = null, $offset = null): array {
$qb = $this->db->getQueryBuilder();
$qb->select('l.*', 'card_id')
->from($this->getTableName(), 'l')
->innerJoin('l', 'deck_assigned_labels', 'al', 'l.id = al.label_id')
->where($qb->expr()->in('card_id', $qb->createNamedParameter($cardIds, IQueryBuilder::PARAM_INT_ARRAY)))
->orderBy('l.id')
->setMaxResults($limit)
->setFirstResult($offset);
return $this->findEntities($qb);
}
/**
* @param numeric $boardId
* @param int|null $limit
@@ -105,23 +114,12 @@ class LabelMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
/**
* @param Entity $entity
* @return Entity
* @throws \OCP\DB\Exception
*/
public function insert(Entity $entity): Entity {
$entity->setLastModified(time());
return parent::insert($entity);
}
/**
* @param Entity $entity
* @param bool $updateModified
* @return Entity
* @throws \OCP\DB\Exception
*/
public function update(Entity $entity, $updateModified = true): Entity {
public function update(Entity $entity, bool $updateModified = true): Entity {
if ($updateModified) {
$entity->setLastModified(time());
}

View File

@@ -53,7 +53,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
* @param string $attribute the name of the attribute
* @since 7.0.0
*/
protected function markFieldUpdated($attribute) {
protected function markFieldUpdated(string $attribute): void {
if (!in_array($attribute, $this->_relations, true)) {
parent::markFieldUpdated($attribute);
}
@@ -68,7 +68,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
$reflection = new \ReflectionClass($this);
$json = [];
foreach ($properties as $property => $value) {
if (strpos($property, '_') !== 0 && $reflection->hasProperty($property)) {
if (!str_starts_with($property, '_') && $reflection->hasProperty($property)) {
$propertyReflection = $reflection->getProperty($property);
if (!$propertyReflection->isPrivate() && !in_array($property, $this->_resolvedProperties, true)) {
$json[$property] = $this->getter($property);
@@ -127,9 +127,9 @@ class RelationalEntity extends Entity implements \JsonSerializable {
}
}
public function __call($methodName, $args) {
public function __call(string $methodName, array $args) {
$attr = lcfirst(substr($methodName, 7));
if (array_key_exists($attr, $this->_resolvedProperties) && strpos($methodName, 'resolve') === 0) {
if (array_key_exists($attr, $this->_resolvedProperties) && str_starts_with($methodName, 'resolve')) {
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) && strpos($methodName, 'set') === 0) {
if (array_key_exists($attr, $this->_resolvedProperties) && str_starts_with($methodName, 'set')) {
if (!is_scalar($args[0])) {
$args[0] = $args[0]['primaryKey'];
}

View File

@@ -33,7 +33,7 @@ class RelationalObject implements JsonSerializable {
* RelationalObject constructor.
*
* @param $primaryKey string
* @param $object
* @param callable|mixed $object
*/
public function __construct($primaryKey, $object) {
$this->primaryKey = $primaryKey;
@@ -47,16 +47,24 @@ class RelationalObject implements JsonSerializable {
);
}
public function getObject() {
if (is_callable($this->object)) {
$this->object = call_user_func($this->object, $this);
}
return $this->object;
}
/**
* This method should be overwritten if object doesn't implement \JsonSerializable
*
* @throws \Exception
*/
public function getObjectSerialization() {
if ($this->object instanceof JsonSerializable) {
return $this->object->jsonSerialize();
if ($this->getObject() instanceof JsonSerializable) {
return $this->getObject()->jsonSerialize();
} else {
throw new \Exception('jsonSerialize is not implemented on ' . get_class($this));
throw new \Exception('jsonSerialize is not implemented on ' . get_class($this->getObject()));
}
}

51
lib/Db/Session.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Db;
use OCP\AppFramework\Db\Entity;
class Session extends Entity implements \JsonSerializable {
public $id;
protected $userId;
protected $token;
protected $lastContact;
protected $boardId;
public function __construct() {
$this->addType('id', 'integer');
$this->addType('boardId', 'integer');
$this->addType('lastContact', 'integer');
}
public function jsonSerialize(): array {
return [
'id' => $this->id,
'userId' => $this->userId,
'token' => $this->token,
'lastContact' => $this->lastContact,
'boardId' => $this->boardId,
];
}
}

74
lib/Db/SessionMapper.php Normal file
View File

@@ -0,0 +1,74 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Db;
use OCA\Deck\Service\SessionService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;
/** @template-extends QBMapper<Session> */
class SessionMapper extends QBMapper {
public function __construct(IDBConnection $db) {
parent::__construct($db, 'deck_sessions', Session::class);
}
public function find(int $boardId, string $userId, string $token): Session {
$qb = $this->db->getQueryBuilder();
$result = $qb->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('token', $qb->createNamedParameter($token)))
->andWhere($qb->expr()->gt('last_contact', $qb->createNamedParameter(time() - SessionService::SESSION_VALID_TIME)))
->executeQuery();
$data = $result->fetch();
$result->closeCursor();
if ($data === false) {
throw new DoesNotExistException('Session is invalid');
}
$session = Session::fromRow($data);
if ($session->getUserId() != $userId || $session->getBoardId() != $boardId) {
throw new DoesNotExistException('Session is invalid');
}
return $session;
}
public function findAllActive($boardId) {
$qb = $this->db->getQueryBuilder();
$qb->select('id', 'board_id', 'last_contact', 'user_id', 'token')
->from($this->getTableName())
->where($qb->expr()->eq('board_id', $qb->createNamedParameter($boardId)))
->andWhere($qb->expr()->gt('last_contact', $qb->createNamedParameter(time() - SessionService::SESSION_VALID_TIME)))
->executeQuery();
return $this->findEntities($qb);
}
public function deleteInactive(): int {
$qb = $this->db->getQueryBuilder();
$qb->delete($this->getTableName())
->where($qb->expr()->lt('last_contact', $qb->createNamedParameter(time() - SessionService::SESSION_VALID_TIME)));
return $qb->executeStatement();
}
}

View File

@@ -26,15 +26,27 @@ namespace OCA\Deck\Db;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\Cache\CappedMemoryCache;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\ICache;
use OCP\ICacheFactory;
/** @template-extends DeckMapper<Stack> */
class StackMapper extends DeckMapper implements IPermissionMapper {
private $cardMapper;
private CappedMemoryCache $stackCache;
private CardMapper $cardMapper;
private ICache $cache;
public function __construct(IDBConnection $db, CardMapper $cardMapper) {
public function __construct(
IDBConnection $db,
CardMapper $cardMapper,
ICacheFactory $cacheFactory
) {
parent::__construct($db, 'deck_stacks', Stack::class);
$this->cardMapper = $cardMapper;
$this->stackCache = new CappedMemoryCache();
$this->cache = $cacheFactory->createDistributed('deck-stackMapper');
}
@@ -46,12 +58,17 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
* @throws \OCP\DB\Exception
*/
public function find($id): Stack {
if (isset($this->stackCache[(string)$id])) {
return $this->stackCache[(string)$id];
}
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from($this->getTableName())
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)));
return $this->findEntity($qb);
$this->stackCache[(string)$id] = $this->findEntity($qb);
return $this->stackCache[(string)$id];
}
/**
@@ -112,14 +129,16 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($qb);
}
/**
* @param Entity $entity
* @return Entity
* @throws \OCP\DB\Exception
*/
public function update(Entity $entity): Entity {
$result = parent::update($entity);
$this->stackCache[(string)$entity->getId()] = $result;
return $result;
}
public function delete(Entity $entity): Entity {
// delete cards on stack
$this->cardMapper->deleteByStack($entity->getId());
unset($this->stackCache[(string)$entity->getId()]);
return parent::delete($entity);
}
@@ -146,12 +165,19 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
* @throws \OCP\DB\Exception
*/
public function findBoardId($id): ?int {
$result = $this->cache->get('findBoardId:' . $id);
if ($result !== null) {
return $result !== false ? $result : null;
}
try {
$entity = $this->find($id);
return $entity->getBoardId();
$result = $entity->getBoardId();
} catch (DoesNotExistException $e) {
$result = false;
} catch (MultipleObjectsReturnedException $e) {
}
return null;
$this->cache->set('findBoardId:' . $id, $result);
return $result !== false ? $result : null;
}
}

View File

@@ -23,27 +23,30 @@
namespace OCA\Deck\Db;
use OCP\IUser;
use OCP\IUserManager;
class User extends RelationalObject {
public function __construct(IUser $user) {
$primaryKey = $user->getUID();
parent::__construct($primaryKey, $user);
private IUserManager $userManager;
public function __construct($uid, IUserManager $userManager) {
$this->userManager = $userManager;
parent::__construct($uid, function ($object) {
return $this->userManager->get($object->getPrimaryKey());
});
}
public function getObjectSerialization() {
return [
'uid' => $this->object->getUID(),
'displayname' => $this->object->getDisplayName(),
'type' => 0
'uid' => $this->getObject()->getUID(),
'displayname' => $this->getObject()->getDisplayName(),
'type' => Acl::PERMISSION_TYPE_USER
];
}
public function getUID() {
return $this->object->getUID();
return $this->getPrimaryKey();
}
public function getDisplayName() {
return $this->object->getDisplayName();
return $this->userManager->getDisplayName($this->getPrimaryKey());
}
}

View File

@@ -31,7 +31,7 @@ use OCP\EventDispatcher\Event;
abstract class AAclEvent extends Event {
private $acl;
public function __construct(Acl $acl) {
parent::__construct();
@@ -41,4 +41,8 @@ abstract class AAclEvent extends Event {
public function getAcl(): Acl {
return $this->acl;
}
public function getBoardId(): int {
return $this->acl->getBoardId();
}
}

View File

@@ -0,0 +1,43 @@
<?php
/*
* @copyright Copyright (c) 2022 chandi Langecker <git@chandi.it>
*
* @author chandi Langecker <git@chandi.it>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
declare(strict_types=1);
namespace OCA\Deck\Event;
use OCP\EventDispatcher\Event;
class BoardUpdatedEvent extends Event {
private $boardId;
public function __construct(int $boardId) {
parent::__construct();
$this->boardId = $boardId;
}
public function getBoardId(): int {
return $this->boardId;
}
}

View File

@@ -26,5 +26,17 @@ declare(strict_types=1);
namespace OCA\Deck\Event;
use OCA\Deck\Db\Card;
class CardUpdatedEvent extends ACardEvent {
private $cardBefore;
public function __construct(Card $card, Card $before = null) {
parent::__construct($card);
$this->cardBefore = $before;
}
public function getCardBefore() {
return $this->cardBefore;
}
}

View File

@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
declare(strict_types=1);
namespace OCA\Deck\Event;
use OCP\EventDispatcher\Event;
class SessionClosedEvent extends Event {
private $boardId;
private $userId;
public function __construct(int $boardId, string $userId) {
parent::__construct();
$this->boardId = $boardId;
$this->userId = $userId;
}
public function getBoardId(): int {
return $this->boardId;
}
public function getUserId(): string {
return $this->userId;
}
}

View File

@@ -0,0 +1,49 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
declare(strict_types=1);
namespace OCA\Deck\Event;
use OCP\EventDispatcher\Event;
class SessionCreatedEvent extends Event {
private $boardId;
private $userId;
public function __construct(int $boardId, string $userId) {
parent::__construct();
$this->boardId = $boardId;
$this->userId = $userId;
}
public function getBoardId(): int {
return $this->boardId;
}
public function getUserId(): string {
return $this->userId;
}
}

View File

@@ -32,6 +32,7 @@ use OCP\EventDispatcher\IEventListener;
use OCP\IRequest;
use OCP\Util;
/** @template-implements IEventListener<Event|BeforeTemplateRenderedEvent> */
class BeforeTemplateRenderedListener implements IEventListener {
private $request;
@@ -50,11 +51,11 @@ class BeforeTemplateRenderedListener implements IEventListener {
Util::addStyle('deck', 'deck');
$pathInfo = $this->request->getPathInfo();
if (strpos($pathInfo, '/apps/calendar') === 0) {
if (str_starts_with($pathInfo, '/apps/calendar')) {
Util::addScript('deck', 'deck-calendar');
}
if (strpos($pathInfo, '/call/') === 0 || strpos($pathInfo, '/apps/spreed') === 0) {
if (str_starts_with($pathInfo, '/call/') || str_starts_with($pathInfo, '/apps/spreed')) {
Util::addScript('deck', 'deck-talk');
}
}

View File

@@ -42,8 +42,9 @@ use OCP\FullTextSearch\Model\IIndex;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
/** @template-implements IEventListener<Event|ACardEvent|AAclEvent> */
class FullTextSearchEventListener implements IEventListener {
/** @var string|null */
private $userId;
/** @var IFullTextSearchManager|null */
@@ -52,7 +53,7 @@ class FullTextSearchEventListener implements IEventListener {
private $service;
/** @var LoggerInterface */
private $logger;
public function __construct(ContainerInterface $container, $userId) {
$this->userId = $userId;
$this->logger = $container->get(LoggerInterface::class);
@@ -68,7 +69,7 @@ class FullTextSearchEventListener implements IEventListener {
if (!$event instanceof ACardEvent && !$event instanceof AAclEvent) {
return;
}
try {
if ($event instanceof CardCreatedEvent) {
$this->manager->createIndex(

View File

@@ -0,0 +1,115 @@
<?php
/*
* @copyright Copyright (c) 2021 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
declare(strict_types=1);
namespace OCA\Deck\Listeners;
use OCA\Deck\Db\StackMapper;
use OCA\Deck\NotifyPushEvents;
use OCA\Deck\Event\AAclEvent;
use OCA\Deck\Event\ACardEvent;
use OCA\Deck\Event\BoardUpdatedEvent;
use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Event\SessionClosedEvent;
use OCA\Deck\Event\SessionCreatedEvent;
use OCA\Deck\Service\SessionService;
use OCA\NotifyPush\Queue\IQueue;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IRequest;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
/** @template-implements IEventListener<Event|SessionCreatedEvent|SessionClosedEvent|AAclEvent|ACardEvent|CardUpdatedEvent|BoardUpdatedEvent> */
class LiveUpdateListener implements IEventListener {
private LoggerInterface $logger;
private SessionService $sessionService;
private IRequest $request;
private StackMapper $stackMapper;
private $queue;
public function __construct(
ContainerInterface $container,
IRequest $request,
LoggerInterface $logger,
SessionService $sessionService,
StackMapper $stackMapper
) {
try {
$this->queue = $container->get(IQueue::class);
} catch (\Exception $e) {
// most likely notify_push is not installed.
return;
}
$this->logger = $logger;
$this->sessionService = $sessionService;
$this->request = $request;
$this->stackMapper = $stackMapper;
}
public function handle(Event $event): void {
if (!$this->queue) {
// notify_push is not active
return;
}
try {
// the web frontend is adding the Session-ID as a header
// TODO: verify the token! this currently allows to spoof a token from someone
// else, preventing this person from getting updates
$causingSessionToken = $this->request->getHeader('x-nc-deck-session');
if (
$event instanceof SessionCreatedEvent ||
$event instanceof SessionClosedEvent ||
$event instanceof BoardUpdatedEvent ||
$event instanceof AAclEvent
) {
$this->sessionService->notifyAllSessions($this->queue, $event->getBoardId(), NotifyPushEvents::DeckBoardUpdate, [
'id' => $event->getBoardId()
], $causingSessionToken);
} elseif ($event instanceof ACardEvent) {
$boardId = $this->stackMapper->findBoardId($event->getCard()->getStackId());
$this->sessionService->notifyAllSessions($this->queue, $boardId, NotifyPushEvents::DeckCardUpdate, [
'boardId' => $boardId,
'cardId' => $event->getCard()->getId()
], $causingSessionToken);
// if card got moved to a diferent board, we should notify
// also sessions active on the previous board
if ($event instanceof CardUpdatedEvent && $event->getCardBefore()) {
$previousBoardId = $this->stackMapper->findBoardId($event->getCardBefore()->getStackId());
if ($boardId !== $previousBoardId) {
$this->sessionService->notifyAllSessions($this->queue, $previousBoardId, NotifyPushEvents::DeckCardUpdate, [
'boardId' => $boardId,
'cardId' => $event->getCard()->getId()
], $causingSessionToken);
}
}
}
} catch (\Exception $e) {
$this->logger->error('Error when handling live update event', ['exception' => $e]);
}
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace OCA\Deck\Listeners;
use OCA\Circles\Events\CircleDestroyedEvent;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Group\Events\GroupDeletedEvent;
use OCP\User\Events\UserDeletedEvent;
/** @template-implements IEventListener<Event|UserDeletedEvent|GroupDeletedEvent|CircleDestroyedEvent> */
class ParticipantCleanupListener implements IEventListener {
private AclMapper $aclMapper;
private AssignmentMapper $assignmentMapper;
private BoardMapper $boardMapper;
public function __construct(AclMapper $aclMapper, AssignmentMapper $assignmentMapper, BoardMapper $boardMapper) {
$this->aclMapper = $aclMapper;
$this->assignmentMapper = $assignmentMapper;
$this->boardMapper = $boardMapper;
}
public function handle(Event $event): void {
if ($event instanceof UserDeletedEvent) {
$boards = $this->boardMapper->findAllByOwner($event->getUser()->getUID());
foreach ($boards as $board) {
$this->boardMapper->delete($board);
}
$this->cleanupByParticipant(Acl::PERMISSION_TYPE_USER, $event->getUser()->getUID());
}
if ($event instanceof GroupDeletedEvent) {
$this->cleanupByParticipant(Acl::PERMISSION_TYPE_GROUP, $event->getGroup()->getGID());
}
if ($event instanceof CircleDestroyedEvent) {
$circleId = $event->getCircle()->getSingleId();
$this->cleanupByParticipant(Acl::PERMISSION_TYPE_CIRCLE, $circleId);
}
}
private function cleanupByParticipant(int $type, string $participant): void {
$acls = $this->aclMapper->findByParticipant($type, $participant);
foreach ($acls as $acl) {
$this->aclMapper->delete($acl);
}
$assignments = $this->assignmentMapper->findByParticipant($participant, $type);
foreach ($assignments as $assignment) {
$this->assignmentMapper->delete($assignment);
}
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace OCA\Deck\Listeners;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IRequest;
use OCP\Util;
/** @template-implements IEventListener<Event|LoadAdditionalScriptsEvent> */
class ResourceAdditionalScriptsListener implements IEventListener {
private IRequest $request;
public function __construct(IRequest $request) {
$this->request = $request;
}
public function handle(Event $event): void {
if (!$event instanceof LoadAdditionalScriptsEvent) {
return;
}
if (str_starts_with($this->request->getPathInfo(), '/call/')) {
// Talk integration has its own entrypoint which already includes collections handling
return;
}
Util::addScript('deck', 'deck-collections');
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace OCA\Deck\Listeners;
use OCA\Deck\Collaboration\Resources\ResourceProvider;
use OCA\Deck\Collaboration\Resources\ResourceProviderCard;
use OCA\Deck\Event\AclCreatedEvent;
use OCA\Deck\Event\AclDeletedEvent;
use OCP\Collaboration\Resources\IManager;
use OCP\Collaboration\Resources\ResourceException;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
/** @template-implements IEventListener<Event|AclDeletedEvent|AclCreatedEvent> */
class ResourceListener implements IEventListener {
/** @var IManager */
private $resourceManager;
/** @var ResourceProviderCard */
private $resourceProviderCard;
public function __construct(IManager $resourceManager, ResourceProviderCard $resourceProviderCard) {
$this->resourceManager = $resourceManager;
$this->resourceProviderCard = $resourceProviderCard;
}
public function handle(Event $event): void {
if (!$event instanceof AclDeletedEvent && !$event instanceof AclCreatedEvent) {
return;
}
$boardId = $event->getAcl()->getBoardId();
$this->resourceManager->invalidateAccessCacheForProvider($this->resourceProviderCard);
try {
$resource = $this->resourceManager->getResourceForUser(ResourceProvider::RESOURCE_TYPE, $boardId, null);
$this->resourceManager->invalidateAccessCacheForResource($resource);
} catch (ResourceException $e) {
// If there is no resource we don't need to invalidate anything, but this should not happen anyways
}
}
}

View File

@@ -33,7 +33,6 @@ use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
use OCP\ILogger;
use OCP\IRequest;
use OCP\Util;
use OCP\IConfig;
class ExceptionMiddleware extends Middleware {
@@ -85,9 +84,9 @@ class ExceptionMiddleware extends Middleware {
'message' => 'Permission denied'
], 403);
}
if ($exception instanceof StatusException) {
if ($this->config->getSystemValue('loglevel', Util::WARN) === Util::DEBUG) {
if ($this->config->getSystemValue('loglevel', ILogger::WARN) === ILogger::DEBUG) {
$this->logger->logException($exception);
}
@@ -110,7 +109,7 @@ class ExceptionMiddleware extends Middleware {
], $exception->getStatus());
}
if (strpos(get_class($controller), 'OCA\\Deck\\Controller\\') === 0) {
if (str_starts_with(get_class($controller), 'OCA\\Deck\\Controller\\')) {
$response = [
'status' => 500,
'message' => $exceptionMessage,

View File

@@ -0,0 +1,36 @@
<?php
namespace OCA\Deck\Migration;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Service\CirclesService;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
class DeletedCircleCleanup implements IRepairStep {
private AclMapper $aclMapper;
private CirclesService $circleService;
public function __construct(AclMapper $aclMapper, CirclesService $circlesService) {
$this->aclMapper = $aclMapper;
$this->circleService = $circlesService;
}
public function getName() {
return 'Cleanup Deck ACL entries for circles which have been already deleted';
}
public function run(IOutput $output) {
if (!$this->circleService->isCirclesEnabled()) {
return;
}
foreach ($this->aclMapper->findByType(Acl::PERMISSION_TYPE_CIRCLE) as $acl) {
if ($this->circleService->getCircle($acl->getParticipant()) === null) {
$this->aclMapper->delete($acl);
$output->info('Removed circle with id ' . $acl->getParticipant());
}
}
}
}

View File

@@ -0,0 +1,67 @@
<?php
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
declare(strict_types=1);
namespace OCA\Deck\Migration;
use Closure;
use OCP\DB\ISchemaWrapper;
use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version10900Date202206151724222 extends SimpleMigrationStep {
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
$schema = $schemaClosure();
if (!$schema->hasTable('deck_sessions')) {
$table = $schema->createTable('deck_sessions');
$table->addColumn('id', Types::INTEGER, [
'autoincrement' => true,
'notnull' => true,
'unsigned' => true,
]);
$table->addColumn('user_id', Types::STRING, [
'notnull' => false,
'length' => 64,
]);
$table->addColumn('board_id', Types::INTEGER, [
'notnull' => false,
]);
$table->addColumn('token', Types::STRING, [
'notnull' => true,
'length' => 64,
]);
$table->addColumn('last_contact', Types::INTEGER, [
'notnull' => true,
'length' => 20,
'unsigned' => true,
]);
$table->setPrimaryKey(['id']);
$table->addIndex(['board_id'], 'deck_session_board_id_idx');
$table->addIndex(['token'], 'deck_session_token_idx');
$table->addIndex(['last_contact'], 'deck_session_last_contact_idx');
}
return $schema;
}
}

View File

@@ -39,6 +39,10 @@ class BoardSummary extends Board {
];
}
protected function getter(string $name): mixed {
return $this->board->getter($name);
}
public function __call($name, $arguments) {
return $this->board->__call($name, $arguments);
}

View File

@@ -22,7 +22,6 @@
*/
namespace OCA\Deck\Model;
use DateTime;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\Card;
@@ -41,6 +40,14 @@ class CardDetails extends Card {
}
public function jsonSerialize(array $extras = []): array {
$array = parent::jsonSerialize();
$array['overdue'] = $this->getDueStatus();
unset($array['notified']);
unset($array['descriptionPrev']);
unset($array['relatedStack']);
unset($array['relatedBoard']);
$array = $this->card->jsonSerialize();
unset($array['notified'], $array['descriptionPrev'], $array['relatedStack'], $array['relatedBoard']);
@@ -51,30 +58,18 @@ class CardDetails extends Card {
}
private function getDueStatus(): int {
$today = new DateTime();
$today->setTime(0, 0);
$match_date = $this->card->getDuedate();
if (!$match_date) {
return Card::DUEDATE_FUTURE;
$diffDays = $this->getDaysUntilDue();
if ($diffDays === null || $diffDays > 1) {
return static::DUEDATE_FUTURE;
}
$match_date->setTime(0, 0);
$diff = $today->diff($match_date);
$diffDays = (int) $diff->format('%R%a'); // Extract days count in interval
if ($diffDays === 1) {
return Card::DUEDATE_NEXT;
return static::DUEDATE_NEXT;
}
if ($diffDays === 0) {
return Card::DUEDATE_NOW;
}
if ($diffDays < 0) {
return Card::DUEDATE_OVERDUE;
return static::DUEDATE_NOW;
}
return Card::DUEDATE_FUTURE;
return static::DUEDATE_OVERDUE;
}
private function appendBoardDetails(&$array): void {
@@ -86,7 +81,11 @@ class CardDetails extends Card {
$array['board'] = (new BoardSummary($this->board))->jsonSerialize();
}
public function __call($name, $arguments) {
return $this->card->__call($name, $arguments);
protected function getter(string $name): mixed {
return $this->card->getter($name);
}
public function __call(string $methodName, array $args) {
return $this->card->__call($methodName, $args);
}
}

30
lib/NotifyPushEvents.php Normal file
View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2022, chandi Langecker (git@chandi.it)
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck;
class NotifyPushEvents {
public const DeckBoardUpdate = 'deck_board_update';
public const DeckCardUpdate = 'deck_card_update';
}

View File

@@ -0,0 +1,134 @@
<?php
/**
* @copyright Copyright (c) 2022 Julien Veyssier <eneiluj@posteo.net>
*
* @author Julien Veyssier <eneiluj@posteo.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OCA\Deck\Reference;
use OCA\Deck\AppInfo\Application;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\BoardService;
use OCP\Collaboration\Reference\IReference;
use OCP\Collaboration\Reference\IReferenceProvider;
use OCP\Collaboration\Reference\Reference;
use OCP\IL10N;
use OCP\IURLGenerator;
class BoardReferenceProvider implements IReferenceProvider {
private IURLGenerator $urlGenerator;
private BoardService $boardService;
private ?string $userId;
private IL10N $l10n;
public function __construct(BoardService $boardService,
IURLGenerator $urlGenerator,
IL10N $l10n,
?string $userId) {
$this->urlGenerator = $urlGenerator;
$this->boardService = $boardService;
$this->userId = $userId;
$this->l10n = $l10n;
}
/**
* @inheritDoc
*/
public function matchReference(string $referenceText): bool {
$start = $this->urlGenerator->getAbsoluteURL('/apps/' . Application::APP_ID);
$startIndex = $this->urlGenerator->getAbsoluteURL('/index.php/apps/' . Application::APP_ID);
// link example: https://nextcloud.local/index.php/apps/deck/#/board/2
$noIndexMatch = preg_match('/^' . preg_quote($start, '/') . '\/#\/board\/[0-9]+$/', $referenceText) === 1;
$indexMatch = preg_match('/^' . preg_quote($startIndex, '/') . '\/#\/board\/[0-9]+$/', $referenceText) === 1;
return $noIndexMatch || $indexMatch;
}
/**
* @inheritDoc
*/
public function resolveReference(string $referenceText): ?IReference {
if ($this->matchReference($referenceText)) {
$boardId = $this->getBoardId($referenceText);
if ($boardId !== null) {
try {
$board = $this->boardService->find($boardId)->jsonSerialize();
} catch (NoPermissionException $e) {
// Skip throwing if user has no permissions
return null;
}
$board = $this->sanitizeSerializedBoard($board);
/** @var IReference $reference */
$reference = new Reference($referenceText);
$reference->setTitle($this->l10n->t('Deck board') . ': ' . $board['title']);
$ownerDisplayName = $board['owner']['displayname'] ?? $board['owner']['uid'] ?? '???';
$reference->setDescription($this->l10n->t('Owned by %1$s', [$ownerDisplayName]));
$imageUrl = $this->urlGenerator->getAbsoluteURL(
$this->urlGenerator->imagePath(Application::APP_ID, 'deck-dark.svg')
);
$reference->setImageUrl($imageUrl);
$reference->setRichObject(Application::APP_ID . '-board', [
'id' => $boardId,
'board' => $board,
]);
return $reference;
}
}
return null;
}
private function sanitizeSerializedBoard(array $board): array {
unset($board['labels']);
$board['owner'] = $board['owner']->jsonSerialize();
unset($board['acl']);
unset($board['users']);
return $board;
}
private function getBoardId(string $url): ?int {
$start = $this->urlGenerator->getAbsoluteURL('/apps/' . Application::APP_ID);
$startIndex = $this->urlGenerator->getAbsoluteURL('/index.php/apps/' . Application::APP_ID);
preg_match('/^' . preg_quote($start, '/') . '\/#\/board\/([0-9]+)$/', $url, $matches);
if (!$matches) {
preg_match('/^' . preg_quote($startIndex, '/') . '\/#\/board\/([0-9]+)$/', $url, $matches);
}
if ($matches && count($matches) > 1) {
return (int) $matches[1];
}
return null;
}
public function getCachePrefix(string $referenceId): string {
$boardId = $this->getBoardId($referenceId);
if ($boardId !== null) {
return (string) $boardId;
}
return $referenceId;
}
public function getCacheKey(string $referenceId): ?string {
return $this->userId ?? '';
}
}

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