Compare commits

..

280 Commits

Author SHA1 Message Date
Julius Härtl
139092d855 Create appstore-build-publish.yml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-15 17:20:46 +01:00
Nextcloud bot
82232e8890 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-12 02:38:54 +00:00
dependabot[bot]
f5c35729ca Merge pull request #3482 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.4 2021-12-11 05:20:04 +00:00
dependabot[bot]
fc1983869b Bump dompurify from 2.3.3 to 2.3.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.3...2.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 04:55:03 +00:00
Nextcloud bot
081b5119f5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-09 02:40:03 +00:00
Nextcloud bot
a22e5f7719 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-05 02:43:12 +00:00
dependabot[bot]
8ef118ad0f Merge pull request #3468 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-6.1.1 2021-12-04 03:31:28 +00:00
dependabot[bot]
86945d5030 Bump @nextcloud/eslint-config from 6.1.0 to 6.1.1
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 6.1.0 to 6.1.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/v6.1.0...v6.1.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>
2021-12-04 02:02:29 +00:00
Nextcloud bot
c63423c25a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-03 02:40:11 +00:00
Nextcloud bot
8db48106b9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-01 17:22:45 +00:00
Julius Härtl
6d201a1f13 Merge pull request #3458 from nextcloud/bugfix/3451 2021-11-30 13:23:40 +01:00
Julius Härtl
5425536fc0 Merge pull request #3459 from nextcloud/bugfix/3457 2021-11-30 13:20:46 +01:00
Julius Härtl
92acaa0011 Properly handle setters now that there is a default value of null with unset acl/labels
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-30 10:57:24 +01:00
Julius Härtl
a5b76991b8 Fix cursor generation if no results are found
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-29 20:44:42 +01:00
Julius Härtl
33f5af41c8 Merge pull request #3454 from nextcloud/dependabot/composer/symfony/event-dispatcher-4.4.34 2021-11-29 20:38:44 +01:00
Julius Härtl
f5223d90a0 Merge pull request #3456 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.16.0 2021-11-29 20:38:29 +01:00
Julius Härtl
4a51335a28 Merge pull request #3455 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-1.8.0 2021-11-29 20:38:18 +01:00
Nextcloud bot
e5ffe95c17 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-27 02:37:08 +00:00
dependabot[bot]
3096b701b6 Bump shivammathur/setup-php from 2.15.0 to 2.16.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.15.0...2.16.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>
2021-11-27 02:04:50 +00:00
dependabot[bot]
caf2e688f7 Bump @nextcloud/axios from 1.7.0 to 1.8.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 1.7.0 to 1.8.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/v1.7.0...v1.8.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>
2021-11-27 02:02:57 +00:00
dependabot[bot]
3269845cfd Bump symfony/event-dispatcher from 4.4.30 to 4.4.34
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 4.4.30 to 4.4.34.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/5.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v4.4.30...v4.4.34)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-27 02:01:03 +00:00
Nextcloud bot
5349fcc707 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-26 02:57:38 +00:00
Nextcloud bot
0f095e9b69 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-25 02:36:02 +00:00
Julius Härtl
3affa7b5ec Merge pull request #3444 from nextcloud/enh/cache-frequent-queries 2021-11-24 15:06:37 +01:00
Julius Härtl
4ec57d337b Keep API results the same as before
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-24 10:12:28 +01:00
Julius Härtl
6fd83258a0 Merge pull request #3365 from nextcloud/enh/use-qbmapper-for-boards 2021-11-24 09:40:50 +01:00
Julius Härtl
901b8f2506 Avoid fetching board details multiple times
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-24 09:40:30 +01:00
Julius Härtl
80388d1a88 Cache card to board id relation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-24 09:40:30 +01:00
Nextcloud bot
f90c9602b8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-24 02:36:58 +00:00
Julius Härtl
f861f9e5fc Update psalm baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-23 23:44:50 +01:00
Julien Veyssier
bbfb155802 switch to QBMapper in BoardMapper
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-11-23 22:57:50 +01:00
Julius Härtl
10ab8c8688 Merge pull request #3428 from nextcloud/bugfix/download-attachment 2021-11-22 18:39:58 +01:00
Julius Härtl
24a6d088ca Merge pull request #3436 from nextcloud/dependabot/npm_and_yarn/master/vue/test-utils-1.3.0 2021-11-22 16:39:02 +01:00
Julius Härtl
00d386dcaf Allow to download an attachment without navigating to the files app
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-22 16:38:28 +01:00
Nextcloud bot
b71f91c439 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-20 02:53:14 +00:00
dependabot[bot]
7aa35bb728 Bump @vue/test-utils from 1.2.2 to 1.3.0
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.3.0/packages/test-utils)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-20 02:04:23 +00:00
Julius Härtl
800412237d Merge pull request #3432 from nextcloud/bugfix/noid/description-save 2021-11-19 10:14:25 +01:00
Julius Härtl
ca411c6168 Fix event name for updating the description
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-19 08:32:40 +01:00
Nextcloud bot
d414ffe937 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-19 02:53:33 +00:00
Julius Härtl
ad483f3613 Merge pull request #3425 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.16.3
Bump @babel/runtime from 7.16.0 to 7.16.3
2021-11-15 07:21:51 +01:00
Julius Härtl
8311a13275 Merge pull request #3427 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.1.4
Bump @nextcloud/webpack-vue-config from 4.1.2 to 4.1.4
2021-11-15 07:21:38 +01:00
Nextcloud bot
e2a7063772 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-15 02:35:06 +00:00
Nextcloud bot
1dbf36ae07 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-14 02:36:19 +00:00
Nextcloud bot
29278a51e5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-13 02:36:41 +00:00
dependabot[bot]
31e48ce404 Bump @nextcloud/webpack-vue-config from 4.1.2 to 4.1.4
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.1.2 to 4.1.4.
- [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/v4.1.2...v4.1.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-13 02:04:54 +00:00
dependabot[bot]
404a7eb412 Bump @babel/runtime from 7.16.0 to 7.16.3
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.16.0 to 7.16.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.3/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-13 02:02:03 +00:00
Julius Härtl
a85a6db368 Merge pull request #3420 from nextcloud/feat/package-node-npm-engines-update 2021-11-11 16:12:42 +01:00
Nextcloud bot
9464337036 Update npm and node engines versions
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-11 13:36:52 +00:00
Vincent Petry
87676b49dd Merge pull request #3419 from nextcloud/update-master-version
Update version on master
2021-11-11 11:53:23 +01:00
Joas Schilling
6248089d8b Update version on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-11 10:51:16 +01:00
Julius Härtl
ec43071adb Bump version to 1.6.0-beta1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-10 16:20:40 +01:00
Julius Härtl
d3d4269245 Merge pull request #3414 from nextcloud/dependabot/github_actions/actions/checkout-2.4.0 2021-11-10 09:49:25 +01:00
Nextcloud bot
ff7a813052 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-10 02:36:01 +00:00
Nextcloud bot
51d6b9e352 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-09 04:07:33 +00:00
Nextcloud bot
df90c81272 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-08 02:49:12 +00:00
Nextcloud bot
af03e61142 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-07 02:32:56 +00:00
dependabot[bot]
6234632ae9 Bump actions/checkout from 2.3.5 to 2.4.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.5...v2.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 06:51:56 +00:00
dependabot[bot]
393c88e592 Merge pull request #3413 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.1.2 2021-11-06 06:51:16 +00:00
dependabot[bot]
92db5f3deb Bump @nextcloud/webpack-vue-config from 4.1.0 to 4.1.2
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.1.0 to 4.1.2.
- [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/v4.1.0...v4.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 06:11:09 +00:00
dependabot[bot]
1169818a3d Merge pull request #3412 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/initial-state-1.2.1 2021-11-06 06:09:08 +00:00
dependabot[bot]
dd32544e5e Bump @nextcloud/initial-state from 1.2.0 to 1.2.1
Bumps [@nextcloud/initial-state](https://github.com/nextcloud/nextcloud-initial-state) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/nextcloud/nextcloud-initial-state/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-initial-state/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-initial-state/compare/v1.2.0...v1.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 05:30:27 +00:00
dependabot[bot]
095c80e993 Merge pull request #3411 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/event-bus-2.1.1 2021-11-06 05:29:36 +00:00
dependabot[bot]
0daf7021ec Bump @nextcloud/event-bus from 2.1.0 to 2.1.1
Bumps [@nextcloud/event-bus](https://github.com/nextcloud/nextcloud-event-bus) from 2.1.0 to 2.1.1.
- [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/v2.1.0...v2.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-06 03:57:00 +00:00
Nextcloud bot
3f0f4315fc [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-06 02:33:20 +00:00
Julius Härtl
4b5aabd433 Merge pull request #2710 from nextcloud/enh/dateShortcuts3 2021-11-05 18:03:22 +01:00
Julius Härtl
0ce431e7a6 Merge pull request #3384 from nextcloud/techdept/noid/cleanup-middleware 2021-11-05 18:01:28 +01:00
Julius Härtl
83fc4323f4 Keep exceptions http response generic and return the request ID for further tracing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-11-05 17:41:11 +01:00
Julius Härtl
100bc30d9b Merge pull request #3397 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-3.0.0
Bump @relative-ci/agent from 2.1.0 to 3.0.0
2021-11-01 21:28:47 +01:00
Julius Härtl
4044953df0 Merge pull request #3399 from nextcloud/dependabot/composer/vimeo/psalm-4.11.2
Bump vimeo/psalm from 4.10.0 to 4.11.2
2021-11-01 21:28:29 +01:00
Julius Härtl
be5ca006d6 Merge pull request #3400 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.16.0
Bump @babel/runtime from 7.15.4 to 7.16.0
2021-11-01 21:28:17 +01:00
Julius Härtl
c89e971059 Merge pull request #3398 from nextcloud/dependabot/npm_and_yarn/master/vue-router-3.5.3
Bump vue-router from 3.5.2 to 3.5.3
2021-11-01 21:27:48 +01:00
dependabot[bot]
e85a754756 Bump @babel/runtime from 7.15.4 to 7.16.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.15.4 to 7.16.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.16.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>
2021-10-30 04:59:10 +00:00
dependabot[bot]
70dfa9e7d2 Bump vimeo/psalm from 4.10.0 to 4.11.2
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.10.0 to 4.11.2.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.10.0...4.11.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-30 03:51:29 +00:00
dependabot[bot]
aab0d5eecc Bump vue-router from 3.5.2 to 3.5.3
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.5.2...v3.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-30 03:26:29 +00:00
dependabot[bot]
87005ce981 Bump @relative-ci/agent from 2.1.0 to 3.0.0
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 2.1.0 to 3.0.0.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v2.1.0...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-30 03:24:40 +00:00
Nextcloud bot
0425a3c39c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-30 02:33:50 +00:00
Nextcloud bot
e2674f45fc [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-29 02:33:12 +00:00
Julius Härtl
1f43dbb3fc Merge pull request #3391 from kffl/master 2021-10-27 13:53:32 +02:00
Paweł Kuffel
1469756d93 use displayname instead of uid for mentions
Signed-off-by: Paweł Kuffel <pawel@kuffel.io>
2021-10-27 10:42:55 +02:00
Julius Härtl
8bba4d09ac Merge pull request #3386 from nextcloud/dependabot/npm_and_yarn/master/jest-27.3.1
Bump jest from 27.2.5 to 27.3.1
2021-10-23 15:08:43 +02:00
dependabot[bot]
a4a0f17891 Bump jest from 27.2.5 to 27.3.1
Bumps [jest](https://github.com/facebook/jest) from 27.2.5 to 27.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/compare/v27.2.5...v27.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-23 01:03:18 +00:00
Nextcloud bot
5b0e0cc7bb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-22 02:32:41 +00:00
Nextcloud bot
b3364f4460 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-21 02:34:54 +00:00
Nextcloud bot
9ca7a0a077 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-20 02:53:51 +00:00
dependabot[bot]
37b05250cc Merge pull request #3382 from nextcloud/dependabot/github_actions/actions/checkout-2.3.5 2021-10-16 02:31:09 +00:00
dependabot[bot]
45c254698b Bump actions/checkout from 2.3.4 to 2.3.5
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.4...v2.3.5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-16 01:04:08 +00:00
Julius Härtl
6f56989fa7 Merge pull request #3324 from valerydmitrieva/fix-button-position 2021-10-12 12:24:50 +02:00
Julius Härtl
96a5fbf0d4 Merge pull request #3376 from nextcloud/enh/print-names 2021-10-12 11:49:36 +02:00
Julius Härtl
f051114b3e Merge pull request #3375 from nextcloud/enh/print-dates 2021-10-12 11:46:43 +02:00
Michael Weimann
48c28690b2 show absolute dates when printing
relates to #3250

Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2021-10-10 18:20:12 +02:00
Michael Weimann
2cbef172d4 print assignee names
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2021-10-10 12:34:43 +02:00
dependabot[bot]
2a60428133 Merge pull request #3373 from nextcloud/dependabot/npm_and_yarn/master/jest-27.2.5 2021-10-09 02:21:30 +00:00
dependabot[bot]
15f790ee31 Bump jest from 27.2.4 to 27.2.5
Bumps [jest](https://github.com/facebook/jest) from 27.2.4 to 27.2.5.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.2.4...v27.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-09 01:02:08 +00:00
Nextcloud bot
d8ff4ed7a9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-07 02:35:59 +00:00
Julius Härtl
7718dbb17d Merge pull request #3364 from nextcloud/bugfix/3334 2021-10-06 11:23:58 +02:00
Julius Härtl
fa1b675a54 Fix optional parameter order
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-10-06 10:06:52 +02:00
Lera Dmitrieva
a2c7531dba Fix menu button position in card modal
Signed-off-by: Lera Dmitrieva <dmit.valerya@yandex.ru>
2021-10-05 14:22:19 +03:00
Julius Härtl
c72714fa70 Merge pull request #3327 from Themanwhosmellslikesugar/fix/do-not-show-both-checkbox
Do not show both bullets and checkboxes for checklists
2021-10-05 12:04:16 +02:00
Dmitriy Ivanko
da109ca720 Reduce indent between checkbox and label
Signed-off-by: Dmitriy Ivanko <tmwsls12@gmail.com>
2021-10-05 12:40:53 +03:00
Dmitry Ivanko
0fcbe2cb47 Do not show both bullets and checkboxes for checklists
Signed-off-by: Dmitriy Ivanko <tmwsls12@gmail.com>
2021-10-05 12:40:53 +03:00
Julius Härtl
86fd1fbc0f Merge pull request #3362 from nextcloud/enh/improve-search-perf 2021-10-05 11:38:52 +02:00
Julien Veyssier
dd0a22ba04 use term in DB query instead of filtering in php
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-10-04 18:33:53 +02:00
Julien Veyssier
7425d00ba5 harmonize since and before search params
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-10-04 18:33:53 +02:00
Julien Veyssier
ca04efb736 apply date search filter in SQL queries instead of computing it in php
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-10-04 18:33:53 +02:00
Julius Härtl
ce595bdd9d Merge pull request #3323 from old-green-frog/extend-dnd-zone-in-sidebar 2021-10-04 16:42:24 +02:00
Julius Härtl
c706fb7536 Merge pull request #3344 from nextcloud/enh/paginated-search-for-boards-and-cards 2021-10-04 16:41:48 +02:00
Julien Veyssier
b533d11c13 use distinct pagination cursor for cards and boards, use cursor and limit in SearchSe
rvice::searchBoards()

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-10-04 15:23:19 +02:00
Julius Härtl
ede6a05dec Merge pull request #3326 from nextcloud/feature/input-focus 2021-10-04 15:22:21 +02:00
Julius Härtl
3651f6b6cb Merge pull request #3337 from nextcloud/dependabot/npm_and_yarn/master/vue-easymde-2.0.0 2021-10-04 12:04:09 +02:00
dependabot[bot]
92b0b24bb2 Bump vue-easymde from 1.4.0 to 2.0.0
Bumps [vue-easymde](https://github.com/NikulinIlya/vue-easymde) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/NikulinIlya/vue-easymde/releases)
- [Commits](https://github.com/NikulinIlya/vue-easymde/compare/1.4.0...v2.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 06:32:48 +00:00
Julius Härtl
65613b1c96 Merge pull request #3353 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-1.7.0
Bump @nextcloud/axios from 1.6.0 to 1.7.0
2021-10-04 08:31:47 +02:00
dependabot[bot]
52ca67f22c Bump @nextcloud/axios from 1.6.0 to 1.7.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 1.6.0 to 1.7.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/v1.6.0...v1.7.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>
2021-10-04 06:10:34 +00:00
Julius Härtl
5d39a38b6f Merge pull request #3354 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.15.0 2021-10-04 08:08:50 +02:00
Julius Härtl
c2373ac244 Merge pull request #3352 from nextcloud/dependabot/npm_and_yarn/master/blueimp-md5-2.19.0 2021-10-04 08:08:44 +02:00
Julius Härtl
38ff93bf14 Merge pull request #3357 from nextcloud/revert-3343-fix/paginated-search 2021-10-04 07:36:23 +02:00
Julius Härtl
77f57a926b Revert "Fix search pagination cursor" 2021-10-04 07:36:08 +02:00
Julius Härtl
d61d9f015c Merge pull request #3343 from nextcloud/fix/paginated-search 2021-10-04 07:32:55 +02:00
dependabot[bot]
d519b60195 Bump blueimp-md5 from 2.18.0 to 2.19.0
Bumps [blueimp-md5](https://github.com/blueimp/JavaScript-MD5) from 2.18.0 to 2.19.0.
- [Release notes](https://github.com/blueimp/JavaScript-MD5/releases)
- [Commits](https://github.com/blueimp/JavaScript-MD5/compare/v2.18.0...v2.19.0)

---
updated-dependencies:
- dependency-name: blueimp-md5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 05:27:53 +00:00
dependabot[bot]
144bc6a217 Bump shivammathur/setup-php from 2.14.0 to 2.15.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.14.0...2.15.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>
2021-10-04 05:27:41 +00:00
Julius Härtl
11aa39253f Merge pull request #3349 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/event-bus-2.1.0
Bump @nextcloud/event-bus from 2.0.0 to 2.1.0
2021-10-04 07:27:25 +02:00
Julius Härtl
67b9e91dde Merge pull request #3348 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/browserslist-config-2.2.0
Bump @nextcloud/browserslist-config from 2.1.0 to 2.2.0
2021-10-04 07:27:14 +02:00
dependabot[bot]
24aeae8367 Bump @nextcloud/event-bus from 2.0.0 to 2.1.0
Bumps [@nextcloud/event-bus](https://github.com/nextcloud/nextcloud-event-bus) from 2.0.0 to 2.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/v2.0.0...v2.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>
2021-10-04 05:27:09 +00:00
Julius Härtl
db114ea587 Merge pull request #3350 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-4.2.0
Bump @nextcloud/vue from 4.1.1 to 4.2.0
2021-10-04 07:27:01 +02:00
dependabot[bot]
21d5aa1ab5 Bump @nextcloud/browserslist-config from 2.1.0 to 2.2.0
Bumps [@nextcloud/browserslist-config](https://github.com/nextcloud/browserslist-config) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/nextcloud/browserslist-config/releases)
- [Commits](https://github.com/nextcloud/browserslist-config/compare/v2.1.0...v2.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 05:26:53 +00:00
dependabot[bot]
fce9fe4bd9 Bump @nextcloud/vue from 4.1.1 to 4.2.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.1.1 to 4.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/v4.1.1...v4.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>
2021-10-04 05:26:42 +00:00
Julius Härtl
ab6477c5d3 Merge pull request #3351 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/files-2.1.0
Bump @nextcloud/files from 2.0.0 to 2.1.0
2021-10-04 07:26:27 +02:00
Julius Härtl
d95a420a76 Merge pull request #3347 from nextcloud/dependabot/npm_and_yarn/master/jest-27.2.4
Bump jest from 27.1.1 to 27.2.4
2021-10-04 07:25:43 +02:00
Nextcloud bot
500c73605b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-04 02:37:13 +00:00
dependabot[bot]
0bcb0d29d7 Bump jest from 27.1.1 to 27.2.4
Bumps [jest](https://github.com/facebook/jest) from 27.1.1 to 27.2.4.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.1.1...v27.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-02 08:19:12 +00:00
dependabot[bot]
b3a04624e5 Bump @nextcloud/files from 2.0.0 to 2.1.0
Bumps @nextcloud/files from 2.0.0 to 2.1.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-02 08:18:45 +00:00
dependabot[bot]
f5f3622a79 Merge pull request #3355 from nextcloud/dependabot/github_actions/actions/setup-node-2.4.1 2021-10-02 08:17:41 +00:00
dependabot[bot]
b9023d14f9 Bump actions/setup-node from 2.4.0 to 2.4.1
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-02 07:48:26 +00:00
dependabot[bot]
8b102ddb66 Merge pull request #3346 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.10 2021-10-02 07:47:36 +00:00
dependabot[bot]
b118dc0e5e Bump phpunit/phpunit from 9.5.9 to 9.5.10
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.9 to 9.5.10.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.9...9.5.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-02 03:21:43 +00:00
Nextcloud bot
8dcddc1e73 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-02 02:37:07 +00:00
Julien Veyssier
9dbfeac56a fix search pagination cursor, use LastModified of last card
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-09-30 10:30:53 +02:00
dependabot[bot]
a3e31f8c2d Merge pull request #3335 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.3 2021-09-25 02:11:50 +00:00
dependabot[bot]
259d9b325e Bump dompurify from 2.3.2 to 2.3.3
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.2...2.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-25 01:01:29 +00:00
old-green-frog
6551ba2210 Extend drag-and-drop zone in card sidebar
Signed-off-by: Igor Denisenko <old-green-frog@mail.ru>
2021-09-20 09:37:32 +03:00
dependabot[bot]
e11bea04e6 Merge pull request #3330 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-4.1.1 2021-09-18 03:38:03 +00:00
dependabot[bot]
6ab433fd86 Bump @nextcloud/vue from 4.1.0 to 4.1.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/v4.1.1/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v4.1.0...v4.1.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>
2021-09-18 02:14:24 +00:00
dependabot[bot]
4343639ff0 Merge pull request #3329 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.2 2021-09-18 02:13:32 +00:00
dependabot[bot]
2f3c359034 Bump dompurify from 2.3.1 to 2.3.2
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.1...2.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-18 01:02:47 +00:00
Michael Weimann
963e927aae add autofocus on board edit
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2021-09-17 11:14:12 +02:00
Julius Härtl
0783fde14b Merge pull request #3316 from nextcloud/bugfix/additional-checks
Additional check for stacks
2021-09-14 21:01:10 +02:00
Julius Härtl
52e7d73f10 Additional check for stacks
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-09-14 20:52:52 +02:00
Nextcloud bot
89da9273dd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-14 02:41:57 +00:00
Nextcloud bot
e119d05556 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-13 02:40:03 +00:00
Julius Härtl
567439f0b4 Merge pull request #3313 from nextcloud/dependabot/composer/vimeo/psalm-4.10.0
Bump vimeo/psalm from 4.9.3 to 4.10.0
2021-09-12 16:25:27 +02:00
Julius Härtl
96725f5a28 Merge pull request #3315 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.14.0
Bump shivammathur/setup-php from 2.13.0 to 2.14.0
2021-09-12 16:24:35 +02:00
Nextcloud bot
43699ec3d7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-12 02:40:05 +00:00
dependabot[bot]
d9bd7fbb1f Bump vimeo/psalm from 4.9.3 to 4.10.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.9.3 to 4.10.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.9.3...4.10.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>
2021-09-11 02:20:47 +00:00
dependabot[bot]
bf3ec30b5a Bump shivammathur/setup-php from 2.13.0 to 2.14.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.13.0...2.14.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>
2021-09-11 02:20:44 +00:00
dependabot[bot]
a3557ba875 Merge pull request #3314 from nextcloud/dependabot/npm_and_yarn/master/jest-27.1.1 2021-09-11 02:20:05 +00:00
dependabot[bot]
c6f3e5bb9d Bump jest from 27.1.0 to 27.1.1
Bumps [jest](https://github.com/facebook/jest) from 27.1.0 to 27.1.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/compare/v27.1.0...v27.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-11 01:02:13 +00:00
Julius Härtl
c011c53f73 Merge pull request #2791 from fm-sys/md_link_target
Open description links in new tab
2021-09-09 17:45:06 +02:00
Florian Meyer
6335f50dfb Open description links in new tab
Signed-off-by: Florian Meyer <meyer_florian@magenta.de>
2021-09-09 15:11:32 +02:00
Nextcloud bot
136a5ab078 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-09 02:38:54 +00:00
Julius Härtl
0ed7c4d02f Update psalm baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-09-08 20:36:37 +02:00
Nextcloud bot
a4bc6b9029 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-08 02:38:19 +00:00
Julius Härtl
6caa7bcfcb Merge pull request #3298 from nextcloud/bugfix/attachment-delete
Delete file shares through attachments API
2021-09-07 13:10:24 +02:00
Julien Veyssier
b9758a7ae8 Merge pull request #3299 from nextcloud/bugfix/noid/calendar-setting
Return false instead of throwing when getting calendar setting
2021-09-07 11:09:37 +02:00
Julius Härtl
021aa698d9 Return false instead of throwing when getting calendar integration setting
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-09-07 10:54:02 +02:00
Julius Härtl
643302be5e Merge pull request #3294 from nextcloud/bugfix/print-style 2021-09-06 15:58:21 +02:00
Michael Weimann
d3c8cb0285 fix print style issues
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2021-09-06 13:11:38 +00:00
Nextcloud bot
6bbe91acfd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-06 02:38:51 +00:00
Julius Härtl
13dcacc3bb Delete file shares through attachments API
Previously the file was deleted in the file structure of the user is not
expected as the file might not only be related to the card.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-09-05 12:13:21 +02:00
Nextcloud bot
e27e8d2ff6 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-05 02:38:18 +00:00
dependabot[bot]
3345e9b36d Merge pull request #3290 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.9 2021-09-04 04:24:05 +00:00
dependabot[bot]
108cbfaf33 Bump phpunit/phpunit from 9.5.8 to 9.5.9
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.8 to 9.5.9.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.8...9.5.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-04 03:10:34 +00:00
dependabot[bot]
07017b4a19 Merge pull request #3289 from nextcloud/dependabot/composer/symfony/event-dispatcher-4.4.30 2021-09-04 03:09:44 +00:00
dependabot[bot]
81f64e7b19 Bump symfony/event-dispatcher from 4.4.27 to 4.4.30
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 4.4.27 to 4.4.30.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/5.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v4.4.27...v4.4.30)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-04 02:14:11 +00:00
dependabot[bot]
b8e0eb3a97 Merge pull request #3291 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.15.4 2021-09-04 02:13:30 +00:00
dependabot[bot]
63b68a59e3 Bump @babel/runtime from 7.15.3 to 7.15.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.15.3 to 7.15.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.15.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>
2021-09-04 01:01:21 +00:00
Nextcloud bot
f55c3b294e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-31 02:37:45 +00:00
Julius Härtl
d68c3768b4 Merge pull request #3276 from nextcloud/dependabot/npm_and_yarn/master/jest-27.1.0
Bump jest from 27.0.6 to 27.1.0
2021-08-30 10:15:31 +02:00
Julius Härtl
f067057df7 Merge pull request #3277 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-4.1.0
Bump @nextcloud/vue from 4.0.3 to 4.1.0
2021-08-30 10:15:21 +02:00
Julius Härtl
bad3f5c89e Merge pull request #3275 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.13.0
Bump shivammathur/setup-php from 2.12.0 to 2.13.0
2021-08-30 10:14:56 +02:00
dependabot[bot]
c5e7f473cb Bump @nextcloud/vue from 4.0.3 to 4.1.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.0.3 to 4.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/v4.0.3...v4.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>
2021-08-28 02:09:30 +00:00
dependabot[bot]
9f93e88164 Bump jest from 27.0.6 to 27.1.0
Bumps [jest](https://github.com/facebook/jest) from 27.0.6 to 27.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.0.6...v27.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-28 02:09:09 +00:00
dependabot[bot]
0077852d4a Bump shivammathur/setup-php from 2.12.0 to 2.13.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.12.0...2.13.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>
2021-08-28 01:05:13 +00:00
Julius Härtl
28b10682f5 Merge pull request #3266 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-2.1.0
Bump @relative-ci/agent from 2.0.0 to 2.1.0
2021-08-23 17:25:37 +02:00
Julius Härtl
c3f46db990 Merge pull request #3259 from nextcloud/dependabot/composer/vimeo/psalm-4.9.3 2021-08-23 17:25:08 +02:00
dependabot[bot]
82bc8a66fd Bump @relative-ci/agent from 2.0.0 to 2.1.0
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v2.0.0...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-21 02:10:32 +00:00
Julius Härtl
e3b6627a23 Merge pull request #3256 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-6.1.0
Bump @nextcloud/eslint-config from 6.0.0 to 6.1.0
2021-08-20 18:02:07 +02:00
Julius Härtl
315ea4b991 Merge pull request #3263 from nextcloud/bugfix/3248
Defer obtaining the user session in the config service
2021-08-20 18:01:57 +02:00
Julius Härtl
07fcfb3078 Add to baseline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-20 17:56:09 +02:00
dependabot[bot]
5f3d5e800d Bump @nextcloud/eslint-config from 6.0.0 to 6.1.0
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 6.0.0 to 6.1.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/v6.0.0...v6.1.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>
2021-08-20 17:51:09 +02:00
Julius Härtl
7b0579625e Defer obtaining the user session in the config service which might be injected before login has hapened
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-20 17:34:58 +02:00
Nextcloud bot
4f0d5b1f37 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-18 02:36:59 +00:00
dependabot[bot]
dc07b34d52 Bump vimeo/psalm from 4.8.1 to 4.9.3
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.8.1 to 4.9.3.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.8.1...4.9.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 10:28:07 +00:00
Julius Härtl
540aba5ecd Merge pull request #3257 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.15.3
Bump @babel/runtime from 7.14.8 to 7.15.3
2021-08-16 12:27:05 +02:00
dependabot[bot]
c3a1cdd6b3 Bump @babel/runtime from 7.14.8 to 7.15.3
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.14.8 to 7.15.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.3/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>
2021-08-14 03:49:29 +00:00
dependabot[bot]
0537af0323 Merge pull request #3255 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.1 2021-08-14 03:48:23 +00:00
dependabot[bot]
d3e36f6f0c Bump dompurify from 2.3.0 to 2.3.1
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.0...2.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-14 01:45:10 +00:00
dependabot[bot]
0818274451 Merge pull request #3254 from nextcloud/dependabot/composer/php-parallel-lint/php-parallel-lint-1.3.1 2021-08-14 01:44:18 +00:00
dependabot[bot]
3c4b8b6ce3 Bump php-parallel-lint/php-parallel-lint from 1.3.0 to 1.3.1
Bumps [php-parallel-lint/php-parallel-lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/php-parallel-lint/PHP-Parallel-Lint/releases)
- [Changelog](https://github.com/php-parallel-lint/PHP-Parallel-Lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/php-parallel-lint/PHP-Parallel-Lint/compare/v1.3.0...v1.3.1)

---
updated-dependencies:
- dependency-name: php-parallel-lint/php-parallel-lint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-14 01:01:01 +00:00
Nextcloud bot
098f5863f8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-10 02:44:31 +00:00
Julius Härtl
00f4bc188e Merge pull request #3237 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.2.0
Bump markdown-it from 12.1.0 to 12.2.0
2021-08-09 09:30:37 +02:00
Julius Härtl
6a80f6c8f6 Merge pull request #3238 from nextcloud/dependabot/github_actions/actions/setup-node-2.4.0
Bump actions/setup-node from 2.3.0 to 2.4.0
2021-08-09 09:30:28 +02:00
dependabot[bot]
26e7b3a868 Bump markdown-it from 12.1.0 to 12.2.0
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/12.1.0...12.2.0)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-07 03:44:01 +00:00
dependabot[bot]
556930cf93 Bump actions/setup-node from 2.3.0 to 2.4.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.3.0...v2.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-07 03:43:47 +00:00
dependabot[bot]
42009b233a Merge pull request #3234 from nextcloud/dependabot/composer/symfony/event-dispatcher-4.4.27 2021-08-07 03:43:04 +00:00
dependabot[bot]
9f3a1e6cda Bump symfony/event-dispatcher from 4.4.19 to 4.4.27
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 4.4.19 to 4.4.27.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/5.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v4.4.19...v4.4.27)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-07 02:25:16 +00:00
dependabot[bot]
544e4d99ee Merge pull request #3236 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.8 2021-08-07 02:24:35 +00:00
dependabot[bot]
97c83fad8d Bump phpunit/phpunit from 9.5.7 to 9.5.8
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.7 to 9.5.8.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.7...9.5.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>
2021-08-07 01:01:23 +00:00
Nextcloud bot
95a811362d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-06 02:38:49 +00:00
Julius Härtl
4dc4603d2d Merge pull request #3225 from nextcloud/bugfix/3194
Check for null value to avoid TypeError in the group manager
2021-08-04 18:41:22 +02:00
Julius Härtl
443e383f2a Merge pull request #3199 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-6.0.0
Bump @nextcloud/eslint-config from 5.1.0 to 6.0.0
2021-08-04 08:23:20 +02:00
dependabot[bot]
d98c2bc926 Bump @nextcloud/eslint-config from 5.1.0 to 6.0.0
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 5.1.0 to 6.0.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/v5.1.0...v6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-03 19:32:36 +02:00
Julius Härtl
cb9fc6c9a2 Check for null value to avoid TypeError in the group manager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-03 09:47:27 +02:00
Julius Härtl
f2052702b5 Merge pull request #3217 from nextcloud/bugfix/noid/circle-membertype
Move circle checks to a unified service and improve member checks
2021-08-03 09:27:59 +02:00
Julius Härtl
3e68801774 Create fixup.yml 2021-08-03 09:24:22 +02:00
Julius Härtl
ff17167719 Create dependabot-approve-merge.yml 2021-08-03 09:23:58 +02:00
Julius Härtl
7a15853f77 Create command-rebase.yml 2021-08-03 09:23:10 +02:00
Julius Härtl
82dbd800d6 Move circle checks to a unified service and improve member checks
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-03 09:15:18 +02:00
Nextcloud bot
53e29ad124 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-01 02:12:48 +00:00
Julius Härtl
2b1f3623d0 Merge pull request #3206 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.7
Bump phpunit/phpunit from 9.5.6 to 9.5.7
2021-07-26 12:23:10 +02:00
Julius Härtl
ee7020886e Merge pull request #3207 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.14.8
Bump @babel/runtime from 7.14.6 to 7.14.8
2021-07-26 12:23:03 +02:00
Julius Härtl
ac9665298f Merge pull request #3208 from nextcloud/dependabot/npm_and_yarn/master/vue/test-utils-1.2.2
Bump @vue/test-utils from 1.2.1 to 1.2.2
2021-07-26 12:22:56 +02:00
Julius Härtl
fe67cd42f9 Merge pull request #3209 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.1.0
Bump @nextcloud/webpack-vue-config from 4.0.3 to 4.1.0
2021-07-26 12:22:49 +02:00
Julius Härtl
acc0b4cd0c Merge pull request #3210 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/babel-config-1.0.0
Bump @nextcloud/babel-config from 1.0.0-beta.1 to 1.0.0
2021-07-26 12:22:39 +02:00
Julius Härtl
0025bb2c52 Merge pull request #3211 from nextcloud/dependabot/github_actions/actions/setup-node-2.3.0
Bump actions/setup-node from 2.2.0 to 2.3.0
2021-07-26 12:22:10 +02:00
dependabot[bot]
7ab042d1a8 Bump actions/setup-node from 2.2.0 to 2.3.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.2.0...v2.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-24 02:48:35 +00:00
dependabot[bot]
c02ad2d851 Bump @nextcloud/babel-config from 1.0.0-beta.1 to 1.0.0
Bumps [@nextcloud/babel-config](https://github.com/nextcloud/babel-config) from 1.0.0-beta.1 to 1.0.0.
- [Release notes](https://github.com/nextcloud/babel-config/releases)
- [Commits](https://github.com/nextcloud/babel-config/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-24 01:02:13 +00:00
dependabot[bot]
6012f0887d Bump @nextcloud/webpack-vue-config from 4.0.3 to 4.1.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.0.3 to 4.1.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v4.0.3...v4.1.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>
2021-07-24 01:01:56 +00:00
dependabot[bot]
17065190ab Bump @vue/test-utils from 1.2.1 to 1.2.2
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.2.2/packages/test-utils)

---
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>
2021-07-24 01:01:41 +00:00
dependabot[bot]
77046f378f Bump @babel/runtime from 7.14.6 to 7.14.8
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.14.6 to 7.14.8.
- [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.14.8/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>
2021-07-24 01:01:23 +00:00
dependabot[bot]
2bf3aa0e8e Bump phpunit/phpunit from 9.5.6 to 9.5.7
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.6 to 9.5.7.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.6...9.5.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>
2021-07-24 01:00:50 +00:00
Julius Härtl
68da328343 Merge pull request #3204 from leoossa/leoossa-patch-1 2021-07-22 12:53:36 +02:00
leoossa
bc0dd7118c Merge branch 'master' into leoossa-patch-1 2021-07-22 10:29:55 +02:00
Julius Härtl
dbf9519326 Delete stale.yml 2021-07-22 09:41:02 +02:00
leoossa
47cbe7bea7 Add A-deck Chrome extension to 3rd-Parties 2021-07-21 08:49:39 +02:00
Julius Härtl
5d5424d2a4 Merge pull request #3200 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.12.0
Bump shivammathur/setup-php from 2.11.0 to 2.12.0
2021-07-19 08:51:43 +02:00
Julius Härtl
2cc24dcd60 Merge pull request #3187 from nextcloud/dependabot/github_actions/actions/setup-node-2.2.0
Bump actions/setup-node from 1 to 2.2.0
2021-07-19 08:51:25 +02:00
dependabot[bot]
49ed6f9beb Bump actions/setup-node from 1 to 2.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 1 to 2.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v1...v2.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 08:33:00 +02:00
dependabot[bot]
ec069d5e0d Bump shivammathur/setup-php from 2.11.0 to 2.12.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.11.0...2.12.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>
2021-07-19 06:31:48 +00:00
Julius Härtl
9b8df3c157 Pin mariadb to 10.5 for tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-19 08:31:22 +02:00
Julius Härtl
e399e5bd46 Merge pull request #3198 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-4.0.3
Bump @nextcloud/vue from 3.10.1 to 4.0.3
2021-07-19 08:29:18 +02:00
dependabot[bot]
9aab543604 Bump @nextcloud/vue from 3.10.1 to 4.0.3
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 3.10.1 to 4.0.3.
- [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/v3.10.1...v4.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-17 01:01:31 +00:00
Nextcloud bot
80b8e3ad5c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-15 02:37:46 +00:00
Julius Härtl
499bef97fb Merge pull request #3181 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.0
Bump dompurify from 2.2.9 to 2.3.0
2021-07-13 15:28:46 +02:00
dependabot[bot]
b6e4f0993a Bump dompurify from 2.2.9 to 2.3.0
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.9 to 2.3.0.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.9...2.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 12:08:07 +00:00
Julius Härtl
53c31ba221 Merge pull request #3189 from nextcloud/dependabot/github_actions/actions/checkout-2.3.4
Bump actions/checkout from 1 to 2.3.4
2021-07-13 14:07:16 +02:00
dependabot[bot]
849d3adb09 Bump actions/checkout from 1 to 2.3.4
Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 2.3.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v1...v2.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 07:56:33 +00:00
Julius Härtl
9d90e0f3e2 Merge pull request #3188 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.11.0
Bump shivammathur/setup-php from 1 to 2.11.0
2021-07-13 09:56:10 +02:00
dependabot[bot]
a22b223244 Bump shivammathur/setup-php from 1 to 2.11.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 1 to 2.11.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/v1...2.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-13 07:33:15 +00:00
Julius Härtl
c3468125f9 Merge pull request #3179 from splitt3r/enh/dependatbot-for-actions
Add Dependabot for GitHub Actions
2021-07-13 09:32:53 +02:00
Nextcloud bot
9e7cff9839 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-10 02:43:13 +00:00
Julius Härtl
13d2b98da4 Merge pull request #3177 from nextcloud/enh/collections-files-load-perf
Use async import for vue component on collections entrypoint
2021-07-09 16:25:10 +02:00
Kai
4b327a53c1 Unify quotation of ecosystem
Signed-off-by: splitt3r <splitt3r@users.noreply.github.com>
2021-07-09 13:48:47 +02:00
Kai
d441ba4f3d Add Dependabot for GitHub Actions
Signed-off-by: splitt3r <splitt3r@users.noreply.github.com>
2021-07-09 12:55:27 +02:00
Nextcloud bot
9140efef29 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-09 02:37:47 +00:00
Julius Härtl
7119137a75 Use async import for vue component on collections entrypoint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-08 10:35:42 +02:00
Nextcloud bot
b7cbfa03a5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-08 02:37:52 +00:00
Nextcloud bot
3ee19abfc1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-07 02:37:14 +00:00
Nextcloud bot
25262b648f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-06 02:38:03 +00:00
Julius Härtl
bf746e4c92 Merge pull request #3161 from nextcloud/bugfix/sql-queries
Reduce duplicate queries when fetching user boards an permissions
2021-07-05 20:27:41 +02:00
Julius Härtl
eec7f5ff21 Merge pull request #3167 from nextcloud/dependabot/npm_and_yarn/master/jest-27.0.6
Bump jest from 27.0.5 to 27.0.6
2021-07-05 19:54:24 +02:00
Julius Härtl
34f1a80caa Merge pull request #3166 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.1.0
Bump markdown-it from 12.0.6 to 12.1.0
2021-07-05 19:54:17 +02:00
Julius Härtl
ae2aa8caff Reduce duplicate queries when fetching user boards an permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-05 19:53:43 +02:00
dependabot[bot]
bb2703526e Bump jest from 27.0.5 to 27.0.6
Bumps [jest](https://github.com/facebook/jest) from 27.0.5 to 27.0.6.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.0.5...v27.0.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-03 01:03:10 +00:00
dependabot[bot]
dc85757d1b Bump markdown-it from 12.0.6 to 12.1.0
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.0.6 to 12.1.0.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/12.0.6...12.1.0)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-03 01:01:56 +00:00
Julius Härtl
62f3fce3ea Merge pull request #3151 from nextcloud/bugfix/noid/log-exceptions
Always log generic exceptions
2021-07-02 17:55:00 +02:00
Nextcloud bot
f353caad7f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-30 02:37:18 +00:00
dependabot[bot]
92ace35f79 Merge pull request #3157 from nextcloud/dependabot/npm_and_yarn/master/vue-router-3.5.2 2021-06-28 08:40:21 +00:00
dependabot[bot]
185f4684ca Bump vue-router from 3.5.1 to 3.5.2
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.5.1...v3.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 08:33:52 +00:00
dependabot[bot]
e5036fcbbb Merge pull request #3155 from nextcloud/dependabot/composer/vimeo/psalm-4.8.1 2021-06-28 08:33:03 +00:00
dependabot[bot]
113f5e1bf7 Bump vimeo/psalm from 4.7.3 to 4.8.1
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.7.3 to 4.8.1.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.7.3...4.8.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 08:25:55 +00:00
dependabot[bot]
05d0f228aa Merge pull request #3156 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.6 2021-06-28 08:25:11 +00:00
dependabot[bot]
256c7cb873 Bump phpunit/phpunit from 9.5.5 to 9.5.6
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.5 to 9.5.6.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.5...9.5.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>
2021-06-28 08:17:31 +00:00
Julius Härtl
117d8fe6ba Merge pull request #3158 from nextcloud/dependabot/npm_and_yarn/master/jest-27.0.5
Bump jest from 27.0.4 to 27.0.5
2021-06-28 10:13:43 +02:00
Nextcloud bot
0ba63ca548 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-26 02:36:40 +00:00
dependabot[bot]
ba08bd25a7 Bump jest from 27.0.4 to 27.0.5
Bumps [jest](https://github.com/facebook/jest) from 27.0.4 to 27.0.5.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.0.4...v27.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-26 01:01:49 +00:00
Julius Härtl
ee0b5a6150 Merge pull request #3149 from nextcloud/update-master-version
Update version on master
2021-06-25 15:54:25 +02:00
Joas Schilling
a81a1761b5 Update version on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-25 15:41:13 +02:00
Julius Härtl
0fc220baef Always log generic exceptions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-25 11:05:53 +02:00
Jakob Röhrl
06de1a7e85 rebase
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2021-06-24 14:10:28 +02:00
Jakob Röhrl
d56acf99af date shortcuts
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2021-06-24 14:02:58 +02:00
Jakob Röhrl
01d8f2815d date shortcut
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2021-06-24 14:02:57 +02:00
104 changed files with 6148 additions and 6743 deletions

View File

@@ -3,6 +3,10 @@ module.exports = {
'@nextcloud', '@nextcloud',
], ],
rules: { rules: {
'valid-jsdoc': ['off'], 'jsdoc/require-param-description': ['off'],
'jsdoc/require-param-type': ['off'],
'jsdoc/check-param-names': ['off'],
'jsdoc/no-undefined-types': ['off'],
'jsdoc/require-property-description' : ['off']
}, },
} }

View File

@@ -39,3 +39,13 @@ updates:
versions: versions:
- "< 16" - "< 16"
- ">= 15.a" - ">= 15.a"
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 10
reviewers:
- juliushaertl

25
.github/stale.yml vendored
View File

@@ -1,25 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "1. to develop"
- "2. developing"
- "3. to review"
- "discussion"
- "bounty"
- "bug"
- "enhancement"
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.

View File

@@ -12,15 +12,15 @@ jobs:
node-version: [14.x] node-version: [14.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2.4.0
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v2.4.1
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- name: Set up npm7 - name: Set up npm7
run: npm i -g npm@7 run: npm i -g npm@7
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@v1 uses: shivammathur/setup-php@2.16.0
with: with:
php-version: '7.4' php-version: '7.4'
tools: composer tools: composer

View File

@@ -0,0 +1,151 @@
# 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: Build and publish app release
on:
release:
types: [published]
env:
PHP_VERSION: 7.4
jobs:
build_and_publish:
runs-on: ubuntu-latest
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@v2
with:
require: admin
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v2
with:
path: ${{ env.APP_NAME }}
- name: Get appinfo data
id: appinfo
uses: skjnldsv/xpath-action@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.1
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: "^12"
fallbackNpm: "^6"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@v2
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
coverage: none
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@v1
with:
files: "${{ env.APP_NAME }}/composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: |
cd ${{ env.APP_NAME }}
composer install --no-dev
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
run: |
cd ${{ env.APP_NAME }}
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: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }}
# Try krankerl, fallback to makefile
run: |
cd ${{ env.APP_NAME }}
krankerl package || make appstore
- name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
continue-on-error: true
id: server-checkout
run: |
NCVERSION=${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
uses: actions/checkout@v2
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
repository: nextcloud/server
path: nextcloud
- name: Sign app
run: |
# Extracting release
cd ${{ env.APP_NAME }}/build/artifacts
tar -xvf ${{ env.APP_NAME }}.tar.gz
cd ../../../
# Setting up keys
echo "${{ secrets.APP_PRIVATE_KEY }}" > ${{ env.APP_NAME }}.key
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
# Signing
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
# Rebuilding archive
cd ${{ env.APP_NAME }}/build/artifacts
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
tag: ${{ github.ref }}
overwrite: true
- name: Upload app to Nextcloud appstore
uses: nextcloud-releases/nextcloud-appstore-push-action@v1
with:
app_name: ${{ env.APP_NAME }}
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}

46
.github/workflows/command-rebase.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: Rebase command
on:
issue_comment:
types: created
jobs:
rebase:
runs-on: ubuntu-latest
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@v2.4.0
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@v1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"

View File

@@ -0,0 +1,29 @@
# 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: Dependabot
on:
pull_request_target:
branches:
- master
- stable*
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
# Github actions bot approve
- uses: hmarr/auto-approve-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@v2
with:
target: patch
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}

20
.github/workflows/fixup.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
# 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: Pull request checks
on: pull_request
jobs:
commit-message-check:
name: Block fixup and squash commits
runs-on: ubuntu-latest
steps:
- name: Run check
uses: xt0rted/block-autosquash-commits-action@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -19,7 +19,7 @@ jobs:
matrix: matrix:
php-versions: ['7.4'] php-versions: ['7.4']
databases: ['sqlite', 'mysql', 'pgsql'] databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable22'] server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }} name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -43,7 +43,7 @@ jobs:
steps: steps:
- name: Checkout server - name: Checkout server
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
repository: nextcloud/server repository: nextcloud/server
ref: ${{ matrix.server-versions }} ref: ${{ matrix.server-versions }}
@@ -56,12 +56,12 @@ jobs:
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Checkout app - name: Checkout app
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
path: apps/${{ env.APP_NAME }} path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@2.16.0
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
tools: phpunit tools: phpunit

View File

@@ -17,9 +17,9 @@ jobs:
name: php${{ matrix.php-versions }} lint name: php${{ matrix.php-versions }} lint
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2.4.0
- name: Set up php${{ matrix.php-versions }} - name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@v1 uses: shivammathur/setup-php@2.16.0
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
coverage: none coverage: none
@@ -31,9 +31,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@master uses: actions/checkout@v2.4.0
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@master uses: shivammathur/setup-php@2.16.0
with: with:
php-version: 7.4 php-version: 7.4
coverage: none coverage: none
@@ -50,9 +50,9 @@ jobs:
node-version: [14.x] node-version: [14.x]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2.4.0
- name: Use node ${{ matrix.node-version }} - name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v2.4.1
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- name: Set up npm7 - name: Set up npm7
@@ -67,16 +67,16 @@ jobs:
strategy: strategy:
matrix: matrix:
node-versions: [14.x] node-version: [14.x]
name: stylelint node${{ matrix.node-versions }} name: stylelint node${{ matrix.node-version }}
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2.4.0
- name: Set up node ${{ matrix.node-versions }} - name: Set up node ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v2.4.1
with: with:
node-versions: ${{ matrix.node-versions }} node-version: ${{ matrix.node-version }}
- name: Set up npm7 - name: Set up npm7
run: npm i -g npm@7 run: npm i -g npm@7

View File

@@ -17,15 +17,15 @@ jobs:
node-version: [14.x] node-version: [14.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2.4.0
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v2.4.1
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- name: Set up npm7 - name: Set up npm7
run: npm i -g npm@7 run: npm i -g npm@7
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@v1 uses: shivammathur/setup-php@2.16.0
with: with:
php-version: '7.4' php-version: '7.4'
tools: composer tools: composer

View File

@@ -12,9 +12,9 @@ jobs:
node-version: [14.x] node-version: [14.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2.4.0
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v2.4.1
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- name: Set up npm7 - name: Set up npm7

View File

@@ -20,7 +20,7 @@ jobs:
matrix: matrix:
php-versions: ['7.3', '7.4'] php-versions: ['7.3', '7.4']
databases: ['sqlite', 'mysql', 'pgsql'] databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable22'] server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }} name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -44,7 +44,7 @@ jobs:
steps: steps:
- name: Checkout server - name: Checkout server
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
repository: nextcloud/server repository: nextcloud/server
ref: ${{ matrix.server-versions }} ref: ${{ matrix.server-versions }}
@@ -57,12 +57,12 @@ jobs:
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Checkout app - name: Checkout app
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
with: with:
path: apps/${{ env.APP_NAME }} path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@2.16.0
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
tools: phpunit tools: phpunit

View File

@@ -12,13 +12,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
ocp-version: [ 'dev-stable22' ] ocp-version: [ 'dev-master' ]
name: Nextcloud ${{ matrix.ocp-version }} name: Nextcloud ${{ matrix.ocp-version }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@master uses: actions/checkout@v2.4.0
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@master uses: shivammathur/setup-php@2.16.0
with: with:
php-version: 7.4 php-version: 7.4
tools: composer:v1 tools: composer:v1

View File

@@ -1,74 +1,38 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## 1.5.4 ## 1.6.0-beta1
### Fixed
- #3378 Fix menu button position in card modal
- #3392 Use displayname instead of uid for mentions (reopened against master)
- #3361 Improve combined search @eneiluj
- #3381 Extend drag-and-drop zone in card sidebar @Artem4590
- #3366 Fix optional parameter order
- #3407 Keep exceptions http response generic
## 1.5.3
### Fied
- #3317 Additional check for stacks
## 1.5.2
### Fixed
- #3300 Fix print style issues
- #3303 Delete file shares through attachments API
- #3306 Return false instead of throwing when getting calendar setting
## 1.5.1 - 2021-09-03
### Fixed
- #3224 Move circle checks to a unified service and improve member checks
- #3231 Check for null value to avoid TypeError in the group manager
- #3264 Defer obtaining the user session in the config service
## 1.5.0 - 2021-07-09
### Added ### Added
* Nextcloud 22 compatibility - #3177 Use async import for vue component on collections entrypoint @juliushaertl
* [#3105](https://github.com/nextcloud/deck/pull/3105) Compatibility with Cirlces changes in 22 - #2791 Open description links in new tab @fm-sys
* [#3147](https://github.com/nextcloud/deck/pull/3147) Add card button to the dashboard widget @jakobroehrl - #3344 Improve combined search @eneiluj
* [#2854](https://github.com/nextcloud/deck/pull/2854) Add card button in card overview @jakobroehrl - #3362 Improve search performance @eneiluj
* [#3078](https://github.com/nextcloud/deck/pull/3078) Show on shared boards unassigned cards to all users @jakobroehrl - #2710 Due date shortcuts in the datepicker @jakobroehrl
### Fixed ### Fixed
* [#2935](https://github.com/nextcloud/deck/pull/2935) Rich object string parameters for notifications @nickvergessen - #3161 Reduce duplicate queries when fetching user boards an permissions @juliushaertl
* [#2950](https://github.com/nextcloud/deck/pull/2950) Remove notification on unshare and add type hints - #3151 Always log generic exceptions @juliushaertl
* [#2983](https://github.com/nextcloud/deck/pull/2983) Fix codemirror description width - #3217 Move circle checks to a unified service and improve member checks @juliushaertl
* [#2989](https://github.com/nextcloud/deck/pull/2989) Fix unified comments search with postgres - #3225 Check for null value to avoid TypeError in the group manager @juliushaertl
* [#3005](https://github.com/nextcloud/deck/pull/3005) Do not query the lookupserver when looking for sharees - #3263 Defer obtaining the user session in the config service @juliushaertl
* [#3011](https://github.com/nextcloud/deck/pull/3011) L10n: Spelling unification @Valdnet - #3294 Fix print style issues @weeman1337
* [#3014](https://github.com/nextcloud/deck/pull/3014) Proper error handling when fetching comments fails - #3299 Return false instead of throwing when getting calendar setting @juliushaertl
* [#3016](https://github.com/nextcloud/deck/pull/3016) Allow searching for filters without a query to match all that have a given filter set - #3298 Delete file shares through attachments API @juliushaertl
* [#3021](https://github.com/nextcloud/deck/pull/3021) L10n: Add word "Card" @Valdnet - #3343 Fix search pagination cursor @eneiluj
* [#3025](https://github.com/nextcloud/deck/pull/3025) Show comment counter and highlight if unread comments are available - #3326 add autofocus on board edit @weeman1337
* [#3036](https://github.com/nextcloud/deck/pull/3036) Add link to migration tool for Trello @maxammann - #3323 Extend drag-and-drop zone in card sidebar @old-green-frog
* [#3037](https://github.com/nextcloud/deck/pull/3037) Catch any error during circle detail fetching - #3364 Fix optional parameter order @juliushaertl
* [#3038](https://github.com/nextcloud/deck/pull/3038) Get attachment from the user node instead of the share source - #3324 Fix menu button position in card modal @valerydmitrieva
* [#3092](https://github.com/nextcloud/deck/pull/3092) Refactor update to have proper order of optional parameters - #3391 Use displayname instead of uid for mentions (reopened against master) @kffl
* [#3113](https://github.com/nextcloud/deck/pull/3113) Use new viewer syntax with destructuring object @azul - #3316 Additional check for stacks @juliushaertl
* [#3142](https://github.com/nextcloud/deck/pull/3142) Always pass user id in share provider - #3357 Revert "Fix search pagination cursor" @juliushaertl
* [#3152](https://github.com/nextcloud/deck/pull/3152) Only offer stack creation in emptycontent with proper permissions - #3327 Do not show both bullets and checkboxes for checklists @Themanwhosmellslikesugar
* [#3165](https://github.com/nextcloud/deck/pull/3165) Always log generic exceptions - #3375 Show absolute dates when printing @weeman1337
* [#3168](https://github.com/nextcloud/deck/pull/3168) Reduce duplicate queries when fetching user boards an permissions - #3376 Print assignee names @weeman1337
- #3384 Keep exceptions http response generic @juliushaertl
## 1.4.0 - 2021-04-13 ## 1.4.0 - 2021-04-13
@@ -105,15 +69,15 @@ All notable changes to this project will be documented in this file.
## 1.3.0-beta2 ## 1.3.0-beta2
### Fixed ### Fixed
* [#2700](https://github.com/nextcloud/deck/pull/2700) Attempt to copy file on dropping it to deck * [#2700](https://github.com/nextcloud/deck/pull/2700) Attempt to copy file on dropping it to deck @juliushaertl
* [#2701](https://github.com/nextcloud/deck/pull/2701) Fix uploading files by drag and drop * [#2701](https://github.com/nextcloud/deck/pull/2701) Fix uploading files by drag and drop @juliushaertl
* [#2707](https://github.com/nextcloud/deck/pull/2707) L10n: Change to a capital letter @Valdnet * [#2707](https://github.com/nextcloud/deck/pull/2707) L10n: Change to a capital letter @Valdnet
* [#2712](https://github.com/nextcloud/deck/pull/2712) Docs: Fix table in section "GET /api/v1.0/config" @das-g * [#2712](https://github.com/nextcloud/deck/pull/2712) Docs: Fix table in section "GET /api/v1.0/config" @das-g
* [#2716](https://github.com/nextcloud/deck/pull/2716) Remove repair step which is no longer needed as we cleanup properly * [#2716](https://github.com/nextcloud/deck/pull/2716) Remove repair step which is no longer needed as we cleanup properly @juliushaertl
* [#2723](https://github.com/nextcloud/deck/pull/2723) Pad random color with leading zeroes @PVince81 * [#2723](https://github.com/nextcloud/deck/pull/2723) Pad random color with leading zeroes @PVince81
* [#2729](https://github.com/nextcloud/deck/pull/2729) Remove invalid activity parameters @nickvergessen * [#2729](https://github.com/nextcloud/deck/pull/2729) Remove invalid activity parameters @nickvergessen
* [#2750](https://github.com/nextcloud/deck/pull/2750) Fix deck activity emails not being translated @nickvergessen * [#2750](https://github.com/nextcloud/deck/pull/2750) Fix deck activity emails not being translated @nickvergessen
* [#2751](https://github.com/nextcloud/deck/pull/2751) Properly set author for activity events that are triggered by cron * [#2751](https://github.com/nextcloud/deck/pull/2751) Properly set author for activity events that are triggered by cron @juliushaertl
## 1.2.2 - 2020-11-24 ## 1.2.2 - 2020-11-24
@@ -222,31 +186,31 @@ All notable changes to this project will be documented in this file.
### Fixed ### Fixed
* [#2116](https://github.com/nextcloud/deck/pull/2116) Fix navigation layout issues * [#2116](https://github.com/nextcloud/deck/pull/2116) Fix navigation layout issues @juliushaertl
* [#2118](https://github.com/nextcloud/deck/pull/2118) Use proper parameter when handling attachments * [#2118](https://github.com/nextcloud/deck/pull/2118) Use proper parameter when handling attachments @juliushaertl
## 1.0.4 - 2020-06-26 ## 1.0.4 - 2020-06-26
### Fixed ### Fixed
* [#2062](https://github.com/nextcloud/deck/pull/2062) Fix saving card description after toggling checkboxes * [#2062](https://github.com/nextcloud/deck/pull/2062) Fix saving card description after toggling checkboxes @juliushaertl
* [#2065](https://github.com/nextcloud/deck/pull/2065) Adding CSS rule for Markdown Blockquotes @reox * [#2065](https://github.com/nextcloud/deck/pull/2065) Adding CSS rule for Markdown Blockquotes @reox
* [#2059](https://github.com/nextcloud/deck/pull/2059) Fix fetching attachments on card change * [#2059](https://github.com/nextcloud/deck/pull/2059) Fix fetching attachments on card change @juliushaertl
* [#2060](https://github.com/nextcloud/deck/pull/2060) Use mixing for relative date in card sidebar * [#2060](https://github.com/nextcloud/deck/pull/2060) Use mixing for relative date in card sidebar @juliushaertl
## 1.0.3 - 2020-06-19 ## 1.0.3 - 2020-06-19
### Fixed ### Fixed
* [#2019](https://github.com/nextcloud/deck/pull/2019) Remove old global css rule * [#2019](https://github.com/nextcloud/deck/pull/2019) Remove old global css rule @juliushaertl
* [#2020](https://github.com/nextcloud/deck/pull/2020) Fix navigation issue with leftover nodes * [#2020](https://github.com/nextcloud/deck/pull/2020) Fix navigation issue with leftover nodes @juliushaertl
* [#2021](https://github.com/nextcloud/deck/pull/2021) Fix description issues * [#2021](https://github.com/nextcloud/deck/pull/2021) Fix description issues @juliushaertl
* [#2022](https://github.com/nextcloud/deck/pull/2022) Fix replyto issues with the comments API * [#2022](https://github.com/nextcloud/deck/pull/2022) Fix replyto issues with the comments API @juliushaertl
* [#2027](https://github.com/nextcloud/deck/pull/2027) Allow to unassign current user from card * [#2027](https://github.com/nextcloud/deck/pull/2027) Allow to unassign current user from card @juliushaertl
* [#2029](https://github.com/nextcloud/deck/pull/2029) Fix wording : stack -> list @cloud2018 * [#2029](https://github.com/nextcloud/deck/pull/2029) Fix wording : stack -> list @cloud2018
* [#2032](https://github.com/nextcloud/deck/pull/2032) Force order by id as second sorting key * [#2032](https://github.com/nextcloud/deck/pull/2032) Force order by id as second sorting key @juliushaertl
* [#2045](https://github.com/nextcloud/deck/pull/2045) Improve label styling * [#2045](https://github.com/nextcloud/deck/pull/2045) Improve label styling @juliushaertl
* [#2010](https://github.com/nextcloud/deck/pull/2010) User documentation fixes @Nyco * [#2010](https://github.com/nextcloud/deck/pull/2010) User documentation fixes @Nyco
* [#1998](https://github.com/nextcloud/deck/pull/1998) Add Checklist explaination to the doc @4rnoP * [#1998](https://github.com/nextcloud/deck/pull/1998) Add Checklist explaination to the doc @4rnoP

View File

@@ -25,7 +25,8 @@ Deck is a kanban style organization tool aimed at personal planning and project
- [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello - [trello-to-deck](https://github.com/maxammann/trello-to-deck) - Migrates cards from Trello
- [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution - [mail2deck](https://github.com/newroco/mail2deck) - Provides an "email in" solution
- [A-deck](https://github.com/leoossa/A-deck) - Chrome Extension that allows to create new card in selected stack based on current tab
-
## Installation/Update ## Installation/Update
This app is supposed to work on the two latest Nextcloud versions. This app is supposed to work on the two latest Nextcloud versions.

View File

@@ -16,7 +16,7 @@
- 🚀 Get your project organized - 🚀 Get your project organized
</description> </description>
<version>1.5.4</version> <version>1.7.0-alpha1</version>
<licence>agpl</licence> <licence>agpl</licence>
<author>Julius Härtl</author> <author>Julius Härtl</author>
<namespace>Deck</namespace> <namespace>Deck</namespace>
@@ -34,8 +34,8 @@
<php min-version="7.3"/> <php min-version="7.3"/>
<database min-version="9.4">pgsql</database> <database min-version="9.4">pgsql</database>
<database>sqlite</database> <database>sqlite</database>
<database min-version="5.5">mysql</database> <database min-version="8.0">mysql</database>
<nextcloud min-version="22" max-version="22"/> <nextcloud min-version="24" max-version="24"/>
</dependencies> </dependencies>
<background-jobs> <background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job> <job>OCA\Deck\Cron\DeleteCron</job>

330
composer.lock generated
View File

@@ -65,27 +65,27 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "amphp/amp", "name": "amphp/amp",
"version": "v2.5.2", "version": "v2.6.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/amphp/amp.git", "url": "https://github.com/amphp/amp.git",
"reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae",
"reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7" "php": ">=7.1"
}, },
"require-dev": { "require-dev": {
"amphp/php-cs-fixer-config": "dev-master", "amphp/php-cs-fixer-config": "dev-master",
"amphp/phpunit-util": "^1", "amphp/phpunit-util": "^1",
"ext-json": "*", "ext-json": "*",
"jetbrains/phpstorm-stubs": "^2019.3", "jetbrains/phpstorm-stubs": "^2019.3",
"phpunit/phpunit": "^6.0.9 | ^7", "phpunit/phpunit": "^7 | ^8 | ^9",
"psalm/phar": "^3.11@dev", "psalm/phar": "^3.11@dev",
"react/promise": "^2" "react/promise": "^2"
}, },
@@ -142,7 +142,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/amphp", "irc": "irc://irc.freenode.org/amphp",
"issues": "https://github.com/amphp/amp/issues", "issues": "https://github.com/amphp/amp/issues",
"source": "https://github.com/amphp/amp/tree/v2.5.2" "source": "https://github.com/amphp/amp/tree/v2.6.1"
}, },
"funding": [ "funding": [
{ {
@@ -150,7 +150,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-01-10T17:06:37+00:00" "time": "2021-09-23T18:43:08+00:00"
}, },
{ {
"name": "amphp/byte-stream", "name": "amphp/byte-stream",
@@ -271,16 +271,16 @@
}, },
{ {
"name": "composer/package-versions-deprecated", "name": "composer/package-versions-deprecated",
"version": "1.11.99.2", "version": "1.11.99.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/package-versions-deprecated.git", "url": "https://github.com/composer/package-versions-deprecated.git",
"reference": "c6522afe5540d5fc46675043d3ed5a45a740b27c" "reference": "b174585d1fe49ceed21928a945138948cb394600"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c6522afe5540d5fc46675043d3ed5a45a740b27c", "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600",
"reference": "c6522afe5540d5fc46675043d3ed5a45a740b27c", "reference": "b174585d1fe49ceed21928a945138948cb394600",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -324,7 +324,7 @@
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"support": { "support": {
"issues": "https://github.com/composer/package-versions-deprecated/issues", "issues": "https://github.com/composer/package-versions-deprecated/issues",
"source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.2" "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4"
}, },
"funding": [ "funding": [
{ {
@@ -340,20 +340,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-24T07:46:03+00:00" "time": "2021-09-13T08:41:34+00:00"
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.2.5", "version": "3.2.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/semver.git", "url": "https://github.com/composer/semver.git",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" "reference": "83e511e247de329283478496f7a1e114c9517506"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", "reference": "83e511e247de329283478496f7a1e114c9517506",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -405,7 +405,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues", "issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.2.5" "source": "https://github.com/composer/semver/tree/3.2.6"
}, },
"funding": [ "funding": [
{ {
@@ -421,7 +421,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-24T12:41:47+00:00" "time": "2021-10-25T11:34:17+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
@@ -750,20 +750,20 @@
}, },
{ {
"name": "felixfbecker/advanced-json-rpc", "name": "felixfbecker/advanced-json-rpc",
"version": "v3.2.0", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
"reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
"reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"netresearch/jsonmapper": "^1.0 || ^2.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
"php": "^7.1 || ^8.0", "php": "^7.1 || ^8.0",
"phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
}, },
@@ -789,9 +789,9 @@
"description": "A more advanced JSONRPC implementation", "description": "A more advanced JSONRPC implementation",
"support": { "support": {
"issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
"source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
}, },
"time": "2021-01-10T17:48:47+00:00" "time": "2021-06-11T22:34:44+00:00"
}, },
{ {
"name": "felixfbecker/language-server-protocol", "name": "felixfbecker/language-server-protocol",
@@ -1012,16 +1012,16 @@
}, },
{ {
"name": "netresearch/jsonmapper", "name": "netresearch/jsonmapper",
"version": "v2.1.0", "version": "v4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cweiske/jsonmapper.git", "url": "https://github.com/cweiske/jsonmapper.git",
"reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
"reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1029,10 +1029,10 @@
"ext-pcre": "*", "ext-pcre": "*",
"ext-reflection": "*", "ext-reflection": "*",
"ext-spl": "*", "ext-spl": "*",
"php": ">=5.6" "php": ">=7.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
"squizlabs/php_codesniffer": "~3.5" "squizlabs/php_codesniffer": "~3.5"
}, },
"type": "library", "type": "library",
@@ -1057,9 +1057,9 @@
"support": { "support": {
"email": "cweiske@cweiske.de", "email": "cweiske@cweiske.de",
"issues": "https://github.com/cweiske/jsonmapper/issues", "issues": "https://github.com/cweiske/jsonmapper/issues",
"source": "https://github.com/cweiske/jsonmapper/tree/master" "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0"
}, },
"time": "2020-04-16T18:48:43+00:00" "time": "2020-12-01T19:48:11+00:00"
}, },
{ {
"name": "nextcloud/coding-standard", "name": "nextcloud/coding-standard",
@@ -1104,16 +1104,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.10.5", "version": "v4.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" "reference": "50953a2691a922aa1769461637869a0a2faa3f53"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53",
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "reference": "50953a2691a922aa1769461637869a0a2faa3f53",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1154,9 +1154,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0"
}, },
"time": "2021-05-03T19:11:20+00:00" "time": "2021-09-20T12:20:58+00:00"
}, },
{ {
"name": "openlss/lib-array2xml", "name": "openlss/lib-array2xml",
@@ -1213,16 +1213,16 @@
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",
"version": "2.0.1", "version": "2.0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phar-io/manifest.git", "url": "https://github.com/phar-io/manifest.git",
"reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
"reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1267,9 +1267,9 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": { "support": {
"issues": "https://github.com/phar-io/manifest/issues", "issues": "https://github.com/phar-io/manifest/issues",
"source": "https://github.com/phar-io/manifest/tree/master" "source": "https://github.com/phar-io/manifest/tree/2.0.3"
}, },
"time": "2020-06-27T14:33:11+00:00" "time": "2021-07-20T11:28:43+00:00"
}, },
{ {
"name": "phar-io/version", "name": "phar-io/version",
@@ -1379,16 +1379,16 @@
}, },
{ {
"name": "php-parallel-lint/php-parallel-lint", "name": "php-parallel-lint/php-parallel-lint",
"version": "v1.3.0", "version": "v1.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
"reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb" "reference": "761f3806e30239b5fcd90a0a45d41dc2138de192"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/772a954e5f119f6f5871d015b23eabed8cbdadfb", "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/761f3806e30239b5fcd90a0a45d41dc2138de192",
"reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb", "reference": "761f3806e30239b5fcd90a0a45d41dc2138de192",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1402,7 +1402,7 @@
"require-dev": { "require-dev": {
"nette/tester": "^1.3 || ^2.0", "nette/tester": "^1.3 || ^2.0",
"php-parallel-lint/php-console-highlighter": "~0.3", "php-parallel-lint/php-console-highlighter": "~0.3",
"squizlabs/php_codesniffer": "^3.5" "squizlabs/php_codesniffer": "^3.6"
}, },
"suggest": { "suggest": {
"php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet" "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
@@ -1430,9 +1430,9 @@
"homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
"support": { "support": {
"issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
"source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.0" "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.1"
}, },
"time": "2021-04-07T14:42:48+00:00" "time": "2021-08-13T05:35:13+00:00"
}, },
{ {
"name": "phpdocumentor/reflection-common", "name": "phpdocumentor/reflection-common",
@@ -1489,16 +1489,16 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "5.2.2", "version": "5.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1509,7 +1509,8 @@
"webmozart/assert": "^1.9.1" "webmozart/assert": "^1.9.1"
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "~1.3.2" "mockery/mockery": "~1.3.2",
"psalm/phar": "^4.8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -1539,22 +1540,22 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
}, },
"time": "2020-09-03T19:13:55+00:00" "time": "2021-10-19T17:43:47+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.4.0", "version": "1.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1562,7 +1563,8 @@
"phpdocumentor/reflection-common": "^2.0" "phpdocumentor/reflection-common": "^2.0"
}, },
"require-dev": { "require-dev": {
"ext-tokenizer": "*" "ext-tokenizer": "*",
"psalm/phar": "^4.8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -1588,39 +1590,39 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1"
}, },
"time": "2020-09-17T18:55:26+00:00" "time": "2021-10-02T14:08:47+00:00"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"version": "1.13.0", "version": "1.14.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpspec/prophecy.git", "url": "https://github.com/phpspec/prophecy.git",
"reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e",
"reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/instantiator": "^1.2", "doctrine/instantiator": "^1.2",
"php": "^7.2 || ~8.0, <8.1", "php": "^7.2 || ~8.0, <8.2",
"phpdocumentor/reflection-docblock": "^5.2", "phpdocumentor/reflection-docblock": "^5.2",
"sebastian/comparator": "^3.0 || ^4.0", "sebastian/comparator": "^3.0 || ^4.0",
"sebastian/recursion-context": "^3.0 || ^4.0" "sebastian/recursion-context": "^3.0 || ^4.0"
}, },
"require-dev": { "require-dev": {
"phpspec/phpspec": "^6.0", "phpspec/phpspec": "^6.0 || ^7.0",
"phpunit/phpunit": "^8.0 || ^9.0" "phpunit/phpunit": "^8.0 || ^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.11.x-dev" "dev-master": "1.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1655,29 +1657,29 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpspec/prophecy/issues", "issues": "https://github.com/phpspec/prophecy/issues",
"source": "https://github.com/phpspec/prophecy/tree/1.13.0" "source": "https://github.com/phpspec/prophecy/tree/1.14.0"
}, },
"time": "2021-03-17T13:42:18+00:00" "time": "2021-09-10T09:02:12+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "9.2.6", "version": "9.2.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "f6293e1b30a2354e8428e004689671b83871edde" "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218",
"reference": "f6293e1b30a2354e8428e004689671b83871edde", "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-dom": "*", "ext-dom": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"nikic/php-parser": "^4.10.2", "nikic/php-parser": "^4.12.0",
"php": ">=7.3", "php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3", "phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2", "phpunit/php-text-template": "^2.0.2",
@@ -1726,7 +1728,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7"
}, },
"funding": [ "funding": [
{ {
@@ -1734,7 +1736,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-03-28T07:26:59+00:00" "time": "2021-09-17T05:39:03+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@@ -1979,16 +1981,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.5", "version": "9.5.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "89ff45ea9d70e35522fb6654a2ebc221158de276" "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/89ff45ea9d70e35522fb6654a2ebc221158de276", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a",
"reference": "89ff45ea9d70e35522fb6654a2ebc221158de276", "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2000,11 +2002,11 @@
"ext-xml": "*", "ext-xml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.10.1", "myclabs/deep-copy": "^1.10.1",
"phar-io/manifest": "^2.0.1", "phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2", "phar-io/version": "^3.0.2",
"php": ">=7.3", "php": ">=7.3",
"phpspec/prophecy": "^1.12.1", "phpspec/prophecy": "^1.12.1",
"phpunit/php-code-coverage": "^9.2.3", "phpunit/php-code-coverage": "^9.2.7",
"phpunit/php-file-iterator": "^3.0.5", "phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1", "phpunit/php-invoker": "^3.1.1",
"phpunit/php-text-template": "^2.0.3", "phpunit/php-text-template": "^2.0.3",
@@ -2018,7 +2020,7 @@
"sebastian/global-state": "^5.0.1", "sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3", "sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3", "sebastian/resource-operations": "^3.0.3",
"sebastian/type": "^2.3.2", "sebastian/type": "^2.3.4",
"sebastian/version": "^3.0.2" "sebastian/version": "^3.0.2"
}, },
"require-dev": { "require-dev": {
@@ -2066,7 +2068,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.5" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10"
}, },
"funding": [ "funding": [
{ {
@@ -2078,7 +2080,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-06-05T04:49:07+00:00" "time": "2021-09-25T07:38:51+00:00"
}, },
{ {
"name": "psr/container", "name": "psr/container",
@@ -3360,16 +3362,16 @@
}, },
{ {
"name": "sebastian/type", "name": "sebastian/type",
"version": "2.3.2", "version": "2.3.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/type.git", "url": "https://github.com/sebastianbergmann/type.git",
"reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1" "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0d1c587401514d17e8f9258a27e23527cb1b06c1", "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
"reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1", "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3404,7 +3406,7 @@
"homepage": "https://github.com/sebastianbergmann/type", "homepage": "https://github.com/sebastianbergmann/type",
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/type/issues", "issues": "https://github.com/sebastianbergmann/type/issues",
"source": "https://github.com/sebastianbergmann/type/tree/2.3.2" "source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
}, },
"funding": [ "funding": [
{ {
@@ -3412,7 +3414,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-06-04T13:02:07+00:00" "time": "2021-06-15T12:49:02+00:00"
}, },
{ {
"name": "sebastian/version", "name": "sebastian/version",
@@ -3469,16 +3471,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.3.0", "version": "v5.3.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "058553870f7809087fa80fa734704a21b9bcaeb2" "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/058553870f7809087fa80fa734704a21b9bcaeb2", "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"reference": "058553870f7809087fa80fa734704a21b9bcaeb2", "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3486,11 +3488,12 @@
"symfony/deprecation-contracts": "^2.1", "symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php73": "^1.8", "symfony/polyfill-php73": "^1.8",
"symfony/polyfill-php80": "^1.15", "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2", "symfony/service-contracts": "^1.1|^2",
"symfony/string": "^5.1" "symfony/string": "^5.1"
}, },
"conflict": { "conflict": {
"psr/log": ">=3",
"symfony/dependency-injection": "<4.4", "symfony/dependency-injection": "<4.4",
"symfony/dotenv": "<5.1", "symfony/dotenv": "<5.1",
"symfony/event-dispatcher": "<4.4", "symfony/event-dispatcher": "<4.4",
@@ -3498,10 +3501,10 @@
"symfony/process": "<4.4" "symfony/process": "<4.4"
}, },
"provide": { "provide": {
"psr/log-implementation": "1.0" "psr/log-implementation": "1.0|2.0"
}, },
"require-dev": { "require-dev": {
"psr/log": "~1.0", "psr/log": "^1|^2",
"symfony/config": "^4.4|^5.0", "symfony/config": "^4.4|^5.0",
"symfony/dependency-injection": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0",
"symfony/event-dispatcher": "^4.4|^5.0", "symfony/event-dispatcher": "^4.4|^5.0",
@@ -3547,7 +3550,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.3.0" "source": "https://github.com/symfony/console/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -3563,7 +3566,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-26T17:43:10+00:00" "time": "2021-10-26T09:30:15+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -3634,21 +3637,22 @@
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.4.19", "version": "v4.4.34",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8",
"reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1.3", "php": ">=7.1.3",
"symfony/event-dispatcher-contracts": "^1.1" "symfony/event-dispatcher-contracts": "^1.1",
"symfony/polyfill-php80": "^1.16"
}, },
"conflict": { "conflict": {
"symfony/dependency-injection": "<3.4" "symfony/dependency-injection": "<3.4"
@@ -3658,7 +3662,7 @@
"symfony/event-dispatcher-implementation": "1.1" "symfony/event-dispatcher-implementation": "1.1"
}, },
"require-dev": { "require-dev": {
"psr/log": "~1.0", "psr/log": "^1|^2|^3",
"symfony/config": "^3.4|^4.0|^5.0", "symfony/config": "^3.4|^4.0|^5.0",
"symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0",
"symfony/error-handler": "~3.4|~4.4", "symfony/error-handler": "~3.4|~4.4",
@@ -3697,7 +3701,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v4.4.19" "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.34"
}, },
"funding": [ "funding": [
{ {
@@ -3713,20 +3717,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-01-27T09:09:26+00:00" "time": "2021-11-15T14:42:25+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
"version": "v1.1.9", "version": "v1.1.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git", "url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/01e9a4efac0ee33a05dfdf93b346f62e7d0e998c",
"reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3739,7 +3743,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.1-dev" "dev-main": "1.1-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/contracts", "name": "symfony/contracts",
@@ -3776,7 +3780,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9" "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.11"
}, },
"funding": [ "funding": [
{ {
@@ -3792,7 +3796,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2020-07-06T13:19:58+00:00" "time": "2021-03-23T15:25:38+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
@@ -4067,16 +4071,16 @@
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.23.0", "version": "v1.23.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab" "reference": "16880ba9c5ebe3642d1995ab866db29270b36535"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/24b72c6baa32c746a4d0840147c9715e42bb68ab", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535",
"reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab", "reference": "16880ba9c5ebe3642d1995ab866db29270b36535",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4128,7 +4132,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1"
}, },
"funding": [ "funding": [
{ {
@@ -4144,7 +4148,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-27T09:17:38+00:00" "time": "2021-05-27T12:26:48+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
@@ -4232,16 +4236,16 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.23.0", "version": "v1.23.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4292,7 +4296,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
}, },
"funding": [ "funding": [
{ {
@@ -4308,7 +4312,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-27T09:27:20+00:00" "time": "2021-05-27T12:26:48+00:00"
}, },
{ {
"name": "symfony/polyfill-php70", "name": "symfony/polyfill-php70",
@@ -4535,16 +4539,16 @@
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.23.0", "version": "v1.23.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4598,7 +4602,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
}, },
"funding": [ "funding": [
{ {
@@ -4614,7 +4618,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-02-19T12:13:01+00:00" "time": "2021-07-28T13:41:28+00:00"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
@@ -4821,16 +4825,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.3.0", "version": "v5.3.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "a9a0f8b6aafc5d2d1c116dcccd1573a95153515b" "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/a9a0f8b6aafc5d2d1c116dcccd1573a95153515b", "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"reference": "a9a0f8b6aafc5d2d1c116dcccd1573a95153515b", "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4884,7 +4888,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.3.0" "source": "https://github.com/symfony/string/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -4900,20 +4904,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-26T17:43:10+00:00" "time": "2021-10-27T18:21:46+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
"version": "1.2.0", "version": "1.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/theseer/tokenizer.git", "url": "https://github.com/theseer/tokenizer.git",
"reference": "75a63c33a8577608444246075ea0af0d052e452a" "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
"reference": "75a63c33a8577608444246075ea0af0d052e452a", "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4942,7 +4946,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": { "support": {
"issues": "https://github.com/theseer/tokenizer/issues", "issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/master" "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
}, },
"funding": [ "funding": [
{ {
@@ -4950,20 +4954,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-07-12T23:59:07+00:00" "time": "2021-07-28T10:34:58+00:00"
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",
"version": "4.7.3", "version": "4.11.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vimeo/psalm.git", "url": "https://github.com/vimeo/psalm.git",
"reference": "38c452ae584467e939d55377aaf83b5a26f19dd1" "reference": "6fba5eb554f9507b72932f9c75533d8af593688d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vimeo/psalm/zipball/38c452ae584467e939d55377aaf83b5a26f19dd1", "url": "https://api.github.com/repos/vimeo/psalm/zipball/6fba5eb554f9507b72932f9c75533d8af593688d",
"reference": "38c452ae584467e939d55377aaf83b5a26f19dd1", "reference": "6fba5eb554f9507b72932f9c75533d8af593688d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4973,6 +4977,7 @@
"composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/semver": "^1.4 || ^2.0 || ^3.0",
"composer/xdebug-handler": "^1.1 || ^2.0", "composer/xdebug-handler": "^1.1 || ^2.0",
"dnoegel/php-xdg-base-dir": "^0.1.1", "dnoegel/php-xdg-base-dir": "^0.1.1",
"ext-ctype": "*",
"ext-dom": "*", "ext-dom": "*",
"ext-json": "*", "ext-json": "*",
"ext-libxml": "*", "ext-libxml": "*",
@@ -4982,7 +4987,7 @@
"felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/advanced-json-rpc": "^3.0.3",
"felixfbecker/language-server-protocol": "^1.5", "felixfbecker/language-server-protocol": "^1.5",
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
"nikic/php-parser": "^4.10.5", "nikic/php-parser": "^4.13",
"openlss/lib-array2xml": "^1.0", "openlss/lib-array2xml": "^1.0",
"php": "^7.1|^8", "php": "^7.1|^8",
"sebastian/diff": "^3.0 || ^4.0", "sebastian/diff": "^3.0 || ^4.0",
@@ -5001,11 +5006,10 @@
"phpmyadmin/sql-parser": "5.1.0||dev-master", "phpmyadmin/sql-parser": "5.1.0||dev-master",
"phpspec/prophecy": ">=1.9.0", "phpspec/prophecy": ">=1.9.0",
"phpunit/phpunit": "^9.0", "phpunit/phpunit": "^9.0",
"psalm/plugin-phpunit": "^0.13", "psalm/plugin-phpunit": "^0.16",
"slevomat/coding-standard": "^7.0", "slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5", "squizlabs/php_codesniffer": "^3.5",
"symfony/process": "^4.3", "symfony/process": "^4.3 || ^5.0",
"weirdan/phpunit-appveyor-reporter": "^1.0.0",
"weirdan/prophecy-shim": "^1.0 || ^2.0" "weirdan/prophecy-shim": "^1.0 || ^2.0"
}, },
"suggest": { "suggest": {
@@ -5053,9 +5057,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/vimeo/psalm/issues", "issues": "https://github.com/vimeo/psalm/issues",
"source": "https://github.com/vimeo/psalm/tree/4.7.3" "source": "https://github.com/vimeo/psalm/tree/4.11.2"
}, },
"time": "2021-05-24T04:09:51+00:00" "time": "2021-10-26T17:28:17+00:00"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Чакащо споделяне", "Pending share" : "Чакащо споделяне",
"Add this attachment" : "Добавете този прикачен файл", "Add this attachment" : "Добавете този прикачен файл",
"Show in Files" : "Показване във файлове", "Show in Files" : "Показване във файлове",
"Download" : "Изтегляне",
"Remove attachment" : "Премахване на прикачен файл", "Remove attachment" : "Премахване на прикачен файл",
"Delete Attachment" : "Изтриване на прикачен файл", "Delete Attachment" : "Изтриване на прикачен файл",
"Restore Attachment" : "Възстановяване на прикачен файл", "Restore Attachment" : "Възстановяване на прикачен файл",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Чакащо споделяне", "Pending share" : "Чакащо споделяне",
"Add this attachment" : "Добавете този прикачен файл", "Add this attachment" : "Добавете този прикачен файл",
"Show in Files" : "Показване във файлове", "Show in Files" : "Показване във файлове",
"Download" : "Изтегляне",
"Remove attachment" : "Премахване на прикачен файл", "Remove attachment" : "Премахване на прикачен файл",
"Delete Attachment" : "Изтриване на прикачен файл", "Delete Attachment" : "Изтриване на прикачен файл",
"Restore Attachment" : "Възстановяване на прикачен файл", "Restore Attachment" : "Възстановяване на прикачен файл",

View File

@@ -70,9 +70,15 @@ OC.L10N.register(
"Upcoming cards" : "Pròximes targetes", "Upcoming cards" : "Pròximes targetes",
"Personal" : "Personal", "Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} us ha assignat la targeta {deck-card} a {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.", "The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.",
"The card {deck-card} on {deck-board} has reached its due date." : "La targeta {deck-card} a {deck-board} ha assolit la seva data de caducitat.",
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".", "%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.", "The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {board}.",
"Card comments" : "Comentaris de la targeta",
"%s on %s" : "%s a %s",
"No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.", "No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.",
"Finished" : "Acabat", "Finished" : "Acabat",
"To review" : "Per revisar", "To review" : "Per revisar",
@@ -94,6 +100,9 @@ OC.L10N.register(
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc", "Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer", "A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s", "No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"Card not found" : "No s'ha trobat la targeta",
"Path is already shared with this card" : "Aquesta ruta ja ha estat compartida amb aquesta targeta",
"Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser YYYY-MM-DD",
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip", "Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Card details" : "Detalls de la targeta", "Card details" : "Detalls de la targeta",
@@ -101,9 +110,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte", "Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler", "Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler", "Select board" : "Selecciona un tauler",
"Create a new card" : "Crea una nova targeta",
"Select a board" : "Selecciona un tauler", "Select a board" : "Selecciona un tauler",
"Select a list" : "Seleccioneu una llista", "Select a list" : "Seleccioneu una llista",
"Card title" : "Títol de la targeta",
"Cancel" : "Cancel·la", "Cancel" : "Cancel·la",
"Creating the new card …" : "Creant la nova targeta",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"Create card" : "Crea una targeta",
"Select a card" : "Selecciona una targeta", "Select a card" : "Selecciona una targeta",
"Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte", "Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte",
"Link to card" : "Enllaç a la targeta", "Link to card" : "Enllaç a la targeta",
@@ -167,9 +183,16 @@ OC.L10N.register(
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color", "title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell", "Board name" : "Nom del taulell",
"Members" : "Membres", "Members" : "Membres",
"Upload new files" : "Puja nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
"Add this attachment" : "Afegeix aquest adjunt", "Add this attachment" : "Afegeix aquest adjunt",
"Show in Files" : "Mostra a Fitxers",
"Remove attachment" : "Treu l'adjunt",
"Delete Attachment" : "Suprimeix ladjunt", "Delete Attachment" : "Suprimeix ladjunt",
"Restore Attachment" : "Restaura l'adjunt", "Restore Attachment" : "Restaura l'adjunt",
"File to share" : "Fitxer a compartir",
"Invalid path selected" : "S'ha seleccionat una ruta invàlida",
"Open in sidebar view" : "Obre a la vista de la barra lateral", "Open in sidebar view" : "Obre a la vista de la barra lateral",
"Open in bigger view" : "Obre a la vista més gran", "Open in bigger view" : "Obre a la vista més gran",
"Attachments" : "Adjunts", "Attachments" : "Adjunts",
@@ -178,6 +201,7 @@ OC.L10N.register(
"Created" : "Creat", "Created" : "Creat",
"The title cannot be empty." : "El títol no pot estar buit", "The title cannot be empty." : "El títol no pot estar buit",
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!", "No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…", "Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…",
"Assign to users" : "Assigna als usuaris", "Assign to users" : "Assigna als usuaris",
"Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles", "Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles",
@@ -188,10 +212,13 @@ OC.L10N.register(
"Select Date" : "Selecciona la data", "Select Date" : "Selecciona la data",
"Today" : "Avui", "Today" : "Avui",
"Tomorrow" : "Demà", "Tomorrow" : "Demà",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"Save" : "Desa", "Save" : "Desa",
"The comment cannot be empty." : "El comentari no pot estar buit.", "The comment cannot be empty." : "El comentari no pot estar buit.",
"The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.", "The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.",
"In reply to" : "En resposta a", "In reply to" : "En resposta a",
"Cancel reply" : "Cancel·la la resposta",
"Reply" : "Respon", "Reply" : "Respon",
"Update" : "Actualitza", "Update" : "Actualitza",
"Description" : "Descripció", "Description" : "Descripció",
@@ -204,6 +231,7 @@ OC.L10N.register(
"Write a description …" : "Escriviu una descripció...", "Write a description …" : "Escriviu una descripció...",
"Choose attachment" : "Triar adjunt", "Choose attachment" : "Triar adjunt",
"(group)" : "(grup)", "(group)" : "(grup)",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Assign to me" : "Assigna'm a mi", "Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix", "Unassign myself" : "Desasignar a mi mateix",
"Move card" : "Mou la targeta", "Move card" : "Mou la targeta",
@@ -220,7 +248,7 @@ OC.L10N.register(
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques", "Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups", "Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.", "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"Board details" : "Detalls de la junta", "Board details" : "Detalls del tauler",
"Edit board" : "Edita el tauler", "Edit board" : "Edita el tauler",
"Clone board" : "Clonar tauler", "Clone board" : "Clonar tauler",
"Unarchive board" : "Desarxiva el tauler", "Unarchive board" : "Desarxiva el tauler",
@@ -241,12 +269,20 @@ OC.L10N.register(
"Loading filtered view" : "S'està carregant la visualització filtrada", "Loading filtered view" : "S'està carregant la visualització filtrada",
"This week" : "Aquesta setmana", "This week" : "Aquesta setmana",
"No due" : "Sense venciment", "No due" : "Sense venciment",
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
"No results found" : "No s'han trobat resultats",
"No upcoming cards" : "No hi ha pròximes targetes", "No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards" : "pròximes targetes", "upcoming cards" : "pròximes targetes",
"Link to a board" : "Enllaça a un tauler", "Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta", "Link to a card" : "Enllaç una targeta",
"Create a card" : "Crea una targeta",
"Message from {author} in {conversationName}" : "Missatge de {author} a {conversationName}",
"Something went wrong" : "Alguna cosa ha anat malament", "Something went wrong" : "Alguna cosa ha anat malament",
"Failed to upload {name}" : "No s'ha pogut pujar {name}", "Failed to upload {name}" : "No s'ha pogut pujar {name}",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}" "Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"Error creating the share" : "S'ha produït un error en crear la compartició",
"Share with a Deck card" : "Compartir amb una targeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} amb una targeta de Deck",
"Share" : "Compartir"
}, },
"nplurals=2; plural=(n != 1);"); "nplurals=2; plural=(n != 1);");

View File

@@ -68,9 +68,15 @@
"Upcoming cards" : "Pròximes targetes", "Upcoming cards" : "Pròximes targetes",
"Personal" : "Personal", "Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.", "The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} us ha assignat la targeta {deck-card} a {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.", "The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.",
"The card {deck-card} on {deck-board} has reached its due date." : "La targeta {deck-card} a {deck-board} ha assolit la seva data de caducitat.",
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".", "%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.", "The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared {deck-board} with you." : "{user} us ha compartit {board}.",
"Card comments" : "Comentaris de la targeta",
"%s on %s" : "%s a %s",
"No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.", "No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.",
"Finished" : "Acabat", "Finished" : "Acabat",
"To review" : "Per revisar", "To review" : "Per revisar",
@@ -92,6 +98,9 @@
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc", "Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer", "A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s", "No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"Card not found" : "No s'ha trobat la targeta",
"Path is already shared with this card" : "Aquesta ruta ja ha estat compartida amb aquesta targeta",
"Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser YYYY-MM-DD",
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip", "Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Card details" : "Detalls de la targeta", "Card details" : "Detalls de la targeta",
@@ -99,9 +108,16 @@
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte", "Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler", "Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler", "Select board" : "Selecciona un tauler",
"Create a new card" : "Crea una nova targeta",
"Select a board" : "Selecciona un tauler", "Select a board" : "Selecciona un tauler",
"Select a list" : "Seleccioneu una llista", "Select a list" : "Seleccioneu una llista",
"Card title" : "Títol de la targeta",
"Cancel" : "Cancel·la", "Cancel" : "Cancel·la",
"Creating the new card …" : "Creant la nova targeta",
"Card \"{card}\" was added to \"{board}\"" : "La targeta \"{card}\" s'ha afegit a \"{board}\"",
"Open card" : "Obre la targeta",
"Close" : "Tanca",
"Create card" : "Crea una targeta",
"Select a card" : "Selecciona una targeta", "Select a card" : "Selecciona una targeta",
"Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte", "Select the card to link to a project" : "Selecciona la targeta per enllaçar a un projecte",
"Link to card" : "Enllaç a la targeta", "Link to card" : "Enllaç a la targeta",
@@ -165,9 +181,16 @@
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color", "title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell", "Board name" : "Nom del taulell",
"Members" : "Membres", "Members" : "Membres",
"Upload new files" : "Puja nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
"Add this attachment" : "Afegeix aquest adjunt", "Add this attachment" : "Afegeix aquest adjunt",
"Show in Files" : "Mostra a Fitxers",
"Remove attachment" : "Treu l'adjunt",
"Delete Attachment" : "Suprimeix ladjunt", "Delete Attachment" : "Suprimeix ladjunt",
"Restore Attachment" : "Restaura l'adjunt", "Restore Attachment" : "Restaura l'adjunt",
"File to share" : "Fitxer a compartir",
"Invalid path selected" : "S'ha seleccionat una ruta invàlida",
"Open in sidebar view" : "Obre a la vista de la barra lateral", "Open in sidebar view" : "Obre a la vista de la barra lateral",
"Open in bigger view" : "Obre a la vista més gran", "Open in bigger view" : "Obre a la vista més gran",
"Attachments" : "Adjunts", "Attachments" : "Adjunts",
@@ -176,6 +199,7 @@
"Created" : "Creat", "Created" : "Creat",
"The title cannot be empty." : "El títol no pot estar buit", "The title cannot be empty." : "El títol no pot estar buit",
"No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!", "No comments yet. Begin the discussion!" : "No hi ha comentaris encara. Començar la discussió!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…", "Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…",
"Assign to users" : "Assigna als usuaris", "Assign to users" : "Assigna als usuaris",
"Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles", "Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles",
@@ -186,10 +210,13 @@
"Select Date" : "Selecciona la data", "Select Date" : "Selecciona la data",
"Today" : "Avui", "Today" : "Avui",
"Tomorrow" : "Demà", "Tomorrow" : "Demà",
"Next week" : "Setmana següent",
"Next month" : "Mes següent",
"Save" : "Desa", "Save" : "Desa",
"The comment cannot be empty." : "El comentari no pot estar buit.", "The comment cannot be empty." : "El comentari no pot estar buit.",
"The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.", "The comment cannot be longer than 1000 characters." : "El comentari no pot ser més llarg que 1000 caràcters.",
"In reply to" : "En resposta a", "In reply to" : "En resposta a",
"Cancel reply" : "Cancel·la la resposta",
"Reply" : "Respon", "Reply" : "Respon",
"Update" : "Actualitza", "Update" : "Actualitza",
"Description" : "Descripció", "Description" : "Descripció",
@@ -202,6 +229,7 @@
"Write a description …" : "Escriviu una descripció...", "Write a description …" : "Escriviu una descripció...",
"Choose attachment" : "Triar adjunt", "Choose attachment" : "Triar adjunt",
"(group)" : "(grup)", "(group)" : "(grup)",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Assign to me" : "Assigna'm a mi", "Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix", "Unassign myself" : "Desasignar a mi mateix",
"Move card" : "Mou la targeta", "Move card" : "Mou la targeta",
@@ -218,7 +246,7 @@
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques", "Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"Limit deck usage of groups" : "Limitar l'ús del tauler de grups", "Limit deck usage of groups" : "Limitar l'ús del tauler de grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.", "Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"Board details" : "Detalls de la junta", "Board details" : "Detalls del tauler",
"Edit board" : "Edita el tauler", "Edit board" : "Edita el tauler",
"Clone board" : "Clonar tauler", "Clone board" : "Clonar tauler",
"Unarchive board" : "Desarxiva el tauler", "Unarchive board" : "Desarxiva el tauler",
@@ -239,12 +267,20 @@
"Loading filtered view" : "S'està carregant la visualització filtrada", "Loading filtered view" : "S'està carregant la visualització filtrada",
"This week" : "Aquesta setmana", "This week" : "Aquesta setmana",
"No due" : "Sense venciment", "No due" : "Sense venciment",
"Search for {searchQuery} in all boards" : "Busca {searchQuery} a tots els taulers",
"No results found" : "No s'han trobat resultats",
"No upcoming cards" : "No hi ha pròximes targetes", "No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards" : "pròximes targetes", "upcoming cards" : "pròximes targetes",
"Link to a board" : "Enllaça a un tauler", "Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta", "Link to a card" : "Enllaç una targeta",
"Create a card" : "Crea una targeta",
"Message from {author} in {conversationName}" : "Missatge de {author} a {conversationName}",
"Something went wrong" : "Alguna cosa ha anat malament", "Something went wrong" : "Alguna cosa ha anat malament",
"Failed to upload {name}" : "No s'ha pogut pujar {name}", "Failed to upload {name}" : "No s'ha pogut pujar {name}",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}" "Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"Error creating the share" : "S'ha produït un error en crear la compartició",
"Share with a Deck card" : "Compartir amb una targeta de Deck",
"Share {file} with a Deck card" : "Compartir {file} amb una targeta de Deck",
"Share" : "Compartir"
},"pluralForm" :"nplurals=2; plural=(n != 1);" },"pluralForm" :"nplurals=2; plural=(n != 1);"
} }

View File

@@ -85,7 +85,7 @@ OC.L10N.register(
"Action needed" : "Nutná akce", "Action needed" : "Nutná akce",
"Later" : "Později", "Later" : "Později",
"copy" : "kopie", "copy" : "kopie",
"To do" : "Udělat", "To do" : "Zbývá udělat",
"Doing" : "Provádí se", "Doing" : "Provádí se",
"Done" : "Hotovo", "Done" : "Hotovo",
"Example Task 3" : "Třetí úkol pro ukázku", "Example Task 3" : "Třetí úkol pro ukázku",
@@ -101,7 +101,7 @@ OC.L10N.register(
"A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.", "A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.",
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s", "No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"Card not found" : "Karta nebyla nalezena", "Card not found" : "Karta nebyla nalezena",
"Path is already shared with this card" : "Cesta je již s touto kartou sdílena", "Path is already shared with this card" : "Popis umístění už je touto kartou sdíleno",
"Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum je třeba, aby formát data byl RRRR-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum je třeba, aby formát data byl RRRR-MM-DD",
"Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu", "Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck je nástroj cílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck je nástroj cílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Čekající sdílení", "Pending share" : "Čekající sdílení",
"Add this attachment" : "Přidat tuto přílohu", "Add this attachment" : "Přidat tuto přílohu",
"Show in Files" : "Zobrazit v Souborech", "Show in Files" : "Zobrazit v Souborech",
"Download" : "Stáhnout",
"Remove attachment" : "Odebrat přílohu", "Remove attachment" : "Odebrat přílohu",
"Delete Attachment" : "Smazat přílohu", "Delete Attachment" : "Smazat přílohu",
"Restore Attachment" : "Obnovit přílohu", "Restore Attachment" : "Obnovit přílohu",

View File

@@ -83,7 +83,7 @@
"Action needed" : "Nutná akce", "Action needed" : "Nutná akce",
"Later" : "Později", "Later" : "Později",
"copy" : "kopie", "copy" : "kopie",
"To do" : "Udělat", "To do" : "Zbývá udělat",
"Doing" : "Provádí se", "Doing" : "Provádí se",
"Done" : "Hotovo", "Done" : "Hotovo",
"Example Task 3" : "Třetí úkol pro ukázku", "Example Task 3" : "Třetí úkol pro ukázku",
@@ -99,7 +99,7 @@
"A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.", "A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.",
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s", "No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"Card not found" : "Karta nebyla nalezena", "Card not found" : "Karta nebyla nalezena",
"Path is already shared with this card" : "Cesta je již s touto kartou sdílena", "Path is already shared with this card" : "Popis umístění už je touto kartou sdíleno",
"Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum je třeba, aby formát data byl RRRR-MM-DD", "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum je třeba, aby formát data byl RRRR-MM-DD",
"Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu", "Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck je nástroj cílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck je nástroj cílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
@@ -186,6 +186,7 @@
"Pending share" : "Čekající sdílení", "Pending share" : "Čekající sdílení",
"Add this attachment" : "Přidat tuto přílohu", "Add this attachment" : "Přidat tuto přílohu",
"Show in Files" : "Zobrazit v Souborech", "Show in Files" : "Zobrazit v Souborech",
"Download" : "Stáhnout",
"Remove attachment" : "Odebrat přílohu", "Remove attachment" : "Odebrat přílohu",
"Delete Attachment" : "Smazat přílohu", "Delete Attachment" : "Smazat přílohu",
"Restore Attachment" : "Obnovit přílohu", "Restore Attachment" : "Obnovit přílohu",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Ausstehende Freigabe", "Pending share" : "Ausstehende Freigabe",
"Add this attachment" : "Diesen Anhang anhängen", "Add this attachment" : "Diesen Anhang anhängen",
"Show in Files" : "In Dateien anzeigen", "Show in Files" : "In Dateien anzeigen",
"Download" : "Herunterladen",
"Remove attachment" : "Anhang entfernen", "Remove attachment" : "Anhang entfernen",
"Delete Attachment" : "Anhang löschen", "Delete Attachment" : "Anhang löschen",
"Restore Attachment" : "Anhang wiederherstellen", "Restore Attachment" : "Anhang wiederherstellen",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Ausstehende Freigabe", "Pending share" : "Ausstehende Freigabe",
"Add this attachment" : "Diesen Anhang anhängen", "Add this attachment" : "Diesen Anhang anhängen",
"Show in Files" : "In Dateien anzeigen", "Show in Files" : "In Dateien anzeigen",
"Download" : "Herunterladen",
"Remove attachment" : "Anhang entfernen", "Remove attachment" : "Anhang entfernen",
"Delete Attachment" : "Anhang löschen", "Delete Attachment" : "Anhang löschen",
"Restore Attachment" : "Anhang wiederherstellen", "Restore Attachment" : "Anhang wiederherstellen",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Ausstehende Freigabe", "Pending share" : "Ausstehende Freigabe",
"Add this attachment" : "Diesen Anhang anhängen", "Add this attachment" : "Diesen Anhang anhängen",
"Show in Files" : "In Dateien anzeigen", "Show in Files" : "In Dateien anzeigen",
"Download" : "Herunterladen",
"Remove attachment" : "Anhang entfernen", "Remove attachment" : "Anhang entfernen",
"Delete Attachment" : "Anhang löschen", "Delete Attachment" : "Anhang löschen",
"Restore Attachment" : "Anhang wiederherstellen", "Restore Attachment" : "Anhang wiederherstellen",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Ausstehende Freigabe", "Pending share" : "Ausstehende Freigabe",
"Add this attachment" : "Diesen Anhang anhängen", "Add this attachment" : "Diesen Anhang anhängen",
"Show in Files" : "In Dateien anzeigen", "Show in Files" : "In Dateien anzeigen",
"Download" : "Herunterladen",
"Remove attachment" : "Anhang entfernen", "Remove attachment" : "Anhang entfernen",
"Delete Attachment" : "Anhang löschen", "Delete Attachment" : "Anhang löschen",
"Restore Attachment" : "Anhang wiederherstellen", "Restore Attachment" : "Anhang wiederherstellen",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Pendiente de compartir", "Pending share" : "Pendiente de compartir",
"Add this attachment" : "Añadir este adjunto", "Add this attachment" : "Añadir este adjunto",
"Show in Files" : "Mostrar en Archivos", "Show in Files" : "Mostrar en Archivos",
"Download" : "Descargar",
"Remove attachment" : "Quitar adjunto", "Remove attachment" : "Quitar adjunto",
"Delete Attachment" : "Borrar adjunto", "Delete Attachment" : "Borrar adjunto",
"Restore Attachment" : "Restaurar Adjunto", "Restore Attachment" : "Restaurar Adjunto",
@@ -212,6 +213,8 @@ OC.L10N.register(
"Select Date" : "Seleccione la fecha", "Select Date" : "Seleccione la fecha",
"Today" : "Hoy", "Today" : "Hoy",
"Tomorrow" : "Mañana", "Tomorrow" : "Mañana",
"Next week" : "Semana siguiente",
"Next month" : "Mes siguiente",
"Save" : "Guardar", "Save" : "Guardar",
"The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be empty." : "El comentario no puede estar vacío.",
"The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Pendiente de compartir", "Pending share" : "Pendiente de compartir",
"Add this attachment" : "Añadir este adjunto", "Add this attachment" : "Añadir este adjunto",
"Show in Files" : "Mostrar en Archivos", "Show in Files" : "Mostrar en Archivos",
"Download" : "Descargar",
"Remove attachment" : "Quitar adjunto", "Remove attachment" : "Quitar adjunto",
"Delete Attachment" : "Borrar adjunto", "Delete Attachment" : "Borrar adjunto",
"Restore Attachment" : "Restaurar Adjunto", "Restore Attachment" : "Restaurar Adjunto",
@@ -210,6 +211,8 @@
"Select Date" : "Seleccione la fecha", "Select Date" : "Seleccione la fecha",
"Today" : "Hoy", "Today" : "Hoy",
"Tomorrow" : "Mañana", "Tomorrow" : "Mañana",
"Next week" : "Semana siguiente",
"Next month" : "Mes siguiente",
"Save" : "Guardar", "Save" : "Guardar",
"The comment cannot be empty." : "El comentario no puede estar vacío.", "The comment cannot be empty." : "El comentario no puede estar vacío.",
"The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.", "The comment cannot be longer than 1000 characters." : "El comentario no puede tener más de 1000 caracteres.",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Partekatzeko zain", "Pending share" : "Partekatzeko zain",
"Add this attachment" : "Gehitu eranskin hau", "Add this attachment" : "Gehitu eranskin hau",
"Show in Files" : "Erakutsi fitxategietan", "Show in Files" : "Erakutsi fitxategietan",
"Download" : "Deskargatu",
"Remove attachment" : "Kendu eranskina", "Remove attachment" : "Kendu eranskina",
"Delete Attachment" : "Ezabatu eranskina", "Delete Attachment" : "Ezabatu eranskina",
"Restore Attachment" : "Berezarri eranskina", "Restore Attachment" : "Berezarri eranskina",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Partekatzeko zain", "Pending share" : "Partekatzeko zain",
"Add this attachment" : "Gehitu eranskin hau", "Add this attachment" : "Gehitu eranskin hau",
"Show in Files" : "Erakutsi fitxategietan", "Show in Files" : "Erakutsi fitxategietan",
"Download" : "Deskargatu",
"Remove attachment" : "Kendu eranskina", "Remove attachment" : "Kendu eranskina",
"Delete Attachment" : "Ezabatu eranskina", "Delete Attachment" : "Ezabatu eranskina",
"Restore Attachment" : "Berezarri eranskina", "Restore Attachment" : "Berezarri eranskina",

View File

@@ -184,6 +184,8 @@ OC.L10N.register(
"Select Date" : "Valitse päivä", "Select Date" : "Valitse päivä",
"Today" : "Tänään", "Today" : "Tänään",
"Tomorrow" : "Huomenna", "Tomorrow" : "Huomenna",
"Next week" : "Seuraava viikko",
"Next month" : "Seuraava kuukausi",
"Save" : "Tallenna", "Save" : "Tallenna",
"The comment cannot be empty." : "Kommentti ei voi olla tyhjä.", "The comment cannot be empty." : "Kommentti ei voi olla tyhjä.",
"The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.", "The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.",

View File

@@ -182,6 +182,8 @@
"Select Date" : "Valitse päivä", "Select Date" : "Valitse päivä",
"Today" : "Tänään", "Today" : "Tänään",
"Tomorrow" : "Huomenna", "Tomorrow" : "Huomenna",
"Next week" : "Seuraava viikko",
"Next month" : "Seuraava kuukausi",
"Save" : "Tallenna", "Save" : "Tallenna",
"The comment cannot be empty." : "Kommentti ei voi olla tyhjä.", "The comment cannot be empty." : "Kommentti ei voi olla tyhjä.",
"The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.", "The comment cannot be longer than 1000 characters." : "Kommentin on oltava alle 1000 merkkiä pitkä.",

View File

@@ -185,8 +185,11 @@ OC.L10N.register(
"Members" : "Membres", "Members" : "Membres",
"Upload new files" : "Téléverser de nouveaux fichiers", "Upload new files" : "Téléverser de nouveaux fichiers",
"Share from Files" : "Partager vos fichiers déjà stockés", "Share from Files" : "Partager vos fichiers déjà stockés",
"Pending share" : "Partage en attente",
"Add this attachment" : "Ajouter cette pièce jointe", "Add this attachment" : "Ajouter cette pièce jointe",
"Show in Files" : "Afficher dans Fichiers", "Show in Files" : "Afficher dans Fichiers",
"Download" : "Télécharger",
"Remove attachment" : "Supprimer la pièce jointe",
"Delete Attachment" : "Supprimer la pièce jointe", "Delete Attachment" : "Supprimer la pièce jointe",
"Restore Attachment" : "Restaurer la pièce jointe", "Restore Attachment" : "Restaurer la pièce jointe",
"File to share" : "Fichier à partager", "File to share" : "Fichier à partager",
@@ -210,6 +213,8 @@ OC.L10N.register(
"Select Date" : "Sélectionnez une date", "Select Date" : "Sélectionnez une date",
"Today" : "Aujourd'hui", "Today" : "Aujourd'hui",
"Tomorrow" : "Demain", "Tomorrow" : "Demain",
"Next week" : "Semaine suivante",
"Next month" : "Mois suivant",
"Save" : "Enregistrer", "Save" : "Enregistrer",
"The comment cannot be empty." : "Un commentaire ne peut pas être vide.", "The comment cannot be empty." : "Un commentaire ne peut pas être vide.",
"The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.", "The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.",

View File

@@ -183,8 +183,11 @@
"Members" : "Membres", "Members" : "Membres",
"Upload new files" : "Téléverser de nouveaux fichiers", "Upload new files" : "Téléverser de nouveaux fichiers",
"Share from Files" : "Partager vos fichiers déjà stockés", "Share from Files" : "Partager vos fichiers déjà stockés",
"Pending share" : "Partage en attente",
"Add this attachment" : "Ajouter cette pièce jointe", "Add this attachment" : "Ajouter cette pièce jointe",
"Show in Files" : "Afficher dans Fichiers", "Show in Files" : "Afficher dans Fichiers",
"Download" : "Télécharger",
"Remove attachment" : "Supprimer la pièce jointe",
"Delete Attachment" : "Supprimer la pièce jointe", "Delete Attachment" : "Supprimer la pièce jointe",
"Restore Attachment" : "Restaurer la pièce jointe", "Restore Attachment" : "Restaurer la pièce jointe",
"File to share" : "Fichier à partager", "File to share" : "Fichier à partager",
@@ -208,6 +211,8 @@
"Select Date" : "Sélectionnez une date", "Select Date" : "Sélectionnez une date",
"Today" : "Aujourd'hui", "Today" : "Aujourd'hui",
"Tomorrow" : "Demain", "Tomorrow" : "Demain",
"Next week" : "Semaine suivante",
"Next month" : "Mois suivant",
"Save" : "Enregistrer", "Save" : "Enregistrer",
"The comment cannot be empty." : "Un commentaire ne peut pas être vide.", "The comment cannot be empty." : "Un commentaire ne peut pas être vide.",
"The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.", "The comment cannot be longer than 1000 characters." : "Un commentaire est limité à 1 000 caractères.",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Függőben lévő megosztás", "Pending share" : "Függőben lévő megosztás",
"Add this attachment" : "E melléklet hozzáadása", "Add this attachment" : "E melléklet hozzáadása",
"Show in Files" : "Megjelenítés a Fájlokban", "Show in Files" : "Megjelenítés a Fájlokban",
"Download" : "Letöltés",
"Remove attachment" : "Melléklet eltávolítása", "Remove attachment" : "Melléklet eltávolítása",
"Delete Attachment" : "Melléklet törlése", "Delete Attachment" : "Melléklet törlése",
"Restore Attachment" : "Melléklet visszaállítása", "Restore Attachment" : "Melléklet visszaállítása",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Függőben lévő megosztás", "Pending share" : "Függőben lévő megosztás",
"Add this attachment" : "E melléklet hozzáadása", "Add this attachment" : "E melléklet hozzáadása",
"Show in Files" : "Megjelenítés a Fájlokban", "Show in Files" : "Megjelenítés a Fájlokban",
"Download" : "Letöltés",
"Remove attachment" : "Melléklet eltávolítása", "Remove attachment" : "Melléklet eltávolítása",
"Delete Attachment" : "Melléklet törlése", "Delete Attachment" : "Melléklet törlése",
"Restore Attachment" : "Melléklet visszaállítása", "Restore Attachment" : "Melléklet visszaállítása",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Condivisione in attesa", "Pending share" : "Condivisione in attesa",
"Add this attachment" : "Aggiungi questo allegato", "Add this attachment" : "Aggiungi questo allegato",
"Show in Files" : "Mostra in File", "Show in Files" : "Mostra in File",
"Download" : "Scarica",
"Remove attachment" : "Rimuovi allegato", "Remove attachment" : "Rimuovi allegato",
"Delete Attachment" : "Elimina allegato", "Delete Attachment" : "Elimina allegato",
"Restore Attachment" : "Ripristina allegato", "Restore Attachment" : "Ripristina allegato",
@@ -212,6 +213,8 @@ OC.L10N.register(
"Select Date" : "Seleziona data", "Select Date" : "Seleziona data",
"Today" : "Oggi", "Today" : "Oggi",
"Tomorrow" : "Domani", "Tomorrow" : "Domani",
"Next week" : "Settimana successiva",
"Next month" : "Mese successivo",
"Save" : "Salva", "Save" : "Salva",
"The comment cannot be empty." : "Il commento non può essere vuoto.", "The comment cannot be empty." : "Il commento non può essere vuoto.",
"The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.", "The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Condivisione in attesa", "Pending share" : "Condivisione in attesa",
"Add this attachment" : "Aggiungi questo allegato", "Add this attachment" : "Aggiungi questo allegato",
"Show in Files" : "Mostra in File", "Show in Files" : "Mostra in File",
"Download" : "Scarica",
"Remove attachment" : "Rimuovi allegato", "Remove attachment" : "Rimuovi allegato",
"Delete Attachment" : "Elimina allegato", "Delete Attachment" : "Elimina allegato",
"Restore Attachment" : "Ripristina allegato", "Restore Attachment" : "Ripristina allegato",
@@ -210,6 +211,8 @@
"Select Date" : "Seleziona data", "Select Date" : "Seleziona data",
"Today" : "Oggi", "Today" : "Oggi",
"Tomorrow" : "Domani", "Tomorrow" : "Domani",
"Next week" : "Settimana successiva",
"Next month" : "Mese successivo",
"Save" : "Salva", "Save" : "Salva",
"The comment cannot be empty." : "Il commento non può essere vuoto.", "The comment cannot be empty." : "Il commento non può essere vuoto.",
"The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.", "The comment cannot be longer than 1000 characters." : "Il commento non può essere più lungo di 1000 caratteri.",

View File

@@ -101,9 +101,16 @@ OC.L10N.register(
"Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu", "Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu",
"Search by board title" : "Ieškoti pagal lentos pavadinimą", "Search by board title" : "Ieškoti pagal lentos pavadinimą",
"Select board" : "Pasirinkti lentą", "Select board" : "Pasirinkti lentą",
"Create a new card" : "Sukurti naują kortelę",
"Select a board" : "Pasirinkite lentą", "Select a board" : "Pasirinkite lentą",
"Select a list" : "Pasirinkite sąrašą", "Select a list" : "Pasirinkite sąrašą",
"Card title" : "Kortelės pavadinimas",
"Cancel" : "Atsisakyti", "Cancel" : "Atsisakyti",
"Creating the new card …" : "Kuriama nauja kortelė…",
"Card \"{card}\" was added to \"{board}\"" : "Kortelė „{card}“ buvo pridėta į lentą „{board}“",
"Open card" : "Atverti kortelę",
"Close" : "Užverti",
"Create card" : "Sukurti kortelę",
"Select a card" : "Pasirinkti kortelę", "Select a card" : "Pasirinkti kortelę",
"Select the card to link to a project" : "Pasirinkite kortelę, kurią susieti su projektu", "Select the card to link to a project" : "Pasirinkite kortelę, kurią susieti su projektu",
"Link to card" : "Susieti su kortele", "Link to card" : "Susieti su kortele",
@@ -113,6 +120,7 @@ OC.L10N.register(
"Overwrite file" : "Perrašyti failą", "Overwrite file" : "Perrašyti failą",
"Keep existing file" : "Palikti esamą failą", "Keep existing file" : "Palikti esamą failą",
"This board is read only" : "Ši lenta yra tik skaitymui", "This board is read only" : "Ši lenta yra tik skaitymui",
"Drop your files to upload" : "Tempkite failus, norėdami juos išsiųsti",
"Add card" : "Pridėti kortelę", "Add card" : "Pridėti kortelę",
"Archived cards" : "Archyvuotos kortelės", "Archived cards" : "Archyvuotos kortelės",
"Add list" : "Pridėti sąrašą", "Add list" : "Pridėti sąrašą",
@@ -151,6 +159,7 @@ OC.L10N.register(
"Can share" : "Can share", "Can share" : "Can share",
"Can manage" : "Gali tvarkyti", "Can manage" : "Gali tvarkyti",
"Delete" : "Ištrinti", "Delete" : "Ištrinti",
"Failed to create share with {displayName}" : "Nepavyko sukurti viešinio su {displayName}",
"Add a new list" : "Pridėti naują sąrašą", "Add a new list" : "Pridėti naują sąrašą",
"Archive all cards" : "Archyvuoti visas korteles", "Archive all cards" : "Archyvuoti visas korteles",
"Delete list" : "Ištrinti sąrašą", "Delete list" : "Ištrinti sąrašą",
@@ -163,9 +172,15 @@ OC.L10N.register(
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės", "title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
"Board name" : "Lentos pavadinimas", "Board name" : "Lentos pavadinimas",
"Members" : "Nariai", "Members" : "Nariai",
"Upload new files" : "Išsiųsti naujus failus",
"Share from Files" : "Bendrinti iš failų",
"Add this attachment" : "Pridėti šį priedą", "Add this attachment" : "Pridėti šį priedą",
"Show in Files" : "Rodyti failuose",
"Download" : "Atsisiųsti",
"Remove attachment" : "Šalinti priedą",
"Delete Attachment" : "Ištrinti priedą", "Delete Attachment" : "Ištrinti priedą",
"Restore Attachment" : "Atkurti priedą", "Restore Attachment" : "Atkurti priedą",
"File to share" : "Failas, kurį bendrinti",
"Invalid path selected" : "Pasirinktas neteisingas kelias", "Invalid path selected" : "Pasirinktas neteisingas kelias",
"Open in sidebar view" : "Atverti šoninės juostos rodinyje", "Open in sidebar view" : "Atverti šoninės juostos rodinyje",
"Open in bigger view" : "Atverti didesniame rodinyje", "Open in bigger view" : "Atverti didesniame rodinyje",
@@ -173,7 +188,9 @@ OC.L10N.register(
"Comments" : "Komentarai", "Comments" : "Komentarai",
"Modified" : "Pakeistas", "Modified" : "Pakeistas",
"Created" : "Sukurta", "Created" : "Sukurta",
"The title cannot be empty." : "Pavadinimas negali būti tuščias.",
"No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!", "No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!",
"Failed to load comments" : "Nepavyko įkelti komentarų",
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…", "Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
"Assign to users" : "Priskirti naudotojams", "Assign to users" : "Priskirti naudotojams",
"Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams", "Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams",
@@ -199,6 +216,7 @@ OC.L10N.register(
"Write a description …" : "Parašykite aprašą…", "Write a description …" : "Parašykite aprašą…",
"Choose attachment" : "Pasirinkite priedą", "Choose attachment" : "Pasirinkite priedą",
"(group)" : "(grupė)", "(group)" : "(grupė)",
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
"Assign to me" : "Priskirti sau", "Assign to me" : "Priskirti sau",
"Move card" : "Perkelti kortelę", "Move card" : "Perkelti kortelę",
"Unarchive card" : "Išarchyvuoti kortelę", "Unarchive card" : "Išarchyvuoti kortelę",
@@ -210,6 +228,7 @@ OC.L10N.register(
"All boards" : "Visos lentos", "All boards" : "Visos lentos",
"Archived boards" : "Archyvuotos lentos", "Archived boards" : "Archyvuotos lentos",
"Shared with you" : "Bendrinama su jumis", "Shared with you" : "Bendrinama su jumis",
"Use bigger card view" : "Naudoti didesnį kortelių rodinį",
"Show boards in calendar/tasks" : "Rodyti darbus kalendoriuje/užduotyse", "Show boards in calendar/tasks" : "Rodyti darbus kalendoriuje/užduotyse",
"Board details" : "Išsamiau apie lentą", "Board details" : "Išsamiau apie lentą",
"Edit board" : "Taisyti lentą", "Edit board" : "Taisyti lentą",
@@ -230,8 +249,10 @@ OC.L10N.register(
"Delete the board?" : "Ištrinti lentą?", "Delete the board?" : "Ištrinti lentą?",
"This week" : "Šią savaitę", "This week" : "Šią savaitę",
"No due" : "Be galutinio termino", "No due" : "Be galutinio termino",
"No results found" : "Nerasta jokių rezultatų",
"Link to a board" : "Susieti su lenta", "Link to a board" : "Susieti su lenta",
"Link to a card" : "Susieti su kortele", "Link to a card" : "Susieti su kortele",
"Create a card" : "Sukurti kortelę",
"Something went wrong" : "Kažkas nutiko", "Something went wrong" : "Kažkas nutiko",
"Maximum file size of {size} exceeded" : "Viršytas maksimalus {size} failo dydis", "Maximum file size of {size} exceeded" : "Viršytas maksimalus {size} failo dydis",
"Error creating the share" : "Klaida kuriant viešinį", "Error creating the share" : "Klaida kuriant viešinį",

View File

@@ -99,9 +99,16 @@
"Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu", "Select the board to link to a project" : "Pasirinkite lentą, kurią susieti su projektu",
"Search by board title" : "Ieškoti pagal lentos pavadinimą", "Search by board title" : "Ieškoti pagal lentos pavadinimą",
"Select board" : "Pasirinkti lentą", "Select board" : "Pasirinkti lentą",
"Create a new card" : "Sukurti naują kortelę",
"Select a board" : "Pasirinkite lentą", "Select a board" : "Pasirinkite lentą",
"Select a list" : "Pasirinkite sąrašą", "Select a list" : "Pasirinkite sąrašą",
"Card title" : "Kortelės pavadinimas",
"Cancel" : "Atsisakyti", "Cancel" : "Atsisakyti",
"Creating the new card …" : "Kuriama nauja kortelė…",
"Card \"{card}\" was added to \"{board}\"" : "Kortelė „{card}“ buvo pridėta į lentą „{board}“",
"Open card" : "Atverti kortelę",
"Close" : "Užverti",
"Create card" : "Sukurti kortelę",
"Select a card" : "Pasirinkti kortelę", "Select a card" : "Pasirinkti kortelę",
"Select the card to link to a project" : "Pasirinkite kortelę, kurią susieti su projektu", "Select the card to link to a project" : "Pasirinkite kortelę, kurią susieti su projektu",
"Link to card" : "Susieti su kortele", "Link to card" : "Susieti su kortele",
@@ -111,6 +118,7 @@
"Overwrite file" : "Perrašyti failą", "Overwrite file" : "Perrašyti failą",
"Keep existing file" : "Palikti esamą failą", "Keep existing file" : "Palikti esamą failą",
"This board is read only" : "Ši lenta yra tik skaitymui", "This board is read only" : "Ši lenta yra tik skaitymui",
"Drop your files to upload" : "Tempkite failus, norėdami juos išsiųsti",
"Add card" : "Pridėti kortelę", "Add card" : "Pridėti kortelę",
"Archived cards" : "Archyvuotos kortelės", "Archived cards" : "Archyvuotos kortelės",
"Add list" : "Pridėti sąrašą", "Add list" : "Pridėti sąrašą",
@@ -149,6 +157,7 @@
"Can share" : "Can share", "Can share" : "Can share",
"Can manage" : "Gali tvarkyti", "Can manage" : "Gali tvarkyti",
"Delete" : "Ištrinti", "Delete" : "Ištrinti",
"Failed to create share with {displayName}" : "Nepavyko sukurti viešinio su {displayName}",
"Add a new list" : "Pridėti naują sąrašą", "Add a new list" : "Pridėti naują sąrašą",
"Archive all cards" : "Archyvuoti visas korteles", "Archive all cards" : "Archyvuoti visas korteles",
"Delete list" : "Ištrinti sąrašą", "Delete list" : "Ištrinti sąrašą",
@@ -161,9 +170,15 @@
"title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės", "title and color value must be provided" : "privalo būti pateiktos pavadinimo ir spalvos reikšmės",
"Board name" : "Lentos pavadinimas", "Board name" : "Lentos pavadinimas",
"Members" : "Nariai", "Members" : "Nariai",
"Upload new files" : "Išsiųsti naujus failus",
"Share from Files" : "Bendrinti iš failų",
"Add this attachment" : "Pridėti šį priedą", "Add this attachment" : "Pridėti šį priedą",
"Show in Files" : "Rodyti failuose",
"Download" : "Atsisiųsti",
"Remove attachment" : "Šalinti priedą",
"Delete Attachment" : "Ištrinti priedą", "Delete Attachment" : "Ištrinti priedą",
"Restore Attachment" : "Atkurti priedą", "Restore Attachment" : "Atkurti priedą",
"File to share" : "Failas, kurį bendrinti",
"Invalid path selected" : "Pasirinktas neteisingas kelias", "Invalid path selected" : "Pasirinktas neteisingas kelias",
"Open in sidebar view" : "Atverti šoninės juostos rodinyje", "Open in sidebar view" : "Atverti šoninės juostos rodinyje",
"Open in bigger view" : "Atverti didesniame rodinyje", "Open in bigger view" : "Atverti didesniame rodinyje",
@@ -171,7 +186,9 @@
"Comments" : "Komentarai", "Comments" : "Komentarai",
"Modified" : "Pakeistas", "Modified" : "Pakeistas",
"Created" : "Sukurta", "Created" : "Sukurta",
"The title cannot be empty." : "Pavadinimas negali būti tuščias.",
"No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!", "No comments yet. Begin the discussion!" : "Kol kas komentarų nėra. Pradėkite diskusiją!",
"Failed to load comments" : "Nepavyko įkelti komentarų",
"Assign a tag to this card…" : "Priskirti šiai kortelei žymę…", "Assign a tag to this card…" : "Priskirti šiai kortelei žymę…",
"Assign to users" : "Priskirti naudotojams", "Assign to users" : "Priskirti naudotojams",
"Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams", "Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams",
@@ -197,6 +214,7 @@
"Write a description …" : "Parašykite aprašą…", "Write a description …" : "Parašykite aprašą…",
"Choose attachment" : "Pasirinkite priedą", "Choose attachment" : "Pasirinkite priedą",
"(group)" : "(grupė)", "(group)" : "(grupė)",
"{count} comments, {unread} unread" : "Komentarų: {count}, neskaityta: {unread}",
"Assign to me" : "Priskirti sau", "Assign to me" : "Priskirti sau",
"Move card" : "Perkelti kortelę", "Move card" : "Perkelti kortelę",
"Unarchive card" : "Išarchyvuoti kortelę", "Unarchive card" : "Išarchyvuoti kortelę",
@@ -208,6 +226,7 @@
"All boards" : "Visos lentos", "All boards" : "Visos lentos",
"Archived boards" : "Archyvuotos lentos", "Archived boards" : "Archyvuotos lentos",
"Shared with you" : "Bendrinama su jumis", "Shared with you" : "Bendrinama su jumis",
"Use bigger card view" : "Naudoti didesnį kortelių rodinį",
"Show boards in calendar/tasks" : "Rodyti darbus kalendoriuje/užduotyse", "Show boards in calendar/tasks" : "Rodyti darbus kalendoriuje/užduotyse",
"Board details" : "Išsamiau apie lentą", "Board details" : "Išsamiau apie lentą",
"Edit board" : "Taisyti lentą", "Edit board" : "Taisyti lentą",
@@ -228,8 +247,10 @@
"Delete the board?" : "Ištrinti lentą?", "Delete the board?" : "Ištrinti lentą?",
"This week" : "Šią savaitę", "This week" : "Šią savaitę",
"No due" : "Be galutinio termino", "No due" : "Be galutinio termino",
"No results found" : "Nerasta jokių rezultatų",
"Link to a board" : "Susieti su lenta", "Link to a board" : "Susieti su lenta",
"Link to a card" : "Susieti su kortele", "Link to a card" : "Susieti su kortele",
"Create a card" : "Sukurti kortelę",
"Something went wrong" : "Kažkas nutiko", "Something went wrong" : "Kažkas nutiko",
"Maximum file size of {size} exceeded" : "Viršytas maksimalus {size} failo dydis", "Maximum file size of {size} exceeded" : "Viršytas maksimalus {size} failo dydis",
"Error creating the share" : "Klaida kuriant viešinį", "Error creating the share" : "Klaida kuriant viešinį",

View File

@@ -135,7 +135,7 @@ OC.L10N.register(
"Add list" : "Lijst toevoegen", "Add list" : "Lijst toevoegen",
"List name" : "Lijstnaam", "List name" : "Lijstnaam",
"Apply filter" : "Filter toepassen", "Apply filter" : "Filter toepassen",
"Filter by tag" : "Filter op label", "Filter by tag" : "Filteren op label",
"Filter by assigned user" : "Filter op toegewezen gebruiker", "Filter by assigned user" : "Filter op toegewezen gebruiker",
"Unassigned" : "Niet-toegewezen", "Unassigned" : "Niet-toegewezen",
"Filter by due date" : "Filter op vervaldatum", "Filter by due date" : "Filter op vervaldatum",
@@ -185,8 +185,10 @@ OC.L10N.register(
"Members" : "Leden", "Members" : "Leden",
"Upload new files" : "Uploaden nieuwe bestanden", "Upload new files" : "Uploaden nieuwe bestanden",
"Share from Files" : "Delen vanuit Bestanden", "Share from Files" : "Delen vanuit Bestanden",
"Pending share" : "Share in afwachting",
"Add this attachment" : "Voeg deze bijlage toe", "Add this attachment" : "Voeg deze bijlage toe",
"Show in Files" : "Tonen in Bestanden", "Show in Files" : "Tonen in Bestanden",
"Download" : "Download",
"Remove attachment" : "Bijlage verwijderen", "Remove attachment" : "Bijlage verwijderen",
"Delete Attachment" : "Verwijderen bijlage", "Delete Attachment" : "Verwijderen bijlage",
"Restore Attachment" : "Herstellen bijlage", "Restore Attachment" : "Herstellen bijlage",
@@ -211,6 +213,8 @@ OC.L10N.register(
"Select Date" : "Selecteer datum", "Select Date" : "Selecteer datum",
"Today" : "Vandaag", "Today" : "Vandaag",
"Tomorrow" : "Morgen", "Tomorrow" : "Morgen",
"Next week" : "Volgende week",
"Next month" : "Volgende maand",
"Save" : "Opslaan", "Save" : "Opslaan",
"The comment cannot be empty." : "De reactie kan niet leeg zijn.", "The comment cannot be empty." : "De reactie kan niet leeg zijn.",
"The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.", "The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.",

View File

@@ -133,7 +133,7 @@
"Add list" : "Lijst toevoegen", "Add list" : "Lijst toevoegen",
"List name" : "Lijstnaam", "List name" : "Lijstnaam",
"Apply filter" : "Filter toepassen", "Apply filter" : "Filter toepassen",
"Filter by tag" : "Filter op label", "Filter by tag" : "Filteren op label",
"Filter by assigned user" : "Filter op toegewezen gebruiker", "Filter by assigned user" : "Filter op toegewezen gebruiker",
"Unassigned" : "Niet-toegewezen", "Unassigned" : "Niet-toegewezen",
"Filter by due date" : "Filter op vervaldatum", "Filter by due date" : "Filter op vervaldatum",
@@ -183,8 +183,10 @@
"Members" : "Leden", "Members" : "Leden",
"Upload new files" : "Uploaden nieuwe bestanden", "Upload new files" : "Uploaden nieuwe bestanden",
"Share from Files" : "Delen vanuit Bestanden", "Share from Files" : "Delen vanuit Bestanden",
"Pending share" : "Share in afwachting",
"Add this attachment" : "Voeg deze bijlage toe", "Add this attachment" : "Voeg deze bijlage toe",
"Show in Files" : "Tonen in Bestanden", "Show in Files" : "Tonen in Bestanden",
"Download" : "Download",
"Remove attachment" : "Bijlage verwijderen", "Remove attachment" : "Bijlage verwijderen",
"Delete Attachment" : "Verwijderen bijlage", "Delete Attachment" : "Verwijderen bijlage",
"Restore Attachment" : "Herstellen bijlage", "Restore Attachment" : "Herstellen bijlage",
@@ -209,6 +211,8 @@
"Select Date" : "Selecteer datum", "Select Date" : "Selecteer datum",
"Today" : "Vandaag", "Today" : "Vandaag",
"Tomorrow" : "Morgen", "Tomorrow" : "Morgen",
"Next week" : "Volgende week",
"Next month" : "Volgende maand",
"Save" : "Opslaan", "Save" : "Opslaan",
"The comment cannot be empty." : "De reactie kan niet leeg zijn.", "The comment cannot be empty." : "De reactie kan niet leeg zijn.",
"The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.", "The comment cannot be longer than 1000 characters." : "De reactie kan niet langer dan 1000 tekens zijn.",

View File

@@ -19,6 +19,8 @@ OC.L10N.register(
"Upload new files" : "Enviar fichièrs novèls", "Upload new files" : "Enviar fichièrs novèls",
"Today" : "Uèi", "Today" : "Uèi",
"Tomorrow" : "Deman", "Tomorrow" : "Deman",
"Next week" : "Setmana seguenta",
"Next month" : "Mes seguent",
"Save" : "Salvar", "Save" : "Salvar",
"Cancel reply" : "Anullar la responsa", "Cancel reply" : "Anullar la responsa",
"Reply" : "Respondre", "Reply" : "Respondre",

View File

@@ -17,6 +17,8 @@
"Upload new files" : "Enviar fichièrs novèls", "Upload new files" : "Enviar fichièrs novèls",
"Today" : "Uèi", "Today" : "Uèi",
"Tomorrow" : "Deman", "Tomorrow" : "Deman",
"Next week" : "Setmana seguenta",
"Next month" : "Mes seguent",
"Save" : "Salvar", "Save" : "Salvar",
"Cancel reply" : "Anullar la responsa", "Cancel reply" : "Anullar la responsa",
"Reply" : "Respondre", "Reply" : "Respondre",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Oczekujące udostępnienie", "Pending share" : "Oczekujące udostępnienie",
"Add this attachment" : "Dodaj ten załącznik", "Add this attachment" : "Dodaj ten załącznik",
"Show in Files" : "Pokaż w Plikach", "Show in Files" : "Pokaż w Plikach",
"Download" : "Pobierz",
"Remove attachment" : "Usuń załącznik", "Remove attachment" : "Usuń załącznik",
"Delete Attachment" : "Usuń załącznik", "Delete Attachment" : "Usuń załącznik",
"Restore Attachment" : "Przywróć załącznik", "Restore Attachment" : "Przywróć załącznik",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Oczekujące udostępnienie", "Pending share" : "Oczekujące udostępnienie",
"Add this attachment" : "Dodaj ten załącznik", "Add this attachment" : "Dodaj ten załącznik",
"Show in Files" : "Pokaż w Plikach", "Show in Files" : "Pokaż w Plikach",
"Download" : "Pobierz",
"Remove attachment" : "Usuń załącznik", "Remove attachment" : "Usuń załącznik",
"Delete Attachment" : "Usuń załącznik", "Delete Attachment" : "Usuń załącznik",
"Restore Attachment" : "Przywróć załącznik", "Restore Attachment" : "Przywróć załącznik",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Compartilhamento pendente", "Pending share" : "Compartilhamento pendente",
"Add this attachment" : "Adicionar este anexo", "Add this attachment" : "Adicionar este anexo",
"Show in Files" : "Mostrar em Arquivos", "Show in Files" : "Mostrar em Arquivos",
"Download" : "Baixar",
"Remove attachment" : "Remover anexo", "Remove attachment" : "Remover anexo",
"Delete Attachment" : "Excluir Anexo", "Delete Attachment" : "Excluir Anexo",
"Restore Attachment" : "Restaurar Anexo", "Restore Attachment" : "Restaurar Anexo",
@@ -212,6 +213,8 @@ OC.L10N.register(
"Select Date" : "Selecionar Data", "Select Date" : "Selecionar Data",
"Today" : "Hoje", "Today" : "Hoje",
"Tomorrow" : "Amanhã", "Tomorrow" : "Amanhã",
"Next week" : "Próxima semana",
"Next month" : "Próximo mês",
"Save" : "Salvar", "Save" : "Salvar",
"The comment cannot be empty." : "O comentário não pode zer vazio.", "The comment cannot be empty." : "O comentário não pode zer vazio.",
"The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Compartilhamento pendente", "Pending share" : "Compartilhamento pendente",
"Add this attachment" : "Adicionar este anexo", "Add this attachment" : "Adicionar este anexo",
"Show in Files" : "Mostrar em Arquivos", "Show in Files" : "Mostrar em Arquivos",
"Download" : "Baixar",
"Remove attachment" : "Remover anexo", "Remove attachment" : "Remover anexo",
"Delete Attachment" : "Excluir Anexo", "Delete Attachment" : "Excluir Anexo",
"Restore Attachment" : "Restaurar Anexo", "Restore Attachment" : "Restaurar Anexo",
@@ -210,6 +211,8 @@
"Select Date" : "Selecionar Data", "Select Date" : "Selecionar Data",
"Today" : "Hoje", "Today" : "Hoje",
"Tomorrow" : "Amanhã", "Tomorrow" : "Amanhã",
"Next week" : "Próxima semana",
"Next month" : "Próximo mês",
"Save" : "Salvar", "Save" : "Salvar",
"The comment cannot be empty." : "O comentário não pode zer vazio.", "The comment cannot be empty." : "O comentário não pode zer vazio.",
"The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.", "The comment cannot be longer than 1000 characters." : "O comentário não pode ter mais que 1000 caracteres.",

View File

@@ -187,6 +187,7 @@ OC.L10N.register(
"Share from Files" : "Опубликовать из приложения «Файлы»", "Share from Files" : "Опубликовать из приложения «Файлы»",
"Add this attachment" : "Добавить это вложение", "Add this attachment" : "Добавить это вложение",
"Show in Files" : "Показать в приложении «Файлы»", "Show in Files" : "Показать в приложении «Файлы»",
"Remove attachment" : "Убрать вложение",
"Delete Attachment" : "Удалить вложение", "Delete Attachment" : "Удалить вложение",
"Restore Attachment" : "Восстановить вложение", "Restore Attachment" : "Восстановить вложение",
"File to share" : "Файл для публикации", "File to share" : "Файл для публикации",
@@ -210,6 +211,8 @@ OC.L10N.register(
"Select Date" : "Выберите дату", "Select Date" : "Выберите дату",
"Today" : "Сегодня", "Today" : "Сегодня",
"Tomorrow" : "Завтра", "Tomorrow" : "Завтра",
"Next week" : "Следующая неделя",
"Next month" : "Следующий месяц",
"Save" : "Сохранить", "Save" : "Сохранить",
"The comment cannot be empty." : "Комментарий не может быть пустым.", "The comment cannot be empty." : "Комментарий не может быть пустым.",
"The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.", "The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.",

View File

@@ -185,6 +185,7 @@
"Share from Files" : "Опубликовать из приложения «Файлы»", "Share from Files" : "Опубликовать из приложения «Файлы»",
"Add this attachment" : "Добавить это вложение", "Add this attachment" : "Добавить это вложение",
"Show in Files" : "Показать в приложении «Файлы»", "Show in Files" : "Показать в приложении «Файлы»",
"Remove attachment" : "Убрать вложение",
"Delete Attachment" : "Удалить вложение", "Delete Attachment" : "Удалить вложение",
"Restore Attachment" : "Восстановить вложение", "Restore Attachment" : "Восстановить вложение",
"File to share" : "Файл для публикации", "File to share" : "Файл для публикации",
@@ -208,6 +209,8 @@
"Select Date" : "Выберите дату", "Select Date" : "Выберите дату",
"Today" : "Сегодня", "Today" : "Сегодня",
"Tomorrow" : "Завтра", "Tomorrow" : "Завтра",
"Next week" : "Следующая неделя",
"Next month" : "Следующий месяц",
"Save" : "Сохранить", "Save" : "Сохранить",
"The comment cannot be empty." : "Комментарий не может быть пустым.", "The comment cannot be empty." : "Комментарий не может быть пустым.",
"The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.", "The comment cannot be longer than 1000 characters." : "Комментарий не может быть длиннее 1 000 символов.",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Čakajúce zdeľanie", "Pending share" : "Čakajúce zdeľanie",
"Add this attachment" : "Pridať túto prílohu", "Add this attachment" : "Pridať túto prílohu",
"Show in Files" : "Zobraziť v Súboroch", "Show in Files" : "Zobraziť v Súboroch",
"Download" : "Sťahovanie",
"Remove attachment" : "Odstrániť prílohu", "Remove attachment" : "Odstrániť prílohu",
"Delete Attachment" : "Odstrániť prílohu", "Delete Attachment" : "Odstrániť prílohu",
"Restore Attachment" : "Obnoviť prílohu", "Restore Attachment" : "Obnoviť prílohu",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Čakajúce zdeľanie", "Pending share" : "Čakajúce zdeľanie",
"Add this attachment" : "Pridať túto prílohu", "Add this attachment" : "Pridať túto prílohu",
"Show in Files" : "Zobraziť v Súboroch", "Show in Files" : "Zobraziť v Súboroch",
"Download" : "Sťahovanie",
"Remove attachment" : "Odstrániť prílohu", "Remove attachment" : "Odstrániť prílohu",
"Delete Attachment" : "Odstrániť prílohu", "Delete Attachment" : "Odstrániť prílohu",
"Restore Attachment" : "Obnoviť prílohu", "Restore Attachment" : "Obnoviť prílohu",

View File

@@ -181,12 +181,13 @@ OC.L10N.register(
"Edit" : "Uredi", "Edit" : "Uredi",
"Add a new tag" : "Dodaj novo oznako", "Add a new tag" : "Dodaj novo oznako",
"title and color value must be provided" : "navedena morata biti podatka naslova in barve", "title and color value must be provided" : "navedena morata biti podatka naslova in barve",
"Board name" : "Ime zbirke", "Board name" : "Ime zbirke",
"Members" : "Člani", "Members" : "Člani",
"Upload new files" : "Pošlji nove datoteke", "Upload new files" : "Pošlji nove datoteke",
"Share from Files" : "Poveži iz oblaka", "Share from Files" : "Poveži iz oblaka",
"Add this attachment" : "Dodaj prilogo", "Add this attachment" : "Dodaj prilogo",
"Show in Files" : "Poveži iz oblaka", "Show in Files" : "Poveži iz oblaka",
"Download" : "Prejmi",
"Remove attachment" : "Odstrani prilogo", "Remove attachment" : "Odstrani prilogo",
"Delete Attachment" : "Izbriši prilogo", "Delete Attachment" : "Izbriši prilogo",
"Restore Attachment" : "Obnovi prilogo", "Restore Attachment" : "Obnovi prilogo",
@@ -211,6 +212,8 @@ OC.L10N.register(
"Select Date" : "Izbor datuma", "Select Date" : "Izbor datuma",
"Today" : "Danes", "Today" : "Danes",
"Tomorrow" : "Jutri", "Tomorrow" : "Jutri",
"Next week" : "Naslednji teden",
"Next month" : "Naslednji mesec",
"Save" : "Shrani", "Save" : "Shrani",
"The comment cannot be empty." : "Polje opombe ne sme biti prazno.", "The comment cannot be empty." : "Polje opombe ne sme biti prazno.",
"The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.", "The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.",

View File

@@ -179,12 +179,13 @@
"Edit" : "Uredi", "Edit" : "Uredi",
"Add a new tag" : "Dodaj novo oznako", "Add a new tag" : "Dodaj novo oznako",
"title and color value must be provided" : "navedena morata biti podatka naslova in barve", "title and color value must be provided" : "navedena morata biti podatka naslova in barve",
"Board name" : "Ime zbirke", "Board name" : "Ime zbirke",
"Members" : "Člani", "Members" : "Člani",
"Upload new files" : "Pošlji nove datoteke", "Upload new files" : "Pošlji nove datoteke",
"Share from Files" : "Poveži iz oblaka", "Share from Files" : "Poveži iz oblaka",
"Add this attachment" : "Dodaj prilogo", "Add this attachment" : "Dodaj prilogo",
"Show in Files" : "Poveži iz oblaka", "Show in Files" : "Poveži iz oblaka",
"Download" : "Prejmi",
"Remove attachment" : "Odstrani prilogo", "Remove attachment" : "Odstrani prilogo",
"Delete Attachment" : "Izbriši prilogo", "Delete Attachment" : "Izbriši prilogo",
"Restore Attachment" : "Obnovi prilogo", "Restore Attachment" : "Obnovi prilogo",
@@ -209,6 +210,8 @@
"Select Date" : "Izbor datuma", "Select Date" : "Izbor datuma",
"Today" : "Danes", "Today" : "Danes",
"Tomorrow" : "Jutri", "Tomorrow" : "Jutri",
"Next week" : "Naslednji teden",
"Next month" : "Naslednji mesec",
"Save" : "Shrani", "Save" : "Shrani",
"The comment cannot be empty." : "Polje opombe ne sme biti prazno.", "The comment cannot be empty." : "Polje opombe ne sme biti prazno.",
"The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.", "The comment cannot be longer than 1000 characters." : "Opomba ne sme biti daljša od 1000 znakov.",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "Bekleyen paylaşım", "Pending share" : "Bekleyen paylaşım",
"Add this attachment" : "Bu dosyayı ekle", "Add this attachment" : "Bu dosyayı ekle",
"Show in Files" : "Dosyalarda görüntüle", "Show in Files" : "Dosyalarda görüntüle",
"Download" : "İndir",
"Remove attachment" : "Ek dosyayı sil", "Remove attachment" : "Ek dosyayı sil",
"Delete Attachment" : "Ek dosyasını sil", "Delete Attachment" : "Ek dosyasını sil",
"Restore Attachment" : "Ek dosyasını geri yükle", "Restore Attachment" : "Ek dosyasını geri yükle",

View File

@@ -186,6 +186,7 @@
"Pending share" : "Bekleyen paylaşım", "Pending share" : "Bekleyen paylaşım",
"Add this attachment" : "Bu dosyayı ekle", "Add this attachment" : "Bu dosyayı ekle",
"Show in Files" : "Dosyalarda görüntüle", "Show in Files" : "Dosyalarda görüntüle",
"Download" : "İndir",
"Remove attachment" : "Ek dosyayı sil", "Remove attachment" : "Ek dosyayı sil",
"Delete Attachment" : "Ek dosyasını sil", "Delete Attachment" : "Ek dosyasını sil",
"Restore Attachment" : "Ek dosyasını geri yükle", "Restore Attachment" : "Ek dosyasını geri yükle",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "待分享", "Pending share" : "待分享",
"Add this attachment" : "添加此附件", "Add this attachment" : "添加此附件",
"Show in Files" : "在文件中显示", "Show in Files" : "在文件中显示",
"Download" : "下载",
"Remove attachment" : "删除附件", "Remove attachment" : "删除附件",
"Delete Attachment" : "删除附件", "Delete Attachment" : "删除附件",
"Restore Attachment" : "恢复附件", "Restore Attachment" : "恢复附件",

View File

@@ -186,6 +186,7 @@
"Pending share" : "待分享", "Pending share" : "待分享",
"Add this attachment" : "添加此附件", "Add this attachment" : "添加此附件",
"Show in Files" : "在文件中显示", "Show in Files" : "在文件中显示",
"Download" : "下载",
"Remove attachment" : "删除附件", "Remove attachment" : "删除附件",
"Delete Attachment" : "删除附件", "Delete Attachment" : "删除附件",
"Restore Attachment" : "恢复附件", "Restore Attachment" : "恢复附件",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "等待分享", "Pending share" : "等待分享",
"Add this attachment" : "添加此附件", "Add this attachment" : "添加此附件",
"Show in Files" : "顯示在檔案中", "Show in Files" : "顯示在檔案中",
"Download" : "下載",
"Remove attachment" : "移除附件", "Remove attachment" : "移除附件",
"Delete Attachment" : "刪除附件", "Delete Attachment" : "刪除附件",
"Restore Attachment" : "恢復附件", "Restore Attachment" : "恢復附件",

View File

@@ -186,6 +186,7 @@
"Pending share" : "等待分享", "Pending share" : "等待分享",
"Add this attachment" : "添加此附件", "Add this attachment" : "添加此附件",
"Show in Files" : "顯示在檔案中", "Show in Files" : "顯示在檔案中",
"Download" : "下載",
"Remove attachment" : "移除附件", "Remove attachment" : "移除附件",
"Delete Attachment" : "刪除附件", "Delete Attachment" : "刪除附件",
"Restore Attachment" : "恢復附件", "Restore Attachment" : "恢復附件",

View File

@@ -188,6 +188,7 @@ OC.L10N.register(
"Pending share" : "待分享", "Pending share" : "待分享",
"Add this attachment" : "新增此附件", "Add this attachment" : "新增此附件",
"Show in Files" : "在「檔案」中顯示", "Show in Files" : "在「檔案」中顯示",
"Download" : "下載",
"Remove attachment" : "移除附件", "Remove attachment" : "移除附件",
"Delete Attachment" : "刪除附件", "Delete Attachment" : "刪除附件",
"Restore Attachment" : "還原附件", "Restore Attachment" : "還原附件",
@@ -212,6 +213,8 @@ OC.L10N.register(
"Select Date" : "選擇日期", "Select Date" : "選擇日期",
"Today" : "今天", "Today" : "今天",
"Tomorrow" : "明天", "Tomorrow" : "明天",
"Next week" : "下週",
"Next month" : "下個月",
"Save" : "儲存", "Save" : "儲存",
"The comment cannot be empty." : "留言不能為空。", "The comment cannot be empty." : "留言不能為空。",
"The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。", "The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。",

View File

@@ -186,6 +186,7 @@
"Pending share" : "待分享", "Pending share" : "待分享",
"Add this attachment" : "新增此附件", "Add this attachment" : "新增此附件",
"Show in Files" : "在「檔案」中顯示", "Show in Files" : "在「檔案」中顯示",
"Download" : "下載",
"Remove attachment" : "移除附件", "Remove attachment" : "移除附件",
"Delete Attachment" : "刪除附件", "Delete Attachment" : "刪除附件",
"Restore Attachment" : "還原附件", "Restore Attachment" : "還原附件",
@@ -210,6 +211,8 @@
"Select Date" : "選擇日期", "Select Date" : "選擇日期",
"Today" : "今天", "Today" : "今天",
"Tomorrow" : "明天", "Tomorrow" : "明天",
"Next week" : "下週",
"Next month" : "下個月",
"Save" : "儲存", "Save" : "儲存",
"The comment cannot be empty." : "留言不能為空。", "The comment cannot be empty." : "留言不能為空。",
"The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。", "The comment cannot be longer than 1000 characters." : "留言不能多於 1000 個字元。",

View File

@@ -100,6 +100,9 @@ class ResourceProvider implements IProvider {
if ($board->getOwner() === $user->getUID()) { if ($board->getOwner() === $user->getUID()) {
return true; return true;
} }
if ($board->getAcl() === null) {
return false;
}
return $this->permissionService->userCan($board->getAcl(), Acl::PERMISSION_READ, $user->getUID()); return $this->permissionService->userCan($board->getAcl(), Acl::PERMISSION_READ, $user->getUID());
} }

View File

@@ -127,6 +127,9 @@ class ResourceProviderCard implements IProvider {
if ($board->getOwner() === $user->getUID()) { if ($board->getOwner() === $user->getUID()) {
return true; return true;
} }
if ($board->getAcl() === null) {
return false;
}
return $this->permissionService->userCan($board->getAcl(), Acl::PERMISSION_READ, $user->getUID()); return $this->permissionService->userCan($board->getAcl(), Acl::PERMISSION_READ, $user->getUID());
} }

View File

@@ -28,8 +28,10 @@ class Board extends RelationalEntity {
protected $owner; protected $owner;
protected $color; protected $color;
protected $archived = false; protected $archived = false;
protected $labels = []; /** @var Label[]|null */
protected $acl = []; protected $labels = null;
/** @var Acl[]|null */
protected $acl = null;
protected $permissions = []; protected $permissions = [];
protected $users = []; protected $users = [];
protected $shared; protected $shared;
@@ -61,6 +63,10 @@ class Board extends RelationalEntity {
if ($this->shared === -1) { if ($this->shared === -1) {
unset($json['shared']); unset($json['shared']);
} }
// FIXME: Ideally the API responses should follow the internal data structure and return null if the labels/acls have not been fetched from the db
// however this would be a breaking change for consumers of the API
$json['acl'] = $this->acl ?? [];
$json['labels'] = $this->labels ?? [];
return $json; return $json;
} }
@@ -68,21 +74,27 @@ class Board extends RelationalEntity {
* @param Label[] $labels * @param Label[] $labels
*/ */
public function setLabels($labels) { public function setLabels($labels) {
foreach ($labels as $l) { $this->labels = $labels;
$this->labels[] = $l;
}
} }
/** /**
* @param Acl[] $acl * @param Acl[] $acl
*/ */
public function setAcl($acl) { public function setAcl($acl) {
foreach ($acl as $a) { $this->acl = $acl;
$this->acl[] = $a;
}
} }
public function getETag() { public function getETag() {
return md5((string)$this->getLastModified()); return md5((string)$this->getLastModified());
} }
/** @returns Acl[]|null */
public function getAcl(): ?array {
return $this->acl;
}
/** @returns Label[]|null */
public function getLabels(): ?array {
return $this->labels;
}
} }

View File

@@ -25,12 +25,14 @@ namespace OCA\Deck\Db;
use OC\Cache\CappedMemoryCache; use OC\Cache\CappedMemoryCache;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IGroupManager; use OCP\IGroupManager;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
class BoardMapper extends DeckMapper implements IPermissionMapper { class BoardMapper extends QBMapper implements IPermissionMapper {
private $labelMapper; private $labelMapper;
private $aclMapper; private $aclMapper;
private $stackMapper; private $stackMapper;
@@ -40,7 +42,10 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
private $circlesEnabled; private $circlesEnabled;
/** @var CappedMemoryCache */
private $userBoardCache; private $userBoardCache;
/** @var CappedMemoryCache */
private $boardCache;
public function __construct( public function __construct(
IDBConnection $db, IDBConnection $db,
@@ -60,7 +65,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
$this->logger = $logger; $this->logger = $logger;
$this->userBoardCache = new CappedMemoryCache(); $this->userBoardCache = new CappedMemoryCache();
$this->boardCache = new CappedMemoryCache();
$this->circlesEnabled = \OC::$server->getAppManager()->isEnabledForUser('circles'); $this->circlesEnabled = \OC::$server->getAppManager()->isEnabledForUser('circles');
} }
@@ -70,40 +75,52 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
* @param $id * @param $id
* @param bool $withLabels * @param bool $withLabels
* @param bool $withAcl * @param bool $withAcl
* @return \OCP\AppFramework\Db\Entity * @return Board
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
* @throws DoesNotExistException * @throws DoesNotExistException
*/ */
public function find($id, $withLabels = false, $withAcl = false) { public function find($id, $withLabels = false, $withAcl = false): Board {
$sql = 'SELECT id, title, owner, color, archived, deleted_at, last_modified FROM `*PREFIX*deck_boards` ' . if (!isset($this->boardCache[$id])) {
'WHERE `id` = ?'; $qb = $this->db->getQueryBuilder();
$board = $this->findEntity($sql, [$id]); $qb->select('*')
->from('deck_boards')
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
->orderBy('id');
$this->boardCache[$id] = $this->findEntity($qb);
}
// FIXME is this necessary? it was NOT done with the old mapper
// $this->mapOwner($board);
// Add labels // Add labels
if ($withLabels) { if ($withLabels && $this->boardCache[$id]->getLabels() === null) {
$labels = $this->labelMapper->findAll($id); $labels = $this->labelMapper->findAll($id);
$board->setLabels($labels); $this->boardCache[$id]->setLabels($labels);
} }
// Add acl // Add acl
if ($withAcl) { if ($withAcl && $this->boardCache[$id]->getAcl() === null) {
$acl = $this->aclMapper->findAll($id); $acl = $this->aclMapper->findAll($id);
$board->setAcl($acl); $this->boardCache[$id]->setAcl($acl);
} }
return $board; return $this->boardCache[$id];
} }
public function findAllForUser(string $userId, int $since = -1, $includeArchived = true): array { public function findAllForUser(string $userId, ?int $since = null, bool $includeArchived = true, ?int $before = null,
$useCache = ($since === -1 && $includeArchived === true); ?string $term = null): array {
$useCache = ($since === -1 && $includeArchived === true && $before === null && $term === null);
if (!isset($this->userBoardCache[$userId]) || !$useCache) { if (!isset($this->userBoardCache[$userId]) || !$useCache) {
$groups = $this->groupManager->getUserGroupIds( $groups = $this->groupManager->getUserGroupIds(
$this->userManager->get($userId) $this->userManager->get($userId)
); );
$userBoards = $this->findAllByUser($userId, null, null, $since, $includeArchived); $userBoards = $this->findAllByUser($userId, null, null, $since, $includeArchived, $before, $term);
$groupBoards = $this->findAllByGroups($userId, $groups, null, null, $since, $includeArchived); $groupBoards = $this->findAllByGroups($userId, $groups, null, null, $since, $includeArchived, $before, $term);
$circleBoards = $this->findAllByCircles($userId, null, null, $since, $includeArchived); $circleBoards = $this->findAllByCircles($userId, null, null, $since, $includeArchived, $before, $term);
$allBoards = array_unique(array_merge($userBoards, $groupBoards, $circleBoards)); $allBoards = array_unique(array_merge($userBoards, $groupBoards, $circleBoards));
foreach ($allBoards as $board) {
$this->boardCache[$board->getId()] = $board;
}
if ($useCache) { if ($useCache) {
$this->userBoardCache[$userId] = $allBoards; $this->userBoardCache[$userId] = $allBoards;
} }
@@ -120,19 +137,91 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
* @param null $offset * @param null $offset
* @return array * @return array
*/ */
public function findAllByUser($userId, $limit = null, $offset = null, $since = -1, $includeArchived = true) { public function findAllByUser(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
// FIXME: One moving to QBMapper we should allow filtering the boards probably by method chaining for additional where clauses bool $includeArchived = true, ?int $before = null, ?string $term = null) {
$sql = 'SELECT id, title, owner, color, archived, deleted_at, 0 as shared, last_modified FROM `*PREFIX*deck_boards` WHERE owner = ? AND last_modified > ?'; // FIXME this used to be a UNION to get boards owned by $userId and the user shares in one single query
// Is it possible with the query builder?
$qb = $this->db->getQueryBuilder();
$qb->select('id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
// this does not work in MySQL/PostgreSQL
//->selectAlias('0', 'shared')
->from('deck_boards', 'b')
->where($qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)));
if (!$includeArchived) { if (!$includeArchived) {
$sql .= ' AND NOT archived AND deleted_at = 0'; $qb->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
} }
$sql .= ' UNION ' . if ($since !== null) {
'SELECT boards.id, title, owner, color, archived, deleted_at, 1 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' . $qb->andWhere($qb->expr()->gt('last_modified', $qb->createNamedParameter($since, IQueryBuilder::PARAM_INT)));
'JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=? AND boards.owner != ? AND last_modified > ?'; }
if ($before !== null) {
$qb->andWhere($qb->expr()->lt('last_modified', $qb->createNamedParameter($before, IQueryBuilder::PARAM_INT)));
}
if ($term !== null) {
$qb->andWhere(
$qb->expr()->iLike(
'title',
$qb->createNamedParameter(
'%' . $this->db->escapeLikeParameter($term) . '%',
IQueryBuilder::PARAM_STR
)
)
);
}
$qb->orderBy('b.id');
if ($limit !== null) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
$qb->setFirstResult($offset);
}
$entries = $this->findEntities($qb);
foreach ($entries as $entry) {
$entry->setShared(0);
}
// shared with user
$qb->resetQueryParts();
$qb->select('b.id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
//->selectAlias('1', 'shared')
->from('deck_boards', 'b')
->innerJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id'))
->where($qb->expr()->eq('acl.participant', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)))
->andWhere($qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_USER, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->neq('b.owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)));
if (!$includeArchived) { if (!$includeArchived) {
$sql .= ' AND NOT archived AND deleted_at = 0'; $qb->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
} }
$entries = $this->findEntities($sql, [$userId, $since, $userId, Acl::PERMISSION_TYPE_USER, $userId, $since], $limit, $offset); if ($since !== null) {
$qb->andWhere($qb->expr()->gt('last_modified', $qb->createNamedParameter($since, IQueryBuilder::PARAM_INT)));
}
if ($before !== null) {
$qb->andWhere($qb->expr()->lt('last_modified', $qb->createNamedParameter($before, IQueryBuilder::PARAM_INT)));
}
if ($term !== null) {
$qb->andWhere(
$qb->expr()->iLike(
'title',
$qb->createNamedParameter(
'%' . $this->db->escapeLikeParameter($term) . '%',
IQueryBuilder::PARAM_STR
)
)
);
}
$qb->orderBy('b.id');
if ($limit !== null) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
$qb->setFirstResult($offset);
}
$sharedEntries = $this->findEntities($qb);
foreach ($sharedEntries as $entry) {
$entry->setShared(1);
}
$entries = array_merge($entries, $sharedEntries);
/* @var Board $entry */ /* @var Board $entry */
foreach ($entries as $entry) { foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id); $acl = $this->aclMapper->findAll($entry->id);
@@ -141,9 +230,19 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return $entries; return $entries;
} }
public function findAllByOwner(string $userId, int $limit = null, int $offset = null) { public function findAllByOwner(string $userId, ?int $limit = null, ?int $offset = null) {
$sql = 'SELECT * FROM `*PREFIX*deck_boards` WHERE owner = ?'; $qb = $this->db->getQueryBuilder();
return $this->findEntities($sql, [$userId], $limit, $offset); $qb->select('*')
->from('deck_boards')
->where($qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)))
->orderBy('id');
if ($limit !== null) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
$qb->setFirstResult($offset);
}
return $this->findEntities($qb);
} }
/** /**
@@ -155,23 +254,57 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
* @param null $offset * @param null $offset
* @return array * @return array
*/ */
public function findAllByGroups($userId, $groups, $limit = null, $offset = null, $since = -1,$includeArchived = true) { public function findAllByGroups(string $userId, array $groups, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null) {
if (count($groups) <= 0) { if (count($groups) <= 0) {
return []; return [];
} }
$sql = 'SELECT boards.id, title, owner, color, archived, deleted_at, 2 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' . $qb = $this->db->getQueryBuilder();
'INNER JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE owner != ? AND type=? AND ('; $qb->select('b.id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
//->selectAlias('2', 'shared')
->from('deck_boards', 'b')
->innerJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id'))
->where($qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_GROUP, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->neq('b.owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)));
$or = $qb->expr()->orx();
for ($i = 0, $iMax = count($groups); $i < $iMax; $i++) { for ($i = 0, $iMax = count($groups); $i < $iMax; $i++) {
$sql .= 'acl.participant = ? '; $or->add(
if (count($groups) > 1 && $i < count($groups) - 1) { $qb->expr()->eq('acl.participant', $qb->createNamedParameter($groups[$i], IQueryBuilder::PARAM_STR))
$sql .= ' OR '; );
}
} }
$sql .= ')'; $qb->andWhere($or);
if (!$includeArchived) { if (!$includeArchived) {
$sql .= ' AND NOT archived AND deleted_at = 0'; $qb->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
}
if ($since !== null) {
$qb->andWhere($qb->expr()->gt('last_modified', $qb->createNamedParameter($since, IQueryBuilder::PARAM_INT)));
}
if ($before !== null) {
$qb->andWhere($qb->expr()->lt('last_modified', $qb->createNamedParameter($before, IQueryBuilder::PARAM_INT)));
}
if ($term !== null) {
$qb->andWhere(
$qb->expr()->iLike(
'title',
$qb->createNamedParameter(
'%' . $this->db->escapeLikeParameter($term) . '%',
IQueryBuilder::PARAM_STR
)
)
);
}
$qb->orderBy('b.id');
if ($limit !== null) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
$qb->setFirstResult($offset);
}
$entries = $this->findEntities($qb);
foreach ($entries as $entry) {
$entry->setShared(2);
} }
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_GROUP], $groups), $limit, $offset);
/* @var Board $entry */ /* @var Board $entry */
foreach ($entries as $entry) { foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id); $acl = $this->aclMapper->findAll($entry->id);
@@ -180,7 +313,8 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return $entries; return $entries;
} }
public function findAllByCircles($userId, $limit = null, $offset = null, $since = -1,$includeArchived = true) { public function findAllByCircles(string $userId, ?int $limit = null, ?int $offset = null, ?int $since = null,
bool $includeArchived = true, ?int $before = null, ?string $term = null) {
if (!$this->circlesEnabled) { if (!$this->circlesEnabled) {
return []; return [];
} }
@@ -191,19 +325,52 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return []; return [];
} }
$sql = 'SELECT boards.id, title, owner, color, archived, deleted_at, 2 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' . $qb = $this->db->getQueryBuilder();
'INNER JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE owner != ? AND type=? AND ('; $qb->select('b.id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
//->selectAlias('2', 'shared')
->from('deck_boards', 'b')
->innerJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id'))
->where($qb->expr()->eq('acl.type', $qb->createNamedParameter(Acl::PERMISSION_TYPE_CIRCLE, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->neq('b.owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR)));
$or = $qb->expr()->orx();
for ($i = 0, $iMax = count($circles); $i < $iMax; $i++) { for ($i = 0, $iMax = count($circles); $i < $iMax; $i++) {
$sql .= 'acl.participant = ? '; $or->add(
if (count($circles) > 1 && $i < count($circles) - 1) { $qb->expr()->eq('acl.participant', $qb->createNamedParameter($circles[$i], IQueryBuilder::PARAM_STR))
$sql .= ' OR '; );
}
} }
$sql .= ')'; $qb->andWhere($or);
if (!$includeArchived) { if (!$includeArchived) {
$sql .= ' AND NOT archived AND deleted_at = 0'; $qb->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
}
if ($since !== null) {
$qb->andWhere($qb->expr()->gt('last_modified', $qb->createNamedParameter($since, IQueryBuilder::PARAM_INT)));
}
if ($before !== null) {
$qb->andWhere($qb->expr()->lt('last_modified', $qb->createNamedParameter($before, IQueryBuilder::PARAM_INT)));
}
if ($term !== null) {
$qb->andWhere(
$qb->expr()->iLike(
'title',
$qb->createNamedParameter(
'%' . $this->db->escapeLikeParameter($term) . '%',
IQueryBuilder::PARAM_STR
)
)
);
}
$qb->orderBy('b.id');
if ($limit !== null) {
$qb->setMaxResults($limit);
}
if ($offset !== null) {
$qb->setFirstResult($offset);
}
$entries = $this->findEntities($qb);
foreach ($entries as $entry) {
$entry->setShared(2);
} }
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_CIRCLE], $circles), $limit, $offset);
/* @var Board $entry */ /* @var Board $entry */
foreach ($entries as $entry) { foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id); $acl = $this->aclMapper->findAll($entry->id);
@@ -212,21 +379,26 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return $entries; return $entries;
} }
public function findAll() { public function findAll(): array {
$sql = 'SELECT id from *PREFIX*deck_boards;'; $qb = $this->db->getQueryBuilder();
return $this->findEntities($sql); $qb->select('id')
->from('deck_boards');
return $this->findEntities($qb);
} }
public function findToDelete() { public function findToDelete() {
// add buffer of 5 min // add buffer of 5 min
$timeLimit = time() - (60 * 5); $timeLimit = time() - (60 * 5);
$sql = 'SELECT id, title, owner, color, archived, deleted_at, last_modified FROM `*PREFIX*deck_boards` ' . $qb = $this->db->getQueryBuilder();
'WHERE `deleted_at` > 0 AND `deleted_at` < ?'; $qb->select('id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
return $this->findEntities($sql, [$timeLimit]); ->from('deck_boards')
->where($qb->expr()->gt('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->lt('deleted_at', $qb->createNamedParameter($timeLimit, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
} }
public function delete(/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ public function delete(/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
\OCP\AppFramework\Db\Entity $entity) { \OCP\AppFramework\Db\Entity $entity): \OCP\AppFramework\Db\Entity {
// delete acl // delete acl
$acl = $this->aclMapper->findAll($entity->getId()); $acl = $this->aclMapper->findAll($entity->getId());
foreach ($acl as $item) { foreach ($acl as $item) {

View File

@@ -30,6 +30,8 @@ use OCA\Deck\Search\Query\SearchQuery;
use OCP\AppFramework\Db\Entity; use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\QBMapper; use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IGroupManager; use OCP\IGroupManager;
use OCP\IUser; use OCP\IUser;
@@ -46,6 +48,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
private $groupManager; private $groupManager;
/** @var IManager */ /** @var IManager */
private $notificationManager; private $notificationManager;
/** @var ICache */
private $cache;
private $databaseType; private $databaseType;
private $database4ByteSupport; private $database4ByteSupport;
@@ -55,6 +59,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
IUserManager $userManager, IUserManager $userManager,
IGroupManager $groupManager, IGroupManager $groupManager,
IManager $notificationManager, IManager $notificationManager,
ICacheFactory $cacheFactory,
$databaseType = 'sqlite3', $databaseType = 'sqlite3',
$database4ByteSupport = true $database4ByteSupport = true
) { ) {
@@ -63,6 +68,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
$this->userManager = $userManager; $this->userManager = $userManager;
$this->groupManager = $groupManager; $this->groupManager = $groupManager;
$this->notificationManager = $notificationManager; $this->notificationManager = $notificationManager;
$this->cache = $cacheFactory->createDistributed('deck-cardMapper');
$this->databaseType = $databaseType; $this->databaseType = $databaseType;
$this->database4ByteSupport = $database4ByteSupport; $this->database4ByteSupport = $database4ByteSupport;
} }
@@ -75,7 +81,9 @@ class CardMapper extends QBMapper implements IPermissionMapper {
$description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription()); $description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription());
$entity->setDescription($description); $entity->setDescription($description);
} }
return parent::insert($entity); $entity = parent::insert($entity);
$this->cache->remove('findBoardId:' . $entity->getId());
return $entity;
} }
public function update(Entity $entity, $updateModified = true): Entity { public function update(Entity $entity, $updateModified = true): Entity {
@@ -107,6 +115,10 @@ class CardMapper extends QBMapper implements IPermissionMapper {
} catch (Exception $e) { } catch (Exception $e) {
} }
} }
// Invalidate cache when the card may be moved to a different board
if (isset($updatedFields['stackId'])) {
$this->cache->remove('findBoardId:' . $entity->getId());
}
return parent::update($entity); return parent::update($entity);
} }
@@ -479,8 +491,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
} }
return $qb->createNamedParameter($dateTime, IQueryBuilder::PARAM_DATE); return $qb->createNamedParameter($dateTime, IQueryBuilder::PARAM_DATE);
} }
public function searchRaw($boardIds, $term, $limit = null, $offset = null) { public function searchRaw($boardIds, $term, $limit = null, $offset = null) {
$qb = $this->queryCardsByBoards($boardIds) $qb = $this->queryCardsByBoards($boardIds)
@@ -506,9 +518,8 @@ class CardMapper extends QBMapper implements IPermissionMapper {
} }
public function delete(Entity $entity): Entity { public function delete(Entity $entity): Entity {
// delete assigned labels
$this->labelMapper->deleteLabelAssignmentsForCard($entity->getId()); $this->labelMapper->deleteLabelAssignmentsForCard($entity->getId());
// delete card $this->cache->remove('findBoardId:' . $entity->getId());
return parent::delete($entity); return parent::delete($entity);
} }
@@ -547,11 +558,22 @@ class CardMapper extends QBMapper implements IPermissionMapper {
} }
public function findBoardId($id): ?int { public function findBoardId($id): ?int {
$sql = 'SELECT id FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_stacks` WHERE id IN (SELECT stack_id FROM `*PREFIX*deck_cards` WHERE id = ?))'; $result = $this->cache->get('findBoardId:' . $id);
$stmt = $this->db->prepare($sql); if ($result === null) {
$stmt->bindParam(1, $id, \PDO::PARAM_INT); try {
$stmt->execute(); $qb = $this->db->getQueryBuilder();
return $stmt->fetchColumn() ?? null; $qb->select('board_id')
->from('deck_stacks', 's')
->innerJoin('s', 'deck_cards', 'c', 'c.stack_id = s.id')
->where($qb->expr()->eq('c.id', $qb->createNamedParameter($id)));
$queryResult = $qb->executeQuery();
$result = $queryResult->fetchOne();
} catch (\Exception $e) {
$result = false;
}
$this->cache->set('findBoardId:' . $id, $result);
}
return $result !== false ? $result : null;
} }
public function mapOwner(Card &$card) { public function mapOwner(Card &$card) {

View File

@@ -139,6 +139,6 @@ class DeckProvider implements IProvider {
$cardTimestamps = array_map(function (Card $card) { $cardTimestamps = array_map(function (Card $card) {
return $card->getLastModified(); return $card->getLastModified();
}, $cards); }, $cards);
return (min($boardTimestamps) ?: '') . '|' . (min($cardTimestamps) ?: ''); return (count($boardTimestamps) > 0 ? min($boardTimestamps) : '') . '|' . (count($cardTimestamps) > 0 ? min($cardTimestamps) : '');
} }
} }

View File

@@ -118,8 +118,9 @@ class BoardService {
/** /**
* Get all boards that are shared with a user, their groups or circles * Get all boards that are shared with a user, their groups or circles
*/ */
public function getUserBoards(int $since = -1, bool $includeArchived = true): array { public function getUserBoards(?int $since = null, bool $includeArchived = true, ?int $before = null,
return $this->boardMapper->findAllForUser($this->userId, $since, $includeArchived); ?string $term = null): array {
return $this->boardMapper->findAllForUser($this->userId, $since, $includeArchived, $before, $term);
} }
/** /**
@@ -178,9 +179,11 @@ class BoardService {
/** @var Board $board */ /** @var Board $board */
$board = $this->boardMapper->find($boardId, true, true); $board = $this->boardMapper->find($boardId, true, true);
$this->boardMapper->mapOwner($board); $this->boardMapper->mapOwner($board);
foreach ($board->getAcl() as &$acl) { if ($board->getAcl() !== null) {
if ($acl !== null) { foreach ($board->getAcl() as $acl) {
$this->boardMapper->mapAcl($acl); if ($acl !== null) {
$this->boardMapper->mapAcl($acl);
}
} }
} }
$permissions = $this->permissionService->matchPermissions($board); $permissions = $this->permissionService->matchPermissions($board);

View File

@@ -59,7 +59,7 @@ class FullTextSearchService {
/** @var CardMapper */ /** @var CardMapper */
private $cardMapper; private $cardMapper;
public function __construct( public function __construct(
BoardMapper $boardMapper, StackMapper $stackMapper, CardMapper $cardMapper BoardMapper $boardMapper, StackMapper $stackMapper, CardMapper $cardMapper
) { ) {
@@ -187,6 +187,6 @@ class FullTextSearchService {
* @return Board[] * @return Board[]
*/ */
private function getBoardsFromUser(string $userId): array { private function getBoardsFromUser(string $userId): array {
return $this->boardMapper->findAllByUser($userId, null, null, -1); return $this->boardMapper->findAllByUser($userId, null, null, null);
} }
} }

View File

@@ -117,7 +117,7 @@ class PermissionService {
*/ */
public function matchPermissions(Board $board) { public function matchPermissions(Board $board) {
$owner = $this->userIsBoardOwner($board->getId()); $owner = $this->userIsBoardOwner($board->getId());
$acls = $board->getAcl(); $acls = $board->getAcl() ?? [];
return [ return [
Acl::PERMISSION_READ => $owner || $this->userCan($acls, Acl::PERMISSION_READ), Acl::PERMISSION_READ => $owner || $this->userCan($acls, Acl::PERMISSION_READ),
Acl::PERMISSION_EDIT => $owner || $this->userCan($acls, Acl::PERMISSION_EDIT), Acl::PERMISSION_EDIT => $owner || $this->userCan($acls, Acl::PERMISSION_EDIT),
@@ -155,7 +155,7 @@ class PermissionService {
} }
try { try {
$acls = $this->getBoard($boardId)->getAcl(); $acls = $this->getBoard($boardId)->getAcl() ?? [];
$result = $this->userCan($acls, $permission, $userId); $result = $this->userCan($acls, $permission, $userId);
if ($result) { if ($result) {
return true; return true;

View File

@@ -90,25 +90,19 @@ class SearchService {
} }
public function searchBoards(string $term, ?int $limit, ?int $cursor): array { public function searchBoards(string $term, ?int $limit, ?int $cursor): array {
$boards = $this->boardService->getUserBoards(); $boards = $this->boardService->getUserBoards(null, true, $cursor, mb_strtolower($term));
// get boards that have a lastmodified date which is lower than the cursor
// and which match the search term
$filteredBoards = array_filter($boards, static function (Board $board) use ($term, $cursor) {
return (
($cursor === null || $board->getLastModified() < $cursor)
&& mb_stripos(mb_strtolower($board->getTitle()), mb_strtolower($term)) > -1
);
});
// sort the boards, recently modified first // sort the boards, recently modified first
usort($filteredBoards, function ($boardA, $boardB) { usort($boards, function ($boardA, $boardB) {
$ta = $boardA->getLastModified(); $ta = $boardA->getLastModified();
$tb = $boardB->getLastModified(); $tb = $boardB->getLastModified();
return $ta === $tb return $ta === $tb
? 0 ? 0
: ($ta > $tb ? -1 : 1); : ($ta > $tb ? -1 : 1);
}); });
// limit the number of results // limit the number of results
return array_slice($filteredBoards, 0, $limit); return array_slice($boards, 0, $limit);
} }
public function searchComments(string $term, ?int $limit = null, ?int $cursor = null): array { public function searchComments(string $term, ?int $limit = null, ?int $cursor = null): array {

10781
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"name": "deck", "name": "deck",
"description": "", "description": "",
"version": "1.5.4", "version": "1.7.0-beta1",
"authors": [ "authors": [
{ {
"name": "Julius Härtl", "name": "Julius Härtl",
@@ -29,24 +29,25 @@
}, },
"dependencies": { "dependencies": {
"@babel/polyfill": "^7.12.1", "@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.14.6", "@babel/runtime": "^7.16.3",
"@juliushaertl/vue-richtext": "^1.0.1", "@juliushaertl/vue-richtext": "^1.0.1",
"@nextcloud/auth": "^1.3.0", "@nextcloud/auth": "^1.3.0",
"@nextcloud/axios": "^1.6.0", "@nextcloud/axios": "^1.8.0",
"@nextcloud/dialogs": "^3.1.2", "@nextcloud/dialogs": "^3.1.2",
"@nextcloud/event-bus": "^2.0.0", "@nextcloud/event-bus": "^2.1.1",
"@nextcloud/files": "^2.0.0", "@nextcloud/files": "^2.1.0",
"@nextcloud/initial-state": "^1.2.0", "@nextcloud/initial-state": "^1.2.1",
"@nextcloud/l10n": "^1.4.1", "@nextcloud/l10n": "^1.4.1",
"@nextcloud/moment": "^1.1.1", "@nextcloud/moment": "^1.1.1",
"@nextcloud/router": "^2.0.0", "@nextcloud/router": "^2.0.0",
"@nextcloud/vue": "^3.10.1", "@nextcloud/vue": "^4.2.0",
"@nextcloud/vue-dashboard": "^2.0.1", "@nextcloud/vue-dashboard": "^2.0.1",
"blueimp-md5": "^2.18.0", "blueimp-md5": "^2.19.0",
"dompurify": "^2.2.9", "dompurify": "^2.3.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"markdown-it": "^12.0.6", "markdown-it": "^12.2.0",
"markdown-it-task-lists": "^2.1.1", "markdown-it-task-lists": "^2.1.1",
"markdown-it-link-attributes": "^3.0.0",
"moment": "^2.29.1", "moment": "^2.29.1",
"nextcloud-vue-collections": "^0.9.0", "nextcloud-vue-collections": "^0.9.0",
"p-queue": "^6.6.2", "p-queue": "^6.6.2",
@@ -54,9 +55,9 @@
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-at": "^2.5.0-beta.2", "vue-at": "^2.5.0-beta.2",
"vue-click-outside": "^1.1.0", "vue-click-outside": "^1.1.0",
"vue-easymde": "^1.4.0", "vue-easymde": "^2.0.0",
"vue-infinite-loading": "^2.4.5", "vue-infinite-loading": "^2.4.5",
"vue-router": "^3.5.1", "vue-router": "^3.5.3",
"vue-smooth-dnd": "^0.8.1", "vue-smooth-dnd": "^0.8.1",
"vuex": "^3.6.2", "vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0" "vuex-router-sync": "^5.0.0"
@@ -65,18 +66,18 @@
"extends @nextcloud/browserslist-config" "extends @nextcloud/browserslist-config"
], ],
"engines": { "engines": {
"node": ">=14.0.0", "node": "^14.0.0",
"npm": ">=7.0.0" "npm": "^7.0.0"
}, },
"devDependencies": { "devDependencies": {
"@nextcloud/babel-config": "^1.0.0-beta.1", "@nextcloud/babel-config": "^1.0.0",
"@nextcloud/browserslist-config": "^2.1.0", "@nextcloud/browserslist-config": "^2.2.0",
"@nextcloud/eslint-config": "^5.1.0", "@nextcloud/eslint-config": "^6.1.1",
"@nextcloud/stylelint-config": "^1.0.0-beta.0", "@nextcloud/stylelint-config": "^1.0.0-beta.0",
"@nextcloud/webpack-vue-config": "^4.0.3", "@nextcloud/webpack-vue-config": "^4.1.4",
"@relative-ci/agent": "^2.0.0", "@relative-ci/agent": "^3.0.0",
"@vue/test-utils": "^1.2.1", "@vue/test-utils": "^1.3.0",
"jest": "^27.0.4", "jest": "^27.3.1",
"jest-serializer-vue": "^2.0.2", "jest-serializer-vue": "^2.0.2",
"vue-jest": "^3.0.7" "vue-jest": "^3.0.7"
}, },
@@ -96,4 +97,4 @@
"<rootDir>/node_modules/jest-serializer-vue" "<rootDir>/node_modules/jest-serializer-vue"
] ]
} }
} }

View File

@@ -59,6 +59,11 @@ export default {
Content, Content,
AppContent, AppContent,
}, },
provide() {
return {
boardApi,
}
},
data() { data() {
return { return {
addButton: { addButton: {
@@ -112,11 +117,6 @@ export default {
this.$router.push({ name: 'board' }) this.$router.push({ name: 'board' })
}, },
}, },
provide() {
return {
boardApi,
}
},
} }
</script> </script>

View File

@@ -76,110 +76,108 @@
<ActionButton v-else icon="icon-filter" /> <ActionButton v-else icon="icon-filter" />
</Actions> </Actions>
<template> <div v-if="filterVisible" class="filter">
<div v-if="filterVisible" class="filter"> <h3>{{ t('deck', 'Filter by tag') }}</h3>
<h3>{{ t('deck', 'Filter by tag') }}</h3> <div v-for="label in labelsSorted" :key="label.id" class="filter--item">
<div v-for="label in labelsSorted" :key="label.id" class="filter--item"> <input
<input :id="label.id"
:id="label.id" v-model="filter.tags"
v-model="filter.tags" type="checkbox"
type="checkbox" class="checkbox"
class="checkbox" :value="label.id"
:value="label.id" @change="setFilter">
@change="setFilter"> <label :for="label.id"><span class="label" :style="labelStyle(label)">{{ label.title }}</span></label>
<label :for="label.id"><span class="label" :style="labelStyle(label)">{{ label.title }}</span></label>
</div>
<h3>{{ t('deck', 'Filter by assigned user') }}</h3>
<div class="filter--item">
<input
id="unassigned"
v-model="filter.unassigned"
type="checkbox"
class="checkbox"
value="unassigned"
@change="setFilter"
@click="beforeSetFilter">
<label for="unassigned">{{ t('deck', 'Unassigned') }}</label>
</div>
<div v-for="user in board.users" :key="user.uid" class="filter--item">
<input
:id="user.uid"
v-model="filter.users"
type="checkbox"
class="checkbox"
:value="user.uid"
@change="setFilter">
<label :for="user.uid"><Avatar :user="user.uid" :size="24" :disable-menu="true" /> {{ user.displayname }}</label>
</div>
<h3>{{ t('deck', 'Filter by due date') }}</h3>
<div class="filter--item">
<input
id="overdue"
v-model="filter.due"
type="radio"
class="radio"
value="overdue"
@change="setFilter"
@click="beforeSetFilter">
<label for="overdue">{{ t('deck', 'Overdue') }}</label>
</div>
<div class="filter--item">
<input
id="dueToday"
v-model="filter.due"
type="radio"
class="radio"
value="dueToday"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueToday">{{ t('deck', 'Next 24 hours') }}</label>
</div>
<div class="filter--item">
<input
id="dueWeek"
v-model="filter.due"
type="radio"
class="radio"
value="dueWeek"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueWeek">{{ t('deck', 'Next 7 days') }}</label>
</div>
<div class="filter--item">
<input
id="dueMonth"
v-model="filter.due"
type="radio"
class="radio"
value="dueMonth"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueMonth">{{ t('deck', 'Next 30 days') }}</label>
</div>
<div class="filter--item">
<input
id="noDue"
v-model="filter.due"
type="radio"
class="radio"
value="noDue"
@change="setFilter"
@click="beforeSetFilter">
<label for="noDue">{{ t('deck', 'No due date') }}</label>
</div>
<Button :disabled="!isFilterActive" @click="clearFilter">
{{ t('deck', 'Clear filter') }}
</Button>
</div> </div>
</template>
<h3>{{ t('deck', 'Filter by assigned user') }}</h3>
<div class="filter--item">
<input
id="unassigned"
v-model="filter.unassigned"
type="checkbox"
class="checkbox"
value="unassigned"
@change="setFilter"
@click="beforeSetFilter">
<label for="unassigned">{{ t('deck', 'Unassigned') }}</label>
</div>
<div v-for="user in board.users" :key="user.uid" class="filter--item">
<input
:id="user.uid"
v-model="filter.users"
type="checkbox"
class="checkbox"
:value="user.uid"
@change="setFilter">
<label :for="user.uid"><Avatar :user="user.uid" :size="24" :disable-menu="true" /> {{ user.displayname }}</label>
</div>
<h3>{{ t('deck', 'Filter by due date') }}</h3>
<div class="filter--item">
<input
id="overdue"
v-model="filter.due"
type="radio"
class="radio"
value="overdue"
@change="setFilter"
@click="beforeSetFilter">
<label for="overdue">{{ t('deck', 'Overdue') }}</label>
</div>
<div class="filter--item">
<input
id="dueToday"
v-model="filter.due"
type="radio"
class="radio"
value="dueToday"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueToday">{{ t('deck', 'Next 24 hours') }}</label>
</div>
<div class="filter--item">
<input
id="dueWeek"
v-model="filter.due"
type="radio"
class="radio"
value="dueWeek"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueWeek">{{ t('deck', 'Next 7 days') }}</label>
</div>
<div class="filter--item">
<input
id="dueMonth"
v-model="filter.due"
type="radio"
class="radio"
value="dueMonth"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueMonth">{{ t('deck', 'Next 30 days') }}</label>
</div>
<div class="filter--item">
<input
id="noDue"
v-model="filter.due"
type="radio"
class="radio"
value="noDue"
@change="setFilter"
@click="beforeSetFilter">
<label for="noDue">{{ t('deck', 'No due date') }}</label>
</div>
<Button :disabled="!isFilterActive" @click="clearFilter">
{{ t('deck', 'Clear filter') }}
</Button>
</div>
</Popover> </Popover>
<Actions> <Actions>

View File

@@ -43,24 +43,22 @@
<li v-if="addLabel" class="editing"> <li v-if="addLabel" class="editing">
<!-- New Tag --> <!-- New Tag -->
<template> <form class="label-form" @submit.prevent="clickAddLabel">
<form class="label-form" @submit.prevent="clickAddLabel"> <ColorPicker class="color-picker-wrapper" :value="'#' + addLabelObj.color" @input="updateColor">
<ColorPicker class="color-picker-wrapper" :value="'#' + addLabelObj.color" @input="updateColor"> <div :style="{ backgroundColor: '#' + addLabelObj.color }" class="color0 icon-colorpicker" />
<div :style="{ backgroundColor: '#' + addLabelObj.color }" class="color0 icon-colorpicker" /> </ColorPicker>
</ColorPicker> <input v-model="addLabelObj.title" type="text">
<input v-model="addLabelObj.title" type="text"> <input v-tooltip="{content: missingDataLabel, show: !addLabelObjValidated, trigger: 'manual' }"
<input v-tooltip="{content: missingDataLabel, show: !addLabelObjValidated, trigger: 'manual' }" :disabled="!addLabelObjValidated"
:disabled="!addLabelObjValidated" type="submit"
type="submit" value=""
value="" class="icon-confirm">
class="icon-confirm"> <Actions>
<Actions> <ActionButton icon="icon-close" @click="addLabel=false">
<ActionButton icon="icon-close" @click="addLabel=false"> {{ t('deck', 'Cancel') }}
{{ t('deck', 'Cancel') }} </ActionButton>
</ActionButton> </Actions>
</Actions> </form>
</form>
</template>
</li> </li>
<button v-if="canManage && !isArchived" @click="clickShowAddLabel()"> <button v-if="canManage && !isArchived" @click="clickShowAddLabel()">
<span class="icon-add" />{{ t('deck', 'Add a new tag') }} <span class="icon-add" />{{ t('deck', 'Add a new tag') }}

View File

@@ -22,7 +22,7 @@
<template> <template>
<AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar"> <AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar">
<div class="button-group" v-if="!isReadOnly"> <div v-if="!isReadOnly" class="button-group">
<button class="icon-upload" @click="uploadNewFile()"> <button class="icon-upload" @click="uploadNewFile()">
{{ t('deck', 'Upload new files') }} {{ t('deck', 'Upload new files') }}
</button> </button>
@@ -71,7 +71,7 @@
</a> </a>
</div> </div>
<Actions v-if="selectable"> <Actions v-if="selectable">
<ActionButton icon="icon-confirm" @click="$emit('selectAttachment', attachment)"> <ActionButton icon="icon-confirm" @click="$emit('select-attachment', attachment)">
{{ t('deck', 'Add this attachment') }} {{ t('deck', 'Add this attachment') }}
</ActionButton> </ActionButton>
</Actions> </Actions>
@@ -79,14 +79,20 @@
<ActionLink v-if="attachment.extendedData.fileid" icon="icon-folder" :href="internalLink(attachment)"> <ActionLink v-if="attachment.extendedData.fileid" icon="icon-folder" :href="internalLink(attachment)">
{{ t('deck', 'Show in Files') }} {{ t('deck', 'Show in Files') }}
</ActionLink> </ActionLink>
<ActionLink v-if="attachment.extendedData.fileid"
icon="icon-download"
:href="downloadLink(attachment)"
download>
{{ t('deck', 'Download') }}
</ActionLink>
<ActionButton v-if="attachment.extendedData.fileid && !isReadOnly" icon="icon-delete" @click="unshareAttachment(attachment)"> <ActionButton v-if="attachment.extendedData.fileid && !isReadOnly" icon="icon-delete" @click="unshareAttachment(attachment)">
{{ t('deck', 'Remove attachment') }} {{ t('deck', 'Remove attachment') }}
</ActionButton> </ActionButton>
<ActionButton v-if="!attachment.extendedData.fileid && attachment.deletedAt === 0" icon="icon-delete" @click="$emit('deleteAttachment', attachment)"> <ActionButton v-if="!attachment.extendedData.fileid && attachment.deletedAt === 0" icon="icon-delete" @click="$emit('delete-attachment', attachment)">
{{ t('deck', 'Delete Attachment') }} {{ t('deck', 'Delete Attachment') }}
</ActionButton> </ActionButton>
<ActionButton v-else-if="!attachment.extendedData.fileid" icon="icon-history" @click="$emit('restoreAttachment', attachment)"> <ActionButton v-else-if="!attachment.extendedData.fileid" icon="icon-history" @click="$emit('restore-attachment', attachment)">
{{ t('deck', 'Restore Attachment') }} {{ t('deck', 'Restore Attachment') }}
</ActionButton> </ActionButton>
</Actions> </Actions>
@@ -101,7 +107,8 @@ import { Actions, ActionButton, ActionLink } from '@nextcloud/vue'
import AttachmentDragAndDrop from '../AttachmentDragAndDrop' import AttachmentDragAndDrop from '../AttachmentDragAndDrop'
import relativeDate from '../../mixins/relativeDate' import relativeDate from '../../mixins/relativeDate'
import { formatFileSize } from '@nextcloud/files' import { formatFileSize } from '@nextcloud/files'
import { generateUrl, generateOcsUrl } from '@nextcloud/router' import { getCurrentUser } from '@nextcloud/auth'
import { generateUrl, generateOcsUrl, generateRemoteUrl } from '@nextcloud/router'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import { loadState } from '@nextcloud/initial-state' import { loadState } from '@nextcloud/initial-state'
import attachmentUpload from '../../mixins/attachmentUpload' import attachmentUpload from '../../mixins/attachmentUpload'
@@ -174,6 +181,9 @@ export default {
internalLink() { internalLink() {
return (attachment) => generateUrl('/f/' + attachment.extendedData.fileid) return (attachment) => generateUrl('/f/' + attachment.extendedData.fileid)
}, },
downloadLink() {
return (attachment) => generateRemoteUrl(`dav/files/${getCurrentUser().uid}/${attachment.extendedData.path}`)
},
formattedFileSize() { formattedFileSize() {
return (filesize) => formatFileSize(filesize) return (filesize) => formatFileSize(filesize)
}, },
@@ -212,7 +222,7 @@ export default {
}, },
shareFromFiles() { shareFromFiles() {
picker.pick() picker.pick()
.then(async(path) => { .then(async (path) => {
console.debug(`path ${path} selected for sharing`) console.debug(`path ${path} selected for sharing`)
if (!path.startsWith('/')) { if (!path.startsWith('/')) {
throw new Error(t('files', 'Invalid path selected')) throw new Error(t('files', 'Invalid path selected'))

View File

@@ -24,8 +24,8 @@
<AttachmentList <AttachmentList
:card-id="card.id" :card-id="card.id"
:removable="true" :removable="true"
@deleteAttachment="deleteAttachment" @delete-attachment="deleteAttachment"
@restoreAttachment="restoreAttachment" /> @restore-attachment="restoreAttachment" />
</template> </template>
<script> <script>

View File

@@ -101,6 +101,7 @@
:lang="lang" :lang="lang"
:formatter="format" :formatter="format"
:disabled="saving || !canEdit" :disabled="saving || !canEdit"
:shortcuts="shortcuts"
confirm /> confirm />
<Actions v-if="canEdit"> <Actions v-if="canEdit">
<ActionButton v-if="copiedCard.duedate" icon="icon-delete" @click="removeDue()"> <ActionButton v-if="copiedCard.duedate" icon="icon-delete" @click="removeDue()">
@@ -176,6 +177,48 @@ export default {
stringify: this.stringify, stringify: this.stringify,
parse: this.parse, parse: this.parse,
}, },
shortcuts: [
{
text: t('deck', 'Today'),
onClick() {
const date = new Date()
date.setDate(date.getDate())
date.setHours(23)
date.setMinutes(59)
return date
},
},
{
text: t('deck', 'Tomorrow'),
onClick() {
const date = new Date()
date.setDate(date.getDate() + 1)
date.setHours(23)
date.setMinutes(59)
return date
},
},
{
text: t('deck', 'Next week'),
onClick() {
const date = new Date()
date.setDate(date.getDate() + 7)
date.setHours(23)
date.setMinutes(59)
return date
},
},
{
text: t('deck', 'Next month'),
onClick() {
const date = new Date()
date.setDate(date.getDate() + 30)
date.setHours(23)
date.setMinutes(59)
return date
},
},
],
} }
}, },
computed: { computed: {
@@ -316,6 +359,14 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.section-wrapper::v-deep .mx-datepicker-main.mx-datepicker-popup {
left: 0 !important;
}
.section-wrapper::v-deep .mx-datepicker-main.mx-datepicker-popup.mx-datepicker-sidebar {
padding: 0 !important;
}
.section-wrapper { .section-wrapper {
display: flex; display: flex;
max-width: 100%; max-width: 100%;

View File

@@ -19,47 +19,45 @@
</div> </div>
</div> </div>
<li v-else class="comment"> <li v-else class="comment">
<template> <div class="comment--header">
<div class="comment--header"> <Avatar :user="comment.actorId" />
<Avatar :user="comment.actorId" /> <span class="has-tooltip username">
<span class="has-tooltip username"> {{ comment.actorDisplayName }}
{{ comment.actorDisplayName }} </span>
</span> <Actions v-show="!edit" :force-menu="true">
<Actions v-show="!edit" :force-menu="true"> <ActionButton icon="icon-reply" :close-after-click="true" @click="replyTo()">
<ActionButton icon="icon-reply" :close-after-click="true" @click="replyTo()"> {{ t('deck', 'Reply') }}
{{ t('deck', 'Reply') }} </ActionButton>
</ActionButton> <ActionButton v-if="canEdit"
<ActionButton v-if="canEdit" icon="icon-rename"
icon="icon-rename" :close-after-click="true"
:close-after-click="true" @click="showUpdateForm()">
@click="showUpdateForm()"> {{ t('deck', 'Update') }}
{{ t('deck', 'Update') }} </ActionButton>
</ActionButton> <ActionButton v-if="canEdit"
<ActionButton v-if="canEdit" icon="icon-delete"
icon="icon-delete" :close-after-click="true"
:close-after-click="true" @click="deleteComment()">
@click="deleteComment()"> {{ t('deck', 'Delete') }}
{{ t('deck', 'Delete') }} </ActionButton>
</ActionButton> </Actions>
</Actions> <Actions v-if="edit">
<Actions v-if="edit"> <ActionButton icon="icon-close" @click="hideUpdateForm" />
<ActionButton icon="icon-close" @click="hideUpdateForm" /> </Actions>
</Actions> <div class="spacer" />
<div class="spacer" /> <div class="timestamp">
<div class="timestamp"> {{ relativeDate(comment.creationDateTime) }}
{{ relativeDate(comment.creationDateTime) }}
</div>
</div> </div>
<CommentItem v-if="comment.replyTo" :reply="true" :comment="comment.replyTo" /> </div>
<div v-show="!edit" ref="richTextElement"> <CommentItem v-if="comment.replyTo" :reply="true" :comment="comment.replyTo" />
<RichText <div v-show="!edit" ref="richTextElement">
class="comment--content" <RichText
:text="richText(comment)" class="comment--content"
:arguments="richArgs(comment)" :text="richText(comment)"
:autolink="true" /> :arguments="richArgs(comment)"
</div> :autolink="true" />
<CommentForm v-if="edit" v-model="commentMsg" @submit="updateComment" /> </div>
</template> <CommentForm v-if="edit" v-model="commentMsg" @submit="updateComment" />
</li> </li>
</template> </template>

View File

@@ -57,7 +57,7 @@
ref="markdownEditor" ref="markdownEditor"
v-model="description" v-model="description"
:configs="mdeConfig" :configs="mdeConfig"
@input="updateDescription" @update:modelValue="updateDescription"
@blur="saveDescription" /> @blur="saveDescription" />
<Modal v-if="modalShow" :title="t('deck', 'Choose attachment')" @close="modalShow=false"> <Modal v-if="modalShow" :title="t('deck', 'Choose attachment')" @close="modalShow=false">
@@ -66,7 +66,7 @@
<AttachmentList <AttachmentList
:card-id="card.id" :card-id="card.id"
:selectable="true" :selectable="true"
@selectAttachment="addAttachment" /> @select-attachment="addAttachment" />
</div> </div>
</Modal> </Modal>
</div> </div>
@@ -75,6 +75,7 @@
<script> <script>
import MarkdownIt from 'markdown-it' import MarkdownIt from 'markdown-it'
import MarkdownItTaskLists from 'markdown-it-task-lists' import MarkdownItTaskLists from 'markdown-it-task-lists'
import MarkdownItLinkAttributes from 'markdown-it-link-attributes'
import AttachmentList from './AttachmentList' import AttachmentList from './AttachmentList'
import { Actions, ActionButton, Modal } from '@nextcloud/vue' import { Actions, ActionButton, Modal } from '@nextcloud/vue'
import { formatFileSize } from '@nextcloud/files' import { formatFileSize } from '@nextcloud/files'
@@ -86,6 +87,13 @@ const markdownIt = new MarkdownIt({
}) })
markdownIt.use(MarkdownItTaskLists, { enabled: true, label: true, labelAfter: true }) markdownIt.use(MarkdownItTaskLists, { enabled: true, label: true, labelAfter: true })
markdownIt.use(MarkdownItLinkAttributes, {
attrs: {
target: '_blank',
rel: 'noreferrer noopener',
},
})
export default { export default {
name: 'Description', name: 'Description',
components: { components: {
@@ -223,7 +231,7 @@ export default {
updateDescription() { updateDescription() {
this.descriptionLastEdit = Date.now() this.descriptionLastEdit = Date.now()
clearTimeout(this.descriptionSaveTimeout) clearTimeout(this.descriptionSaveTimeout)
this.descriptionSaveTimeout = setTimeout(async() => { this.descriptionSaveTimeout = setTimeout(async () => {
await this.saveDescription() await this.saveDescription()
}, 2500) }, 2500)
}, },

View File

@@ -53,6 +53,19 @@
<PopoverMenu :menu="popover" /> <PopoverMenu :menu="popover" />
<slot /> <slot />
</div> </div>
<div class="avatar-print-list">
<div v-for="user in avatarUsers" :key="user.id" class="avatar-print-list-item">
<Avatar
class="avatar-print-list-avatar"
:user="user.participant.uid"
:display-name="user.participant.displayname"
:disable-menu="true"
:is-no-user="user.type !== 0"
:size="24" />
{{ user.participant.displayname }}
</div>
</div>
</div> </div>
</template> </template>
@@ -116,6 +129,15 @@ export default {
}), }),
] ]
}, },
avatarUsers() {
if (!this.users) {
return []
}
return this.users.filter((user) => {
return [0, 1, 7].includes(user.type)
})
},
}, },
methods: { methods: {
togglePopover() { togglePopover() {
@@ -176,4 +198,26 @@ export default {
display: block; display: block;
margin: 40px -6px; margin: 40px -6px;
} }
.avatar-print-list {
display: none;
}
@media print {
.avatar-list {
display: none;
}
.avatar-print-list-item {
align-items: center;
display: flex;
gap: 10px;
margin-bottom: 10px;
}
.avatar-print-list {
display: block;
padding-top: 5px;
}
}
</style> </style>

View File

@@ -41,7 +41,7 @@
<AvatarList :users="card.assignedUsers" /> <AvatarList :users="card.assignedUsers" />
<CardMenu :card="card" /> <CardMenu class="card-menu" :card="card" />
</div> </div>
</template> </template>
<script> <script>
@@ -150,4 +150,15 @@ export default {
.fade-enter, .fade-leave-to { .fade-enter, .fade-leave-to {
opacity: 0; opacity: 0;
} }
@media print {
.badges {
align-items: flex-start;
max-height: none !important;
}
.card-menu {
display: none;
}
}
</style> </style>

View File

@@ -23,7 +23,7 @@
<template> <template>
<div v-if="card" class="duedate"> <div v-if="card" class="duedate">
<transition name="zoom"> <transition name="zoom">
<div v-if="card.duedate" :class="dueIcon"> <div v-if="card.duedate" :class="dueIcon" :title="absoluteDate">
<span>{{ relativeDate }}</span> <span>{{ relativeDate }}</span>
</div> </div>
</transition> </transition>
@@ -62,14 +62,14 @@ export default {
} }
return moment(this.card.duedate).fromNow() return moment(this.card.duedate).fromNow()
}, },
dueDateTooltip() { absoluteDate() {
return moment(this.card.duedate).format('LLLL') return moment(this.card.duedate).format('L')
}, },
}, },
} }
</script> </script>
<style lang="scss" coped> <style lang="scss" scoped>
.icon.due { .icon.due {
background-position: 4px center; background-position: 4px center;
border-radius: 3px; border-radius: 3px;
@@ -105,6 +105,7 @@ export default {
padding: 3px 4px; padding: 3px 4px;
} }
&::before,
span { span {
margin-left: 20px; margin-left: 20px;
white-space: nowrap; white-space: nowrap;
@@ -112,4 +113,18 @@ export default {
overflow: hidden; overflow: hidden;
} }
} }
@media print {
.icon.due {
background-color: transparent !important;
span {
display: none;
}
&::before {
content: attr(title);
}
}
}
</style> </style>

View File

@@ -39,6 +39,9 @@
<script> <script>
import { ColorPicker, ActionButton, Actions, AppNavigationItem } from '@nextcloud/vue' import { ColorPicker, ActionButton, Actions, AppNavigationItem } from '@nextcloud/vue'
/**
*
*/
function randomColor() { function randomColor() {
let randomHexColor = ((1 << 24) * Math.random() | 0).toString(16) let randomHexColor = ((1 << 24) * Math.random() | 0).toString(16)
while (randomHexColor.length < 6) { while (randomHexColor.length < 6) {

View File

@@ -125,7 +125,10 @@
<div :style="{ backgroundColor: getColor }" class="color0 icon-colorpicker app-navigation-entry-bullet" /> <div :style="{ backgroundColor: getColor }" class="color0 icon-colorpicker app-navigation-entry-bullet" />
</ColorPicker> </ColorPicker>
<form @submit.prevent.stop="applyEdit"> <form @submit.prevent.stop="applyEdit">
<input v-model="editTitle" type="text" required> <input v-model="editTitle"
v-focus
type="text"
required>
<input type="submit" value="" class="icon-confirm"> <input type="submit" value="" class="icon-confirm">
<Actions><ActionButton icon="icon-close" @click.stop.prevent="cancelEdit" /></Actions> <Actions><ActionButton icon="icon-close" @click.stop.prevent="cancelEdit" /></Actions>
</form> </form>

View File

@@ -63,10 +63,15 @@ import { Actions, ActionButton } from '@nextcloud/vue'
const createCancelToken = () => axios.CancelToken.source() const createCancelToken = () => axios.CancelToken.source()
/**
* @param root0
* @param root0.query
* @param root0.cursor
*/
function search({ query, cursor }) { function search({ query, cursor }) {
const cancelToken = createCancelToken() const cancelToken = createCancelToken()
const request = async() => axios.get(generateOcsUrl('apps/deck/api/v1.0/search'), { const request = async () => axios.get(generateOcsUrl('apps/deck/api/v1.0/search'), {
cancelToken: cancelToken.token, cancelToken: cancelToken.token,
params: { params: {
term: query, term: query,

View File

@@ -21,6 +21,11 @@ ul {
ul { ul {
list-style-type: disc; list-style-type: disc;
.task-list-item {
margin-left: -20px;
list-style-type: none;
}
} }
h1 { h1 {
@@ -67,7 +72,7 @@ img {
} }
input[type=checkbox] { input[type=checkbox] {
margin: 0px 10px 0px 0px; margin: 0px 3px 0px 0px;
line-height: 10px; line-height: 10px;
font-size: 10px; font-size: 10px;
display: inline-block; display: inline-block;

View File

@@ -25,9 +25,8 @@ const buildSelector = (selector, propsData = {}) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const container = document.createElement('div') const container = document.createElement('div')
document.getElementById('body-user').append(container) document.getElementById('body-user').append(container)
const View = Vue.extend(selector) const ComponentVM = new Vue({
const ComponentVM = new View({ render: (h) => h(selector, propsData),
propsData,
}).$mount(container) }).$mount(container)
ComponentVM.$root.$on('close', () => { ComponentVM.$root.$on('close', () => {
ComponentVM.$el.remove() ComponentVM.$el.remove()

View File

@@ -22,8 +22,6 @@
import Vue from 'vue' import Vue from 'vue'
import BoardSelector from './BoardSelector'
import CardSelector from './CardSelector'
import './../css/collections.css' import './../css/collections.css'
import FileSharingPicker from './views/FileSharingPicker' import FileSharingPicker from './views/FileSharingPicker'
import { buildSelector } from './helpers/selector' import { buildSelector } from './helpers/selector'
@@ -45,13 +43,19 @@ window.addEventListener('DOMContentLoaded', () => {
} }
window.OCP.Collaboration.registerType('deck', { window.OCP.Collaboration.registerType('deck', {
action: () => buildSelector(BoardSelector), action: () => {
const BoardSelector = () => import('./BoardSelector')
buildSelector(BoardSelector)
},
typeString: t('deck', 'Link to a board'), typeString: t('deck', 'Link to a board'),
typeIconClass: 'icon-deck', typeIconClass: 'icon-deck',
}) })
window.OCP.Collaboration.registerType('deck-card', { window.OCP.Collaboration.registerType('deck-card', {
action: () => buildSelector(CardSelector), action: () => {
const CardSelector = () => import('./CardSelector')
buildSelector(CardSelector)
},
typeString: t('deck', 'Link to a card'), typeString: t('deck', 'Link to a card'),
typeIconClass: 'icon-deck', typeIconClass: 'icon-deck',
}) })

View File

@@ -109,7 +109,7 @@ if (!window.OCA.Deck) {
} }
/** /**
* @typedef {Object} CardRichObject * @typedef {object} CardRichObject
* @property {string} id * @property {string} id
* @property {string} name * @property {string} name
* @property {string} boardname * @property {string} boardname
@@ -124,13 +124,14 @@ if (!window.OCA.Deck) {
/** /**
* Frontend message API for adding actions to talk messages. * Frontend message API for adding actions to talk messages.
*
* @param {*} Object the wrapping object. * @param {*} Object the wrapping object.
* @param {String} label the action label. * @param {string} label the action label.
* @param {registerActionCallback} callback the callback function. This function will receive * @param {registerActionCallback} callback the callback function. This function will receive
* the card as a parameter and be triggered by a click on the * the card as a parameter and be triggered by a click on the
* action. The card parameter will be of the format of a rich object string * action. The card parameter will be of the format of a rich object string
* type "deck-card" * type "deck-card"
* @param {String} icon the action label. E.g. "icon-reply" * @param {string} icon the action label. E.g. "icon-reply"
*/ */
window.OCA.Deck.registerCardAction = ({ label, callback, icon }) => { window.OCA.Deck.registerCardAction = ({ label, callback, icon }) => {
const cardAction = { const cardAction = {

View File

@@ -47,7 +47,7 @@ export default {
bodyFormData.append('cardId', this.cardId) bodyFormData.append('cardId', this.cardId)
bodyFormData.append('type', type) bodyFormData.append('type', type)
bodyFormData.append('file', file) bodyFormData.append('file', file)
await queue.add(async() => { await queue.add(async () => {
try { try {
await this.$store.dispatch('createAttachment', { await this.$store.dispatch('createAttachment', {
cardId: this.cardId, cardId: this.cardId,

View File

@@ -1,4 +1,4 @@
/** /*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
* *
* @author Julius Härtl <jus@bitgrid.net> * @author Julius Härtl <jus@bitgrid.net>

View File

@@ -23,8 +23,8 @@
/** /**
* Board model * Board model
* *
* @typedef {Object} Board * @typedef {object} Board
* @property {String} title * @property {string} title
* @property {boolean} archived * @property {boolean} archived
* @property {number} shared 1 (shared) or 0 (not shared) * @property {number} shared 1 (shared) or 0 (not shared)
*/ */
@@ -32,8 +32,8 @@
/** /**
* Stack model * Stack model
* *
* @typedef {Object} Stack * @typedef {object} Stack
* @property {String} title * @property {string} title
* @property {number} boardId * @property {number} boardId
* @property {number} order * @property {number} order
*/ */
@@ -41,15 +41,15 @@
/** /**
* Card model * Card model
* *
* @typedef {Object} Card * @typedef {object} Card
* @property {String} title * @property {string} title
* @property {boolean} archived * @property {boolean} archived
* @property {number} order * @property {number} order
*/ */
/** /**
* Label model * Label model
* *
* @typedef {Object} Label * @typedef {object} Label
* @property {String} title * @property {string} title
* @property {String} color * @property {string} color
*/ */

View File

@@ -38,7 +38,7 @@ export class BoardApi {
* Updates a board. * Updates a board.
* *
* @param {Board} board the board object to update * @param {Board} board the board object to update
* @returns {Promise} * @return {Promise}
*/ */
updateBoard(board) { updateBoard(board) {
return axios.put(this.url(`/boards/${board.id}`), board) return axios.put(this.url(`/boards/${board.id}`), board)
@@ -57,13 +57,13 @@ export class BoardApi {
/** /**
* Creates a new board. * Creates a new board.
* @typedef {Object} BoardCreateObject *
* @typedef {object} BoardCreateObject
* @property {string} title * @property {string} title
* @property {string} color * @property {string} color
*
* @param {BoardCreateObject} boardData The board data to send. * @param {BoardCreateObject} boardData The board data to send.
* color the hexadecimal color value formated /[0-9A-F]{6}/i * color the hexadecimal color value formated /[0-9A-F]{6}/i
* @returns {Promise} * @return {Promise}
*/ */
createBoard(boardData) { createBoard(boardData) {
return axios.post(this.url('/boards'), boardData) return axios.post(this.url('/boards'), boardData)

View File

@@ -78,7 +78,7 @@ export class StackApi {
/** /**
* @param {Stack} stack stack object to create * @param {Stack} stack stack object to create
* @returns {Promise} * @return {Promise}
*/ */
createStack(stack) { createStack(stack) {
return axios.post(this.url('/stacks'), stack) return axios.post(this.url('/stacks'), stack)

View File

@@ -353,6 +353,7 @@ export default new Vuex.Store({
}, },
/** /**
* @param commit.commit
* @param commit * @param commit
* @param state * @param state
* @param {Board} board * @param {Board} board
@@ -366,6 +367,7 @@ export default new Vuex.Store({
}) })
}, },
/** /**
* @param commit.commit
* @param commit * @param commit
* @param state * @param state
* @param {Board} board * @param {Board} board
@@ -381,9 +383,10 @@ export default new Vuex.Store({
/** /**
* Updates a board API side. * Updates a board API side.
* *
* @param commit.commit
* @param commit * @param commit
* @param board The board to update. * @param board The board to update.
* @returns {Promise<void>} * @return {Promise<void>}
*/ */
async updateBoard({ commit }, board) { async updateBoard({ commit }, board) {
const storedBoard = await apiClient.updateBoard(board) const storedBoard = await apiClient.updateBoard(board)

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