Compare commits

..

514 Commits

Author SHA1 Message Date
Marcel Klehr
45c9a8ba27 Merge pull request #4158 from nextcloud/release/1.7.2 2022-10-27 11:47:09 +02:00
Nextcloud bot
3d10521524 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 02:21:17 +00:00
Marcel Klehr
ef616f37bd v1.7.2
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-26 16:15:54 +02:00
Nextcloud bot
e64c36ffce [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-25 02:26:18 +00:00
Nextcloud bot
837d925536 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-24 02:21:56 +00:00
Julius Härtl
feaeb90f76 Merge pull request #4132 from nextcloud/backport/4065/stable24 2022-10-18 19:22:08 +02:00
Julius Härtl
2ea94a12ad Cache user membership for circles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-18 11:35:19 +02:00
Julius Härtl
c8cf8238b8 Pin postgres to 14
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-18 11:29:51 +02:00
Julius Härtl
16f41f74b3 Merge pull request #4118 from nextcloud/backport/3439/stable24 2022-10-18 11:26:27 +02:00
Nextcloud bot
3a78eea105 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-18 02:21:41 +00:00
Julius Härtl
8e158972f4 Activity: Set event link also for notifications that get emitted from activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-14 10:51:06 +00:00
Nextcloud bot
b12a1306eb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-13 02:22:23 +00:00
Julius Härtl
1175c8b605 Merge pull request #4103 from nextcloud/fix/24-no-card-menu-without-description 2022-10-11 14:53:35 +02:00
Nextcloud bot
4b06ef3ac0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-08 02:21:52 +00:00
Marcel Klehr
5f59f485f2 Merge pull request #4019 from nextcloud/backport/4014/stable24 2022-10-07 12:07:41 +02:00
Marcel Klehr
2f28015b91 Fix Card menu not displaying when description is not set
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-10-07 11:40:31 +02:00
Nextcloud bot
675aff612d [tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-07 02:21:55 +00:00
Nextcloud bot
9ad65af60e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-06 02:26:16 +00:00
Nextcloud bot
2210c05e28 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-05 02:21:23 +00:00
Côme Chilliet
a189139a04 Merge pull request #4093 from nextcloud/migrate-stable24-christophwurst-package
Migrate to nextcloud/OCP package in stable24
2022-10-02 10:39:09 +02:00
Joas Schilling
c6a209c63a Migrate to nextcloud/OCP package in stable24
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-10-02 09:18:23 +02:00
Nextcloud bot
1968d8493b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-01 02:24:38 +00:00
Nextcloud bot
a94eb0cd31 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-30 03:23:40 +00:00
Nextcloud bot
b2bbf31f46 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-28 02:46:17 +00:00
Nextcloud bot
2b959c10dd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-26 02:47:18 +00:00
Nextcloud bot
81669635c5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-24 02:47:23 +00:00
Nextcloud bot
7350a2a811 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-23 02:42:09 +00:00
Nextcloud bot
e677cbcdac [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-22 02:45:48 +00:00
Nextcloud bot
6d7461d0d1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-20 02:45:57 +00:00
Nextcloud bot
86d94166f0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-17 02:45:14 +00:00
Nextcloud bot
a664545ebf [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-16 02:39:38 +00:00
Nextcloud bot
360bd4192b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-15 02:45:09 +00:00
Nextcloud bot
da3f2b8ee4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-14 02:39:54 +00:00
Nextcloud bot
78aa411e09 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-13 02:40:41 +00:00
Nextcloud bot
2d318c0ac1 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-12 02:39:42 +00:00
Nextcloud bot
b58f598044 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-09 02:40:41 +00:00
Julien Veyssier
bad2a19be6 Merge pull request #4037 from nextcloud/backport/4036/stable24
[stable24] Fix attachment creator name: show display name
2022-09-08 12:23:00 +02:00
Julien Veyssier
a89bdab5e3 fix tests
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-08 12:09:23 +02:00
Julien Veyssier
5b2c03f733 refs #4035 fix attachment creator name: show display name instead of user id
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-09-08 12:09:23 +02:00
Nextcloud bot
552e10d79d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-08 02:40:32 +00:00
Nextcloud bot
40f39fa21a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-07 02:40:01 +00:00
Nextcloud bot
d5c1833638 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-06 02:39:38 +00:00
Nextcloud bot
36dd98c93e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-05 02:38:59 +00:00
Nextcloud bot
ccbec7f5ac [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-04 02:38:02 +00:00
Nextcloud bot
0359e89b22 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-03 02:44:35 +00:00
Robin Appelman
e9f8634334 disable Create card button while no stack is chosen
make the `isBoardAndStackChoosen` method do what it says

Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-09-02 11:12:41 +00:00
Nextcloud bot
1889c0c4f9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-01 02:50:07 +00:00
Nextcloud bot
1ac501db79 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-28 02:36:32 +00:00
Nextcloud bot
c9ddd4f997 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-27 02:36:44 +00:00
Julius Härtl
e8a0d7c47c Merge pull request #3997 from nextcloud/backport/3980/stable24 2022-08-26 10:50:27 +02:00
Julius Härtl
8ace53bfe2 Make CappedMemoryCache usage compatible with older releases
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-26 10:07:59 +02:00
Raul Ferreira Fuentes
89c3490015 Merge pull request #3995 from nextcloud/backport/3982/stable24
[stable24] Improve CalDAV integration performance
2022-08-25 12:13:48 +00:00
Julius Härtl
72bc2f438a Use capped memory cache for board permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:40 +00:00
Julius Härtl
1183459608 Avoid fetching archived cards for calendars
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:32 +00:00
Julius Härtl
a4e6c7b746 Avoid querying each card when getting the calendars only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-25 10:47:32 +00:00
Nextcloud bot
b99fb6e8f6 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-24 02:39:41 +00:00
Nextcloud bot
f613a60f7c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-22 02:37:15 +00:00
Nextcloud bot
7c77cde669 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-21 02:36:35 +00:00
Nextcloud bot
9a7bde4cbd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-20 02:36:58 +00:00
Nextcloud bot
b807a71f1f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-13 02:37:50 +00:00
Nextcloud bot
33942236f0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-12 02:36:56 +00:00
Nextcloud bot
3dd3301ffc [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-09 02:36:37 +00:00
Julius Härtl
0d310d317e Merge pull request #3959 from nextcloud/backport/3952/stable24 2022-08-08 09:32:39 +02:00
Julius Härtl
82515e5731 Fetch attachment folder for the correct user during cron job
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-08 07:00:52 +00:00
Nextcloud bot
4cd4707559 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-07 02:40:59 +00:00
Nextcloud bot
90c14861c4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-06 02:37:35 +00:00
Nextcloud bot
17a51501ec [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-05 02:13:42 +00:00
Nextcloud bot
86707f18dd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-03 02:13:43 +00:00
Julius Härtl
a28cd746f1 Merge pull request #3925 from nextcloud/backport/3898/stable24
[stable24] Switch to 'markdown-it-task-checkbox' for rendering of task lists
2022-08-01 22:06:14 +02:00
Nextcloud bot
10ad995cd0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-29 02:13:34 +00:00
Nextcloud bot
856c5f50c4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-28 02:13:40 +00:00
Nextcloud bot
0a9d96d964 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-27 02:13:38 +00:00
Nextcloud bot
1d15921a57 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-25 02:39:10 +00:00
Nextcloud bot
b9826cb29f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-24 02:40:48 +00:00
Nextcloud bot
94c13bbbdb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-23 02:38:35 +00:00
Nextcloud bot
549f9c9045 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-21 02:38:53 +00:00
q-wertz
ac16521404 Switch to 'markdown-it-task-checkbox' for rendering of task lists
Signed-off-by: q-wertz <clemens.sonnleitner@web.de>
2022-07-19 09:33:39 +02:00
Nextcloud bot
4be298f537 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-19 02:38:00 +00:00
Nextcloud bot
10dead9d9f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-18 02:37:16 +00:00
Nextcloud bot
f9cb601a99 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-14 02:37:44 +00:00
Julius Härtl
efdd3b0056 Merge pull request #3917 from nextcloud/backport/3916/stable24
[stable24] Prevent opening card and applyLabelFilter on card drag end
2022-07-12 16:37:01 +02:00
Julien Veyssier
a18f550dc1 refs #2594 prevent opening card and applyLabelFilter on card drag end
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-07-12 11:57:22 +00:00
Nextcloud bot
d808b9fef7 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-08 02:37:16 +00:00
Nextcloud bot
f4742259f2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-06 02:35:55 +00:00
Julius Härtl
3fe5da0ee1 Merge pull request #3901 from nextcloud/backport/3833/stable24
[stable24] Fix for issue #3637
2022-07-05 14:30:09 +02:00
Thomas Flummer
17ae3a9a39 Fix for issue #3637
Added padding on nested ul, to compensate for the negative margin on the containing li

Signed-off-by: Thomas Flummer <tf@flummer.net>
2022-07-05 10:41:38 +00:00
Nextcloud bot
1ff588a15a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-04 02:35:49 +00:00
Nextcloud bot
2bb04ef298 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-07-02 02:37:23 +00:00
Raul Ferreira Fuentes
055dda909e Merge pull request #3885 from nextcloud/backport/3884/stable24
[stable24] Fix z-index for deck sidebar
2022-06-28 15:26:18 +02:00
Raul
f364709318 Fix z-index for deck sidebar
The sidebar would previously render above the user menu (logout, settings, etc)

Signed-off-by: Raul <r.ferreira.fuentes@gmail.com>
2022-06-28 12:40:36 +00:00
Nextcloud bot
84de1c0198 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-22 02:40:26 +00:00
Nextcloud bot
413017d333 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-14 02:41:52 +00:00
Nextcloud bot
5c069e5413 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-12 02:41:04 +00:00
Nextcloud bot
9d9cdb0f95 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-09 02:45:32 +00:00
Nextcloud bot
74f45e2e54 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-07 02:44:07 +00:00
Nextcloud bot
f82c48ad29 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-03 02:47:52 +00:00
Nextcloud bot
ece052a20d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-06-02 02:47:09 +00:00
Luka Trovic
8a9a36ed10 Merge pull request #3847 from nextcloud/release/1.7.1
release/1.7.1
2022-06-01 13:36:59 +02:00
Luka Trovic
82f2a2c363 changes for 1.7.1
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-30 08:21:03 +02:00
Nextcloud bot
3016659c81 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-29 02:46:53 +00:00
Nextcloud bot
b9ab0f14ab [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-28 02:43:24 +00:00
Nextcloud bot
2d90ed7414 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-26 02:44:17 +00:00
Nextcloud bot
5d87f05994 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-24 02:47:12 +00:00
Nextcloud bot
9ef183bcaa [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-23 02:43:45 +00:00
Nextcloud bot
34f18fbd7d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-22 02:43:40 +00:00
Nextcloud bot
27fa2bbc54 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-21 02:47:13 +00:00
Nextcloud bot
03a88327a5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-20 02:46:27 +00:00
Julius Härtl
67ac21e688 Merge pull request #3815 from nextcloud/backport/3811/stable24
[stable24] Align Duedate-delete icon properly - fixes nextcloud/deck#3791
2022-05-13 09:34:37 +02:00
Nextcloud bot
e90f32ca32 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-13 02:41:48 +00:00
ben
b21e65027c Align Duedate-delete icon properly - fixes nextcloud/deck#3791
Signed-off-by: ben <ben@ro.tt>
2022-05-12 14:54:17 +00:00
Julius Härtl
b628532def Merge pull request #3804 from nextcloud/backport/3682/stable24
[stable24] Increase file count after sharing
2022-05-12 09:18:37 +02:00
Julius Härtl
e0b2755b7c Fix php-cs-fixer failure
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-12 09:09:20 +02:00
Julius Härtl
9e1fbb9852 Move all caching to helper
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-11 14:43:32 +00:00
Luka Trovic
047ca3e203 fix: move shares count cache logic to the DeckShareProvider
Signed-off-by: Luka Trovic <luka@nextcloud.com>

fix: conflicts

Signed-off-by: Luka Trovic <luka@nextcloud.com>

fix: conflicts and test issues

Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:31 +00:00
Luka Trovic
bfcd5357e3 fix: update attachments count when sharing
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:30 +00:00
Luka Trovic
461ed6b81f fix: increase file count after sharing
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:43:29 +00:00
Nextcloud bot
ee2969fc5b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-06 02:41:15 +00:00
Nextcloud bot
ca32ebd9cb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-05 02:41:05 +00:00
Julius Härtl
4a29617fed Merge pull request #3779 from nextcloud/backport/3777/stable24
[stable24] Fetch full board data after cloning
2022-05-04 17:17:07 +02:00
Julius Härtl
8eab97a92a Fetch full board data after cloning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-04 10:29:18 +00:00
Nextcloud bot
f453f69cce [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-04 02:42:57 +00:00
Nextcloud bot
8ca84147e8 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-03 02:41:23 +00:00
Julius Härtl
5e3ddd83fc Bump version to 1.7.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-02 16:43:48 +02:00
Julius Härtl
6b985463d8 Merge pull request #3769 from nextcloud/bugfix/noid/stable24-psalm
Handle qb mapper exception messages properly
2022-04-29 17:28:20 +02:00
Julius Härtl
25e0ae2670 Bump version to 1.7.0-rc.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 16:17:24 +02:00
Julius Härtl
614c6fbdba Handle qb mapper exception messages properly
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 15:45:07 +02:00
Julius Härtl
8efe415558 Merge pull request #3765 from nextcloud/backport/3761/stable24
[stable24] Fix text selection in dark mode and modal view
2022-04-29 15:41:06 +02:00
Julius Härtl
f3ad2a3709 Fix text selection in dark mode and modal view
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 09:33:06 +00:00
Julius Härtl
25dd71ba04 Merge pull request #3764 from nextcloud/backport/3762/stable24
[stable24] Adapt the card modal to upstream changes
2022-04-29 11:09:08 +02:00
Julius Härtl
a514e6e168 Adapt modal size to viewer upstream changes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-29 08:47:21 +00:00
Julius Härtl
cb5553ea94 Merge pull request #3754 from nextcloud/backport/3745/stable24
[stable24] Add missing indices
2022-04-28 10:10:31 +02:00
Julius Härtl
335ee31c7c Add missing indices
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-26 16:26:17 +00:00
Julius Härtl
9b4379727d Merge pull request #3736 from nextcloud/backport/3681/stable24
[stable24] Show cards after moving into another list
2022-04-20 18:14:34 +02:00
Julius Härtl
a5fe2f59be Merge pull request #3733 from nextcloud/backport/3692/stable24
[stable24] Fix hidden attachment icon on archived cards
2022-04-20 18:14:13 +02:00
Luka Trovic
1b58f7854e fix: feedback
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:24:24 +00:00
Luka Trovic
b6effa468f fix: show card after moving into another list
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:24:24 +00:00
Luka Trovic
2b512b88c4 fix: hidden attachment icon on archived cards
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-04-20 14:22:23 +00:00
Julius Härtl
5cb61cba90 Merge pull request #3723 from nextcloud/update-stable24-target-versions
Update stable24 target versions
2022-04-19 15:38:37 +02:00
Joas Schilling
0657efe239 Update stable24 target versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-14 22:09:00 +02:00
Nextcloud bot
c6c89d7f13 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-14 02:42:20 +00:00
Nextcloud bot
8db8e33a6e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-13 02:40:12 +00:00
Julius Härtl
10dc8a8c78 Merge pull request #3683 from nextcloud/bugfix/noid/fix-parameter-handling-when-creating-deck-cards
Fix paramter replacements when creating deck cards from talk messages
2022-04-12 10:01:43 +02:00
Joas Schilling
2b11ea5e72 Fix node linting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-12 09:54:39 +02:00
Joas Schilling
d4b880a66f Fix paramter replacements when creating deck cards from talk messages
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-12 09:54:37 +02:00
Julius Härtl
deea4fab0f Bump version to 1.7.0-beta.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-11 22:55:11 +02:00
Julius Härtl
949cb99847 Merge pull request #3625 from bink/bugfix/correct-acl-for-cirlce-and-member-shares
Fix: Check all circle shares for permissions
2022-04-11 16:45:37 +02:00
Julius Härtl
5d477b733d Merge pull request #3669 from CommanderRoot/refactor/rm-deprecated-substr
Replace deprecated String.prototype.substr()
2022-04-11 16:45:00 +02:00
Julius Härtl
669eec173a Merge pull request #3712 from nextcloud/cleanup/transfer-store
Remove unused argument from transfer ownership
2022-04-11 16:43:09 +02:00
Julius Härtl
020429c181 Merge pull request #3670 from nextcloud/bugfix/noid/stack-update-check
Properly check for the stack AND setting board permissions
2022-04-11 16:34:56 +02:00
Julius Härtl
487073cfb9 Remove unused argument
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-11 16:24:03 +02:00
Bink
04f8292b8a Fix: Check all circle shares for permissions instead of returning after the first 2022-04-11 15:49:14 +02:00
Julius Härtl
7c8e762d5d Merge pull request #3690 from nextcloud/bugfix/optimise_notifier_queries
Optimise queries when preparing card related notifications
2022-04-11 13:47:44 +02:00
Julius Härtl
86d3de2211 Properly check for the stack AND setting board permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-11 12:47:44 +02:00
Raul Ferreira Fuentes
dbc4d10ddf Fix naming scheme
Signed-off-by: Raul Ferreira Fuentes <raul@nextcloud.com>
2022-04-11 11:58:36 +02:00
Julius Härtl
c3a98fa4e3 Merge pull request #3695 from nextcloud/update-master-phpunit-config
Update master php testing versions
2022-04-11 09:53:58 +02:00
Nextcloud bot
c914434c71 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-09 02:39:13 +00:00
Julius Härtl
0ce4279d8f Merge pull request #3689 from nextcloud/bugfix/noid/fix-cron-jobs
Fix cron jobs
2022-04-08 21:47:48 +02:00
Julius Härtl
1276f24345 Merge pull request #3700 from nextcloud/dependabot/composer/tests/integration/symfony/event-dispatcher-approx-5.4
build(deps-dev): Update symfony/event-dispatcher requirement from ~4.4 to ~5.4 in /tests/integration
2022-04-08 21:44:09 +02:00
dependabot[bot]
93757de86b build(deps-dev): Update symfony/event-dispatcher requirement
Updates the requirements on [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) to permit the latest version.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/5.4/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v4.4.0...v5.4.3)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 19:33:54 +00:00
Julius Härtl
83f550aaf4 Merge pull request #3699 from nextcloud/dependabot/composer/tests/integration/guzzlehttp/guzzle-7.4.2
build(deps-dev): Update guzzlehttp/guzzle requirement from 6.5.2 to 7.4.2 in /tests/integration
2022-04-08 21:33:26 +02:00
Julius Härtl
50ddb4c69e Merge pull request #3701 from nextcloud/dependabot/composer/tests/integration/sabre/dav-4.3.1
build(deps-dev): Update sabre/dav requirement from 3.2.3 to 4.3.1 in /tests/integration
2022-04-08 21:33:13 +02:00
dependabot[bot]
69cf1b797a build(deps-dev): Update sabre/dav requirement in /tests/integration
Updates the requirements on [sabre/dav](https://github.com/sabre-io/dav) to permit the latest version.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/3.2.3...4.3.1)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 17:49:24 +00:00
dependabot[bot]
821cd5114f build(deps-dev): Update guzzlehttp/guzzle requirement
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.2...7.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 17:49:21 +00:00
dependabot[bot]
2e0aca225d Merge pull request #3704 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.17.9 2022-04-08 17:48:42 +00:00
dependabot[bot]
313c691816 build(deps): Bump @babel/runtime from 7.17.8 to 7.17.9
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.17.8 to 7.17.9.
- [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.17.9/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 17:13:44 +00:00
dependabot[bot]
8699eeedbe Merge pull request #3703 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.3.1 2022-04-08 17:12:37 +00:00
dependabot[bot]
7a0f030fbf build(deps): Bump @nextcloud/vue from 5.3.0 to 5.3.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v5.3.0...v5.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 16:44:19 +00:00
dependabot[bot]
a81f69c0c3 Merge pull request #3705 from nextcloud/dependabot/npm_and_yarn/master/moment-2.29.2 2022-04-08 16:43:22 +00:00
dependabot[bot]
7b76c3d308 build(deps): Bump moment from 2.29.1 to 2.29.2
Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.1...2.29.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 16:13:10 +00:00
dependabot[bot]
7f54927503 Merge pull request #3702 from nextcloud/dependabot/composer/tests/integration/behat/behat-approx-3.10.0 2022-04-08 16:12:09 +00:00
dependabot[bot]
235116725b build(deps-dev): Update behat/behat requirement in /tests/integration
Updates the requirements on [behat/behat](https://github.com/Behat/Behat) to permit the latest version.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.8.0...v3.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 15:20:23 +00:00
Julius Härtl
3a1f217ba3 Merge pull request #3698 from nextcloud/dependabot/github_actions/actions/upload-artifact-3
build(deps): Bump actions/upload-artifact from 2 to 3
2022-04-08 17:19:25 +02:00
Joas Schilling
99d720d935 Fix cron jobs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-08 17:13:17 +02:00
Julius Härtl
ea498d485c Migrate phpunit configuration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 17:06:45 +02:00
Joas Schilling
8d2cfe076f Update master php testing versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-08 17:06:45 +02:00
dependabot[bot]
4b5b7f6237 build(deps): Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-08 15:06:12 +00:00
Julius Härtl
e4607b1a76 Merge pull request #3601 from nextcloud/enh/php8.1
Add support for PHP 8.1
2022-04-08 17:05:47 +02:00
Julius Härtl
c6dac7c05f Merge pull request #3685 from q-wertz/master
Fix wording to represent the code behavior
2022-04-08 15:49:13 +02:00
Julius Härtl
9d4938ec60 Ping server integration test dependencies to phpunit 8
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 15:40:01 +02:00
Julius Härtl
a08f1936ec Fix test warnings
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 15:40:01 +02:00
Julius Härtl
aff242c8fb Update dependabot to cover integration test dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 15:40:00 +02:00
Julius Härtl
9dd8408c34 Bump phpunit for integration tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 15:40:00 +02:00
Julius Härtl
46f2d448ab Add typing to jsonSerialize
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-04-08 15:39:59 +02:00
Nextcloud bot
9fa12f44ea [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-06 02:39:49 +00:00
Raul Ferreira Fuentes
270b03949c Run cs-fix
Signed-off-by: Raul Ferreira Fuentes <raul@nextcloud.com>
2022-04-05 18:30:56 +02:00
Raul Ferreira Fuentes
6181d9edf7 Fix NotifierTest to mock the new StackMapper::findStackFromCardId() method correctly.
Signed-off-by: Raul Ferreira Fuentes <raul@nextcloud.com>
2022-04-05 18:07:06 +02:00
Raul Ferreira Fuentes
575b885a3a Catch specific exceptions (not the parent IMapperException) in StackMapper::findStackFromCardId()
Signed-off-by: Raul Ferreira Fuentes <raul@nextcloud.com>
2022-04-05 17:24:37 +02:00
Raul Ferreira Fuentes
ac5524efdf Optimise queries when preparing card related notifications
Signed-off-by: Raul Ferreira Fuentes <raul@nextcloud.com>
2022-04-05 14:46:37 +02:00
Nextcloud bot
0649db673a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-05 02:39:52 +00:00
Joas Schilling
9e1e88547e Merge pull request #3688 from nextcloud/update-master-php-testing-versions
Update master php testing versions
2022-04-04 16:32:30 +02:00
Joas Schilling
7116d9b7a0 Update master php testing versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-04 09:39:13 +02:00
Julius Härtl
eba0d94480 Merge pull request #3674 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-2
build(deps): Bump peter-evans/create-or-update-comment from 1 to 2
2022-04-04 09:26:43 +02:00
dependabot[bot]
d886df378c build(deps): Bump peter-evans/create-or-update-comment from 1 to 2
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 1 to 2.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 03:37:44 +00:00
dependabot[bot]
6cf496aa4b Merge pull request #3687 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.3.0 2022-04-02 03:37:08 +00:00
dependabot[bot]
ef36785ea3 build(deps): Bump @nextcloud/vue from 5.2.1 to 5.3.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.2.1 to 5.3.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v5.2.1...v5.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 02:07:17 +00:00
dependabot[bot]
37dc741415 Merge pull request #3686 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.20 2022-04-02 02:06:25 +00:00
dependabot[bot]
d92fc77787 build(deps-dev): Bump phpunit/phpunit from 9.5.19 to 9.5.20
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.19 to 9.5.20.
- [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.19...9.5.20)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 01:01:33 +00:00
Clemens Sonnleitner
0bee828773 Fix wording to represent the code behavior
Signed-off-by: Clemens Sonnleitner <clemens.sonnleitner@web.de>
2022-04-01 23:17:58 +02:00
Nextcloud bot
2b57924fe2 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-31 02:41:38 +00:00
Nextcloud bot
0527749291 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-30 02:39:29 +00:00
Nextcloud bot
d9542ada7f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-29 02:39:50 +00:00
Nextcloud bot
d2f2b5ebf5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-28 02:38:57 +00:00
dependabot[bot]
48b42a3951 Merge pull request #3675 from nextcloud/dependabot/npm_and_yarn/minimist-1.2.6 2022-03-26 08:05:25 +00:00
dependabot[bot]
d6313a908d build(deps): Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 05:27:09 +00:00
dependabot[bot]
ec89fd8186 Merge pull request #3673 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.18.0 2022-03-26 05:26:10 +00:00
dependabot[bot]
0c3128b5dc build(deps): Bump shivammathur/setup-php from 2.17.1 to 2.18.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.17.1 to 2.18.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.17.1...2.18.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 03:02:09 +00:00
dependabot[bot]
c553771137 Merge pull request #3672 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.2.1 2022-03-26 03:01:31 +00:00
dependabot[bot]
c28f8079d3 build(deps): Bump @nextcloud/vue from 5.1.1 to 5.2.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.1.1 to 5.2.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v5.1.1...v5.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-26 02:02:43 +00:00
Nextcloud bot
4399f4d14c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-25 03:07:25 +00:00
Tobias Speicher
daf6442c13 Replace deprecated String.prototype.substr()
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-24 15:47:29 +01:00
Nextcloud bot
bba6e48257 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-24 02:38:32 +00:00
Valdnet
b10dbf8097 Merge pull request #3666 from nextcloud/Valdnet-patch-1
l10n: Delete space
2022-03-23 09:10:33 +01:00
Valdnet
7a5eca2dee l10n: Delete space
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-03-23 08:49:58 +01:00
Julius Härtl
b9e428807d Merge pull request #3560 from Ben-Ro/master
Sort boards non case sensitive
2022-03-22 09:42:51 +01:00
Julius Härtl
48cd27594f Merge pull request #3650 from nextcloud/bugfix/3649
Handle description shortening more gracefully
2022-03-22 09:02:40 +01:00
ben
62d68edc17 fixes nextcloud/deck#3410
Signed-off-by: ben <git@rott.io>
2022-03-22 08:51:53 +01:00
Julius Härtl
48db989781 Handle description shortening more gracefully
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:48:32 +01:00
Julius Härtl
4027f407f7 Merge pull request #2496 from nextcloud/transfer-ownership
Transfer ownership
2022-03-22 08:43:17 +01:00
Julius Härtl
c6aef45d8c Adjust documentaion wording
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:30 +01:00
Julius Härtl
23f0b16a5a Handle board exceptions more gracefully
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:30 +01:00
Julius Härtl
3f29cd97db Cover case where the owner is preserved
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:30 +01:00
Luka Trovic
9f1dbd137c fix: feedback
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-22 08:23:29 +01:00
Luka Trovic
bf9a51d167 feat: add api endpoint and UI to transfer a board to a different user
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-22 08:23:29 +01:00
Julius Härtl
3a4ec07103 fix: test cases using generator
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:29 +01:00
Julius Härtl
4f13977851 Reuse single board transfer for all user boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:29 +01:00
Julius Härtl
c2144373d9 fix: Properly handle limited scope for remapping users
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:29 +01:00
Julius Härtl
a032287cb5 cleanup test cases
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:29 +01:00
Julius Härtl
a45e46f80a Allow transfer of single boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:29 +01:00
Julius Härtl
b774090032 fix: Psalm
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:28 +01:00
Julius Härtl
72134e6e95 fix: unit tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:28 +01:00
Luka Trovic
e4551bde15 feat: add integration test for transferring board ownership with data
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-22 08:23:28 +01:00
Luka Trovic
4615926e3b fix: integration tests
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-22 08:23:28 +01:00
Luka Trovic
afbbdf0c1b fix: unit test & psalm static code analysis issues
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-22 08:23:28 +01:00
Max
b6340e54c3 fix: queries with the new base mapper in BoardMapper
Signed-off-by: Max <max@nextcloud.com>
2022-03-22 08:23:28 +01:00
Max
4d3dabb94e fix: Assignment is the new AssignedUsers
Signed-off-by: Max <max@nextcloud.com>
2022-03-22 08:23:27 +01:00
Julius Härtl
e8ada52c37 Make queries work with the new base mapper
Signed-off-by: Julius Härtl <jus@bitgrid.net>

fix: conflicts
2022-03-22 08:23:27 +01:00
Julius Härtl
fa7fcef470 Just cleanup old ACL rules, there are none for the board owner so nothing to cleanup or persist there
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:27 +01:00
Julius Härtl
3e7d0d3d72 Use proper description of what gets transferred
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:27 +01:00
Julius Härtl
ba7cadf9d5 Fix card mapper query for transfer
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-22 08:23:27 +01:00
Sergey Shliakhov
6106066460 Fix coding styles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: Max <max@nextcloud.com>
2022-03-22 08:23:27 +01:00
Sergey Shliakhov
7df4b7c4bf Transfer deck ownership even if target user already participant of a board
https://github.com/nextcloud/deck/pull/1955#issuecomment-640392715
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2022-03-22 08:23:27 +01:00
Sergey Shliakhov
8b45495214 Check type before transfer card participants ownership
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>

temp
2022-03-22 08:23:26 +01:00
Sergey Shliakhov
e3750a709d Fix wrong class name
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2022-03-22 08:23:26 +01:00
Sergey Shliakhov
b45c454ce2 Fix code style
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2022-03-22 08:23:26 +01:00
Sergey Shliakhov
3d269e28f4 Add tests
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2022-03-22 08:23:26 +01:00
Sergey Shliakhov
19a2aeb5e5 Update docs
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>

fix: conflicts
2022-03-22 08:23:26 +01:00
Sergey Shliakhov
5d0b8d878b Add deck:transfer-ownership command
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2022-03-22 08:23:26 +01:00
Julius Härtl
3aad01497a Merge pull request #3653 from nextcloud/feature/show-error-on-boad-fetchdata
🚸 Shows error on board fetchData
2022-03-21 14:56:43 +01:00
Vinicius Reis
2e94b8e048 🚸 show error on board fetchData
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
2022-03-21 13:47:59 +01:00
dependabot[bot]
6cd8173e98 Merge pull request #3657 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.17.8 2022-03-19 09:34:59 +00:00
dependabot[bot]
5333b96b37 Bump @babel/runtime from 7.17.2 to 7.17.8
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.17.2 to 7.17.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.17.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>
2022-03-19 09:25:11 +00:00
dependabot[bot]
27b06c545d Merge pull request #3656 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/moment-1.2.0 2022-03-19 09:24:20 +00:00
dependabot[bot]
64c3cf4a42 Bump @nextcloud/moment from 1.1.1 to 1.2.0
Bumps [@nextcloud/moment](https://github.com/nextcloud/nextcloud-moment) from 1.1.1 to 1.2.0.
- [Release notes](https://github.com/nextcloud/nextcloud-moment/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-moment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-moment/compare/v1.1.1...v1.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 07:54:37 +00:00
dependabot[bot]
046458081c Merge pull request #3658 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.1.1 2022-03-19 07:53:42 +00:00
dependabot[bot]
3cabfbca06 Bump @nextcloud/vue from 5.1.0 to 5.1.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v5.1.0...v5.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>
2022-03-19 05:44:55 +00:00
dependabot[bot]
24cb0ea94b Merge pull request #3654 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.19 2022-03-19 05:44:02 +00:00
dependabot[bot]
4d4a91c70f Bump phpunit/phpunit from 9.5.18 to 9.5.19
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.18 to 9.5.19.
- [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.18...9.5.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 03:14:21 +00:00
dependabot[bot]
e1006d9df7 Merge pull request #3655 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-3.1.2 2022-03-19 03:13:30 +00:00
dependabot[bot]
d1d74bee1f Bump @relative-ci/agent from 3.1.1 to 3.1.2
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v3.1.1...v3.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 02:02:34 +00:00
Nextcloud bot
2aed4c1cc5 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-18 02:38:29 +00:00
Nextcloud bot
12adc6a691 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-17 02:41:16 +00:00
Julius Härtl
f37f9b57a1 Merge pull request #3635 from nextcloud/bugfix/fix-missing-file-sidebar
🐛 Fix missing files sidebar
2022-03-12 11:41:15 +01:00
Vinicius Reis
4b39c57968 Merge branch 'master' into bugfix/fix-missing-file-sidebar 2022-03-11 23:43:59 -03:00
dependabot[bot]
682e50d86d Merge pull request #3636 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.18 2022-03-12 02:26:12 +00:00
dependabot[bot]
35a8f97c3f Bump phpunit/phpunit from 9.5.16 to 9.5.18
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.16 to 9.5.18.
- [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.16...9.5.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-12 02:02:17 +00:00
Vinicius Reis
ca3997f12e 🐛 Fix missing files sidebar
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
2022-03-11 11:52:06 -03:00
Luka Trovic
9ef81e1dac Merge pull request #3611 from nextcloud/bug/generate-fixed-link-for-activity-emails
Generate fixed link for activity emails
2022-03-09 18:23:57 +01:00
Luka Trovic
165375fbab fix: generate fixed link for activity emails
Signed-off-by: Luka Trovic <luka@nextcloud.com>

fix: generate fixed link for activity emails

Signed-off-by: Luka Trovic <luka@nextcloud.com>

Fix tests

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-03-09 16:57:31 +01:00
Julius Härtl
4b622d85ee Merge pull request #3623 from nextcloud/feat/workflow-auto-update-command-rebase.yml
Updating command-rebase.yml workflow from template
2022-03-05 11:21:20 +01:00
Julius Härtl
075f8418e7 Merge pull request #3621 from nextcloud/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2.4.0 to 3
2022-03-05 11:21:00 +01:00
Nextcloud bot
a363ebc986 Updating command-rebase.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-03-05 08:24:07 +00:00
dependabot[bot]
5364990e9d Bump actions/checkout from 2.4.0 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.
- [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.4.0...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 07:19:51 +00:00
dependabot[bot]
bd71a929b1 Merge pull request #3620 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.1.0 2022-03-05 07:19:11 +00:00
dependabot[bot]
7886b00332 Bump @nextcloud/vue from 5.0.0 to 5.1.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 5.0.0 to 5.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/v5.0.0...v5.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 06:03:54 +00:00
dependabot[bot]
0ee3e32d97 Merge pull request #3622 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.17.1 2022-03-05 06:03:01 +00:00
dependabot[bot]
6f954fa7a5 Bump shivammathur/setup-php from 2.17.0 to 2.17.1
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.17.0 to 2.17.1.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.17.0...2.17.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 03:15:48 +00:00
dependabot[bot]
a0a8c32ee4 Merge pull request #3619 from nextcloud/dependabot/composer/vimeo/psalm-4.22.0 2022-03-05 03:15:03 +00:00
dependabot[bot]
000811ebfd Bump vimeo/psalm from 4.21.0 to 4.22.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.21.0 to 4.22.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.21.0...4.22.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 02:01:29 +00:00
Julius Härtl
9629627d6d Create appstore-build-publish.yml 2022-03-04 13:55:28 +01:00
Julius Härtl
9bbef1fe42 Merge pull request #3552 from nextcloud/fix/return-selector
return the selector for collections
2022-03-04 09:53:19 +01:00
Julius Härtl
5bd608595a Merge pull request #3612 from nextcloud/bug/make-insert-attachment-button-clickable
Make insert attachment buttom easy to click
2022-03-02 17:23:34 +01:00
Julius Härtl
0df048da5c Merge pull request #3613 from elitejake/patch-1
Remove extra bullet
2022-03-02 15:46:29 +01:00
elitejake
0b22224046 Remove extra bullet 2022-03-02 14:39:56 +00:00
Luka Trovic
6040172cd7 fix: make insert attachment buttom easy to click
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-03-01 15:19:36 +01:00
Julius Härtl
26c3529a5c Merge pull request #3610 from nextcloud/dependabot/github_actions/actions/setup-node-3
Bump actions/setup-node from 2.5.1 to 3
2022-02-28 09:13:21 +01:00
dependabot[bot]
9c6dd11aa2 Bump actions/setup-node from 2.5.1 to 3
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.1 to 3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.5.1...v3)

---
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>
2022-02-26 07:05:53 +00:00
dependabot[bot]
4d2e3a6500 Merge pull request #3609 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.16 2022-02-26 07:05:12 +00:00
dependabot[bot]
f5d6ad73dd Bump phpunit/phpunit from 9.5.14 to 9.5.16
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.14 to 9.5.16.
- [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.14...9.5.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 05:18:46 +00:00
dependabot[bot]
ad3fc4b2dd Merge pull request #3607 from nextcloud/dependabot/composer/vimeo/psalm-4.21.0 2022-02-26 05:17:59 +00:00
dependabot[bot]
f1a3cd1867 Bump vimeo/psalm from 4.20.0 to 4.21.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.20.0 to 4.21.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.20.0...4.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 03:48:37 +00:00
dependabot[bot]
fdaae15328 Merge pull request #3608 from nextcloud/dependabot/composer/php-parallel-lint/php-parallel-lint-1.3.2 2022-02-26 03:47:55 +00:00
dependabot[bot]
e83a993ebc Bump php-parallel-lint/php-parallel-lint from 1.3.1 to 1.3.2
Bumps [php-parallel-lint/php-parallel-lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) from 1.3.1 to 1.3.2.
- [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.1...v1.3.2)

---
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>
2022-02-26 02:02:16 +00:00
dependabot[bot]
4f23ebedb6 Merge pull request #3605 from nextcloud/dependabot/npm_and_yarn/striptags-3.2.0 2022-02-25 09:15:04 +00:00
dependabot[bot]
6e8ca6c067 Bump striptags from 3.1.1 to 3.2.0
Bumps [striptags](https://github.com/ericnorris/striptags) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/ericnorris/striptags/releases)
- [Commits](https://github.com/ericnorris/striptags/compare/v3.1.1...v3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-25 09:02:52 +00:00
dependabot[bot]
6d6a31037e Merge pull request #3604 from nextcloud/dependabot/npm_and_yarn/path-parse-1.0.7 2022-02-25 09:02:03 +00:00
dependabot[bot]
7814d59e0c Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-25 08:52:33 +00:00
Julius Härtl
cc2ff38320 Merge pull request #3603 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-5.0.0
Bump @nextcloud/webpack-vue-config from 4.3.2 to 5.0.0
2022-02-25 09:51:50 +01:00
dependabot[bot]
a43de8ec29 Bump @nextcloud/webpack-vue-config from 4.3.2 to 5.0.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.3.2 to 5.0.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v4.3.2...v5.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-25 08:35:52 +00:00
Julius Härtl
a1bd914b48 Merge pull request #3599 from nextcloud/enh/time-insensitive-cron
Move DeleteCron to be time insensitive
2022-02-24 16:16:52 +01:00
Julius Härtl
e42ffa4ca2 Move DeleteCron to be time insensitive
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-02-24 14:08:46 +01:00
dependabot[bot]
8c33760c79 Merge pull request #3594 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.6 2022-02-19 05:24:51 +00:00
dependabot[bot]
c5a9a0897e Bump dompurify from 2.3.5 to 2.3.6
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.5...2.3.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-19 05:07:11 +00:00
dependabot[bot]
1e32a01be4 Merge pull request #3593 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.14 2022-02-19 05:06:17 +00:00
dependabot[bot]
d44f489173 Bump phpunit/phpunit from 9.5.13 to 9.5.14
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.13 to 9.5.14.
- [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.13...9.5.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-19 03:26:27 +00:00
Nextcloud bot
cfa67f1cbd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-19 02:37:58 +00:00
Nextcloud bot
97aa71e1fb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-17 02:38:48 +00:00
Julius Härtl
c3e5cf6851 Merge pull request #3539 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/stylelint-config-2.1.2
Bump @nextcloud/stylelint-config from 1.0.0-beta.0 to 2.1.2
2022-02-13 15:17:34 +01:00
Julius Härtl
84d3d6b834 Merge pull request #3588 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-5.0.0
Bump @nextcloud/vue from 4.3.0 to 5.0.0
2022-02-13 15:17:15 +01:00
dependabot[bot]
778f0cda64 Bump @nextcloud/vue from 4.3.0 to 5.0.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v4.3.0...v5.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 06:02:17 +00:00
dependabot[bot]
504916608a Bump @nextcloud/stylelint-config from 1.0.0-beta.0 to 2.1.2
Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud/stylelint-config) from 1.0.0-beta.0 to 2.1.2.
- [Release notes](https://github.com/nextcloud/stylelint-config/releases)
- [Changelog](https://github.com/nextcloud/stylelint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/stylelint-config/commits/v2.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 06:02:15 +00:00
dependabot[bot]
33b99290c2 Merge pull request #3590 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.17.0 2022-02-12 06:01:13 +00:00
dependabot[bot]
132da8cf02 Bump shivammathur/setup-php from 2.16.0 to 2.17.0
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.16.0 to 2.17.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.16.0...2.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 04:54:31 +00:00
dependabot[bot]
3744541cd6 Merge pull request #3591 from nextcloud/dependabot/npm_and_yarn/follow-redirects-1.14.8 2022-02-12 04:53:42 +00:00
dependabot[bot]
da98ab81d6 Bump follow-redirects from 1.14.7 to 1.14.8
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 03:39:53 +00:00
dependabot[bot]
9a9b64f448 Merge pull request #3589 from nextcloud/dependabot/npm_and_yarn/master/jest-27.5.1 2022-02-12 03:39:06 +00:00
dependabot[bot]
ed7e2fe1b9 Bump jest from 27.4.7 to 27.5.1
Bumps [jest](https://github.com/facebook/jest) from 27.4.7 to 27.5.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.4.7...v27.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 02:04:09 +00:00
dependabot[bot]
634c9d7768 Merge pull request #3583 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.17.2 2022-02-09 17:42:50 +00:00
dependabot[bot]
5988975324 Bump @babel/runtime from 7.16.7 to 7.17.2
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.16.7 to 7.17.2.
- [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.17.2/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 17:28:27 +00:00
dependabot[bot]
ffd5bd784d Merge pull request #3567 from nextcloud/dependabot/npm_and_yarn/nanoid-3.2.0 2022-02-09 17:26:55 +00:00
dependabot[bot]
44b23688f5 Bump nanoid from 3.1.30 to 3.2.0
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 17:10:36 +00:00
dependabot[bot]
ef8c542289 Merge pull request #3575 from nextcloud/dependabot/composer/vimeo/psalm-4.20.0 2022-02-09 17:09:34 +00:00
dependabot[bot]
c0d2154e46 Bump vimeo/psalm from 4.18.1 to 4.20.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.18.1 to 4.20.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.18.1...4.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 17:00:35 +00:00
max-nextcloud
c9d34ab6df Merge pull request #3553 from nextcloud/feat/workflow-auto-update-dependabot-approve-merge.yml
Updating dependabot-approve-merge.yml workflow from template
2022-02-09 17:59:53 +01:00
Nextcloud bot
1dc62207ba Updating dependabot-approve-merge.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-09 16:36:02 +01:00
dependabot[bot]
fe007ca1d3 Merge pull request #3576 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-3.1.1 2022-02-09 15:02:27 +00:00
dependabot[bot]
887b1e46e7 Bump @relative-ci/agent from 3.1.0 to 3.1.1
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v3.1.0...v3.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-09 14:11:34 +00:00
Julius Härtl
f04fa03baa Merge pull request #3582 from nextcloud/update-master-php-enviroment
Update master php enviroment
2022-02-09 15:10:29 +01:00
Joas Schilling
106bc7f47f Update master php enviroment
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-02-09 11:37:29 +01:00
Nextcloud bot
4b5b4badd4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-08 02:38:03 +00:00
Nextcloud bot
f353f1cdd4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-06 02:36:57 +00:00
Nextcloud bot
1d7aa5d1f0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-05 02:37:25 +00:00
Nextcloud bot
69ff35653e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-02-01 02:37:23 +00:00
Julius Härtl
2c487a4375 Merge pull request #3566 from nextcloud/dependabot/npm_and_yarn/master/relative-ci/agent-3.1.0
Bump @relative-ci/agent from 3.0.0 to 3.1.0
2022-01-31 12:05:35 +01:00
Julius Härtl
6cc2ef684f Merge pull request #3550 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/axios-1.9.0
Bump @nextcloud/axios from 1.8.0 to 1.9.0
2022-01-31 12:05:08 +01:00
dependabot[bot]
fb1177fa76 Bump @nextcloud/axios from 1.8.0 to 1.9.0
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 1.8.0 to 1.9.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.8.0...v1.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 09:26:22 +00:00
dependabot[bot]
6347fee2a1 Bump @relative-ci/agent from 3.0.0 to 3.1.0
Bumps [@relative-ci/agent](https://github.com/relative-ci/agent) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/relative-ci/agent/releases)
- [Commits](https://github.com/relative-ci/agent/compare/v3.0.0...v3.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>
2022-01-31 09:26:20 +00:00
Julius Härtl
e12b6658ec Merge pull request #3561 from nextcloud/update-master-php-testing-versions
Update master php testing versions
2022-01-31 10:24:52 +01:00
Nextcloud bot
e23027094f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-31 02:37:23 +00:00
dependabot[bot]
89f31635c5 Merge pull request #3565 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.3.5 2022-01-29 05:18:16 +00:00
dependabot[bot]
2cfb107167 Bump dompurify from 2.3.4 to 2.3.5
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.4...2.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-29 04:31:09 +00:00
dependabot[bot]
5d562db408 Merge pull request #3568 from nextcloud/dependabot/npm_and_yarn/node-fetch-2.6.7 2022-01-29 04:30:15 +00:00
dependabot[bot]
9993a198b1 Bump node-fetch from 2.6.1 to 2.6.7
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-29 03:23:16 +00:00
dependabot[bot]
cf7c327816 Merge pull request #3563 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.13 2022-01-29 03:22:33 +00:00
dependabot[bot]
f2c1b42811 Bump phpunit/phpunit from 9.5.12 to 9.5.13
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.12 to 9.5.13.
- [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.12...9.5.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-29 02:01:10 +00:00
Joas Schilling
b40f8609be Update master php testing versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-28 09:24:29 +01:00
Nextcloud bot
c73be045c3 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-24 02:37:08 +00:00
dartcafe
a6516f07fe return the selector for collections
Signed-off-by: dartcafe <github@dartcafe.de>
2022-01-22 09:30:12 +01:00
dependabot[bot]
a7243f7573 Merge pull request #3551 from nextcloud/dependabot/composer/phpunit/phpunit-9.5.12 2022-01-22 06:33:09 +00:00
dependabot[bot]
ad7f4aa22b Bump phpunit/phpunit from 9.5.11 to 9.5.12
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.11 to 9.5.12.
- [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.11...9.5.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-22 03:29:38 +00:00
dependabot[bot]
bc263b6da5 Merge pull request #3548 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.3.2 2022-01-22 03:28:52 +00:00
dependabot[bot]
a3953344b5 Bump @nextcloud/webpack-vue-config from 4.3.0 to 4.3.2
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.3.0 to 4.3.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.3.0...v4.3.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>
2022-01-22 02:18:24 +00:00
Luka Trovic
99973b4501 Merge pull request #3530 from nextcloud/bug/improve-contrast-link-in-markdown-note
Make links in markdown note bolder
2022-01-21 14:07:10 +01:00
Luka Trovic
4e31332fe4 fix: make links in markdown note bolder
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-01-21 13:30:35 +01:00
Julien Veyssier
51dffdacd6 Merge pull request #3532 from nextcloud/feature/timestamps-on-created-and-modified-at-values
Timestamps on created and modified at values
2022-01-20 10:00:10 +01:00
Luka Trovic
054c5aaf8c feat: timestamps on created and modified at values
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-01-20 09:22:37 +01:00
Julien Veyssier
4f49254cfe Merge pull request #3531 from nextcloud/bug/missing-horizontal-scrollbar-in-large-table-inside-description
Add horizontal scrollbar into the large table inside description
2022-01-19 12:13:38 +01:00
Luka Trovic
a11bf5f4ba fix: add horizontal scrollbar into the large table inside description
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-01-19 10:16:43 +00:00
Nextcloud bot
9d3de1e576 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-19 02:38:10 +00:00
Julien Veyssier
b00c8a1196 Merge pull request #3541 from nextcloud/fix/check-stack-permission
Fix confusion between stackId and boardId in StackService
2022-01-18 14:28:26 +01:00
Julien Veyssier
ee3eb99cc7 fix confusion between stackId and boardId in StackService::update()
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-01-18 11:24:31 +01:00
Nextcloud bot
b73462555b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-18 02:56:01 +00:00
Julius Härtl
24c1687857 Merge pull request #3499 from nextcloud/feature/show-board-name-in-browser-title
Show board name in browser title
2022-01-14 23:15:59 +01:00
Julius Härtl
123a5b8b13 Merge pull request #3529 from nextcloud/bugfix/noid/fix-talk-integration
Fix talk integration
2022-01-14 22:11:04 +01:00
Julius Härtl
a048d40cd7 Merge pull request #3528 from nextcloud/enh/calendar-global-setting
Add app config to toggle the default calendar setting as an admin
2022-01-14 21:48:55 +01:00
Luka Trovic
b26f61b9a3 show board name in browser title
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-01-14 17:11:31 +01:00
Nextcloud bot
bf7203210c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-13 02:37:06 +00:00
Joas Schilling
53d70321da Fix talk integration
title and description where not populated and also opposed to documentation the link is not absolute

Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-12 16:20:31 +01:00
Julius Härtl
c070b18b1b Add app config to toggle the default calendar setting as an admin
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-12 13:43:50 +01:00
Nextcloud bot
3446c4aa4f [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-12 02:37:22 +00:00
Julius Härtl
19dad95c55 Merge pull request #3522 from nextcloud/docs/api-changelog
Extend API changelog
2022-01-11 19:06:50 +01:00
Julius Härtl
fc58528817 Merge pull request #3500 from nextcloud/bugfix/3312 2022-01-11 09:26:37 +01:00
Julius Härtl
ced39c9501 Extend API changelog
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-11 09:13:05 +01:00
Julius Härtl
ae27e431b2 Merge pull request #3502 from nextcloud/bug/move-card-shows-deleted-boards 2022-01-11 09:00:02 +01:00
Nextcloud bot
d820d57661 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-11 02:37:37 +00:00
dependabot[bot]
adb90f2a51 Merge pull request #3518 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.3.2 2022-01-10 12:45:10 +00:00
dependabot[bot]
c1e6f22fa1 Bump markdown-it from 12.3.0 to 12.3.2
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.3.0 to 12.3.2.
- [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.3.0...12.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 11:54:44 +00:00
Julius Härtl
c39d07db1a Merge pull request #3519 from nextcloud/dependabot/composer/vimeo/psalm-4.18.1 2022-01-10 12:53:52 +01:00
Julius Härtl
0ab5707c4f Merge pull request #3512 from simonspa/fix/parameterOrder 2022-01-10 12:01:49 +01:00
dependabot[bot]
a47110d6f7 Bump vimeo/psalm from 4.16.1 to 4.18.1
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.16.1 to 4.18.1.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.16.1...4.18.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>
2022-01-10 11:01:42 +00:00
Julius Härtl
2d2671fd77 Merge pull request #3516 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.3.1 2022-01-10 12:01:11 +01:00
Julius Härtl
55cf2a6214 Merge pull request #3517 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.3.0 2022-01-10 12:01:04 +01:00
Julius Härtl
e488d42935 Merge pull request #3515 from nextcloud/dependabot/npm_and_yarn/master/jest-27.4.7 2022-01-10 12:00:50 +01:00
Nextcloud bot
6d8a5bc956 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-10 02:37:40 +00:00
dependabot[bot]
81c908a59d Bump @nextcloud/webpack-vue-config from 4.2.0 to 4.3.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v4.2.0...v4.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-08 04:07:21 +00:00
Nextcloud bot
84910d3d3e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-08 02:36:39 +00:00
dependabot[bot]
3e6ade718f Bump markdown-it from 12.3.0 to 12.3.1
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.3.0 to 12.3.1.
- [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.3.0...12.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-08 02:04:19 +00:00
dependabot[bot]
b5ed3b122a Bump jest from 27.4.5 to 27.4.7
Bumps [jest](https://github.com/facebook/jest) from 27.4.5 to 27.4.7.
- [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.4.5...v27.4.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-08 02:02:31 +00:00
Simon Spannagel
3dfc33378d CardApiController: Fix order of optional parameters
Signed-off-by: Simon Spannagel <simonspa@kth.se>
2022-01-07 11:31:32 +01:00
Luka Trovic
e4dbd9e385 exclude deleted boards in the selection for target
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-01-06 09:26:15 +01:00
Nextcloud bot
61910290b9 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-06 02:38:49 +00:00
Nextcloud bot
bce79c596b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-05 02:38:14 +00:00
Nextcloud bot
6be3c3fe67 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-04 02:38:08 +00:00
Julius Härtl
eaf6defe59 Move any circles API usage to internal service
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-03 10:23:47 +01:00
Julius Härtl
bfc8222e6f Avoid blocking calendar access if something goes wrong while fetching deck entries
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-03 10:23:47 +01:00
Julius Härtl
66fa241382 Merge pull request #3504 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.16.7 2022-01-03 08:32:27 +01:00
Julius Härtl
7b237d8cd8 Merge pull request #3505 from nextcloud/Valdnet-patch-1 2022-01-03 08:32:11 +01:00
Nextcloud bot
5fc1aba9cd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-03 02:38:04 +00:00
Nextcloud bot
3900a15b4b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-02 02:37:44 +00:00
Valdnet
cf8023855b l10n: Add dot.
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-01-01 21:47:52 +01:00
dependabot[bot]
ff41bbab7b Bump @babel/runtime from 7.16.5 to 7.16.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.16.5 to 7.16.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.7/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 05:00:23 +00:00
dependabot[bot]
bec07726a7 Merge pull request #3503 from nextcloud/dependabot/github_actions/actions/setup-node-2.5.1 2022-01-01 04:23:38 +00:00
dependabot[bot]
c24e72f161 Bump actions/setup-node from 2.5.0 to 2.5.1
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.5.0...v2.5.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>
2022-01-01 03:26:30 +00:00
Nextcloud bot
6296ebb87c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-01-01 02:37:46 +00:00
Nextcloud bot
a96bb277a4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-31 02:38:03 +00:00
Julius Härtl
b58913e730 Merge pull request #3182 from vitormattos/import-from-trello 2021-12-30 11:39:35 +01:00
Vitor Mattos
ccd5bce7ea Replace glob by EventDispatcher
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
f2b6934ac3 Move all classes to a sub-namespace
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
24c8b2f4aa Make error more specific
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
a3959e3cfc Update lib/Service/BoardImportCommandService.php
Co-authored-by: Julien Veyssier <eneiluj@posteo.net>

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
fda8a03c43 Remove unused codes
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
5b30577df0 Update documentation, import created
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:50 +01:00
Vitor Mattos
4561887348 Add long comments with attachment
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
e87c063076 Documentation, improvements on validation, refactor
Validate get boad
change pattern of api params
Import only one board by api
Populate data from api
Update class diagram
Update documentation
Add return when success
Sort comments
Fix order of cards
Instructions of attachments

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
202ea30090 Start implementing Trello API service
Implement name of system to import
Implement need validate data
Fix allowed system list
Start implementing Trello API service

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
c7a37ea425 Increase documentation
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
19c609540b Default valute to board property fix command flow and refactor
Fixes on getBoard tests
Refactor
Reduce psalm info
Refactor to implement pattern
Change order of methods to put all abstract first and all public first

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
6714c89220 Remove interact from command and implement bootstrap method
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
e01e4cf1a7 Create route to get json schema to validate config
Fix visibility
Make compatible with php 7.2
Remove returing instance
Increase coverage
Reduce psalm info
Throw exception if system not defined
Increment coverage

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
4138953208 Changes to make possible implement api endpoint
Update documentation
Start implementing getSystems route
Code to route getSystems
Controller to board import
Change return
Increase coverage

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
39a927de18 Clean attachment table
Clean code
Clean attachment table

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:49 +01:00
Vitor Mattos
c5d10dafb8 Import participants
Big refactor to create route
Import participants

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:48 +01:00
Vitor Mattos
fd92fc3c4d Refactor and improvements on command
Check available helpers
Default permission: view only
Moved validate setting from helper to command
Turn more easy create a importer
Docblock and improvements on interface
lcfirst on system property
Helper moved to ImporHelper folder
Moved fixtures to ImportHelper
Rename settings to config
Big refactor to move import methods to service

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:48 +01:00
Vitor Mattos
eb8bf3f22b Translations and tests
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:48 +01:00
Vitor Mattos
e28a47e9e0 Update UserExport.php
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:48 +01:00
Vitor Mattos
48df98ce67 Add new command
Clean code
Add new command
Import last modified and deleted date
Replace arrow functions by lambda functions
Add properties to class
Add dependency to composer.json
Signed-off-by: Vitor Mattos <vitor@php.rio>
Turn private methods
Add output messages and associate users to cards

Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:46 +01:00
Vitor Mattos
89028c74cb Command to import from Trello
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-12-30 11:19:34 +01:00
Julius Härtl
4e5537f204 Merge pull request #3501 from nextcloud/bug/missing-translation-not-found-in-transifex 2021-12-30 09:00:20 +01:00
Luka Trovic
f74bca8c43 add a missing translation - not found in transifex
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2021-12-30 08:23:14 +01:00
Julius Härtl
30e4b43e46 Merge pull request #3424 from nextcloud/dependabot/composer/nextcloud/coding-standard-1.0.0 2021-12-29 16:24:45 +01:00
Julius Härtl
596834853b Fix codestyle issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-29 11:43:57 +01:00
dependabot[bot]
eff3c94c6a Bump nextcloud/coding-standard from 0.5.0 to 1.0.0
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 0.5.0 to 1.0.0.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v0.5.0...v1.0.0)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 11:43:56 +01:00
Julius Härtl
8aa3edee58 Merge pull request #3429 from Themanwhosmellslikesugar/rework/store-card-details-in-modal 2021-12-29 10:47:49 +01:00
Julius Härtl
d3404c7489 Merge pull request #3495 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-link-attributes-4.0.0
Bump markdown-it-link-attributes from 3.0.0 to 4.0.0
2021-12-28 22:12:21 +01:00
dependabot[bot]
84bcd2e502 Bump markdown-it-link-attributes from 3.0.0 to 4.0.0
Bumps [markdown-it-link-attributes](https://github.com/crookedneighbor/markdown-it-link-attributes) from 3.0.0 to 4.0.0.
- [Release notes](https://github.com/crookedneighbor/markdown-it-link-attributes/releases)
- [Changelog](https://github.com/crookedneighbor/markdown-it-link-attributes/blob/main/CHANGELOG.md)
- [Commits](https://github.com/crookedneighbor/markdown-it-link-attributes/compare/v3.0.0...v4.0.0)

---
updated-dependencies:
- dependency-name: markdown-it-link-attributes
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-28 18:07:35 +00:00
Julius Härtl
f645937b10 Merge pull request #3498 from nextcloud/bugfix/noid/composer
Update composer config
2021-12-28 19:06:32 +01:00
Julius Härtl
d9af04121d Update composer config
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-28 14:45:37 +01:00
Dmitriy Ivanko
51bcbdb87d Store cardDetailsInModal in config instead of state
Signed-off-by: Dmitriy Ivanko <tmwsls12@gmail.com>
2021-12-28 14:39:25 +01:00
Julius Härtl
25dee609b5 Merge pull request #3479 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/vue-4.3.0 2021-12-27 10:22:02 +01:00
Julius Härtl
14ab4597c5 Merge pull request #3481 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.3.0 2021-12-27 10:21:55 +01:00
Julius Härtl
d3146b4019 Merge pull request #3491 from nextcloud/dependabot/composer/vimeo/psalm-4.15.0 2021-12-27 10:21:48 +01:00
dependabot[bot]
4b02be2028 Bump @nextcloud/vue from 4.2.0 to 4.3.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v4.2.0...v4.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-25 03:26:42 +00:00
dependabot[bot]
476d607148 Bump markdown-it from 12.2.0 to 12.3.0
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.2.0 to 12.3.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.2.0...12.3.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-12-25 03:26:40 +00:00
dependabot[bot]
99f17823ec Bump vimeo/psalm from 4.11.2 to 4.15.0
Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 4.11.2 to 4.15.0.
- [Release notes](https://github.com/vimeo/psalm/releases)
- [Commits](https://github.com/vimeo/psalm/compare/4.11.2...v4.15.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-12-25 03:26:39 +00:00
dependabot[bot]
ad537162c8 Merge pull request #3496 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/eslint-config-6.1.2 2021-12-25 03:25:45 +00:00
dependabot[bot]
3a243b1fc7 Bump @nextcloud/eslint-config from 6.1.1 to 6.1.2
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/nextcloud/eslint-config/releases)
- [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/eslint-config/compare/v6.1.1...v6.1.2)

---
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-25 02:03:08 +00:00
Nextcloud bot
bfcbe0306e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-24 02:39:51 +00:00
Nextcloud bot
d060a842b4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-22 02:38:51 +00:00
Nextcloud bot
90a3339e18 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-20 02:40:43 +00:00
dependabot[bot]
90287606c1 Merge pull request #3492 from nextcloud/dependabot/npm_and_yarn/master/babel/runtime-7.16.5 2021-12-18 03:41:10 +00:00
dependabot[bot]
f65b3801cc Bump @babel/runtime from 7.16.3 to 7.16.5
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.16.3 to 7.16.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-runtime)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-18 03:14:37 +00:00
Nextcloud bot
b4f35bf2fd [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-18 02:37:53 +00:00
Nextcloud bot
a857c63b35 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-17 02:39:59 +00:00
dependabot[bot]
5802a31e93 Merge pull request #3488 from nextcloud/dependabot/npm_and_yarn/master/jest-27.4.5 2021-12-16 11:03:32 +00:00
dependabot[bot]
d459995df3 Bump jest from 27.4.4 to 27.4.5
Bumps [jest](https://github.com/facebook/jest) from 27.4.4 to 27.4.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.4.4...v27.4.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-12-16 09:31:32 +00:00
Julius Härtl
5be01e60fb Merge pull request #3480 from nextcloud/dependabot/npm_and_yarn/master/jest-27.4.4 2021-12-16 10:30:34 +01:00
Julius Härtl
8443549d74 Merge pull request #3470 from nextcloud/dependabot/github_actions/actions/setup-node-2.5.0 2021-12-16 10:30:15 +01:00
Julius Härtl
23e532a9c2 Merge pull request #3469 from nextcloud/dependabot/npm_and_yarn/master/nextcloud/webpack-vue-config-4.2.0 2021-12-16 10:29:55 +01:00
Julius Härtl
2a41d98c6f Merge pull request #3471 from nextcloud/dependabot/npm_and_yarn/master/jest-27.4.3 2021-12-16 10:29:44 +01:00
Julius Härtl
4c4b8f3bed Merge pull request #3487 from nextcloud/Valdnet-patch-1 2021-12-16 08:55:16 +01:00
Valdnet
1806f0817b l10n: Change to a capital letter
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-12-16 08:42:34 +01:00
Nextcloud bot
e855ef3414 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-16 02:38:14 +00: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]
99c880df18 Bump jest from 27.3.1 to 27.4.3
Bumps [jest](https://github.com/facebook/jest) from 27.3.1 to 27.4.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.3.1...v27.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 05:21:52 +00:00
dependabot[bot]
144ca0d39d Bump @nextcloud/webpack-vue-config from 4.1.4 to 4.2.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.1.4 to 4.2.0.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v4.1.4...v4.2.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-12-11 05:21:17 +00:00
dependabot[bot]
71fbdfeba5 Bump jest from 27.3.1 to 27.4.4
Bumps [jest](https://github.com/facebook/jest) from 27.3.1 to 27.4.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.3.1...v27.4.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-12-11 05:21:08 +00:00
dependabot[bot]
101995598b Bump actions/setup-node from 2.4.1 to 2.5.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.4.1...v2.5.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-12-11 05:20:48 +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
187 changed files with 11024 additions and 7951 deletions

View File

@@ -11,19 +11,6 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- jakobroehrl
#- package-ecosystem: npm
# directory: "/"
# target-branch: "stable1.1"
# schedule:
# interval: weekly
# day: saturday
# time: "03:00"
# timezone: Europe/Paris
# open-pull-requests-limit: 10
# reviewers:
# - juliushaertl
# - jakobroehrl
- package-ecosystem: composer
directory: "/"
schedule:
@@ -34,11 +21,16 @@ updates:
open-pull-requests-limit: 10
reviewers:
- juliushaertl
ignore:
- dependency-name: christophwurst/nextcloud
versions:
- "< 16"
- ">= 15.a"
- package-ecosystem: composer
directory: "/tests/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 10
reviewers:
- juliushaertl
- package-ecosystem: github-actions
directory: "/"
schedule:

39
.github/workflows/appbuild.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Package build
on:
pull_request:
jobs:
build:
runs-on: ubuntu-18.04
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
run: npm i -g npm@7
- name: Setup PHP
uses: shivammathur/setup-php@2.18.0
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
- name: package
run: |
uname -a
RUST_BACKTRACE=1 krankerl --version
RUST_BACKTRACE=1 krankerl package
- uses: actions/upload-artifact@v3
with:
name: Deck app tarball
path: build/artifacts/deck.tar.gz

View File

@@ -66,7 +66,7 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@v2
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ env.PHP_VERSION }}
coverage: none

View File

@@ -18,7 +18,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@v1
uses: peter-evans/create-or-update-comment@v2
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -26,7 +26,7 @@ jobs:
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
@@ -37,7 +37,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@v1
uses: peter-evans/create-or-update-comment@v2
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -25,5 +25,5 @@ jobs:
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@v2
with:
target: patch
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}

View File

@@ -3,31 +3,18 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block fixup and squash commits
name: Pull request checks
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on: pull_request
jobs:
commit-message-check:
if: github.event.pull_request.draft == false
permissions:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
uses: xt0rted/block-autosquash-commits-action@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -19,7 +19,7 @@ jobs:
matrix:
php-versions: ['7.4']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable23']
server-versions: ['stable24']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -43,7 +43,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
@@ -54,25 +54,19 @@ jobs:
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
cd build/integration && composer require --dev phpunit/phpunit:~8
- name: Checkout app
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3
with:
path: apps/${{ env.APP_NAME }}
- name: Checkout activity
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
repository: nextcloud/activity
ref: ${{ matrix.server-versions }}
path: apps/activity
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.15.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, gd, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
coverage: none
- name: Set up PHPUnit

View File

@@ -13,13 +13,13 @@ jobs:
strategy:
matrix:
php-versions: ['7.3', '7.4']
php-versions: ['7.4', '8.0', '8.1']
name: php${{ matrix.php-versions }} lint
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.15.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
coverage: none
@@ -31,9 +31,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3
- name: Set up php
uses: shivammathur/setup-php@2.15.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: 7.4
coverage: none
@@ -50,9 +50,9 @@ jobs:
node-version: [14.x]
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v2.4.1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Set up npm7
@@ -71,10 +71,10 @@ jobs:
name: stylelint node${{ matrix.node-version }}
steps:
- uses: actions/checkout@v2.4.0
- uses: actions/checkout@v3
- name: Set up node ${{ matrix.node-version }}
uses: actions/setup-node@v2.4.1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

View File

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

View File

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

View File

@@ -13,14 +13,14 @@ env:
jobs:
integration:
runs-on: ubuntu-latest
runs-on: ubuntu-18.04
strategy:
fail-fast: false
matrix:
php-versions: ['7.3', '7.4']
php-versions: ['7.4', '8.0', '8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['stable23']
server-versions: ['stable24']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -62,7 +62,7 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.15.0
uses: shivammathur/setup-php@2.18.0
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit

View File

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

View File

@@ -1,99 +1,87 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.6.7
## 1.7.2
### Fixed
- fix: Detect end of the activity responses (fix #3395) #6518
- fix: Avoid conflicts on deck attachments folder name #5705
- Cache user membership for circles [#4132](https://github.com/nextcloud/deck/pull/4132)
- Set event link also for notifications that get emitted from activities [#4118](https://github.com/nextcloud/deck/pull/4118)
- Fix Card menu not displaying when description is not set [#4103](https://github.com/nextcloud/deck/pull/4103)
- disable Create card button while no stack is chosen [#4019](https://github.com/nextcloud/deck/pull/4019)
- to nextcloud/OCP package in stable24 [#4093](https://github.com/nextcloud/deck/pull/4093)
- Fix attachment creator name: show display name [#4037](https://github.com/nextcloud/deck/pull/4037)
- Use capped memory cache for board permissions [#3997](https://github.com/nextcloud/deck/pull/3997)
- Improve CalDAV integration performance [#3995](https://github.com/nextcloud/deck/pull/3995)
- Fetch attachment folder for the correct user during cron job [#3959](https://github.com/nextcloud/deck/pull/3959)
- Switch to 'markdown-it-task-checkbox' for rendering of task lists [#3925](https://github.com/nextcloud/deck/pull/3925)
- Prevent opening card and applyLabelFilter on card drag end [#3917](https://github.com/nextcloud/deck/pull/3917)
- Fix for issue #3637 [#3901](https://github.com/nextcloud/deck/pull/3901)
- Fix z-index for deck sidebar [#3885](https://github.com/nextcloud/deck/pull/3885)
## 1.6.6
## 1.7.1
### Fixed
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 [#3817](https://github.com/nextcloud/deck/pull/3817)
- Increase file count after sharing [#3806](https://github.com/nextcloud/deck/pull/3806)
- Fetch full board data after cloning [#3781](https://github.com/nextcloud/deck/pull/3781)
- Gracefully handle not found card for a share [#4570](https://github.com/nextcloud/deck/pull/4570)
- Fix(occ): set user id for permission sevice from board service [#5073](https://github.com/nextcloud/deck/pull/5073)
- Fix deleted card/board issues @juliushaertl [#5450](https://github.com/nextcloud/deck/pull/5450)
- Fix small issues around delete/undo @juliushaertl [#5447](https://github.com/nextcloud/deck/pull/5447)
## 1.6.5
### Fixed
- minor style fixes [#4203](https://github.com/nextcloud/deck/pull/4203)
- Add integration test for attachment handling on cards [#4177](https://github.com/nextcloud/deck/pull/4177)
- feat: add validators to check values in services @juliushaertl [#4175](https://github.com/nextcloud/deck/pull/4175)
- disables autocomplete on card creation @juliushaertl [#4183](https://github.com/nextcloud/deck/pull/4183)
## 1.6.4
### Fixed
- Cache user membership for circles [#4133](https://github.com/nextcloud/deck/pull/4133)
- Set event link also for notifications that get emitted from activities [#4119](https://github.com/nextcloud/deck/pull/4119)
- disable Create card button while no stack is chosen [#4020](https://github.com/nextcloud/deck/pull/4020)
- to nextcloud/OCP package in stable23 [#4094](https://github.com/nextcloud/deck/pull/4094)
- Use capped memory cache for board permissions [#3998](https://github.com/nextcloud/deck/pull/3998)
- Improve CalDAV integration performance [#3996](https://github.com/nextcloud/deck/pull/3996)
- Fetch attachment folder for the correct user during cron job [#3960](https://github.com/nextcloud/deck/pull/3960)
- Switch to 'markdown-it-task-checkbox' for rendering of task lists [#3926](https://github.com/nextcloud/deck/pull/3926)
- Prevent opening card and applyLabelFilter on card drag end [#3918](https://github.com/nextcloud/deck/pull/3918)
- Fix z-index for deck sidebar [#3886](https://github.com/nextcloud/deck/pull/3886)
## 1.6.3
### Fixed
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 [#3816](https://github.com/nextcloud/deck/pull/3816)
- Increase file count after sharing [#3805](https://github.com/nextcloud/deck/pull/3805)
- Show cards after moving into another list [#3795](https://github.com/nextcloud/deck/pull/3795)
- Fetch full board data after cloning [#3780](https://github.com/nextcloud/deck/pull/3780)
- Handle qb mapper exception messages properly [#3770](https://github.com/nextcloud/deck/pull/3770)
## 1.6.2
## 1.7.0
### Added
- Transfer ownership @juliushaertl [#3664](https://github.com/nextcloud/deck/pull/3664)
- Transfer ownership @matchish @luka-nextcloud @juliushaertl [#2496](https://github.com/nextcloud/deck/pull/2496)
- Import from trello via CLI @vitormattos [#3182](https://github.com/nextcloud/deck/pull/3182)
- Add app config to toggle the default calendar setting as an admin @juliushaertl [#3528](https://github.com/nextcloud/deck/pull/3528)
- Show board name in browser title @luka-nextcloud [#3499](https://github.com/nextcloud/deck/pull/3499)
- Move DeleteCron to be time insensitive @juliushaertl [#3599](https://github.com/nextcloud/deck/pull/3599)
- 🚸 Shows error on board fetchData @vinicius73 [#3653](https://github.com/nextcloud/deck/pull/3653)
- Add support for PHP 8.1 @juliushaertl [#3601](https://github.com/nextcloud/deck/pull/3601)
- Nextcloud 24 compatibility
### Fixed
- 🐛 Fix missing files sidebar [#3641](https://github.com/nextcloud/deck/pull/3641)
- Add a missing translation - not found in transifex [#3706](https://github.com/nextcloud/deck/pull/3706)
- Fix: Check all circle shares for permissions [#3717](https://github.com/nextcloud/deck/pull/3717)
- Sort boards non case sensitive [#3663](https://github.com/nextcloud/deck/pull/3663)
- Use explicit cast to make use of index @juliushaertl [#3497](https://github.com/nextcloud/deck/pull/3497)
- Fix paramter replacements when creating deck cards from talk messages @juliushaertl [#3741](https://github.com/nextcloud/deck/pull/3741)
- Fix hidden attachment icon on archived cards [#3734](https://github.com/nextcloud/deck/pull/3734)
- Fix text selection in dark mode and modal view [#3766](https://github.com/nextcloud/deck/pull/3766)
- CardApiController: Fix order of optional parameters @simonspa [#3512](https://github.com/nextcloud/deck/pull/3512)
- Exclude deleted boards in the selection for target @luka-nextcloud [#3502](https://github.com/nextcloud/deck/pull/3502)
- Fix CalDAV blocking and modernize circles API usage @juliushaertl [#3500](https://github.com/nextcloud/deck/pull/3500)
- Timestamps on created and modified at values @luka-nextcloud [#3532](https://github.com/nextcloud/deck/pull/3532)
- return the selector for collections @dartcafe [#3552](https://github.com/nextcloud/deck/pull/3552)
- Generate fixed link for activity emails @luka-nextcloud [#3611](https://github.com/nextcloud/deck/pull/3611)
- 🐛 Fix missing files sidebar @vinicius73 [#3635](https://github.com/nextcloud/deck/pull/3635)
- Handle description shortening more gracefully @juliushaertl [#3650](https://github.com/nextcloud/deck/pull/3650)
- Sort boards non case sensitive @Ben-Ro [#3560](https://github.com/nextcloud/deck/pull/3560)
- Remove unused argument from transfer ownership @juliushaertl [#3712](https://github.com/nextcloud/deck/pull/3712)
- Fix: Check all circle shares for permissions @bink [#3625](https://github.com/nextcloud/deck/pull/3625)
- Extend API changelog @juliushaertl [#3522](https://github.com/nextcloud/deck/pull/3522)
- Fix talk integration @nickvergessen [#3529](https://github.com/nextcloud/deck/pull/3529)
- Fix confusion between stackId and boardId in StackService @eneiluj [#3541](https://github.com/nextcloud/deck/pull/3541)
- Add horizontal scrollbar into the large table inside description @luka-nextcloud [#3531](https://github.com/nextcloud/deck/pull/3531)
- Make links in markdown note bolder @luka-nextcloud [#3530](https://github.com/nextcloud/deck/pull/3530)
- Update master php testing versions @nickvergessen [#3561](https://github.com/nextcloud/deck/pull/3561)
- Update master php enviroment @nickvergessen [#3582](https://github.com/nextcloud/deck/pull/3582)
- Make insert attachment buttom easy to click @luka-nextcloud [#3612](https://github.com/nextcloud/deck/pull/3612)
- Remove extra bullet @elitejake [#3613](https://github.com/nextcloud/deck/pull/3613)
- l10n: Delete space @Valdnet [#3666](https://github.com/nextcloud/deck/pull/3666)
- Update master php testing versions @nickvergessen [#3688](https://github.com/nextcloud/deck/pull/3688)
- Fix wording to represent the code behavior @q-wertz [#3685](https://github.com/nextcloud/deck/pull/3685)
- Fix cron jobs @nickvergessen [#3689](https://github.com/nextcloud/deck/pull/3689)
- Update master php testing versions @nickvergessen [#3695](https://github.com/nextcloud/deck/pull/3695)
- Optimise queries when preparing card related notifications @Raudius [#3690](https://github.com/nextcloud/deck/pull/3690)
- Properly check for the stack AND setting board permissions @juliushaertl [#3670](https://github.com/nextcloud/deck/pull/3670)
- Replace deprecated String.prototype.substr() @CommanderRoot [#3669](https://github.com/nextcloud/deck/pull/3669)
- Dependency updates
- Show cards after moving into another list [#3736](https://github.com/nextcloud/deck/pull/3736)
- Fix paramter replacements when creating deck cards from talk messages @nickvergessen [#3683](https://github.com/nextcloud/deck/pull/3683)
- Fix hidden attachment icon on archived cards [#3733](https://github.com/nextcloud/deck/pull/3733)
- Adapt the card modal to upstream changes [#3764](https://github.com/nextcloud/deck/pull/3764)
- Fix text selection in dark mode and modal view [#3765](https://github.com/nextcloud/deck/pull/3765)
- Add missing indices [#3754](https://github.com/nextcloud/deck/pull/3754)
- Handle qb mapper exception messages properly @juliushaertl [#3769](https://github.com/nextcloud/deck/pull/3769)
### Other
- Properly check for the stack AND setting board permissions [#3713](https://github.com/nextcloud/deck/pull/3713)
- Add missing indices [#3755](https://github.com/nextcloud/deck/pull/3755)
## 1.6.1
### Fixed
- Exclude deleted boards in the selection for target [#3523](https://api.github.com/repos/nextcloud/deck/pulls/3523)
- CardApiController: Fix order of optional parameters [#3520](https://api.github.com/repos/nextcloud/deck/pulls/3520)
- Fix cursor generation if no results are found [#3462](https://api.github.com/repos/nextcloud/deck/pulls/3462)
- Fix CalDAV blocking and modernize circles API usage [#3526](https://api.github.com/repos/nextcloud/deck/pulls/3526)
- Fix overview card listing [#3463](https://api.github.com/repos/nextcloud/deck/pulls/3463)
- Generate fixed link for activity emails [#3626](https://api.github.com/repos/nextcloud/deck/pulls/3626)
- return the selector for collections [#3618](https://api.github.com/repos/nextcloud/deck/pulls/3618)
- Fix confusion between stackId and boardId in StackService [#3543](https://api.github.com/repos/nextcloud/deck/pulls/3543)
- Fix talk integration [#3537](https://api.github.com/repos/nextcloud/deck/pulls/3537)
- Make insert attachment buttom easy to click [#3614](https://api.github.com/repos/nextcloud/deck/pulls/3614)
## 1.6.0
## 1.6.0-beta1
### Added
- #3449 Cache most frequent queries
- #3177 Use async import for vue component on collections entrypoint @juliushaertl
- #2791 Open description links in new tab @fm-sys
- #3344 Improve combined search @eneiluj
@@ -102,11 +90,6 @@ All notable changes to this project will be documented in this file.
### Fixed
- #3446 Switch to QBMapper in BoardMapper
- #3433 Fix event name for updating the description
- #3463 Fix overview card listing
- #3440 Allow to download an attachment without navigating to the files app
- #3462 Fix cursor generation if no results are found
- #3161 Reduce duplicate queries when fetching user boards an permissions @juliushaertl
- #3151 Always log generic exceptions @juliushaertl
- #3217 Move circle checks to a unified service and improve member checks @juliushaertl

View File

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

View File

@@ -7,16 +7,16 @@
- 📥 Add your tasks to cards and put them in order
- 📄 Write down additional notes in markdown
- 📄 Write down additional notes in Markdown
- 🔖 Assign labels for even better organization
- 👥 Share with your team, friends or family
- 📎 Attach files and embed them in your markdown description
- 📎 Attach files and embed them in your Markdown description
- 💬 Discuss with your team using comments
- ⚡ Keep track of changes in the activity stream
- 🚀 Get your project organized
</description>
<version>1.6.7</version>
<version>1.7.2</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
@@ -31,11 +31,10 @@
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/1.0/Deck-1.png</screenshot>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/1.0/Deck-2.png</screenshot>
<dependencies>
<php min-version="7.3"/>
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="5.5">mysql</database>
<nextcloud min-version="23" max-version="23"/>
<database min-version="8.0">mysql</database>
<nextcloud min-version="24" max-version="24"/>
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>
@@ -44,6 +43,7 @@
</background-jobs>
<commands>
<command>OCA\Deck\Command\UserExport</command>
<command>OCA\Deck\Command\BoardImport</command>
<command>OCA\Deck\Command\TransferOwnership</command>
</commands>
<activity>

View File

@@ -92,6 +92,10 @@ return [
['name' => 'board_api#deleteAcl', 'url' => '/api/v{apiVersion}/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board_api#updateAcl', 'url' => '/api/v{apiVersion}/boards/{boardId}/acl/{aclId}', 'verb' => 'PUT'],
['name' => 'board_import_api#getAllowedSystems', 'url' => '/api/v{apiVersion}/boards/import/getSystems','verb' => 'GET'],
['name' => 'board_import_api#getConfigSchema', 'url' => '/api/v{apiVersion}/boards/import/config/schema/{name}','verb' => 'GET'],
['name' => 'board_import_api#import', 'url' => '/api/v{apiVersion}/boards/import','verb' => 'POST'],
['name' => 'stack_api#index', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks', 'verb' => 'GET'],
['name' => 'stack_api#getArchived', 'url' => '/api/v{apiVersion}/boards/{boardId}/stacks/archived', 'verb' => 'GET'],

View File

@@ -9,23 +9,27 @@
}
],
"require": {
"cogpowered/finediff": "0.3.*"
"cogpowered/finediff": "0.3.*",
"justinrainbow/json-schema": "^5.2"
},
"require-dev": {
"roave/security-advisories": "dev-master",
"phpunit/phpunit": "^8",
"nextcloud/coding-standard": "^0.5.0",
"phpunit/phpunit": "^9",
"nextcloud/coding-standard": "^1.0.0",
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^4.3",
"php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-stable23"
"nextcloud/ocp": "dev-stable24"
},
"config": {
"platform": {
"php": "7.3"
},
"optimize-autoloader": true,
"classmap-authoritative": true
"classmap-authoritative": true,
"allow-plugins": {
"composer/package-versions-deprecated": true
},
"platform": {
"php": "7.4"
}
},
"scripts": {
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
@@ -38,8 +42,7 @@
"@test:integration"
],
"test:unit": "phpunit -c tests/phpunit.xml",
"test:integration": "phpunit -c tests/phpunit.integration.xml",
"test:api": "cd tests/integration && ./run.sh"
"test:integration": "phpunit -c tests/phpunit.integration.xml && cd tests/integration && ./run.sh"
},
"autoload-dev": {
"psr-4": {

1464
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -96,10 +96,27 @@ If available the ETag will also be part of JSON response objects as shown below
# Changelog
## 1.0.0 (unreleased)
## API version 1.0
- Deck >=1.0.0: The maximum length of the card title has been extended from 100 to 255 characters
- Deck >=1.0.0: The API will now return a 400 Bad request response if the length limitation of a board, stack or card title is exceeded
## API version 1.1
This API version has become available with **Deck 1.3.0**.
- The maximum length of the card title has been extended from 100 to 255 characters
- The API will now return a 400 Bad request response if the length limitation of a board, stack or card title is exceeded
- The attachments API endpoints will return other attachment types than deck_file
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
## API version 1.2 (unreleased)
- Endpoints for the new import functionality have been added:
- [GET /boards/import/getSystems - Import a board](#get-boardsimportgetsystems-import-a-board)
- [GET /boards/import/config/system/{schema} - Import a board](#get-boardsimportconfigsystemschema-import-a-board)
- [POST /boards/import - Import a board](#post-boardsimport-import-a-board)
# Endpoints
@@ -927,7 +944,8 @@ The request can fail with a bad request response for the following reasons:
| type | String | The type of the attachement |
| file | Binary | File data to add as an attachment |
For now only `deck_file` is supported as an attachment type.
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
#### Response
@@ -988,6 +1006,49 @@ For now only `deck_file` is supported as an attachment type.
##### 200 Success
### GET /boards/import/getSystems - Import a board
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| system | Integer | The system name. Example: trello |
#### Response
Make a request to see the json schema of system
```json
{
}
```
### GET /boards/import/config/system/{schema} - Import a board
#### Request parameters
#### Response
```json
[
"trello"
]
```
### POST /boards/import - Import a board
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| system | string | The allowed name of system to import from |
| config | Object | The config object (JSON) |
| data | Object | The data object to import (JSON) |
#### Response
##### 200 Success
# OCS API
The following endpoints are available through the Nextcloud OCS endpoint, which is available at `/ocs/v2.php/apps/deck/api/v1.0/`.
@@ -1004,6 +1065,7 @@ Deck stores user and app configuration values globally and per board. The GET en
| Config key | Description |
| --- | --- |
| calendar | Determines if the calendar/tasks integration through the CalDAV backend is enabled for the user (boolean) |
| cardDetailsInModal | Determines if the bigger view is used (boolean) |
| groupLimit | Determines if creating new boards is limited to certain groups of the instance. The resulting output is an array of group objects with the id and the displayname (Admin only)|
```
@@ -1016,6 +1078,7 @@ Deck stores user and app configuration values globally and per board. The GET en
},
"data": {
"calendar": true,
"cardDetailsInModal": true,
"groupLimit": [
{
"id": "admin",
@@ -1045,6 +1108,7 @@ Deck stores user and app configuration values globally and per board. The GET en
| --- | ----- |
| notify-due | `off`, `assigned` or `all` |
| calendar | Boolean |
| cardDetailsInModal | Boolean |
#### Example request

View File

@@ -14,7 +14,9 @@ Overall, Deck is easy to use. You can create boards, add users, share the Deck,
3. [Handle cards options](#3-handle-cards-options)
4. [Archive old tasks](#4-archive-old-tasks)
5. [Manage your board](#5-manage-your-board)
6. [New owner for the deck entities](#8-new-owner-for-the-deck-entities)
6. [Import boards](#6-import-boards)
7. [Search](#7-search)
8. [New owner for the deck entities](#8-new-owner-for-the-deck-entities)
### 1. Create my first board
In this example, we're going to create a board and share it with an other nextcloud user.
@@ -70,14 +72,80 @@ The **sharing tab** allows you to add users or even groups to your boards.
**Deleted objects** allows you to return previously deleted stacks or cards.
The **Timeline** allows you to see everything that happened in your boards. Everything!
## Search
### 6. Import boards
Importing can be done using the API or the `occ` `deck:import` command.
Comments with more than 1000 characters are placed as attached files to the card.
It is possible to import from the following sources:
#### Trello JSON
Steps:
* Create the data file
* Access Trello
* go to the board you want to export
* Follow the steps in [Trello documentation](https://help.trello.com/article/747-exporting-data-from-trello-1) and export as JSON
* Create the configuration file
* Execute the import informing the import file path, data file and source as `Trello JSON`
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/fixtures/config-trelloJson-schema.json) for import `Trello JSON`
Example configuration file:
```json
{
"owner": "admin",
"color": "0800fd",
"uidRelation": {
"johndoe": "johndoe"
}
}
```
**Limitations**:
Importing from a JSON file imports up to 1000 actions. To find out how many actions the board to be imported has, identify how many actions the JSON has.
#### Trello API
Import using API is recommended for boards with more than 1000 actions.
Trello makes it possible to attach links to a card. Deck does not have this feature. Attachments and attachment links are added in a markdown table at the end of the description for every imported card that has attachments in Trello.
* Get the API Key and API Token [here](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication-and-authorization)
* Get the ID of the board you want to import by making a request to:
https://api.trello.com/1/members/me/boards?key={yourKey}&token={yourToken}&fields=id,name
This ID you will use in the configuration file in the `board` property
* Create the configuration file
Create the configuration file respecting the [JSON Schema](https://github.com/nextcloud/deck/blob/master/lib/Service/fixtures/config-trelloApi-schema.json) for import `Trello JSON`
Example configuration file:
```json
{
"owner": "admin",
"color": "0800fd",
"api": {
"key": "0cc175b9c0f1b6a831c399e269772661",
"token": "92eb5ffee6ae2fec3ad71c777531578f4a8a08f09d37b73795649038408b5f33"
},
"board": "8277e0910d750195b4487976",
"uidRelation": {
"johndoe": "johndoe"
}
}
```
### 7. Search
Deck provides a global search either through the unified search in the Nextcloud header or with the inline search next to the board controls.
This search allows advanced filtering of cards across all board of the logged in user.
For example the search `project tag:ToDo assigned:alice assigned:bob` will return all cards where the card title or description contains project **and** the tag ToDo is set **and** the user alice is assigned **and** the user bob is assigned.
### Supported search filters
#### Supported search filters
| Filter | Operators | Query |
| ----------- | ----------------- | ------------------------------------------------------------ |

32
docs/implement-import.md Normal file
View File

@@ -0,0 +1,32 @@
## Implement import
* Create a new importer class extending `ABoardImportService`
* Create a listener for event `BoardImportGetAllowedEvent` to enable your importer.
> You can read more about listeners on [Nextcloud](https://docs.nextcloud.com/server/latest/developer_manual/basics/events.html?highlight=event#writing-a-listener) doc.
Example:
```php
class YourCustomImporterListener {
public function handle(Event $event): void {
if (!($event instanceof BoardImportGetAllowedEvent)) {
return;
}
$event->getService()->addAllowedImportSystem([
'name' => YourCustomImporterService::$name,
'class' => YourCustomImporterService::class,
'internalName' => 'YourCustomImporter'
]);
}
}
```
* Register your listener on your `Application` class like this:
```php
$dispatcher = $this->getContainer()->query(IEventDispatcher::class);
$dispatcher->registerEventListener(
BoardImportGetAllowedEvent::class,
YourCustomImporterListener::class
);
```
* Use the `lib/Service/Importer/Systems/TrelloJsonService.php` class as inspiration

View File

@@ -0,0 +1,7 @@
## Import class diagram
Importing boards to the Deck implements the class diagram below.
> **NOTE**: When making any changes to the structure of the classes or implementing import from other sources, edit the `BoardImport.yuml` file
![Screenshot](resources/BoardImport.svg)

View File

@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: G Pages: 1 -->
<svg width="417pt" height="830pt"
viewBox="0.00 0.00 417.01 830.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 826)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-826 413.012,-826 413.012,4 -4,4"/>
<!-- A0 -->
<g id="node1" class="node">
<title>A0</title>
<polygon fill="#fff8dc" stroke="#000000" points="165.909,-822 70.091,-822 70.091,-766 171.909,-766 171.909,-816 165.909,-822"/>
<polyline fill="none" stroke="#000000" points="165.909,-822 165.909,-816 "/>
<polyline fill="none" stroke="#000000" points="171.909,-816 165.909,-816 "/>
<text text-anchor="middle" x="121" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Classes used on</text>
<text text-anchor="middle" x="121" y="-797" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">board import.</text>
<text text-anchor="middle" x="121" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Methods just to</text>
<text text-anchor="middle" x="121" y="-773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">illustrate.</text>
</g>
<!-- A1 -->
<g id="node2" class="node">
<title>A1</title>
<polygon fill="none" stroke="#000000" points="108.7773,-680 23.2227,-680 23.2227,-644 108.7773,-644 108.7773,-680"/>
<text text-anchor="middle" x="66" y="-659" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ApiController</text>
</g>
<!-- A2 -->
<g id="node3" class="node">
<title>A2</title>
<polygon fill="none" stroke="#000000" points="0,-514 0,-546 132,-546 132,-514 0,-514"/>
<text text-anchor="start" x="9.607" y="-527" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">BoardImportApiController</text>
<polygon fill="none" stroke="#000000" points="0,-458 0,-514 132,-514 132,-458 0,-458"/>
<text text-anchor="start" x="45.8645" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+import()</text>
<text text-anchor="start" x="16.1335" y="-483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+getAllowedSystems()</text>
<text text-anchor="start" x="20.0185" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+getConfigSchema()</text>
</g>
<!-- A1&#45;&gt;A2 -->
<g id="edge1" class="edge">
<title>A1&#45;&gt;A2</title>
<path fill="none" stroke="#000000" d="M66,-633.6693C66,-609.4424 66,-574.1663 66,-546.2238"/>
<polygon fill="#000000" stroke="#000000" points="66,-643.957 61.5001,-633.9569 66,-638.957 66.0001,-633.957 66.0001,-633.957 66.0001,-633.957 66,-638.957 70.5001,-633.957 66,-643.957 66,-643.957"/>
</g>
<!-- A3 -->
<g id="node4" class="node">
<title>A3</title>
<polygon fill="none" stroke="#000000" points="92,-364 92,-396 200,-396 200,-364 92,-364"/>
<text text-anchor="start" x="101.828" y="-377" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">BoardImportService</text>
<polygon fill="none" stroke="#000000" points="92,-284 92,-364 200,-364 200,-284 92,-284"/>
<text text-anchor="start" x="125.8645" y="-345" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+import()</text>
<text text-anchor="start" x="118.9105" y="-333" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+bootstrap()</text>
<text text-anchor="start" x="105.857" y="-321" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+validateSystem()</text>
<text text-anchor="start" x="108.218" y="-309" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#validateConfig()</text>
<text text-anchor="start" x="112.107" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#validateData()</text>
</g>
<!-- A2&#45;&gt;A3 -->
<g id="edge2" class="edge">
<title>A2&#45;&gt;A3</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M87.8604,-457.7328C95.8577,-441.5382 105.0823,-422.8583 113.7939,-405.2174"/>
<polygon fill="#000000" stroke="#000000" points="118.2935,-396.1057 117.9004,-407.0646 116.0795,-400.5889 113.8656,-405.072 113.8656,-405.072 113.8656,-405.072 116.0795,-400.5889 109.8308,-403.0795 118.2935,-396.1057 118.2935,-396.1057"/>
<text text-anchor="middle" x="88.3076" y="-434.7378" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A7 -->
<g id="node8" class="node">
<title>A7</title>
<polygon fill="none" stroke="#000000" points="37,-196 37,-228 129,-228 129,-196 37,-196"/>
<text text-anchor="start" x="46.612" y="-209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">TrelloApiService</text>
<polygon fill="none" stroke="#000000" points="37,-164 37,-196 129,-196 129,-164 37,-164"/>
<text text-anchor="start" x="53.9655" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+name:string</text>
</g>
<!-- A3&#45;&gt;A7 -->
<g id="edge6" class="edge">
<title>A3&#45;&gt;A7</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M114.8609,-283.9135C107.8316,-268.5143 100.7854,-252.0928 95.0404,-237.6613"/>
<polygon fill="#000000" stroke="#000000" points="91.2872,-228.0253 99.1098,-235.7102 93.1019,-232.6844 94.9167,-237.3434 94.9167,-237.3434 94.9167,-237.3434 93.1019,-232.6844 90.7235,-238.9767 91.2872,-228.0253 91.2872,-228.0253"/>
<text text-anchor="middle" x="99.6759" y="-267.8975" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A9 -->
<g id="node10" class="node">
<title>A9</title>
<polygon fill="none" stroke="#000000" points="148,-202 148,-234 273,-234 273,-202 148,-202"/>
<text text-anchor="start" x="170.7765" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">TrelloJsonService</text>
<polygon fill="none" stroke="#000000" points="148,-158 148,-202 273,-202 273,-158 148,-158"/>
<text text-anchor="start" x="181.4655" y="-183" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+name:string</text>
<text text-anchor="start" x="157.981" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#needValidateData:true</text>
</g>
<!-- A3&#45;&gt;A9 -->
<g id="edge9" class="edge">
<title>A3&#45;&gt;A9</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M164.3261,-283.9135C170.0039,-270.5688 176.3462,-256.4563 182.4816,-243.5365"/>
<polygon fill="#000000" stroke="#000000" points="186.9002,-234.3677 186.6126,-245.3298 184.7295,-238.872 182.5588,-243.3762 182.5588,-243.3762 182.5588,-243.3762 184.7295,-238.872 178.505,-241.4226 186.9002,-234.3677 186.9002,-234.3677"/>
<text text-anchor="middle" x="163.6874" y="-260.9237" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A10 -->
<g id="node11" class="node">
<title>A10</title>
<polygon fill="#fff8dc" stroke="#000000" points="317.7872,-362 218.2128,-362 218.2128,-318 323.7872,-318 323.7872,-356 317.7872,-362"/>
<polyline fill="none" stroke="#000000" points="317.7872,-362 317.7872,-356 "/>
<polyline fill="none" stroke="#000000" points="323.7872,-356 317.7872,-356 "/>
<text text-anchor="middle" x="271" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">validateSystem is</text>
<text text-anchor="middle" x="271" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">public because is</text>
<text text-anchor="middle" x="271" y="-325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">used on Api.</text>
</g>
<!-- A3&#45;&gt;A10 -->
<g id="edge11" class="edge">
<title>A3&#45;&gt;A10</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.1992,-340C206.1915,-340 212.1837,-340 218.176,-340"/>
</g>
<!-- A4 -->
<g id="node5" class="node">
<title>A4</title>
<polygon fill="none" stroke="#000000" points="264.1131,-812 189.8869,-812 189.8869,-776 264.1131,-776 264.1131,-812"/>
<text text-anchor="middle" x="227" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Command</text>
</g>
<!-- A5 -->
<g id="node6" class="node">
<title>A5</title>
<polygon fill="none" stroke="#000000" points="148,-684 148,-716 307,-716 307,-684 148,-684"/>
<text text-anchor="start" x="199.9955" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">BoardImport</text>
<polygon fill="none" stroke="#000000" points="148,-652 148,-684 307,-684 307,-652 148,-652"/>
<text text-anchor="start" x="157.907" y="-665" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+boardImportCommandService</text>
<polygon fill="none" stroke="#000000" points="148,-608 148,-652 307,-652 307,-608 148,-608"/>
<text text-anchor="start" x="200.8305" y="-633" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#configure()</text>
<text text-anchor="start" x="177.76" y="-621" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#execute(input,output)</text>
</g>
<!-- A4&#45;&gt;A5 -->
<g id="edge3" class="edge">
<title>A4&#45;&gt;A5</title>
<path fill="none" stroke="#000000" d="M227,-765.6356C227,-751.1554 227,-733.0451 227,-716.0324"/>
<polygon fill="#000000" stroke="#000000" points="227,-775.9227 222.5001,-765.9227 227,-770.9227 227.0001,-765.9227 227.0001,-765.9227 227.0001,-765.9227 227,-770.9227 231.5001,-765.9228 227,-775.9227 227,-775.9227"/>
</g>
<!-- A6 -->
<g id="node7" class="node">
<title>A6</title>
<polygon fill="none" stroke="#000000" points="150,-526 150,-558 304,-558 304,-526 150,-526"/>
<text text-anchor="start" x="159.7715" y="-539" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">BoardImportCommandService</text>
<polygon fill="none" stroke="#000000" points="150,-446 150,-526 304,-526 304,-446 150,-446"/>
<text text-anchor="start" x="199.9105" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+bootstrap()</text>
<text text-anchor="start" x="206.8645" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+import()</text>
<text text-anchor="start" x="186.857" y="-483" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+validateSystem()</text>
<text text-anchor="start" x="189.218" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#validateConfig()</text>
<text text-anchor="start" x="193.107" y="-459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#validateData()</text>
</g>
<!-- A5&#45;&gt;A6 -->
<g id="edge4" class="edge">
<title>A5&#45;&gt;A6</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M227,-607.8313C227,-595.0442 227,-581.2707 227,-568.0248"/>
<polygon fill="#000000" stroke="#000000" points="227,-558.0234 231.5001,-568.0234 227,-563.0234 227.0001,-568.0234 227.0001,-568.0234 227.0001,-568.0234 227,-563.0234 222.5001,-568.0235 227,-558.0234 227,-558.0234"/>
<text text-anchor="middle" x="218.5476" y="-586.7051" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A6&#45;&gt;A3 -->
<g id="edge5" class="edge">
<title>A6&#45;&gt;A3</title>
<path fill="none" stroke="#000000" d="M198.8975,-445.7949C192.3634,-432.7268 185.3528,-418.7057 178.6417,-405.2834"/>
<polygon fill="#000000" stroke="#000000" points="174.0529,-396.1057 182.55,-403.0375 176.289,-400.5779 178.5251,-405.05 178.5251,-405.05 178.5251,-405.05 176.289,-400.5779 174.5001,-407.0625 174.0529,-396.1057 174.0529,-396.1057"/>
</g>
<!-- A7&#45;&gt;A3 -->
<g id="edge7" class="edge">
<title>A7&#45;&gt;A3</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M102.735,-228.0253C109.5347,-241.763 117.1224,-258.3431 124.0627,-274.4849"/>
<polygon fill="#000000" stroke="#000000" points="128.0634,-283.9135 120.0148,-276.4657 126.1104,-279.3107 124.1573,-274.7079 124.1573,-274.7079 124.1573,-274.7079 126.1104,-279.3107 128.2998,-272.9502 128.0634,-283.9135 128.0634,-283.9135"/>
<text text-anchor="middle" x="118.307" y="-237.5757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A8 -->
<g id="node9" class="node">
<title>A8</title>
<polygon fill="none" stroke="#000000" points="80,-64 80,-108 213,-108 213,-64 80,-64"/>
<text text-anchor="start" x="117.04" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt;&lt;abstract&gt;&gt;</text>
<text text-anchor="start" x="98.9935" y="-77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ABoardImportService</text>
<polygon fill="none" stroke="#000000" points="80,-32 80,-64 213,-64 213,-32 80,-32"/>
<text text-anchor="start" x="92.036" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">#needValidateData:false</text>
<polygon fill="none" stroke="#000000" points="80,0 80,-32 213,-32 213,0 80,0"/>
<text text-anchor="start" x="89.677" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+needValidateData():bool</text>
</g>
<!-- A7&#45;&gt;A8 -->
<g id="edge8" class="edge">
<title>A7&#45;&gt;A8</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M97.2957,-163.778C103.3956,-150.029 110.7371,-133.4813 117.8485,-117.4527"/>
<polygon fill="none" stroke="#000000" points="121.1416,-118.6605 121.9978,-108.1003 114.743,-115.8216 121.1416,-118.6605"/>
<text text-anchor="middle" x="96.9205" y="-140.7815" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">implements</text>
</g>
<!-- A9&#45;&gt;A3 -->
<g id="edge10" class="edge">
<title>A9&#45;&gt;A3</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M198.9952,-234.3677C194.0646,-246.7117 188.0483,-260.7568 181.8434,-274.4849"/>
<polygon fill="#000000" stroke="#000000" points="177.5286,-283.9135 177.598,-272.9478 179.6093,-279.367 181.6899,-274.8204 181.6899,-274.8204 181.6899,-274.8204 179.6093,-279.367 185.7818,-276.693 177.5286,-283.9135 177.5286,-283.9135"/>
<text text-anchor="middle" x="200.0654" y="-251.3391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">uses</text>
</g>
<!-- A9&#45;&gt;A8 -->
<g id="edge13" class="edge">
<title>A9&#45;&gt;A8</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M192.8492,-157.9466C187.2535,-145.5313 180.8796,-131.389 174.6742,-117.6209"/>
<polygon fill="none" stroke="#000000" points="177.7167,-115.8534 170.4168,-108.1747 171.3349,-118.7297 177.7167,-115.8534"/>
<text text-anchor="middle" x="177.6953" y="-141.8944" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">implements</text>
</g>
<!-- A11 -->
<g id="node12" class="node">
<title>A11</title>
<polygon fill="#fff8dc" stroke="#000000" points="403.024,-224 290.976,-224 290.976,-168 409.024,-168 409.024,-218 403.024,-224"/>
<polyline fill="none" stroke="#000000" points="403.024,-224 403.024,-218 "/>
<polyline fill="none" stroke="#000000" points="409.024,-218 403.024,-218 "/>
<text text-anchor="middle" x="350" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">To create an import</text>
<text text-anchor="middle" x="350" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to another system,</text>
<text text-anchor="middle" x="350" y="-187" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">create another class</text>
<text text-anchor="middle" x="350" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">similar to this.</text>
</g>
<!-- A9&#45;&gt;A11 -->
<g id="edge12" class="edge">
<title>A9&#45;&gt;A11</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M272.6172,-196C278.6627,-196 284.7083,-196 290.7538,-196"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,24 @@
// Created using [yUML](https://github.com/jaime-olivares/vscode-yuml)
// {type:class}
// {direction:topDown}
// {generate:true}
[note: Classes used on board import. Methods just to illustrate. {bg:cornsilk}]
[ApiController]<-[BoardImportApiController|+import();+getAllowedSystems();+getConfigSchema()]
[BoardImportApiController]uses-.->[BoardImportService|+import();+bootstrap();+validateSystem();#validateConfig();#validateData();]
[Command]<-[BoardImport|+boardImportCommandService|#configure();#execute(input,output)]
[BoardImport]uses-.->[BoardImportCommandService|+bootstrap();+import();+validateSystem();#validateConfig();#validateData()]
[BoardImportCommandService]->[BoardImportService]
[BoardImportService]uses-.->[TrelloApiService|+name:string]
[TrelloApiService]uses-.->[BoardImportService]
[TrelloApiService]implements-.-^[<<abstract>> ABoardImportService|#needValidateData:false|+needValidateData():bool]
[BoardImportService]uses-.->[TrelloJsonService|+name:string;#needValidateData:true]
[TrelloJsonService]uses-.->[BoardImportService]
[BoardImportService]-[note: validateSystem is public because is used on Api. {bg:cornsilk}]
[TrelloJsonService]-[note: To create an import to another system, create another class similar to this. {bg:cornsilk}]
[TrelloJsonService]implements-.-^[<<abstract>> ABoardImportService]

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Неуспешно прехвърляне на таблото на {user}",
"Add a new list" : "Добавяне на нов списък",
"Archive all cards" : "Архивира всички карти",
"Unarchive all cards" : "Разархивиране на всички карти",
"Delete list" : "Изтрива списък",
"Archive all cards in this list" : "Архивира всички карти в този списък",
"Unarchive all cards in this list" : "Разархивиране всички карти в този списък",
"Add a new card" : "Добави нова карта",
"Card name" : "Име на карта",
"List deleted" : "Списъкът е изтрит",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Споделени с вас",
"Deck settings" : "Настройки на платформата",
"Use bigger card view" : "Използва по-голям изглед на картата",
"Show card ID badge" : "Показване на обозначение за самоличност на картата",
"Show boards in calendar/tasks" : "Показване на таблата в календар / задачи",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Неуспешно прехвърляне на таблото на {user}",
"Add a new list" : "Добавяне на нов списък",
"Archive all cards" : "Архивира всички карти",
"Unarchive all cards" : "Разархивиране на всички карти",
"Delete list" : "Изтрива списък",
"Archive all cards in this list" : "Архивира всички карти в този списък",
"Unarchive all cards in this list" : "Разархивиране всички карти в този списък",
"Add a new card" : "Добави нова карта",
"Card name" : "Име на карта",
"List deleted" : "Списъкът е изтрит",
@@ -260,7 +258,6 @@
"Shared with you" : "Споделени с вас",
"Deck settings" : "Настройки на платформата",
"Use bigger card view" : "Използва по-голям изглед на картата",
"Show card ID badge" : "Показване на обозначение за самоличност на картата",
"Show boards in calendar/tasks" : "Показване на таблата в календар / задачи",
"Limit deck usage of groups" : "Ограничава използването на набора от групи",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничаването на приложението Deck/набор/ ще блокира потребителите, които не са част от тези групи, да създават свои собствени табла. Потребителите все още ще могат да работят на таблата, които са споделени с тях.",

View File

@@ -29,7 +29,7 @@ OC.L10N.register(
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} ha suprimit la targeta {card} a la llista {stack} al tauler {board}",
"You have renamed the card {before} to {card}" : "Heu reanomenat la targeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha reanomenat la targeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la llista {stack} del tauler {board}",
"You have added a description to card {card} in list {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la llista {stack} al tauler {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} ha afegit una descripció a la targeta {card} a la llista {stack} al tauler {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Heu actualitzat la descripció de la targeta {card} a la llista {stack} al tauler {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} ha actualitzat la descripció de la targeta {card} a la llista {stack} al tauler {board}",
@@ -37,12 +37,12 @@ OC.L10N.register(
"{user} has archived card {card} in list {stack} on board {board}" : "{user} té la targeta arxivada {card} a la llista {stack} al tauler {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Teniu una targeta no-arxchivada {card} a la llista {stack} al tauler {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} té una targeta no-arxivada {card} a la llista {stack} al tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de caducitat de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de caducitat de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de caducitat de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de caducitat de la targeta {card} a {after}",
"You have removed the due date of card {card}" : "Heu suprimit la data de venciment de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de venciment de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de venciment de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de venciment de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de venciment de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de venciment de la targeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Heu afegit l'etiqueta {label} a la targeta {card} a la llista {stack} al tauler {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} ha afegit l'etiqueta {label} a la targeta {card} a la llista {stack} al tauler {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Heu eliminat l'etiqueta {label} de la targeta {card} a la llista {stack} al tauler {board}",
@@ -66,13 +66,13 @@ OC.L10N.register(
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Targetes",
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha creat un <strong>comentari</strong> a una targeta",
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
"Upcoming cards" : "Pròximes targetes",
"Load more" : "Carrega'n més",
"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.",
"{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 caducitat.",
"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\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
@@ -88,7 +88,7 @@ OC.L10N.register(
"copy" : "còpia",
"To do" : "Pendent",
"Doing" : "En procés",
"Done" : "Fet",
"Done" : "Finalitzat",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
@@ -99,7 +99,7 @@ OC.L10N.register(
"No file was uploaded" : "No s'ha pujat cap fitxer",
"Missing a temporary folder" : "Falta una carpeta temporal",
"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 pujada 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",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Aquest comentari té més de %s caràcters.\nS'ha afegit com a fitxer adjunt a la targeta amb el nom %s.\nAccessible a l'URL: %s.",
"Card not found" : "No s'ha trobat la targeta",
@@ -131,7 +131,7 @@ OC.L10N.register(
"Overwrite file" : "Sobreescriu el fitxer",
"Keep existing file" : "Mantén el fitxer existent",
"This board is read only" : "Aquest tauler és només de lectura",
"Drop your files to upload" : "Deixeu anar els fitxers per pujar-los",
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
"Add card" : "Afegeix una targeta",
"Archived cards" : "Targetes arxivades",
"Add list" : "Afegeix una llista",
@@ -174,38 +174,36 @@ OC.L10N.register(
"Can share" : "Pot compartir",
"Can manage" : "Pot gestionar",
"Owner" : "Propietari",
"Delete" : "Suprimeix",
"Delete" : "Eliminar",
"Failed to create share with {displayName}" : "Ha fallat la creació de la compartició amb {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Esteu segur que voleu transferir el tauler {title} a {user}?",
"Transfer the board." : "Transfereix el tauler.",
"Transfer" : "Transferència",
"The board has been transferred to {user}" : "El tauler s'ha transferit a {user}",
"Failed to transfer the board to {user}" : "No s'ha pogut transferir el tauler a {user}",
"Add a new list" : "Afegeix una llista nova",
"Add a new list" : "Afegir una llista nova",
"Archive all cards" : "Arxiva totes les targetes",
"Unarchive all cards" : "Desarxivar totes les targetes",
"Delete list" : "Suprimeix la llista",
"Archive all cards in this list" : "Arxiva totes les targetes d'aquesta llista",
"Unarchive all cards in this list" : "Desarxivar totes les targetes d'aquesta llista",
"Add a new card" : "Afegeix una nova targeta",
"Add a new card" : "Afegir una nova targeta",
"Card name" : "Nom de la targeta",
"List deleted" : "Llista suprimida",
"Edit" : "Edició",
"Add a new tag" : "Afegeix una etiqueta nova",
"Edit" : "Edita",
"Add a new tag" : "Afegir una etiqueta nova",
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell",
"Members" : "Membres",
"Upload new files" : "Pujada de nous fitxers",
"Upload new files" : "Puja nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
"Add this attachment" : "Afegeix aquest adjunt",
"Show in Files" : "Mostra a Fitxers",
"Download" : "Baixada",
"Download" : "Baixa",
"Remove attachment" : "Treu l'adjunt",
"Delete Attachment" : "Suprimeix ladjunt",
"Restore Attachment" : "Restaura l'adjunt",
"File to share" : "Fitxer a compartir",
"Invalid path selected" : "S'ha seleccionat un camí no vàlid",
"Invalid path selected" : "S'ha seleccionat una ruta invàlida",
"Open in sidebar view" : "Obre a la vista de la barra lateral",
"Open in bigger view" : "Obre a la vista més gran",
"Attachments" : "Adjunts",
@@ -215,13 +213,13 @@ OC.L10N.register(
"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ó!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Due date" : "Data de caducitat",
"Set a due date" : "Definir una data de caducitat",
"Remove due date" : "Suprimeix la data de caducitat",
"Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…",
"Assign to users" : "Assigna als usuaris",
"Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles",
"Assign a user to this card…" : "Assigneu un usuari a aquesta targeta…",
"Due date" : "Per la data",
"Set a due date" : "Definir una data de venciment",
"Remove due date" : "Elimina la data de venciment",
"Select Date" : "Selecciona la data",
"Today" : "Avui",
"Tomorrow" : "Demà",
@@ -238,15 +236,15 @@ OC.L10N.register(
"(Unsaved)" : "(No desat)",
"(Saving…)" : "(Desant…)",
"Formatting help" : "Format d'ajuda",
"Edit description" : "Edició descripció",
"Edit description" : "Edita descripció",
"View description" : "Veure descripció",
"Add Attachment" : "Afegeix un adjunt",
"Write a description …" : "Escriviu una descripció …",
"Choose attachment" : "Triar adjunt",
"(group)" : "(grup)",
"Todo items" : "Tasques pendents",
"Todo items" : "Elements pendents",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Edit card title" : "Edició del títol de la targeta",
"Edit card title" : "Edita el títol de la targeta",
"Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix",
"Move card" : "Mou la targeta",
@@ -260,9 +258,8 @@ OC.L10N.register(
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres del Tauler",
"Deck settings" : "Configuració del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"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.",

View File

@@ -27,7 +27,7 @@
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} ha suprimit la targeta {card} a la llista {stack} al tauler {board}",
"You have renamed the card {before} to {card}" : "Heu reanomenat la targeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha reanomenat la targeta {before} a {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la llista {stack} del tauler {board}",
"You have added a description to card {card} in list {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la llista {stack} al tauler {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} ha afegit una descripció a la targeta {card} a la llista {stack} al tauler {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Heu actualitzat la descripció de la targeta {card} a la llista {stack} al tauler {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} ha actualitzat la descripció de la targeta {card} a la llista {stack} al tauler {board}",
@@ -35,12 +35,12 @@
"{user} has archived card {card} in list {stack} on board {board}" : "{user} té la targeta arxivada {card} a la llista {stack} al tauler {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Teniu una targeta no-arxchivada {card} a la llista {stack} al tauler {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} té una targeta no-arxivada {card} a la llista {stack} al tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de caducitat de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de caducitat de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de caducitat de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de caducitat de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de caducitat de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de caducitat de la targeta {card} a {after}",
"You have removed the due date of card {card}" : "Heu suprimit la data de venciment de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de venciment de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de venciment de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de venciment de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de venciment de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de venciment de la targeta {card} a {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Heu afegit l'etiqueta {label} a la targeta {card} a la llista {stack} al tauler {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} ha afegit l'etiqueta {label} a la targeta {card} a la llista {stack} al tauler {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Heu eliminat l'etiqueta {label} de la targeta {card} a la llista {stack} al tauler {board}",
@@ -64,13 +64,13 @@
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Targetes",
"Changes in the <strong>Deck app</strong>" : "Canvis a l'<strong>aplicació Targetes</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha creat un <strong>comentari</strong> a una targeta",
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
"Upcoming cards" : "Pròximes targetes",
"Load more" : "Carrega'n més",
"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.",
"{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 caducitat.",
"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\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} us ha mencionat en un comentari a {deck-card}.",
@@ -86,7 +86,7 @@
"copy" : "còpia",
"To do" : "Pendent",
"Doing" : "En procés",
"Done" : "Fet",
"Done" : "Finalitzat",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
@@ -97,7 +97,7 @@
"No file was uploaded" : "No s'ha pujat cap fitxer",
"Missing a temporary folder" : "Falta una carpeta temporal",
"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 pujada 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",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Aquest comentari té més de %s caràcters.\nS'ha afegit com a fitxer adjunt a la targeta amb el nom %s.\nAccessible a l'URL: %s.",
"Card not found" : "No s'ha trobat la targeta",
@@ -129,7 +129,7 @@
"Overwrite file" : "Sobreescriu el fitxer",
"Keep existing file" : "Mantén el fitxer existent",
"This board is read only" : "Aquest tauler és només de lectura",
"Drop your files to upload" : "Deixeu anar els fitxers per pujar-los",
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
"Add card" : "Afegeix una targeta",
"Archived cards" : "Targetes arxivades",
"Add list" : "Afegeix una llista",
@@ -172,38 +172,36 @@
"Can share" : "Pot compartir",
"Can manage" : "Pot gestionar",
"Owner" : "Propietari",
"Delete" : "Suprimeix",
"Delete" : "Eliminar",
"Failed to create share with {displayName}" : "Ha fallat la creació de la compartició amb {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Esteu segur que voleu transferir el tauler {title} a {user}?",
"Transfer the board." : "Transfereix el tauler.",
"Transfer" : "Transferència",
"The board has been transferred to {user}" : "El tauler s'ha transferit a {user}",
"Failed to transfer the board to {user}" : "No s'ha pogut transferir el tauler a {user}",
"Add a new list" : "Afegeix una llista nova",
"Add a new list" : "Afegir una llista nova",
"Archive all cards" : "Arxiva totes les targetes",
"Unarchive all cards" : "Desarxivar totes les targetes",
"Delete list" : "Suprimeix la llista",
"Archive all cards in this list" : "Arxiva totes les targetes d'aquesta llista",
"Unarchive all cards in this list" : "Desarxivar totes les targetes d'aquesta llista",
"Add a new card" : "Afegeix una nova targeta",
"Add a new card" : "Afegir una nova targeta",
"Card name" : "Nom de la targeta",
"List deleted" : "Llista suprimida",
"Edit" : "Edició",
"Add a new tag" : "Afegeix una etiqueta nova",
"Edit" : "Edita",
"Add a new tag" : "Afegir una etiqueta nova",
"title and color value must be provided" : "sha de proporcionar el valor del títol i del color",
"Board name" : "Nom del taulell",
"Members" : "Membres",
"Upload new files" : "Pujada de nous fitxers",
"Upload new files" : "Puja nous fitxers",
"Share from Files" : "Comparteix des de Fitxers",
"Pending share" : "Compartició pendent",
"Add this attachment" : "Afegeix aquest adjunt",
"Show in Files" : "Mostra a Fitxers",
"Download" : "Baixada",
"Download" : "Baixa",
"Remove attachment" : "Treu l'adjunt",
"Delete Attachment" : "Suprimeix ladjunt",
"Restore Attachment" : "Restaura l'adjunt",
"File to share" : "Fitxer a compartir",
"Invalid path selected" : "S'ha seleccionat un camí no vàlid",
"Invalid path selected" : "S'ha seleccionat una ruta invàlida",
"Open in sidebar view" : "Obre a la vista de la barra lateral",
"Open in bigger view" : "Obre a la vista més gran",
"Attachments" : "Adjunts",
@@ -213,13 +211,13 @@
"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ó!",
"Failed to load comments" : "No s'han pogut carregar els comentaris",
"Assign a tag to this card…" : "Assignació d'una etiqueta a aquesta targeta…",
"Assign to users" : "Assignació als usuaris",
"Assign to users/groups/circles" : "Assignació a usuaris/grups/cercles",
"Assign a user to this card…" : "Assignació d'un usuari a aquesta targeta…",
"Due date" : "Data de caducitat",
"Set a due date" : "Definir una data de caducitat",
"Remove due date" : "Suprimeix la data de caducitat",
"Assign a tag to this card…" : "Assigna una etiqueta a aquesta targeta…",
"Assign to users" : "Assigna als usuaris",
"Assign to users/groups/circles" : "Assigna a usuaris/grups/cercles",
"Assign a user to this card…" : "Assigneu un usuari a aquesta targeta…",
"Due date" : "Per la data",
"Set a due date" : "Definir una data de venciment",
"Remove due date" : "Elimina la data de venciment",
"Select Date" : "Selecciona la data",
"Today" : "Avui",
"Tomorrow" : "Demà",
@@ -236,15 +234,15 @@
"(Unsaved)" : "(No desat)",
"(Saving…)" : "(Desant…)",
"Formatting help" : "Format d'ajuda",
"Edit description" : "Edició descripció",
"Edit description" : "Edita descripció",
"View description" : "Veure descripció",
"Add Attachment" : "Afegeix un adjunt",
"Write a description …" : "Escriviu una descripció …",
"Choose attachment" : "Triar adjunt",
"(group)" : "(grup)",
"Todo items" : "Tasques pendents",
"Todo items" : "Elements pendents",
"{count} comments, {unread} unread" : "{count} comentaris, {unread} no llegits",
"Edit card title" : "Edició del títol de la targeta",
"Edit card title" : "Edita el títol de la targeta",
"Assign to me" : "Assigna'm a mi",
"Unassign myself" : "Desasignar a mi mateix",
"Move card" : "Mou la targeta",
@@ -258,9 +256,8 @@
"All boards" : "Tots els taulers",
"Archived boards" : "Taulers arxivats",
"Shared with you" : "Us han compartit",
"Deck settings" : "Paràmetres del Tauler",
"Deck settings" : "Configuració del Tauler",
"Use bigger card view" : "Utilitza la visualització de targetes més gran",
"Show card ID badge" : "Mostra el distintiu dID de la targeta",
"Show boards in calendar/tasks" : "Mostra els taulers al calendari/tasques",
"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.",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Nepodařilo se předat vlastnictví tabule uživateli {user}",
"Add a new list" : "Přidat nový sloupec",
"Archive all cards" : "Archivovat všechny karty",
"Unarchive all cards" : "Zrušit archivaci všech karet",
"Delete list" : "Smazat seznam",
"Archive all cards in this list" : "Archivovat všechny karty v tomto seznamu",
"Unarchive all cards in this list" : "Zrušit archivaci všech karet v tomto seznamu",
"Add a new card" : "Přidat novou kartu",
"Card name" : "Název karty",
"List deleted" : "Seznam smazán",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Sdíleno s vámi",
"Deck settings" : "Nastavení pro Deck",
"Use bigger card view" : "Použít větší zobrazení karet",
"Show card ID badge" : "Zobrazit odznáček s identifikátorem karty",
"Show boards in calendar/tasks" : "Zobrazit tabule v kalendáři/úkolech",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"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." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Nepodařilo se předat vlastnictví tabule uživateli {user}",
"Add a new list" : "Přidat nový sloupec",
"Archive all cards" : "Archivovat všechny karty",
"Unarchive all cards" : "Zrušit archivaci všech karet",
"Delete list" : "Smazat seznam",
"Archive all cards in this list" : "Archivovat všechny karty v tomto seznamu",
"Unarchive all cards in this list" : "Zrušit archivaci všech karet v tomto seznamu",
"Add a new card" : "Přidat novou kartu",
"Card name" : "Název karty",
"List deleted" : "Seznam smazán",
@@ -260,7 +258,6 @@
"Shared with you" : "Sdíleno s vámi",
"Deck settings" : "Nastavení pro Deck",
"Use bigger card view" : "Použít větší zobrazení karet",
"Show card ID badge" : "Zobrazit odznáček s identifikátorem karty",
"Show boards in calendar/tasks" : "Zobrazit tabule v kalendáři/úkolech",
"Limit deck usage of groups" : "Omezit využití deck na skupiny",
"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." : "Omezení nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",

View File

@@ -37,7 +37,6 @@ OC.L10N.register(
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
"%s on %s" : "%s på %s",
"No data was provided to create an attachment." : "Ingen data blev givet som kunne vedhæftes",
"Finished" : "Færdiggjort",
"To review" : "Til gennemgang",

View File

@@ -35,7 +35,6 @@
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
"%s on %s" : "%s på %s",
"No data was provided to create an attachment." : "Ingen data blev givet som kunne vedhæftes",
"Finished" : "Færdiggjort",
"To review" : "Til gennemgang",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Das Board konnte nicht an {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Archive all cards" : "Alle Karten archivieren",
"Unarchive all cards" : "Alle Karten dearchivieren",
"Delete list" : "Liste löschen",
"Archive all cards in this list" : "Alle Karten in dieser Liste archivieren",
"Unarchive all cards in this list" : "Alle Karten dieser Liste dearchivieren",
"Add a new card" : "Neue Karte hinzufügen",
"Card name" : "Kartenname",
"List deleted" : "Liste gelöscht",
@@ -215,10 +213,10 @@ OC.L10N.register(
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen…",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen…",
"Due date" : "Fälligkeitsdatum",
"Set a due date" : "Ein Ablaufdatum setzen",
"Remove due date" : "Fälligkeitsdatum löschen",
@@ -237,7 +235,7 @@ OC.L10N.register(
"Description" : "Beschreibung",
"(Unsaved)" : "(nicht gespeichert)",
"(Saving…)" : "(Speichere…)",
"Formatting help" : "Hilfe zur Formatierung",
"Formatting help" : "Formatierungshilfe",
"Edit description" : "Beschreibung bearbeiten",
"View description" : "Beschreibung anzeigen",
"Add Attachment" : "Anhang anhängen",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Das Board konnte nicht an {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Archive all cards" : "Alle Karten archivieren",
"Unarchive all cards" : "Alle Karten dearchivieren",
"Delete list" : "Liste löschen",
"Archive all cards in this list" : "Alle Karten in dieser Liste archivieren",
"Unarchive all cards in this list" : "Alle Karten dieser Liste dearchivieren",
"Add a new card" : "Neue Karte hinzufügen",
"Card name" : "Kartenname",
"List deleted" : "Liste gelöscht",
@@ -213,10 +211,10 @@
"The title cannot be empty." : "Der Titel darf nicht leer sein.",
"No comments yet. Begin the discussion!" : "Bislang keine Kommentare. Beginne die Diskussion!",
"Failed to load comments" : "Das Laden der Kommentare ist fehlgeschlagen",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen …",
"Assign a tag to this card…" : "Dieser Karte ein Schlagwort zuweisen…",
"Assign to users" : "Benutzern zuweisen",
"Assign to users/groups/circles" : "An Benutzer, Gruppen oder Kreise zuweisen",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen …",
"Assign a user to this card…" : "Diese Karte einem Benutzer zuweisen…",
"Due date" : "Fälligkeitsdatum",
"Set a due date" : "Ein Ablaufdatum setzen",
"Remove due date" : "Fälligkeitsdatum löschen",
@@ -235,7 +233,7 @@
"Description" : "Beschreibung",
"(Unsaved)" : "(nicht gespeichert)",
"(Saving…)" : "(Speichere…)",
"Formatting help" : "Hilfe zur Formatierung",
"Formatting help" : "Formatierungshilfe",
"Edit description" : "Beschreibung bearbeiten",
"View description" : "Beschreibung anzeigen",
"Add Attachment" : "Anhang anhängen",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Das Board konnte nicht auf {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Archive all cards" : "Alle Karten archivieren",
"Unarchive all cards" : "Alle Karten dearchivieren",
"Delete list" : "Liste löschen",
"Archive all cards in this list" : "Alle Karten in dieser Liste archivieren",
"Unarchive all cards in this list" : "Alle Karten in dieser Liste dearchivieren",
"Add a new card" : "Neue Karte hinzufügen",
"Card name" : "Kartenname",
"List deleted" : "Liste gelöscht",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Mit Ihnen geteilt",
"Deck settings" : "Deck-Einstellungen",
"Use bigger card view" : "Größere Kartenansicht verwenden",
"Show card ID badge" : "Abzeichen mit Karten-ID zeigen",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"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." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Das Board konnte nicht auf {user} übertragen werden",
"Add a new list" : "Eine neue Liste hinzufügen",
"Archive all cards" : "Alle Karten archivieren",
"Unarchive all cards" : "Alle Karten dearchivieren",
"Delete list" : "Liste löschen",
"Archive all cards in this list" : "Alle Karten in dieser Liste archivieren",
"Unarchive all cards in this list" : "Alle Karten in dieser Liste dearchivieren",
"Add a new card" : "Neue Karte hinzufügen",
"Card name" : "Kartenname",
"List deleted" : "Liste gelöscht",
@@ -260,7 +258,6 @@
"Shared with you" : "Mit Ihnen geteilt",
"Deck settings" : "Deck-Einstellungen",
"Use bigger card view" : "Größere Kartenansicht verwenden",
"Show card ID badge" : "Abzeichen mit Karten-ID zeigen",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung auf Gruppen einschränken",
"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." : "Wenn Sie Deck einschränken, können Benutzer, die nicht zu diesen Gruppen gehören, keine eigenen Boards erstellen. Die Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",

View File

@@ -245,7 +245,7 @@ OC.L10N.register(
"Archive card" : "Αρχειοθέτηση καρτέλας",
"Delete card" : "Διαγραφή καρτέλας",
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα",
"List is empty" : "Η λίστα είναι κενή",
"List is empty" : "Η λίστα είναι άδεια.",
"Card deleted" : "Η καρτέλα διαγράφηκε",
"seconds ago" : " δευτερόλεπτα πριν ",
"All boards" : "Όλοι οι πίνακες",

View File

@@ -243,7 +243,7 @@
"Archive card" : "Αρχειοθέτηση καρτέλας",
"Delete card" : "Διαγραφή καρτέλας",
"Move card to another board" : "Μετακίνηση καρτέλας σε άλλο πίνακα",
"List is empty" : "Η λίστα είναι κενή",
"List is empty" : "Η λίστα είναι άδεια.",
"Card deleted" : "Η καρτέλα διαγράφηκε",
"seconds ago" : " δευτερόλεπτα πριν ",
"All boards" : "Όλοι οι πίνακες",

View File

@@ -1,97 +1,17 @@
OC.L10N.register(
"deck",
{
"You have created a new board {board}" : "You have created a new board {board}",
"{user} has created a new board {board}" : "{user} has created a new board {board}",
"You have deleted the board {board}" : "You have deleted the board {board}",
"{user} has deleted the board {board}" : "{user} has deleted the board {board}",
"You have restored the board {board}" : "You have restored the board {board}",
"{user} has restored the board {board}" : "{user} has restored the board {board}",
"You have shared the board {board} with {acl}" : "You have shared the board {board} with {acl}",
"{user} has shared the board {board} with {acl}" : "{user} has shared the board {board} with {acl}",
"You have removed {acl} from the board {board}" : "You have removed {acl} from the board {board}",
"{user} has removed {acl} from the board {board}" : "{user} has removed {acl} from the board {board}",
"You have renamed the board {before} to {board}" : "You have renamed the board {before} to {board}",
"{user} has renamed the board {before} to {board}" : "{user} has renamed the board {before} to {board}",
"You have archived the board {board}" : "You have archived the board {board}",
"{user} has archived the board {before}" : "{user} has archived the board {before}",
"You have unarchived the board {board}" : "You have unarchived the board {board}",
"{user} has unarchived the board {before}" : "{user} has unarchived the board {before}",
"You have created a new list {stack} on board {board}" : "You have created a new list {stack} on board {board}",
"{user} has created a new list {stack} on board {board}" : "{user} has created a new list {stack} on board {board}",
"You have renamed list {before} to {stack} on board {board}" : "You have renamed list {before} to {stack} on board {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} has renamed list {before} to {stack} on board {board}",
"You have deleted list {stack} on board {board}" : "You have deleted list {stack} on board {board}",
"{user} has deleted list {stack} on board {board}" : "{user} has deleted list {stack} on board {board}",
"You have created card {card} in list {stack} on board {board}" : "You have created card {card} in list {stack} on board {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} has created card {card} in list {stack} on board {board}",
"You have deleted card {card} in list {stack} on board {board}" : "You have deleted card {card} in list {stack} on board {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} has deleted card {card} in list {stack} on board {board}",
"You have renamed the card {before} to {card}" : "You have renamed the card {before} to {card}",
"{user} has renamed the card {before} to {card}" : "{user} has renamed the card {before} to {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "You have added a description to card {card} in list {stack} on board {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} has added a description to card {card} in list {stack} on board {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "You have updated the description of card {card} in list {stack} on board {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} has updated the description of the card {card} in list {stack} on board {board}",
"You have archived card {card} in list {stack} on board {board}" : "You have archived card {card} in list {stack} on board {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
"{user} has set the due date of card {card} to {after}" : "{user} has set the due date of card {card} to {after}",
"You have updated the due date of card {card} to {after}" : "You have updated the due date of card {card} to {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} has updated the due date of card {card} to {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "You have added the tag {label} to card {card} in list {stack} on board {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} has added the tag {label} to card {card} in list {stack} on board {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "You have removed the tag {label} from card {card} in list {stack} on board {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} has removed the tag {label} from card {card} in list {stack} on board {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "You have assigned {assigneduser} to card {card} on board {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} has assigned {assigneduser} to card {card} on board {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "You have unassigned {assigneduser} from card {card} on board {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} has unassigned {assigneduser} from card {card} on board {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "You have moved the card {card} from list {stackBefore} to {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} has moved the card {card} from list {stackBefore} to {stack}",
"You have added the attachment {attachment} to card {card}" : "You have added the attachment {attachment} to card {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} has added the attachment {attachment} to card {card}",
"You have updated the attachment {attachment} on card {card}" : "You have updated the attachment {attachment} on card {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} has updated the attachment {attachment} on card {card}",
"You have deleted the attachment {attachment} from card {card}" : "You have deleted the attachment {attachment} from card {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} has deleted the attachment {attachment} from card {card}",
"You have restored the attachment {attachment} to card {card}" : "You have restored the attachment {attachment} to card {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} has restored the attachment {attachment} to card {card}",
"You have commented on card {card}" : "You have commented on card {card}",
"{user} has commented on card {card}" : "{user} has commented on card {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Changes in the <strong>Deck app</strong>",
"A <strong>comment</strong> was created on a card" : "A <strong>comment</strong> was created on a card",
"Upcoming cards" : "Upcoming cards",
"Load more" : "Load more",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "The card \"%s\" on \"%s\" has been assigned to you by %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} has assigned the card {deck-card} on {deck-board} to you.",
"The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.",
"The card {deck-card} on {deck-board} has reached its due date." : "The card {deck-card} on {deck-board} has reached its due date.",
"%s has mentioned you in a comment on \"%s\"." : "%s has mentioned you in a comment on \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} has mentioned you in a comment on {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.",
"{user} has shared {deck-board} with you." : "{user} has shared {deck-board} with you.",
"Card comments" : "Card comments",
"%s on %s" : "%s on %s",
"No data was provided to create an attachment." : "No data was provided to create an attachment.",
"Finished" : "Finished",
"To review" : "To review",
"Action needed" : "Action needed",
"Later" : "Later",
"copy" : "copy",
"To do" : "To do",
"Doing" : "Doing",
"Done" : "Done",
"Example Task 3" : "Example Task 3",
"Example Task 2" : "Example Task 2",
"Example Task 1" : "Example Task 1",
"The file was uploaded" : "The file was uploaded",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
@@ -100,218 +20,63 @@ OC.L10N.register(
"Missing a temporary folder" : "Missing a temporary folder",
"Could not write file to disk" : "Could not write file to disk",
"A PHP extension stopped the file upload" : "A PHP extension stopped the file upload",
"No file uploaded or file size exceeds maximum of %s" : "No file uploaded or file size exceeds maximum of %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.",
"Card not found" : "Card not found",
"Path is already shared with this card" : "Path is already shared with this card",
"Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Personal planning and team project organization" : "Personal planning and team project organization",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck 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",
"Card details" : "Card details",
"Add board" : "Add board",
"Select the board to link to a project" : "Select the board to link to a project",
"Search by board title" : "Search by board title",
"Select board" : "Select board",
"Create a new card" : "Create a new card",
"Select a board" : "Select a board",
"Select a list" : "Select a list",
"Card title" : "Card title",
"Cancel" : "Cancel",
"Creating the new card …" : "Creating the new card …",
"Card \"{card}\" was added to \"{board}\"" : "Card \"{card}\" was added to \"{board}\"",
"Open card" : "Open card",
"Close" : "Close",
"Create card" : "Create card",
"Select a card" : "Select a card",
"Select the card to link to a project" : "Select the card to link to a project",
"Link to card" : "Link to card",
"File already exists" : "File already exists",
"A file with the name {filename} already exists." : "A file with the name {filename} already exists.",
"Do you want to overwrite it?" : "Do you want to overwrite it?",
"Overwrite file" : "Overwrite file",
"Keep existing file" : "Keep existing file",
"This board is read only" : "This board is read only",
"Drop your files to upload" : "Drop your files to upload",
"Add card" : "Add card",
"Archived cards" : "Archived cards",
"Add list" : "Add list",
"List name" : "List name",
"Active filters" : "Active filters",
"Apply filter" : "Apply filter",
"Filter by tag" : "Filter by tag",
"Filter by assigned user" : "Filter by assigned user",
"Unassigned" : "Unassigned",
"Filter by due date" : "Filter by due date",
"Overdue" : "Overdue",
"Next 24 hours" : "Next 24 hours",
"Next 7 days" : "Next 7 days",
"Next 30 days" : "Next 30 days",
"No due date" : "No due date",
"Clear filter" : "Clear filter",
"Hide archived cards" : "Hide archived cards",
"Show archived cards" : "Show archived cards",
"Toggle compact mode" : "Toggle compact mode",
"Open details" : "Open details",
"Details" : "Details",
"Loading board" : "Loading board",
"No lists available" : "No lists available",
"Create a new list to add cards to this board" : "Create a new list to add cards to this board",
"Board not found" : "Board not found",
"Sharing" : "Sharing",
"Tags" : "Tags",
"Deleted items" : "Deleted items",
"Timeline" : "Timeline",
"Deleted lists" : "Deleted lists",
"Undo" : "Undo",
"Deleted cards" : "Deleted cards",
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
"No participants found" : "No participants found",
"Board owner" : "Board owner",
"(Group)" : "(Group)",
"(Circle)" : "(Circle)",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Can manage" : "Can manage",
"Owner" : "Owner",
"Delete" : "Delete",
"Failed to create share with {displayName}" : "Failed to create share with {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?",
"Transfer the board." : "Transfer the board.",
"Transfer" : "Transfer",
"The board has been transferred to {user}" : "The board has been transferred to {user}",
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
"Add a new list" : "Add a new list",
"Archive all cards" : "Archive all cards",
"Unarchive all cards" : "Unarchive all cards",
"Delete list" : "Delete list",
"Archive all cards in this list" : "Archive all cards in this list",
"Unarchive all cards in this list" : "Unarchive all cards in this list",
"Add a new card" : "Add a new card",
"Card name" : "Card name",
"List deleted" : "List deleted",
"Edit" : "Edit",
"Add a new tag" : "Add a new tag",
"title and color value must be provided" : "title and colour value must be provided",
"Board name" : "Board name",
"Members" : "Members",
"Upload new files" : "Upload new files",
"Share from Files" : "Share from Files",
"Pending share" : "Pending share",
"Add this attachment" : "Add this attachment",
"Show in Files" : "Show in Files",
"Download" : "Download",
"Remove attachment" : "Remove attachment",
"Delete Attachment" : "Delete Attachment",
"Restore Attachment" : "Restore Attachment",
"File to share" : "File to share",
"Invalid path selected" : "Invalid path selected",
"Open in sidebar view" : "Open in sidebar view",
"Open in bigger view" : "Open in bigger view",
"Attachments" : "Attachments",
"Comments" : "Comments",
"Modified" : "Modified",
"Created" : "Created",
"The title cannot be empty." : "The title cannot be empty.",
"No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!",
"Failed to load comments" : "Failed to load comments",
"Assign a tag to this card…" : "Assign a tag to this card…",
"Assign to users" : "Assign to users",
"Assign to users/groups/circles" : "Assign to users/groups/circles",
"Assign a user to this card…" : "Assign a user to this card…",
"Due date" : "Due date",
"Set a due date" : "Set a due date",
"Remove due date" : "Remove due date",
"Select Date" : "Select Date",
"Today" : "Today",
"Tomorrow" : "Tomorrow",
"Next week" : "Next week",
"Next month" : "Next month",
"Save" : "Save",
"The comment cannot be empty." : "The comment cannot be empty.",
"The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.",
"In reply to" : "In reply to",
"Cancel reply" : "Cancel reply",
"Reply" : "Reply",
"Update" : "Update",
"Description" : "Description",
"(Unsaved)" : "(Unsaved)",
"(Saving…)" : "(Saving…)",
"Formatting help" : "Formatting help",
"Edit description" : "Edit description",
"View description" : "View description",
"Add Attachment" : "Add Attachment",
"Write a description …" : "Write a description …",
"Choose attachment" : "Choose attachment",
"(group)" : "(group)",
"Todo items" : "Todo items",
"{count} comments, {unread} unread" : "{count} comments, {unread} unread",
"Edit card title" : "Edit card title",
"Assign to me" : "Assign to me",
"Unassign myself" : "Unassign myself",
"Move card" : "Move card",
"Unarchive card" : "Unarchive card",
"Archive card" : "Archive card",
"Delete card" : "Delete card",
"Move card to another board" : "Move card to another board",
"List is empty" : "List is empty",
"Card deleted" : "Card deleted",
"seconds ago" : "seconds ago",
"All boards" : "All boards",
"Archived boards" : "Archived boards",
"Shared with you" : "Shared with you",
"Deck settings" : "Deck settings",
"Use bigger card view" : "Use bigger card view",
"Show card ID badge" : "Show card ID badge",
"Show boards in calendar/tasks" : "Show boards in calendar/tasks",
"Limit deck usage of groups" : "Limit deck usage of groups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "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.",
"Board details" : "Board details",
"Edit board" : "Edit board",
"Clone board" : "Clone board",
"Unarchive board" : "Unarchive board",
"Archive board" : "Archive board",
"Turn on due date reminders" : "Turn on due date reminders",
"Turn off due date reminders" : "Turn off due date reminders",
"Due date reminders" : "Due date reminders",
"All cards" : "All cards",
"Assigned cards" : "Assigned cards",
"No notifications" : "No notifications",
"Delete board" : "Delete board",
"Board {0} deleted" : "Board {0} deleted",
"Only assigned cards" : "Only assigned cards",
"No reminder" : "No reminder",
"An error occurred" : "An error occurred",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards.",
"Delete the board?" : "Delete the board?",
"Loading filtered view" : "Loading filtered view",
"No due" : "No due",
"Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards",
"No results found" : "No results found",
"{stack} in {board}" : "{stack} in {board}",
"Click to expand description" : "Click to expand description",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments",
"{nbCards} cards" : "{nbCards} cards",
"No upcoming cards" : "No upcoming cards",
"upcoming cards" : "upcoming cards",
"Due on {date}" : "Due on {date}",
"Link to a board" : "Link to a board",
"Link to a card" : "Link to a card",
"Create a card" : "Create a card",
"Message from {author} in {conversationName}" : "Message from {author} in {conversationName}",
"Something went wrong" : "Something went wrong",
"Failed to upload {name}" : "Failed to upload {name}",
"Maximum file size of {size} exceeded" : "Maximum file size of {size} exceeded",
"Error creating the share" : "Error creating the share",
"Share with a Deck card" : "Share with a Deck card",
"Share {file} with a Deck card" : "Share {file} with a Deck card",
"Share" : "Share",
"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 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",
"Are you sure you want to transfer the board {title} for {user} ?" : "Are you sure you want to transfer the board {title} for {user} ?",
"Transfer the board for {user} successfully" : "Transfer the board for {user} successfully",
"Failed to transfer the board for {user}" : "Failed to transfer the board for {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Are you sure you want to delete the board {title}? This will delete all the data of this board.",
"This week" : "This week",
"Are you sure you want to transfer the board {title} for {user}?" : "Are you sure you want to transfer the board {title} for {user}?"
"This week" : "This week"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,95 +1,15 @@
{ "translations": {
"You have created a new board {board}" : "You have created a new board {board}",
"{user} has created a new board {board}" : "{user} has created a new board {board}",
"You have deleted the board {board}" : "You have deleted the board {board}",
"{user} has deleted the board {board}" : "{user} has deleted the board {board}",
"You have restored the board {board}" : "You have restored the board {board}",
"{user} has restored the board {board}" : "{user} has restored the board {board}",
"You have shared the board {board} with {acl}" : "You have shared the board {board} with {acl}",
"{user} has shared the board {board} with {acl}" : "{user} has shared the board {board} with {acl}",
"You have removed {acl} from the board {board}" : "You have removed {acl} from the board {board}",
"{user} has removed {acl} from the board {board}" : "{user} has removed {acl} from the board {board}",
"You have renamed the board {before} to {board}" : "You have renamed the board {before} to {board}",
"{user} has renamed the board {before} to {board}" : "{user} has renamed the board {before} to {board}",
"You have archived the board {board}" : "You have archived the board {board}",
"{user} has archived the board {before}" : "{user} has archived the board {before}",
"You have unarchived the board {board}" : "You have unarchived the board {board}",
"{user} has unarchived the board {before}" : "{user} has unarchived the board {before}",
"You have created a new list {stack} on board {board}" : "You have created a new list {stack} on board {board}",
"{user} has created a new list {stack} on board {board}" : "{user} has created a new list {stack} on board {board}",
"You have renamed list {before} to {stack} on board {board}" : "You have renamed list {before} to {stack} on board {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} has renamed list {before} to {stack} on board {board}",
"You have deleted list {stack} on board {board}" : "You have deleted list {stack} on board {board}",
"{user} has deleted list {stack} on board {board}" : "{user} has deleted list {stack} on board {board}",
"You have created card {card} in list {stack} on board {board}" : "You have created card {card} in list {stack} on board {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} has created card {card} in list {stack} on board {board}",
"You have deleted card {card} in list {stack} on board {board}" : "You have deleted card {card} in list {stack} on board {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} has deleted card {card} in list {stack} on board {board}",
"You have renamed the card {before} to {card}" : "You have renamed the card {before} to {card}",
"{user} has renamed the card {before} to {card}" : "{user} has renamed the card {before} to {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "You have added a description to card {card} in list {stack} on board {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} has added a description to card {card} in list {stack} on board {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "You have updated the description of card {card} in list {stack} on board {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} has updated the description of the card {card} in list {stack} on board {board}",
"You have archived card {card} in list {stack} on board {board}" : "You have archived card {card} in list {stack} on board {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} has archived card {card} in list {stack} on board {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "You have unarchived card {card} in list {stack} on board {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} has unarchived card {card} in list {stack} on board {board}",
"You have removed the due date of card {card}" : "You have removed the due date of card {card}",
"{user} has removed the due date of card {card}" : "{user} has removed the due date of card {card}",
"You have set the due date of card {card} to {after}" : "You have set the due date of card {card} to {after}",
"{user} has set the due date of card {card} to {after}" : "{user} has set the due date of card {card} to {after}",
"You have updated the due date of card {card} to {after}" : "You have updated the due date of card {card} to {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} has updated the due date of card {card} to {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "You have added the tag {label} to card {card} in list {stack} on board {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} has added the tag {label} to card {card} in list {stack} on board {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "You have removed the tag {label} from card {card} in list {stack} on board {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} has removed the tag {label} from card {card} in list {stack} on board {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "You have assigned {assigneduser} to card {card} on board {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} has assigned {assigneduser} to card {card} on board {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "You have unassigned {assigneduser} from card {card} on board {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} has unassigned {assigneduser} from card {card} on board {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "You have moved the card {card} from list {stackBefore} to {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} has moved the card {card} from list {stackBefore} to {stack}",
"You have added the attachment {attachment} to card {card}" : "You have added the attachment {attachment} to card {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} has added the attachment {attachment} to card {card}",
"You have updated the attachment {attachment} on card {card}" : "You have updated the attachment {attachment} on card {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} has updated the attachment {attachment} on card {card}",
"You have deleted the attachment {attachment} from card {card}" : "You have deleted the attachment {attachment} from card {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} has deleted the attachment {attachment} from card {card}",
"You have restored the attachment {attachment} to card {card}" : "You have restored the attachment {attachment} to card {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} has restored the attachment {attachment} to card {card}",
"You have commented on card {card}" : "You have commented on card {card}",
"{user} has commented on card {card}" : "{user} has commented on card {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "A <strong>card description</strong> inside the Deck app has been changed",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Changes in the <strong>Deck app</strong>",
"A <strong>comment</strong> was created on a card" : "A <strong>comment</strong> was created on a card",
"Upcoming cards" : "Upcoming cards",
"Load more" : "Load more",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "The card \"%s\" on \"%s\" has been assigned to you by %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} has assigned the card {deck-card} on {deck-board} to you.",
"The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.",
"The card {deck-card} on {deck-board} has reached its due date." : "The card {deck-card} on {deck-board} has reached its due date.",
"%s has mentioned you in a comment on \"%s\"." : "%s has mentioned you in a comment on \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} has mentioned you in a comment on {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.",
"{user} has shared {deck-board} with you." : "{user} has shared {deck-board} with you.",
"Card comments" : "Card comments",
"%s on %s" : "%s on %s",
"No data was provided to create an attachment." : "No data was provided to create an attachment.",
"Finished" : "Finished",
"To review" : "To review",
"Action needed" : "Action needed",
"Later" : "Later",
"copy" : "copy",
"To do" : "To do",
"Doing" : "Doing",
"Done" : "Done",
"Example Task 3" : "Example Task 3",
"Example Task 2" : "Example Task 2",
"Example Task 1" : "Example Task 1",
"The file was uploaded" : "The file was uploaded",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
@@ -98,218 +18,63 @@
"Missing a temporary folder" : "Missing a temporary folder",
"Could not write file to disk" : "Could not write file to disk",
"A PHP extension stopped the file upload" : "A PHP extension stopped the file upload",
"No file uploaded or file size exceeds maximum of %s" : "No file uploaded or file size exceeds maximum of %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s.",
"Card not found" : "Card not found",
"Path is already shared with this card" : "Path is already shared with this card",
"Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Personal planning and team project organization" : "Personal planning and team project organization",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck 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",
"Card details" : "Card details",
"Add board" : "Add board",
"Select the board to link to a project" : "Select the board to link to a project",
"Search by board title" : "Search by board title",
"Select board" : "Select board",
"Create a new card" : "Create a new card",
"Select a board" : "Select a board",
"Select a list" : "Select a list",
"Card title" : "Card title",
"Cancel" : "Cancel",
"Creating the new card …" : "Creating the new card …",
"Card \"{card}\" was added to \"{board}\"" : "Card \"{card}\" was added to \"{board}\"",
"Open card" : "Open card",
"Close" : "Close",
"Create card" : "Create card",
"Select a card" : "Select a card",
"Select the card to link to a project" : "Select the card to link to a project",
"Link to card" : "Link to card",
"File already exists" : "File already exists",
"A file with the name {filename} already exists." : "A file with the name {filename} already exists.",
"Do you want to overwrite it?" : "Do you want to overwrite it?",
"Overwrite file" : "Overwrite file",
"Keep existing file" : "Keep existing file",
"This board is read only" : "This board is read only",
"Drop your files to upload" : "Drop your files to upload",
"Add card" : "Add card",
"Archived cards" : "Archived cards",
"Add list" : "Add list",
"List name" : "List name",
"Active filters" : "Active filters",
"Apply filter" : "Apply filter",
"Filter by tag" : "Filter by tag",
"Filter by assigned user" : "Filter by assigned user",
"Unassigned" : "Unassigned",
"Filter by due date" : "Filter by due date",
"Overdue" : "Overdue",
"Next 24 hours" : "Next 24 hours",
"Next 7 days" : "Next 7 days",
"Next 30 days" : "Next 30 days",
"No due date" : "No due date",
"Clear filter" : "Clear filter",
"Hide archived cards" : "Hide archived cards",
"Show archived cards" : "Show archived cards",
"Toggle compact mode" : "Toggle compact mode",
"Open details" : "Open details",
"Details" : "Details",
"Loading board" : "Loading board",
"No lists available" : "No lists available",
"Create a new list to add cards to this board" : "Create a new list to add cards to this board",
"Board not found" : "Board not found",
"Sharing" : "Sharing",
"Tags" : "Tags",
"Deleted items" : "Deleted items",
"Timeline" : "Timeline",
"Deleted lists" : "Deleted lists",
"Undo" : "Undo",
"Deleted cards" : "Deleted cards",
"Share board with a user, group or circle …" : "Share board with a user, group or circle …",
"Searching for users, groups and circles …" : "Searching for users, groups and circles …",
"No participants found" : "No participants found",
"Board owner" : "Board owner",
"(Group)" : "(Group)",
"(Circle)" : "(Circle)",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Can manage" : "Can manage",
"Owner" : "Owner",
"Delete" : "Delete",
"Failed to create share with {displayName}" : "Failed to create share with {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Are you sure you want to transfer the board {title} to {user}?",
"Transfer the board." : "Transfer the board.",
"Transfer" : "Transfer",
"The board has been transferred to {user}" : "The board has been transferred to {user}",
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
"Add a new list" : "Add a new list",
"Archive all cards" : "Archive all cards",
"Unarchive all cards" : "Unarchive all cards",
"Delete list" : "Delete list",
"Archive all cards in this list" : "Archive all cards in this list",
"Unarchive all cards in this list" : "Unarchive all cards in this list",
"Add a new card" : "Add a new card",
"Card name" : "Card name",
"List deleted" : "List deleted",
"Edit" : "Edit",
"Add a new tag" : "Add a new tag",
"title and color value must be provided" : "title and colour value must be provided",
"Board name" : "Board name",
"Members" : "Members",
"Upload new files" : "Upload new files",
"Share from Files" : "Share from Files",
"Pending share" : "Pending share",
"Add this attachment" : "Add this attachment",
"Show in Files" : "Show in Files",
"Download" : "Download",
"Remove attachment" : "Remove attachment",
"Delete Attachment" : "Delete Attachment",
"Restore Attachment" : "Restore Attachment",
"File to share" : "File to share",
"Invalid path selected" : "Invalid path selected",
"Open in sidebar view" : "Open in sidebar view",
"Open in bigger view" : "Open in bigger view",
"Attachments" : "Attachments",
"Comments" : "Comments",
"Modified" : "Modified",
"Created" : "Created",
"The title cannot be empty." : "The title cannot be empty.",
"No comments yet. Begin the discussion!" : "No comments yet. Begin the discussion!",
"Failed to load comments" : "Failed to load comments",
"Assign a tag to this card…" : "Assign a tag to this card…",
"Assign to users" : "Assign to users",
"Assign to users/groups/circles" : "Assign to users/groups/circles",
"Assign a user to this card…" : "Assign a user to this card…",
"Due date" : "Due date",
"Set a due date" : "Set a due date",
"Remove due date" : "Remove due date",
"Select Date" : "Select Date",
"Today" : "Today",
"Tomorrow" : "Tomorrow",
"Next week" : "Next week",
"Next month" : "Next month",
"Save" : "Save",
"The comment cannot be empty." : "The comment cannot be empty.",
"The comment cannot be longer than 1000 characters." : "The comment cannot be longer than 1000 characters.",
"In reply to" : "In reply to",
"Cancel reply" : "Cancel reply",
"Reply" : "Reply",
"Update" : "Update",
"Description" : "Description",
"(Unsaved)" : "(Unsaved)",
"(Saving…)" : "(Saving…)",
"Formatting help" : "Formatting help",
"Edit description" : "Edit description",
"View description" : "View description",
"Add Attachment" : "Add Attachment",
"Write a description …" : "Write a description …",
"Choose attachment" : "Choose attachment",
"(group)" : "(group)",
"Todo items" : "Todo items",
"{count} comments, {unread} unread" : "{count} comments, {unread} unread",
"Edit card title" : "Edit card title",
"Assign to me" : "Assign to me",
"Unassign myself" : "Unassign myself",
"Move card" : "Move card",
"Unarchive card" : "Unarchive card",
"Archive card" : "Archive card",
"Delete card" : "Delete card",
"Move card to another board" : "Move card to another board",
"List is empty" : "List is empty",
"Card deleted" : "Card deleted",
"seconds ago" : "seconds ago",
"All boards" : "All boards",
"Archived boards" : "Archived boards",
"Shared with you" : "Shared with you",
"Deck settings" : "Deck settings",
"Use bigger card view" : "Use bigger card view",
"Show card ID badge" : "Show card ID badge",
"Show boards in calendar/tasks" : "Show boards in calendar/tasks",
"Limit deck usage of groups" : "Limit deck usage of groups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "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.",
"Board details" : "Board details",
"Edit board" : "Edit board",
"Clone board" : "Clone board",
"Unarchive board" : "Unarchive board",
"Archive board" : "Archive board",
"Turn on due date reminders" : "Turn on due date reminders",
"Turn off due date reminders" : "Turn off due date reminders",
"Due date reminders" : "Due date reminders",
"All cards" : "All cards",
"Assigned cards" : "Assigned cards",
"No notifications" : "No notifications",
"Delete board" : "Delete board",
"Board {0} deleted" : "Board {0} deleted",
"Only assigned cards" : "Only assigned cards",
"No reminder" : "No reminder",
"An error occurred" : "An error occurred",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards.",
"Delete the board?" : "Delete the board?",
"Loading filtered view" : "Loading filtered view",
"No due" : "No due",
"Search for {searchQuery} in all boards" : "Search for {searchQuery} in all boards",
"No results found" : "No results found",
"{stack} in {board}" : "{stack} in {board}",
"Click to expand description" : "Click to expand description",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments",
"{nbCards} cards" : "{nbCards} cards",
"No upcoming cards" : "No upcoming cards",
"upcoming cards" : "upcoming cards",
"Due on {date}" : "Due on {date}",
"Link to a board" : "Link to a board",
"Link to a card" : "Link to a card",
"Create a card" : "Create a card",
"Message from {author} in {conversationName}" : "Message from {author} in {conversationName}",
"Something went wrong" : "Something went wrong",
"Failed to upload {name}" : "Failed to upload {name}",
"Maximum file size of {size} exceeded" : "Maximum file size of {size} exceeded",
"Error creating the share" : "Error creating the share",
"Share with a Deck card" : "Share with a Deck card",
"Share {file} with a Deck card" : "Share {file} with a Deck card",
"Share" : "Share",
"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 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",
"Are you sure you want to transfer the board {title} for {user} ?" : "Are you sure you want to transfer the board {title} for {user} ?",
"Transfer the board for {user} successfully" : "Transfer the board for {user} successfully",
"Failed to transfer the board for {user}" : "Failed to transfer the board for {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Are you sure you want to delete the board {title}? This will delete all the data of this board.",
"This week" : "This week",
"Are you sure you want to transfer the board {title} for {user}?" : "Are you sure you want to transfer the board {title} for {user}?"
"This week" : "This week"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
"Add a new list" : "Añadir una lista nueva",
"Archive all cards" : "Archivar todas las tarjetas",
"Unarchive all cards" : "Desarchivar todas las tarjetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Archivar todas las tarjetas en esta lista",
"Unarchive all cards in this list" : "Desarchivar todas las tarjetas en esta lista",
"Add a new card" : "Añadir una nueva tarjeta",
"Card name" : "Nombre de la tarjeta",
"List deleted" : "Lista borrada",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Compartido contigo",
"Deck settings" : "Configuración del tablero",
"Use bigger card view" : "Usar vista de tarjeta mayor",
"Show card ID badge" : "Mostrar insignia de la ID de tarjeta",
"Show boards in calendar/tasks" : "Mostrar tableros en calendario/tareas",
"Limit deck usage of groups" : "Limitar el uso de Deck a grupos",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar Deck impedirá que usuarios que no formen parte de esos grupos creen sus propios tableros. Los usuarios todavía podrán trabajar en tableros que hayan sido compartidos con ellos.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
"Add a new list" : "Añadir una lista nueva",
"Archive all cards" : "Archivar todas las tarjetas",
"Unarchive all cards" : "Desarchivar todas las tarjetas",
"Delete list" : "Eliminar lista",
"Archive all cards in this list" : "Archivar todas las tarjetas en esta lista",
"Unarchive all cards in this list" : "Desarchivar todas las tarjetas en esta lista",
"Add a new card" : "Añadir una nueva tarjeta",
"Card name" : "Nombre de la tarjeta",
"List deleted" : "Lista borrada",
@@ -260,7 +258,6 @@
"Shared with you" : "Compartido contigo",
"Deck settings" : "Configuración del tablero",
"Use bigger card view" : "Usar vista de tarjeta mayor",
"Show card ID badge" : "Mostrar insignia de la ID de tarjeta",
"Show boards in calendar/tasks" : "Mostrar tableros en calendario/tareas",
"Limit deck usage of groups" : "Limitar el uso de Deck a grupos",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar Deck impedirá que usuarios que no formen parte de esos grupos creen sus propios tableros. Los usuarios todavía podrán trabajar en tableros que hayan sido compartidos con ellos.",

View File

@@ -18,7 +18,6 @@ OC.L10N.register(
"Details" : "Üksikasjad",
"Sharing" : "Jagamine",
"Tags" : "Sildid",
"Undo" : "Tühista",
"Can edit" : "Võib redigeerida",
"Can share" : "Can share",
"Owner" : "Omanik",
@@ -43,7 +42,6 @@ OC.L10N.register(
"Shared with you" : "Sinuga jagatud",
"No notifications" : "Märguandeid pole",
"An error occurred" : "Tekkis tõrge",
"Share" : "Jaga",
"This week" : "Käesolev nädal"
"Share" : "Jaga"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -16,7 +16,6 @@
"Details" : "Üksikasjad",
"Sharing" : "Jagamine",
"Tags" : "Sildid",
"Undo" : "Tühista",
"Can edit" : "Võib redigeerida",
"Can share" : "Can share",
"Owner" : "Omanik",
@@ -41,7 +40,6 @@
"Shared with you" : "Sinuga jagatud",
"No notifications" : "Märguandeid pole",
"An error occurred" : "Tekkis tõrge",
"Share" : "Jaga",
"This week" : "Käesolev nädal"
"Share" : "Jaga"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -131,7 +131,7 @@ OC.L10N.register(
"Overwrite file" : "Remplacer le fichier",
"Keep existing file" : "Conserver le fichier existant",
"This board is read only" : "Ce tableau est en lecture seule",
"Drop your files to upload" : "Glissez vos fichiers pour les téléverser",
"Drop your files to upload" : "Glissez vos fichiers pour les envoyer",
"Add card" : "Ajouter une carte",
"Archived cards" : "Cartes archivées",
"Add list" : "Ajouter une liste",
@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Échec du transfert du tableau à {user}",
"Add a new list" : "Ajouter une nouvelle liste",
"Archive all cards" : "Archiver toutes les cartes",
"Unarchive all cards" : "Désarchiver toutes les cartes",
"Delete list" : "Supprimer la liste",
"Archive all cards in this list" : "Archiver toutes les cartes de cette liste",
"Unarchive all cards in this list" : "Désarchiver toutes les cartes de cette liste",
"Add a new card" : "Ajouter une nouvelle carte",
"Card name" : "Nom de la carte",
"List deleted" : "Liste supprimée",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Partagés avec vous",
"Deck settings" : "Paramètres de Deck",
"Use bigger card view" : "Utiliser la vue large des cartes",
"Show card ID badge" : "Afficher la carte d'identité du badge",
"Show boards in calendar/tasks" : "Afficher les tableaux dans les agendas/tâches",
"Limit deck usage of groups" : "Limiter l'utilisation du tableau aux groupes",
"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." : "Limiter Deck empêchera les utilisateurs ne faisant pas partie de ces groupes de créer leurs propres tableaux. Ces utilisateurs pourront toujours travailler sur les tableaux qui ont été partagés avec eux.",

View File

@@ -129,7 +129,7 @@
"Overwrite file" : "Remplacer le fichier",
"Keep existing file" : "Conserver le fichier existant",
"This board is read only" : "Ce tableau est en lecture seule",
"Drop your files to upload" : "Glissez vos fichiers pour les téléverser",
"Drop your files to upload" : "Glissez vos fichiers pour les envoyer",
"Add card" : "Ajouter une carte",
"Archived cards" : "Cartes archivées",
"Add list" : "Ajouter une liste",
@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Échec du transfert du tableau à {user}",
"Add a new list" : "Ajouter une nouvelle liste",
"Archive all cards" : "Archiver toutes les cartes",
"Unarchive all cards" : "Désarchiver toutes les cartes",
"Delete list" : "Supprimer la liste",
"Archive all cards in this list" : "Archiver toutes les cartes de cette liste",
"Unarchive all cards in this list" : "Désarchiver toutes les cartes de cette liste",
"Add a new card" : "Ajouter une nouvelle carte",
"Card name" : "Nom de la carte",
"List deleted" : "Liste supprimée",
@@ -260,7 +258,6 @@
"Shared with you" : "Partagés avec vous",
"Deck settings" : "Paramètres de Deck",
"Use bigger card view" : "Utiliser la vue large des cartes",
"Show card ID badge" : "Afficher la carte d'identité du badge",
"Show boards in calendar/tasks" : "Afficher les tableaux dans les agendas/tâches",
"Limit deck usage of groups" : "Limiter l'utilisation du tableau aux groupes",
"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." : "Limiter Deck empêchera les utilisateurs ne faisant pas partie de ces groupes de créer leurs propres tableaux. Ces utilisateurs pourront toujours travailler sur les tableaux qui ont été partagés avec eux.",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "A tábla átadása {user} számára sikertelen",
"Add a new list" : "Új lista hozzáadása",
"Archive all cards" : "Az összes kártya archiválása",
"Unarchive all cards" : "Az összes kártya archiválásának visszavonása",
"Delete list" : "Lista törlése",
"Archive all cards in this list" : "Az összes kártya archiválása ebben a listában",
"Unarchive all cards in this list" : "Az összes kártya archiválásának visszavonása ebben a listában",
"Add a new card" : "Új kártya hozzáadása",
"Card name" : "Kártya neve",
"List deleted" : "Lista törölve",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Megosztva Önnel",
"Deck settings" : "Kártyák beállításai",
"Use bigger card view" : "Nagyobb kártyanézet használata",
"Show card ID badge" : "Kártyaazonosító jelvény megjelenítése",
"Show boards in calendar/tasks" : "Táblák megjelenítése a naptárak/teendők között",
"Limit deck usage of groups" : "A kártyák használatának csoportokra korlátozása",
"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." : "A Kártyák korlátozása blokkolja a saját táblák létrehozását azoknál a felhasználóknál, akik nem tagjai a megadott csoportoknak. A felhasználók továbbra is tudnak dolgozni a velük megosztott táblákon.",
@@ -289,7 +286,6 @@ OC.L10N.register(
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
"No results found" : "Nincs találat",
"{stack} in {board}" : "{stack} itt: {board}",
"Click to expand description" : "Kattintson a leírás kibontásához",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Létrehozva: {created}\n* Utoljára módosítva: {lastMod}\n* {nbAttachments} melléklet\n* {nbComments} megjegyzés",
"{nbCards} cards" : "{nbCards} kártya",
"No upcoming cards" : "Nincsenek közelgő kártyák",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "A tábla átadása {user} számára sikertelen",
"Add a new list" : "Új lista hozzáadása",
"Archive all cards" : "Az összes kártya archiválása",
"Unarchive all cards" : "Az összes kártya archiválásának visszavonása",
"Delete list" : "Lista törlése",
"Archive all cards in this list" : "Az összes kártya archiválása ebben a listában",
"Unarchive all cards in this list" : "Az összes kártya archiválásának visszavonása ebben a listában",
"Add a new card" : "Új kártya hozzáadása",
"Card name" : "Kártya neve",
"List deleted" : "Lista törölve",
@@ -260,7 +258,6 @@
"Shared with you" : "Megosztva Önnel",
"Deck settings" : "Kártyák beállításai",
"Use bigger card view" : "Nagyobb kártyanézet használata",
"Show card ID badge" : "Kártyaazonosító jelvény megjelenítése",
"Show boards in calendar/tasks" : "Táblák megjelenítése a naptárak/teendők között",
"Limit deck usage of groups" : "A kártyák használatának csoportokra korlátozása",
"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." : "A Kártyák korlátozása blokkolja a saját táblák létrehozását azoknál a felhasználóknál, akik nem tagjai a megadott csoportoknak. A felhasználók továbbra is tudnak dolgozni a velük megosztott táblákon.",
@@ -287,7 +284,6 @@
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
"No results found" : "Nincs találat",
"{stack} in {board}" : "{stack} itt: {board}",
"Click to expand description" : "Kattintson a leírás kibontásához",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Létrehozva: {created}\n* Utoljára módosítva: {lastMod}\n* {nbAttachments} melléklet\n* {nbComments} megjegyzés",
"{nbCards} cards" : "{nbCards} kártya",
"No upcoming cards" : "Nincsenek közelgő kártyák",

View File

@@ -70,7 +70,6 @@ OC.L10N.register(
"Personal" : "Asmeniniai",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortelę \"%s\" ties \"%s\" priskyrė jums %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortelė „%s“, esanti lentoje „%s“, pasiekė savo galutinį terminą.",
"The card {deck-card} on {deck-board} has reached its due date." : "Kortelė {deck-card}, esanti lentoje {deck-board} pasiekė savo galutinio termino datą.",
"%s has mentioned you in a comment on \"%s\"." : "%s paminėjo jus komentare ties \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Lentą \"%s\" su jumis bendrina %s.",
"%s on %s" : "%s ant %s",
@@ -201,9 +200,9 @@ OC.L10N.register(
"Assign to users" : "Priskirti naudotojams",
"Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams",
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
"Due date" : "Galutinio termino data",
"Due date" : "Terminas",
"Set a due date" : "Nustatyti galutinį terminą",
"Remove due date" : "Šalinti galutinio termino datą",
"Remove due date" : "Pašalinti terminą",
"Select Date" : "Pasirinkti datą",
"Today" : "Šiandien",
"Tomorrow" : "Rytoj",
@@ -244,9 +243,9 @@ OC.L10N.register(
"Clone board" : "Dubliuoti lentą",
"Unarchive board" : "Išarchyvuoti lentą",
"Archive board" : "Archyvuoti lentą",
"Turn on due date reminders" : "Įjungti priminimus apie galutinio termino datą",
"Turn off due date reminders" : "Išjungti priminimus apie galutinio termino datą",
"Due date reminders" : "Priminimai apie galutinio termino datą",
"Turn on due date reminders" : "Įjungti priminimus apie galutinį terminą",
"Turn off due date reminders" : "Išjungti priminimus apie galutinį terminą",
"Due date reminders" : "Priminimai apie galutinį terminą",
"All cards" : "Visos kortelės",
"Assigned cards" : "Priskirtos kortelės",
"No notifications" : "Pranešimų nėra",
@@ -258,7 +257,6 @@ OC.L10N.register(
"Delete the board?" : "Ištrinti lentą?",
"No due" : "Be galutinio termino",
"No results found" : "Nerasta jokių rezultatų",
"Due on {date}" : "Galutinis terminas {date}",
"Link to a board" : "Susieti su lenta",
"Link to a card" : "Susieti su kortele",
"Create a card" : "Sukurti kortelę",

View File

@@ -68,7 +68,6 @@
"Personal" : "Asmeniniai",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kortelę \"%s\" ties \"%s\" priskyrė jums %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortelė „%s“, esanti lentoje „%s“, pasiekė savo galutinį terminą.",
"The card {deck-card} on {deck-board} has reached its due date." : "Kortelė {deck-card}, esanti lentoje {deck-board} pasiekė savo galutinio termino datą.",
"%s has mentioned you in a comment on \"%s\"." : "%s paminėjo jus komentare ties \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Lentą \"%s\" su jumis bendrina %s.",
"%s on %s" : "%s ant %s",
@@ -199,9 +198,9 @@
"Assign to users" : "Priskirti naudotojams",
"Assign to users/groups/circles" : "Priskirti naudotojams/grupėms/ratams",
"Assign a user to this card…" : "Priskirti šiai kortelei naudotoją…",
"Due date" : "Galutinio termino data",
"Due date" : "Terminas",
"Set a due date" : "Nustatyti galutinį terminą",
"Remove due date" : "Šalinti galutinio termino datą",
"Remove due date" : "Pašalinti terminą",
"Select Date" : "Pasirinkti datą",
"Today" : "Šiandien",
"Tomorrow" : "Rytoj",
@@ -242,9 +241,9 @@
"Clone board" : "Dubliuoti lentą",
"Unarchive board" : "Išarchyvuoti lentą",
"Archive board" : "Archyvuoti lentą",
"Turn on due date reminders" : "Įjungti priminimus apie galutinio termino datą",
"Turn off due date reminders" : "Išjungti priminimus apie galutinio termino datą",
"Due date reminders" : "Priminimai apie galutinio termino datą",
"Turn on due date reminders" : "Įjungti priminimus apie galutinį terminą",
"Turn off due date reminders" : "Išjungti priminimus apie galutinį terminą",
"Due date reminders" : "Priminimai apie galutinį terminą",
"All cards" : "Visos kortelės",
"Assigned cards" : "Priskirtos kortelės",
"No notifications" : "Pranešimų nėra",
@@ -256,7 +255,6 @@
"Delete the board?" : "Ištrinti lentą?",
"No due" : "Be galutinio termino",
"No results found" : "Nerasta jokių rezultatų",
"Due on {date}" : "Galutinis terminas {date}",
"Link to a board" : "Susieti su lenta",
"Link to a card" : "Susieti su kortele",
"Create a card" : "Sukurti kortelę",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Nie udało się przenieść tablicy do {user}",
"Add a new list" : "Dodaj nową listę",
"Archive all cards" : "Zarchiwizuj wszystkie karty",
"Unarchive all cards" : "Przywróć wszystkie karty z archiwum",
"Delete list" : "Usuń listę",
"Archive all cards in this list" : "Zarchiwizuj wszystkie karty na tej liście",
"Unarchive all cards in this list" : "Cofnij archiwizację wszystkich kart z tej listy",
"Add a new card" : "Dodaj nową kartę",
"Card name" : "Nazwa karty",
"List deleted" : "Lista usunięta",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Udostępnione Tobie",
"Deck settings" : "Ustawienia Tablicy",
"Use bigger card view" : "Użyj większego widoku karty",
"Show card ID badge" : "Pokaż ID karty",
"Show boards in calendar/tasks" : "Pokaż tablice w kalendarzu/zadaniach",
"Limit deck usage of groups" : "Ogranicz użycie tablic dla grup",
"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." : "Ograniczenie Tablicy zablokuje użytkownikom z tych grup możliwość tworzenia własnych tablic. Użytkownicy nadal będą mogli pracować na tablicach, które zostały im udostępnione.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Nie udało się przenieść tablicy do {user}",
"Add a new list" : "Dodaj nową listę",
"Archive all cards" : "Zarchiwizuj wszystkie karty",
"Unarchive all cards" : "Przywróć wszystkie karty z archiwum",
"Delete list" : "Usuń listę",
"Archive all cards in this list" : "Zarchiwizuj wszystkie karty na tej liście",
"Unarchive all cards in this list" : "Cofnij archiwizację wszystkich kart z tej listy",
"Add a new card" : "Dodaj nową kartę",
"Card name" : "Nazwa karty",
"List deleted" : "Lista usunięta",
@@ -260,7 +258,6 @@
"Shared with you" : "Udostępnione Tobie",
"Deck settings" : "Ustawienia Tablicy",
"Use bigger card view" : "Użyj większego widoku karty",
"Show card ID badge" : "Pokaż ID karty",
"Show boards in calendar/tasks" : "Pokaż tablice w kalendarzu/zadaniach",
"Limit deck usage of groups" : "Ogranicz użycie tablic dla grup",
"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." : "Ograniczenie Tablicy zablokuje użytkownikom z tych grup możliwość tworzenia własnych tablic. Użytkownicy nadal będą mogli pracować na tablicach, które zostały im udostępnione.",

View File

@@ -71,14 +71,14 @@ OC.L10N.register(
"Load more" : "Carregar mais",
"Personal" : "Pessoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi vinculado com você por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu o cartão {deck-card} no {deck-board} a você.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{usuário} atribuiu a carta {deck-card} no {deck-board} para você.",
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
"The card {deck-card} on {deck-board} has reached its due date." : "O cartão {deck-card} em {deck-board} atingiu sua data de vencimento.",
"The card {deck-card} on {deck-board} has reached its due date." : "A carta {deck-card} em {deck-board} atingiu sua data de vencimento.",
"%s has mentioned you in a comment on \"%s\"." : "%s citou você num comentário em \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
"Card comments" : "Comentários do cartão",
"{user} has shared {deck-board} with you." : "{user} compartilhou {deck-board} com você.",
"Card comments" : "Comentários nos Cards",
"%s on %s" : "%s em %s",
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
"Finished" : "Terminado",
@@ -101,12 +101,12 @@ OC.L10N.register(
"Could not write file to disk" : "Não foi possível escrever no disco",
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nAdicionado como um anexo ao cartão com o nome %s.\nAcessível no URL: %s.",
"Card not found" : "Cartão não encontrado",
"Path is already shared with this card" : "O caminho já é compartilhado com este cartão",
"Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planejamento pessoal e organização de projetos em equipe",
"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" : "O Deck é uma ferramenta de organização ao estilo kanban voltada para o planejamento pessoal e para a organização de projetos para equipes, integrada ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Escreva notas adicionais formatadas em Markdown \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, seus amigos ou sua família\n- 📎 Anexe arquivos e incorpore-os à sua descrição em Markdown\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades \n- 🚀 Organize seu projeto ",
"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 é uma ferramenta de organização do estilo kanban voltada para o planejamento pessoal e organização de projetos para equipes integradas ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-as em ordem\n- 📄 Escreva notas adicionais em Anotar \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, amigos ou família\n- 📎 Anexar arquivos e incorporá-los à descrição da Nota\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as mudanças no fluxo de atividades \n- 🚀 Organize seu projeto ",
"Card details" : "Detalhes do cartão",
"Add board" : "Adicionar painel",
"Select the board to link to a project" : "Selecione o painel para vincular a um projeto",
@@ -117,7 +117,7 @@ OC.L10N.register(
"Select a list" : "Selecione uma lista",
"Card title" : "Título do cartão",
"Cancel" : "Cancelar",
"Creating the new card …" : "Criando o novo cartão…",
"Creating the new card …" : "Criando o novo cartão …",
"Card \"{card}\" was added to \"{board}\"" : "O cartão \"{card}\" foi adicionado a \"{board}\" ",
"Open card" : "Abrir o cartão",
"Close" : "Fechar",
@@ -150,7 +150,7 @@ OC.L10N.register(
"Clear filter" : "Limpar filtro",
"Hide archived cards" : "Ocultar cartões arquivados",
"Show archived cards" : "Exibir cartões arquivados",
"Toggle compact mode" : "Alternar modo compacto",
"Toggle compact mode" : "Alternar para modo compacto",
"Open details" : "Abrir detalhes",
"Details" : "Detalhes",
"Loading board" : "Carregando painel",
@@ -176,17 +176,15 @@ OC.L10N.register(
"Owner" : "Proprietário",
"Delete" : "Excluir",
"Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?",
"Transfer the board." : "Transferir o painel.",
"Are you sure you want to transfer the board {title} to {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?",
"Transfer the board." : "Transfira a reunião.",
"Transfer" : "Transferir",
"The board has been transferred to {user}" : "A painel foi transferida para {user}",
"Failed to transfer the board to {user}" : "Não foi possível transferir o painel para {user}",
"The board has been transferred to {user}" : "A quadro foi transferida para {user}",
"Failed to transfer the board to {user}" : "Falha ao transferir o quadro para {user}",
"Add a new list" : "Adicionar nova lista",
"Archive all cards" : "Arquivar todos os cartões",
"Unarchive all cards" : "Desarquivar todos os cartões",
"Delete list" : "Excluir lista",
"Archive all cards in this list" : "Arquivar todos os cartões desta lista",
"Unarchive all cards in this list" : "Desarquivar todos os cartões desta lista",
"Add a new card" : "Adicionar um novo cartão",
"Card name" : "Nome do cartão",
"List deleted" : "Lista excluída",
@@ -199,7 +197,7 @@ OC.L10N.register(
"Share from Files" : "Compartilhar de Arquivos",
"Pending share" : "Compartilhamento pendente",
"Add this attachment" : "Adicionar este anexo",
"Show in Files" : "Exibir em Arquivos",
"Show in Files" : "Mostrar em Arquivos",
"Download" : "Baixar",
"Remove attachment" : "Remover anexo",
"Delete Attachment" : "Excluir Anexo",
@@ -214,13 +212,13 @@ OC.L10N.register(
"Created" : "Criado",
"The title cannot be empty." : "O título não pode ficar em branco.",
"No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!",
"Failed to load comments" : "Não foi possível carregar os comentários",
"Failed to load comments" : "Falha ao carregar comentários",
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
"Assign to users" : "Atribuir a usuários",
"Assign to users/groups/circles" : "Atribuir a usuários/grupos/círculos",
"Assign a user to this card…" : "Atribuir um usuário a este cartão...",
"Due date" : "Data de vencimento",
"Set a due date" : "Definir uma data de vencimento",
"Set a due date" : "Definir uma data de finalização",
"Remove due date" : "Remover data de vencimento",
"Select Date" : "Selecionar Data",
"Today" : "Hoje",
@@ -244,7 +242,7 @@ OC.L10N.register(
"Write a description …" : "Escreva uma descrição...",
"Choose attachment" : "Escolher anexo",
"(group)" : "(grupo)",
"Todo items" : "Itens a fazer",
"Todo items" : "Itens para fazer",
"{count} comments, {unread} unread" : "{count} comentários, {unread} não lidos",
"Edit card title" : "Editar título do cartão",
"Assign to me" : "Atribuir a mim",
@@ -254,7 +252,7 @@ OC.L10N.register(
"Archive card" : "Arquivar cartão",
"Delete card" : "Excluir cartão",
"Move card to another board" : "Mover o cartão para outro painel",
"List is empty" : "A lista está vazia",
"List is empty" : "A Lista está vazia",
"Card deleted" : "Cartão excluído",
"seconds ago" : "segundos atrás",
"All boards" : "Todos os painéis",
@@ -262,8 +260,7 @@ OC.L10N.register(
"Shared with you" : "Compartilhado com você",
"Deck settings" : "Configurações do Deck",
"Use bigger card view" : "Use uma exibição de cartão maior",
"Show card ID badge" : "Exibir o distintivo de identificação do cartão",
"Show boards in calendar/tasks" : "Exibir os painéis em calendários/tarefas",
"Show boards in calendar/tasks" : "Mostrar painéis em calendários/tarefas",
"Limit deck usage of groups" : "Limitar o uso de grupos no deck",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar o Deck impedirá que usuários que não fazem parte desses grupos criem seus próprios painéis. Os usuários ainda poderão trabalhar em pastas que foram compartilhadas com eles.",
"Board details" : "Detalhes do painel",
@@ -282,20 +279,20 @@ OC.L10N.register(
"Only assigned cards" : "Apenas cartões atribuídos",
"No reminder" : "Nenhum lembrete",
"An error occurred" : "Ocorreu um erro",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Deseja realmente excluir o painel {title}? Isso excluirá todos os dados deste painel, inclusive os cartões arquivados.",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Tem certeza de que deseja excluir o quadro {title}? Isso excluirá todos os dados deste quadro, incluindo cartões arquivados.",
"Delete the board?" : "Excluir o painel?",
"Loading filtered view" : "Carregando exibição filtrada",
"No due" : "Sem vencimento",
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
"No results found" : "Nenhum resultado encontrado",
"{stack} in {board}" : "{stack} em {board}",
"{stack} in {board}" : "{stack} de {board}",
"Click to expand description" : "Clique para expandir a descrição",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
"{nbCards} cards" : "{nbCards} cartões",
"No upcoming cards" : "Não há mais cartões",
"upcoming cards" : "próximos cartões",
"Due on {date}" : "Vencimento em {date}",
"Link to a board" : "Vincular a um painel",
"Link to a board" : "Linkar a um painel",
"Link to a card" : "Vincular a um cartão",
"Create a card" : "Criar um cartão",
"Message from {author} in {conversationName}" : "Mensagem de {author} em {conversationName}",
@@ -307,11 +304,11 @@ OC.L10N.register(
"Share {file} with a Deck card" : "Compartilhar {file} com um cartão Deck",
"Share" : "Compartilhar",
"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 é uma ferramenta de organização de estilo kanban destinada ao planejamento pessoal e organização para equipes integradas com o Nextcloud.\n\n\n- 📥 Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Insira notas adicionais em markdown\n- 🔖 Atribua etiquetas para melhorar a organização\n- 👥 Compartilhe com sua equipe, amigos ou familiares\n- 📎 Anexe arquivos e incorpore-os em sua descrição no markdown\n- 💬 Discuta com sua equipe usando os comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades\n- 🚀 Mantenha seu projeto organizado",
"Are you sure you want to transfer the board {title} for {user} ?" : "Deseja realmente transferir o painel {title} para {user}?",
"Transfer the board for {user} successfully" : "O painel foi transferido para {user} com sucesso",
"Failed to transfer the board for {user}" : "Não foi possível transferir o painel para {user}",
"Are you sure you want to transfer the board {title} for {user} ?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?",
"Transfer the board for {user} successfully" : "Transferida a reunião para {user} com sucesso",
"Failed to transfer the board for {user}" : "Falha ao transferir a reunião para {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Deseja realmente excluir o painel {title}? Isto excluirá todos os dados deste painel.",
"This week" : "Esta semana",
"Are you sure you want to transfer the board {title} for {user}?" : "Deseja realmente transferir o painel {title} para {user}?"
"Are you sure you want to transfer the board {title} for {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -69,14 +69,14 @@
"Load more" : "Carregar mais",
"Personal" : "Pessoal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "O cartão \"%s\" em \"%s\" foi vinculado com você por %s.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} atribuiu o cartão {deck-card} no {deck-board} a você.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{usuário} atribuiu a carta {deck-card} no {deck-board} para você.",
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
"The card {deck-card} on {deck-board} has reached its due date." : "O cartão {deck-card} em {deck-board} atingiu sua data de vencimento.",
"The card {deck-card} on {deck-board} has reached its due date." : "A carta {deck-card} em {deck-board} atingiu sua data de vencimento.",
"%s has mentioned you in a comment on \"%s\"." : "%s citou você num comentário em \"%s\".",
"{user} has mentioned you in a comment on {deck-card}." : "{user} mencionou você em um comentário em {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "O painel \"%s\" foi compartilhado com você por %s.",
"{user} has shared {deck-board} with you." : "{user} compartilhou o {deck-board} com você.",
"Card comments" : "Comentários do cartão",
"{user} has shared {deck-board} with you." : "{user} compartilhou {deck-board} com você.",
"Card comments" : "Comentários nos Cards",
"%s on %s" : "%s em %s",
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
"Finished" : "Terminado",
@@ -99,12 +99,12 @@
"Could not write file to disk" : "Não foi possível escrever no disco",
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nEle foi adicionado como um anexo ao cartão de nome %s.\nAcessível na URL: %s.",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentário tem mais de %s caracteres.\nAdicionado como um anexo ao cartão com o nome %s.\nAcessível no URL: %s.",
"Card not found" : "Cartão não encontrado",
"Path is already shared with this card" : "O caminho já é compartilhado com este cartão",
"Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
"Personal planning and team project organization" : "Planejamento pessoal e organização de projetos em equipe",
"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" : "O Deck é uma ferramenta de organização ao estilo kanban voltada para o planejamento pessoal e para a organização de projetos para equipes, integrada ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Escreva notas adicionais formatadas em Markdown \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, seus amigos ou sua família\n- 📎 Anexe arquivos e incorpore-os à sua descrição em Markdown\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades \n- 🚀 Organize seu projeto ",
"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 é uma ferramenta de organização do estilo kanban voltada para o planejamento pessoal e organização de projetos para equipes integradas ao Nextcloud.\n\n\n- 📥Adicione suas tarefas aos cartões e coloque-as em ordem\n- 📄 Escreva notas adicionais em Anotar \n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, amigos ou família\n- 📎 Anexar arquivos e incorporá-los à descrição da Nota\n- 💬 Discuta com sua equipe usando comentários\n- ⚡ Acompanhe as mudanças no fluxo de atividades \n- 🚀 Organize seu projeto ",
"Card details" : "Detalhes do cartão",
"Add board" : "Adicionar painel",
"Select the board to link to a project" : "Selecione o painel para vincular a um projeto",
@@ -115,7 +115,7 @@
"Select a list" : "Selecione uma lista",
"Card title" : "Título do cartão",
"Cancel" : "Cancelar",
"Creating the new card …" : "Criando o novo cartão…",
"Creating the new card …" : "Criando o novo cartão …",
"Card \"{card}\" was added to \"{board}\"" : "O cartão \"{card}\" foi adicionado a \"{board}\" ",
"Open card" : "Abrir o cartão",
"Close" : "Fechar",
@@ -148,7 +148,7 @@
"Clear filter" : "Limpar filtro",
"Hide archived cards" : "Ocultar cartões arquivados",
"Show archived cards" : "Exibir cartões arquivados",
"Toggle compact mode" : "Alternar modo compacto",
"Toggle compact mode" : "Alternar para modo compacto",
"Open details" : "Abrir detalhes",
"Details" : "Detalhes",
"Loading board" : "Carregando painel",
@@ -174,17 +174,15 @@
"Owner" : "Proprietário",
"Delete" : "Excluir",
"Failed to create share with {displayName}" : "Falha ao criar compartilhamento com {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Deseja realmente transferir o painel {title} para {user}?",
"Transfer the board." : "Transferir o painel.",
"Are you sure you want to transfer the board {title} to {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?",
"Transfer the board." : "Transfira a reunião.",
"Transfer" : "Transferir",
"The board has been transferred to {user}" : "A painel foi transferida para {user}",
"Failed to transfer the board to {user}" : "Não foi possível transferir o painel para {user}",
"The board has been transferred to {user}" : "A quadro foi transferida para {user}",
"Failed to transfer the board to {user}" : "Falha ao transferir o quadro para {user}",
"Add a new list" : "Adicionar nova lista",
"Archive all cards" : "Arquivar todos os cartões",
"Unarchive all cards" : "Desarquivar todos os cartões",
"Delete list" : "Excluir lista",
"Archive all cards in this list" : "Arquivar todos os cartões desta lista",
"Unarchive all cards in this list" : "Desarquivar todos os cartões desta lista",
"Add a new card" : "Adicionar um novo cartão",
"Card name" : "Nome do cartão",
"List deleted" : "Lista excluída",
@@ -197,7 +195,7 @@
"Share from Files" : "Compartilhar de Arquivos",
"Pending share" : "Compartilhamento pendente",
"Add this attachment" : "Adicionar este anexo",
"Show in Files" : "Exibir em Arquivos",
"Show in Files" : "Mostrar em Arquivos",
"Download" : "Baixar",
"Remove attachment" : "Remover anexo",
"Delete Attachment" : "Excluir Anexo",
@@ -212,13 +210,13 @@
"Created" : "Criado",
"The title cannot be empty." : "O título não pode ficar em branco.",
"No comments yet. Begin the discussion!" : "Nenhum comentário ainda. Inicie a conversa!",
"Failed to load comments" : "Não foi possível carregar os comentários",
"Failed to load comments" : "Falha ao carregar comentários",
"Assign a tag to this card…" : "Atribuir uma etiqueta a este cartão...",
"Assign to users" : "Atribuir a usuários",
"Assign to users/groups/circles" : "Atribuir a usuários/grupos/círculos",
"Assign a user to this card…" : "Atribuir um usuário a este cartão...",
"Due date" : "Data de vencimento",
"Set a due date" : "Definir uma data de vencimento",
"Set a due date" : "Definir uma data de finalização",
"Remove due date" : "Remover data de vencimento",
"Select Date" : "Selecionar Data",
"Today" : "Hoje",
@@ -242,7 +240,7 @@
"Write a description …" : "Escreva uma descrição...",
"Choose attachment" : "Escolher anexo",
"(group)" : "(grupo)",
"Todo items" : "Itens a fazer",
"Todo items" : "Itens para fazer",
"{count} comments, {unread} unread" : "{count} comentários, {unread} não lidos",
"Edit card title" : "Editar título do cartão",
"Assign to me" : "Atribuir a mim",
@@ -252,7 +250,7 @@
"Archive card" : "Arquivar cartão",
"Delete card" : "Excluir cartão",
"Move card to another board" : "Mover o cartão para outro painel",
"List is empty" : "A lista está vazia",
"List is empty" : "A Lista está vazia",
"Card deleted" : "Cartão excluído",
"seconds ago" : "segundos atrás",
"All boards" : "Todos os painéis",
@@ -260,8 +258,7 @@
"Shared with you" : "Compartilhado com você",
"Deck settings" : "Configurações do Deck",
"Use bigger card view" : "Use uma exibição de cartão maior",
"Show card ID badge" : "Exibir o distintivo de identificação do cartão",
"Show boards in calendar/tasks" : "Exibir os painéis em calendários/tarefas",
"Show boards in calendar/tasks" : "Mostrar painéis em calendários/tarefas",
"Limit deck usage of groups" : "Limitar o uso de grupos no deck",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar o Deck impedirá que usuários que não fazem parte desses grupos criem seus próprios painéis. Os usuários ainda poderão trabalhar em pastas que foram compartilhadas com eles.",
"Board details" : "Detalhes do painel",
@@ -280,20 +277,20 @@
"Only assigned cards" : "Apenas cartões atribuídos",
"No reminder" : "Nenhum lembrete",
"An error occurred" : "Ocorreu um erro",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Deseja realmente excluir o painel {title}? Isso excluirá todos os dados deste painel, inclusive os cartões arquivados.",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Tem certeza de que deseja excluir o quadro {title}? Isso excluirá todos os dados deste quadro, incluindo cartões arquivados.",
"Delete the board?" : "Excluir o painel?",
"Loading filtered view" : "Carregando exibição filtrada",
"No due" : "Sem vencimento",
"Search for {searchQuery} in all boards" : "Pesquisar por {searchQuery} em todos os painéis",
"No results found" : "Nenhum resultado encontrado",
"{stack} in {board}" : "{stack} em {board}",
"{stack} in {board}" : "{stack} de {board}",
"Click to expand description" : "Clique para expandir a descrição",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Criado em {created}\n* Última modificação em {lastMod}\n* {nbAttachments} anexos\n* {nbComments} comentários",
"{nbCards} cards" : "{nbCards} cartões",
"No upcoming cards" : "Não há mais cartões",
"upcoming cards" : "próximos cartões",
"Due on {date}" : "Vencimento em {date}",
"Link to a board" : "Vincular a um painel",
"Link to a board" : "Linkar a um painel",
"Link to a card" : "Vincular a um cartão",
"Create a card" : "Criar um cartão",
"Message from {author} in {conversationName}" : "Mensagem de {author} em {conversationName}",
@@ -305,11 +302,11 @@
"Share {file} with a Deck card" : "Compartilhar {file} com um cartão Deck",
"Share" : "Compartilhar",
"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 é uma ferramenta de organização de estilo kanban destinada ao planejamento pessoal e organização para equipes integradas com o Nextcloud.\n\n\n- 📥 Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Insira notas adicionais em markdown\n- 🔖 Atribua etiquetas para melhorar a organização\n- 👥 Compartilhe com sua equipe, amigos ou familiares\n- 📎 Anexe arquivos e incorpore-os em sua descrição no markdown\n- 💬 Discuta com sua equipe usando os comentários\n- ⚡ Acompanhe as alterações no fluxo de atividades\n- 🚀 Mantenha seu projeto organizado",
"Are you sure you want to transfer the board {title} for {user} ?" : "Deseja realmente transferir o painel {title} para {user}?",
"Transfer the board for {user} successfully" : "O painel foi transferido para {user} com sucesso",
"Failed to transfer the board for {user}" : "Não foi possível transferir o painel para {user}",
"Are you sure you want to transfer the board {title} for {user} ?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?",
"Transfer the board for {user} successfully" : "Transferida a reunião para {user} com sucesso",
"Failed to transfer the board for {user}" : "Falha ao transferir a reunião para {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Deseja realmente excluir o painel {title}? Isto excluirá todos os dados deste painel.",
"This week" : "Esta semana",
"Are you sure you want to transfer the board {title} for {user}?" : "Deseja realmente transferir o painel {title} para {user}?"
"Are you sure you want to transfer the board {title} for {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Не удалось передать доску пользователю {user}",
"Add a new list" : "Создать список",
"Archive all cards" : "Переместить все карточки в архив",
"Unarchive all cards" : "Восстановить все карточки из архива",
"Delete list" : "Удалить список",
"Archive all cards in this list" : "Переместить в архив все карточки текущего списка",
"Unarchive all cards in this list" : "Восстановить из архива все карточки списка",
"Add a new card" : "Создать карточку",
"Card name" : "Название карточки",
"List deleted" : "Список удалён",
@@ -244,9 +242,7 @@ OC.L10N.register(
"Write a description …" : "Добавьте описание...",
"Choose attachment" : "Выберите вложение",
"(group)" : "(группа)",
"Todo items" : "Элементы списка задач",
"{count} comments, {unread} unread" : "{count} комментариев, {unread} непрочитано",
"Edit card title" : "Изменить заголовок карточки",
"Assign to me" : "Назначить себе",
"Unassign myself" : "Отказаться от назначения",
"Move card" : "Переместить карточку",
@@ -260,9 +256,7 @@ OC.L10N.register(
"All boards" : "Все доски",
"Archived boards" : "Архив досок",
"Shared with you" : "Предоставленные вам",
"Deck settings" : "Параметры карточек",
"Use bigger card view" : "Режим просмотра с увеличенными карточками",
"Show card ID badge" : "Показывать идентификатор карточки",
"Show boards in calendar/tasks" : "Показывать карточки в календаре и задачах",
"Limit deck usage of groups" : "Разрешить использовать приложение Карточки только участникам заданных групп",
"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." : "Создание собственных рабочих досок пользователям, не входящим в заданные группы, будет заблокировано. Тем не менее, такие пользователи смогут продолжить работать с общими досками, к которым у них есть доступ. ",
@@ -282,15 +276,12 @@ OC.L10N.register(
"Only assigned cards" : "Только для назначенных карточек",
"No reminder" : "Не напоминать",
"An error occurred" : "Произошла ошибка",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске, включая карточки в архиве.",
"Delete the board?" : "Удалить доску?",
"Loading filtered view" : "Выполняется отбор",
"No due" : "Без назначенной даты",
"Search for {searchQuery} in all boards" : "Искать {searchQuery} на всех досках",
"No results found" : "Результаты отсутствуют",
"{stack} in {board}" : "«{stack}» с доски «{board}»",
"Click to expand description" : "Нажмите, чтобы развернуть поле описания",
"{nbCards} cards" : "карточек: {nbCards}",
"No upcoming cards" : "Отсутствуют карточки, ожидающие выполнения",
"upcoming cards" : "карточки, ожидающие выполнения",
"Link to a board" : "Ссылка на доску",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Не удалось передать доску пользователю {user}",
"Add a new list" : "Создать список",
"Archive all cards" : "Переместить все карточки в архив",
"Unarchive all cards" : "Восстановить все карточки из архива",
"Delete list" : "Удалить список",
"Archive all cards in this list" : "Переместить в архив все карточки текущего списка",
"Unarchive all cards in this list" : "Восстановить из архива все карточки списка",
"Add a new card" : "Создать карточку",
"Card name" : "Название карточки",
"List deleted" : "Список удалён",
@@ -242,9 +240,7 @@
"Write a description …" : "Добавьте описание...",
"Choose attachment" : "Выберите вложение",
"(group)" : "(группа)",
"Todo items" : "Элементы списка задач",
"{count} comments, {unread} unread" : "{count} комментариев, {unread} непрочитано",
"Edit card title" : "Изменить заголовок карточки",
"Assign to me" : "Назначить себе",
"Unassign myself" : "Отказаться от назначения",
"Move card" : "Переместить карточку",
@@ -258,9 +254,7 @@
"All boards" : "Все доски",
"Archived boards" : "Архив досок",
"Shared with you" : "Предоставленные вам",
"Deck settings" : "Параметры карточек",
"Use bigger card view" : "Режим просмотра с увеличенными карточками",
"Show card ID badge" : "Показывать идентификатор карточки",
"Show boards in calendar/tasks" : "Показывать карточки в календаре и задачах",
"Limit deck usage of groups" : "Разрешить использовать приложение Карточки только участникам заданных групп",
"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." : "Создание собственных рабочих досок пользователям, не входящим в заданные группы, будет заблокировано. Тем не менее, такие пользователи смогут продолжить работать с общими досками, к которым у них есть доступ. ",
@@ -280,15 +274,12 @@
"Only assigned cards" : "Только для назначенных карточек",
"No reminder" : "Не напоминать",
"An error occurred" : "Произошла ошибка",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске, включая карточки в архиве.",
"Delete the board?" : "Удалить доску?",
"Loading filtered view" : "Выполняется отбор",
"No due" : "Без назначенной даты",
"Search for {searchQuery} in all boards" : "Искать {searchQuery} на всех досках",
"No results found" : "Результаты отсутствуют",
"{stack} in {board}" : "«{stack}» с доски «{board}»",
"Click to expand description" : "Нажмите, чтобы развернуть поле описания",
"{nbCards} cards" : "карточек: {nbCards}",
"No upcoming cards" : "Отсутствуют карточки, ожидающие выполнения",
"upcoming cards" : "карточки, ожидающие выполнения",
"Link to a board" : "Ссылка на доску",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Chyba pri presune nástenky na {user}",
"Add a new list" : "Pridať nový zoznam",
"Archive all cards" : "Archivovať všetky karty",
"Unarchive all cards" : "Zrušiť archiváciu všetkých kariet",
"Delete list" : "Vymazať zoznam",
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
"Unarchive all cards in this list" : "Zrušiť archiváciu všetkých kariet v tomto zozname",
"Add a new card" : "Pridať novú kartu",
"Card name" : "Názov karty",
"List deleted" : "Zoznam bol vymazaný",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Vám sprístupnené",
"Deck settings" : "Nastavenia paluby",
"Use bigger card view" : "Použiť väčšie zobrazenie karty",
"Show card ID badge" : "Ukázať ID karty",
"Show boards in calendar/tasks" : "Zobrazovať nástenky v kalendári/úlohách",
"Limit deck usage of groups" : "Obmedziť použitie Deck na skupiny",
"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." : "Obmedzenie Násteniek bráni používateľom, ktorí nie sú súčasťou týchto skupín, aby si vytvárali vlastné nástenky. Môžu však stále pracovať na nástenkách, ktoré im niekto sprístupní.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Chyba pri presune nástenky na {user}",
"Add a new list" : "Pridať nový zoznam",
"Archive all cards" : "Archivovať všetky karty",
"Unarchive all cards" : "Zrušiť archiváciu všetkých kariet",
"Delete list" : "Vymazať zoznam",
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
"Unarchive all cards in this list" : "Zrušiť archiváciu všetkých kariet v tomto zozname",
"Add a new card" : "Pridať novú kartu",
"Card name" : "Názov karty",
"List deleted" : "Zoznam bol vymazaný",
@@ -260,7 +258,6 @@
"Shared with you" : "Vám sprístupnené",
"Deck settings" : "Nastavenia paluby",
"Use bigger card view" : "Použiť väčšie zobrazenie karty",
"Show card ID badge" : "Ukázať ID karty",
"Show boards in calendar/tasks" : "Zobrazovať nástenky v kalendári/úlohách",
"Limit deck usage of groups" : "Obmedziť použitie Deck na skupiny",
"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." : "Obmedzenie Násteniek bráni používateľom, ktorí nie sú súčasťou týchto skupín, aby si vytvárali vlastné nástenky. Môžu však stále pracovať na nástenkách, ktoré im niekto sprístupní.",

View File

@@ -136,7 +136,6 @@ OC.L10N.register(
"Archived cards" : "Arkiverade kort",
"Add list" : "Lägg till lista...",
"List name" : "Namn på lista",
"Active filters" : "Aktiva filter",
"Apply filter" : "Tillämpa filter",
"Filter by tag" : "Filtrera efter tagg",
"Filter by assigned user" : "Filtrera efter tilldelad användare",
@@ -176,17 +175,11 @@ OC.L10N.register(
"Owner" : "Ägare",
"Delete" : "Ta bort",
"Failed to create share with {displayName}" : "Kunde inte skapa delning med {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Är du säker att du vill överföra tavlan {title} till {user}?",
"Transfer the board." : "Överför tavlan.",
"Transfer" : "Överför",
"The board has been transferred to {user}" : "Tavlan har överförts till {user}",
"Failed to transfer the board to {user}" : "Kunde inte överföra tavlan till {user}",
"Add a new list" : "Lägg till en ny lista",
"Archive all cards" : "Arkivera alla kort",
"Unarchive all cards" : "Ta ut alla kort ur arkivet",
"Delete list" : "Ta bort lista",
"Archive all cards in this list" : "Arkivera alla kort i denna lista",
"Unarchive all cards in this list" : "Ta ut alla kort i denna lista ur arkivet",
"Add a new card" : "Lägg till ett nytt kort",
"Card name" : "Kortets namn",
"List deleted" : "Listan har raderats",
@@ -244,9 +237,7 @@ OC.L10N.register(
"Write a description …" : "Ange en beskrivning ...",
"Choose attachment" : "Välj bilaga",
"(group)" : " (grupp)",
"Todo items" : "Todo saker",
"{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa",
"Edit card title" : "Ändra korttitel",
"Assign to me" : "Tilldela till mig",
"Unassign myself" : "Ta bort från mig själv",
"Move card" : "Flytta kort",
@@ -260,9 +251,7 @@ OC.L10N.register(
"All boards" : "Alla tavlor",
"Archived boards" : "Arkiverade tavlor",
"Shared with you" : "Delad med dig",
"Deck settings" : "Deck-inställningar",
"Use bigger card view" : "Visa större kort",
"Show card ID badge" : "Visa kortets ID-märke",
"Show boards in calendar/tasks" : "Visa tavlor i kalender / uppgifter",
"Limit deck usage of groups" : "Begränsa användningen av grupper",
"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." : "Begränsning av Deck blockerar användare som inte ingår i dessa grupper från att skapa egna tavlor. Användare kan dock fortfarande integrera med tavlor som har delats med dem.",
@@ -282,19 +271,13 @@ OC.L10N.register(
"Only assigned cards" : "Bara tilldelade kort",
"No reminder" : "Ingen påminnelse",
"An error occurred" : "Ett fel uppstod",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera brädet {title}? Detta kommer radera all data som tillhör brädet inklusive arkiverade kort.",
"Delete the board?" : "Ta bort tavlan?",
"Loading filtered view" : "Laddar filtrerad vy",
"No due" : "Inget slut",
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
"No results found" : "Inga resultat funna",
"{stack} in {board}" : "{stack} i {board}",
"Click to expand description" : "Klicka för att utöka beskrivningen",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Skapades {created}\n* Ändrades senast {lastMod}\n* {nbAttachments} bilagor\n* {nbComments} kommentarer",
"{nbCards} cards" : "{nbCards} kort",
"No upcoming cards" : "Inga kommande kort",
"upcoming cards" : "kommande kort",
"Due on {date}" : "Går ut {date}",
"Link to a board" : "Länka till en tavla",
"Link to a card" : "Länka till ett kort",
"Create a card" : "Skapa ett kort",
@@ -307,11 +290,7 @@ OC.L10N.register(
"Share {file} with a Deck card" : "Dela {file} med ett Deck-kort",
"Share" : "Dela",
"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 är en kanban-liknande projekt- och organiseringsapp för arbetsgrupper i Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och ordna dem\n- 📄 Skriv anteckningar i markdown\n- 🔖 Tilldela etiketter för organisering\n- 👥 Dela med arbetsgruppen, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i markdown-anteckningarna\n- 💬 Diskutera i arbetsgruppen genom kommentarer\n- ⚡ Håll koll på ändringar i aktivitetsflödet\n- 🚀 Börja organisera din arbetsgrupp nu!",
"Are you sure you want to transfer the board {title} for {user} ?" : "Är du säker på att du vill överföra brädet {title} för {user}?",
"Transfer the board for {user} successfully" : "Överförde brädet för {user}",
"Failed to transfer the board for {user}" : "Misslyckades med att överföra brädet för {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
"This week" : "Denna vecka",
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra brädet {title} för {user}?"
"This week" : "Denna vecka"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -134,7 +134,6 @@
"Archived cards" : "Arkiverade kort",
"Add list" : "Lägg till lista...",
"List name" : "Namn på lista",
"Active filters" : "Aktiva filter",
"Apply filter" : "Tillämpa filter",
"Filter by tag" : "Filtrera efter tagg",
"Filter by assigned user" : "Filtrera efter tilldelad användare",
@@ -174,17 +173,11 @@
"Owner" : "Ägare",
"Delete" : "Ta bort",
"Failed to create share with {displayName}" : "Kunde inte skapa delning med {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Är du säker att du vill överföra tavlan {title} till {user}?",
"Transfer the board." : "Överför tavlan.",
"Transfer" : "Överför",
"The board has been transferred to {user}" : "Tavlan har överförts till {user}",
"Failed to transfer the board to {user}" : "Kunde inte överföra tavlan till {user}",
"Add a new list" : "Lägg till en ny lista",
"Archive all cards" : "Arkivera alla kort",
"Unarchive all cards" : "Ta ut alla kort ur arkivet",
"Delete list" : "Ta bort lista",
"Archive all cards in this list" : "Arkivera alla kort i denna lista",
"Unarchive all cards in this list" : "Ta ut alla kort i denna lista ur arkivet",
"Add a new card" : "Lägg till ett nytt kort",
"Card name" : "Kortets namn",
"List deleted" : "Listan har raderats",
@@ -242,9 +235,7 @@
"Write a description …" : "Ange en beskrivning ...",
"Choose attachment" : "Välj bilaga",
"(group)" : " (grupp)",
"Todo items" : "Todo saker",
"{count} comments, {unread} unread" : "{count} kommentarer, {unread} olästa",
"Edit card title" : "Ändra korttitel",
"Assign to me" : "Tilldela till mig",
"Unassign myself" : "Ta bort från mig själv",
"Move card" : "Flytta kort",
@@ -258,9 +249,7 @@
"All boards" : "Alla tavlor",
"Archived boards" : "Arkiverade tavlor",
"Shared with you" : "Delad med dig",
"Deck settings" : "Deck-inställningar",
"Use bigger card view" : "Visa större kort",
"Show card ID badge" : "Visa kortets ID-märke",
"Show boards in calendar/tasks" : "Visa tavlor i kalender / uppgifter",
"Limit deck usage of groups" : "Begränsa användningen av grupper",
"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." : "Begränsning av Deck blockerar användare som inte ingår i dessa grupper från att skapa egna tavlor. Användare kan dock fortfarande integrera med tavlor som har delats med dem.",
@@ -280,19 +269,13 @@
"Only assigned cards" : "Bara tilldelade kort",
"No reminder" : "Ingen påminnelse",
"An error occurred" : "Ett fel uppstod",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Är du säker på att du vill radera brädet {title}? Detta kommer radera all data som tillhör brädet inklusive arkiverade kort.",
"Delete the board?" : "Ta bort tavlan?",
"Loading filtered view" : "Laddar filtrerad vy",
"No due" : "Inget slut",
"Search for {searchQuery} in all boards" : "Sök efter {searchQuery} i alla tavlor",
"No results found" : "Inga resultat funna",
"{stack} in {board}" : "{stack} i {board}",
"Click to expand description" : "Klicka för att utöka beskrivningen",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Skapades {created}\n* Ändrades senast {lastMod}\n* {nbAttachments} bilagor\n* {nbComments} kommentarer",
"{nbCards} cards" : "{nbCards} kort",
"No upcoming cards" : "Inga kommande kort",
"upcoming cards" : "kommande kort",
"Due on {date}" : "Går ut {date}",
"Link to a board" : "Länka till en tavla",
"Link to a card" : "Länka till ett kort",
"Create a card" : "Skapa ett kort",
@@ -305,11 +288,7 @@
"Share {file} with a Deck card" : "Dela {file} med ett Deck-kort",
"Share" : "Dela",
"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 är en kanban-liknande projekt- och organiseringsapp för arbetsgrupper i Nextcloud.\n\n\n- 📥 Lägg till uppgifter på kort och ordna dem\n- 📄 Skriv anteckningar i markdown\n- 🔖 Tilldela etiketter för organisering\n- 👥 Dela med arbetsgruppen, vänner eller familj\n- 📎 Bifoga filer och bädda in dem i markdown-anteckningarna\n- 💬 Diskutera i arbetsgruppen genom kommentarer\n- ⚡ Håll koll på ändringar i aktivitetsflödet\n- 🚀 Börja organisera din arbetsgrupp nu!",
"Are you sure you want to transfer the board {title} for {user} ?" : "Är du säker på att du vill överföra brädet {title} för {user}?",
"Transfer the board for {user} successfully" : "Överförde brädet för {user}",
"Failed to transfer the board for {user}" : "Misslyckades med att överföra brädet för {user}",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
"This week" : "Denna vecka",
"Are you sure you want to transfer the board {title} for {user}?" : "Är du säker på att du vill överföra brädet {title} för {user}?"
"This week" : "Denna vecka"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "Pano {user} kullanıcısına aktarılamadı",
"Add a new list" : "Yeni liste ekle",
"Archive all cards" : "Tüm kartları arşivle",
"Unarchive all cards" : "Tüm kartları arşivden çıkar",
"Delete list" : "Listeyi sil",
"Archive all cards in this list" : "Bu listedeki tüm kartları arşivle",
"Unarchive all cards in this list" : "Bu listedeki tüm kartları arşivden çıkar",
"Add a new card" : "Yeni kart ekle",
"Card name" : "Kart adı",
"List deleted" : "Liste silindi",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "Sizinle paylaşıldı",
"Deck settings" : "Tahta ayarları",
"Use bigger card view" : "Daha büyük kart görünümü kullanılsın",
"Show card ID badge" : "Kart kodu etiketi görüntülensin",
"Show boards in calendar/tasks" : "Takvimler ve görevlerde panolar görüntülensin",
"Limit deck usage of groups" : "Tahtayı şu gruplar kullanabilsin",
"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." : "Tahta kullanımı gruplar ile sınırlandığında belirtilen grupların üyesi olmayan kişiler kendi tahtalarını oluşturamaz. Bu kullanıcılar ancak kendileri ile paylaşılan tahtalar üzerinde çalışabilir.",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "Pano {user} kullanıcısına aktarılamadı",
"Add a new list" : "Yeni liste ekle",
"Archive all cards" : "Tüm kartları arşivle",
"Unarchive all cards" : "Tüm kartları arşivden çıkar",
"Delete list" : "Listeyi sil",
"Archive all cards in this list" : "Bu listedeki tüm kartları arşivle",
"Unarchive all cards in this list" : "Bu listedeki tüm kartları arşivden çıkar",
"Add a new card" : "Yeni kart ekle",
"Card name" : "Kart adı",
"List deleted" : "Liste silindi",
@@ -260,7 +258,6 @@
"Shared with you" : "Sizinle paylaşıldı",
"Deck settings" : "Tahta ayarları",
"Use bigger card view" : "Daha büyük kart görünümü kullanılsın",
"Show card ID badge" : "Kart kodu etiketi görüntülensin",
"Show boards in calendar/tasks" : "Takvimler ve görevlerde panolar görüntülensin",
"Limit deck usage of groups" : "Tahtayı şu gruplar kullanabilsin",
"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." : "Tahta kullanımı gruplar ile sınırlandığında belirtilen grupların üyesi olmayan kişiler kendi tahtalarını oluşturamaz. Bu kullanıcılar ancak kendileri ile paylaşılan tahtalar üzerinde çalışabilir.",

View File

@@ -11,7 +11,7 @@ OC.L10N.register(
"{user} has shared the board {board} with {acl}" : "{user} поділився дошкою {board} з {acl}",
"You have removed {acl} from the board {board}" : "Ви вилучили {acl} з дошки {board}",
"{user} has removed {acl} from the board {board}" : "{user} вилучив {acl} з дошки {board}",
"You have renamed the board {before} to {board}" : "Ви перейменували дошку з {before} на {board}",
"You have renamed the board {before} to {board}" : "Ви перейменували дошку з {before} у {board}",
"{user} has renamed the board {before} to {board}" : "{user} змінив назву дошки {before} на {board}",
"You have archived the board {board}" : "Ви заархівували дошку {board}",
"{user} has archived the board {before}" : "{user} заархівував дошку {before}",
@@ -125,7 +125,7 @@ OC.L10N.register(
"Upload new files" : "Додати файл",
"Share from Files" : "Відкрити Файли",
"Add this attachment" : "Долучити вкладення",
"Download" : "Звантажити",
"Download" : "Завантажити",
"Delete Attachment" : "Забрати вкладення",
"Restore Attachment" : "Відновити вкладення",
"File to share" : "Виберіть файл для надання доступу",
@@ -190,7 +190,7 @@ OC.L10N.register(
"Something went wrong" : "От халепа!",
"Maximum file size of {size} exceeded" : "Досягнуто максимальний розмір файлу {size}",
"Error creating the share" : "Помилка створення спільного доступу",
"Share" : "Спільний доступ",
"Share" : "Поділитися",
"This week" : "Цього тижня"
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");

View File

@@ -9,7 +9,7 @@
"{user} has shared the board {board} with {acl}" : "{user} поділився дошкою {board} з {acl}",
"You have removed {acl} from the board {board}" : "Ви вилучили {acl} з дошки {board}",
"{user} has removed {acl} from the board {board}" : "{user} вилучив {acl} з дошки {board}",
"You have renamed the board {before} to {board}" : "Ви перейменували дошку з {before} на {board}",
"You have renamed the board {before} to {board}" : "Ви перейменували дошку з {before} у {board}",
"{user} has renamed the board {before} to {board}" : "{user} змінив назву дошки {before} на {board}",
"You have archived the board {board}" : "Ви заархівували дошку {board}",
"{user} has archived the board {before}" : "{user} заархівував дошку {before}",
@@ -123,7 +123,7 @@
"Upload new files" : "Додати файл",
"Share from Files" : "Відкрити Файли",
"Add this attachment" : "Долучити вкладення",
"Download" : "Звантажити",
"Download" : "Завантажити",
"Delete Attachment" : "Забрати вкладення",
"Restore Attachment" : "Відновити вкладення",
"File to share" : "Виберіть файл для надання доступу",
@@ -188,7 +188,7 @@
"Something went wrong" : "От халепа!",
"Maximum file size of {size} exceeded" : "Досягнуто максимальний розмір файлу {size}",
"Error creating the share" : "Помилка створення спільного доступу",
"Share" : "Спільний доступ",
"Share" : "Поділитися",
"This week" : "Цього тижня"
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
}

View File

@@ -134,7 +134,6 @@ OC.L10N.register(
"Archived cards" : "已归档卡片",
"Add list" : "添加列表",
"List name" : "列表名称",
"Active filters" : "已开启的过滤器",
"Apply filter" : "应用筛选",
"Filter by tag" : "按标签筛选",
"Filter by assigned user" : "按指派的用户筛选",
@@ -236,9 +235,7 @@ OC.L10N.register(
"Write a description …" : "写一段描述",
"Choose attachment" : "选择附件",
"(group)" : "(组)",
"Todo items" : "待办事项",
"{count} comments, {unread} unread" : "{count} 条评论,{unread} 未读",
"Edit card title" : "编辑卡片标题",
"Assign to me" : "指派给我",
"Unassign myself" : "不再指派给我",
"Move card" : "移动卡片",

View File

@@ -132,7 +132,6 @@
"Archived cards" : "已归档卡片",
"Add list" : "添加列表",
"List name" : "列表名称",
"Active filters" : "已开启的过滤器",
"Apply filter" : "应用筛选",
"Filter by tag" : "按标签筛选",
"Filter by assigned user" : "按指派的用户筛选",
@@ -234,9 +233,7 @@
"Write a description …" : "写一段描述",
"Choose attachment" : "选择附件",
"(group)" : "(组)",
"Todo items" : "待办事项",
"{count} comments, {unread} unread" : "{count} 条评论,{unread} 未读",
"Edit card title" : "编辑卡片标题",
"Assign to me" : "指派给我",
"Unassign myself" : "不再指派给我",
"Move card" : "移动卡片",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "未能將面板轉移給 {user}",
"Add a new list" : "添加一張新清單",
"Archive all cards" : "封存所有卡片",
"Unarchive all cards" : "解除封存所有卡片",
"Delete list" : "刪除清單",
"Archive all cards in this list" : "封存此清單內的所有卡片",
"Unarchive all cards in this list" : "解除封存所有此列表中的卡片",
"Add a new card" : "添加一張新卡片",
"Card name" : "卡片名稱",
"List deleted" : "清單已被刪除",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "收到的分享",
"Deck settings" : "看板設定",
"Use bigger card view" : "使用較大的卡片視圖",
"Show card ID badge" : "顯示卡片 ID 徽章",
"Show boards in calendar/tasks" : "在日曆/任務中顯示面板",
"Limit deck usage of groups" : "限制群組使用 Deck",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制 Deck 將阻止不屬於這些群組的用戶創建自己的面板。用戶仍然可以在與他們的面板上工作。",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "未能將面板轉移給 {user}",
"Add a new list" : "添加一張新清單",
"Archive all cards" : "封存所有卡片",
"Unarchive all cards" : "解除封存所有卡片",
"Delete list" : "刪除清單",
"Archive all cards in this list" : "封存此清單內的所有卡片",
"Unarchive all cards in this list" : "解除封存所有此列表中的卡片",
"Add a new card" : "添加一張新卡片",
"Card name" : "卡片名稱",
"List deleted" : "清單已被刪除",
@@ -260,7 +258,6 @@
"Shared with you" : "收到的分享",
"Deck settings" : "看板設定",
"Use bigger card view" : "使用較大的卡片視圖",
"Show card ID badge" : "顯示卡片 ID 徽章",
"Show boards in calendar/tasks" : "在日曆/任務中顯示面板",
"Limit deck usage of groups" : "限制群組使用 Deck",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制 Deck 將阻止不屬於這些群組的用戶創建自己的面板。用戶仍然可以在與他們的面板上工作。",

View File

@@ -183,10 +183,8 @@ OC.L10N.register(
"Failed to transfer the board to {user}" : "轉移看板給 {user} 失敗",
"Add a new list" : "新增列表",
"Archive all cards" : "封存所有卡片",
"Unarchive all cards" : "解除封存所有卡片",
"Delete list" : "刪除列表",
"Archive all cards in this list" : "封存此列表中的所有卡片",
"Unarchive all cards in this list" : "解除封存所有此列表中的卡片",
"Add a new card" : "新增卡片",
"Card name" : "卡片名稱",
"List deleted" : "列表已刪除",
@@ -262,7 +260,6 @@ OC.L10N.register(
"Shared with you" : "與您分享",
"Deck settings" : "Deck 設定",
"Use bigger card view" : "使用較大的卡片檢視",
"Show card ID badge" : "顯示卡片 ID 徽章",
"Show boards in calendar/tasks" : "在日曆/工作項目中顯示佈告欄",
"Limit deck usage of groups" : "限制群組的 Deck 使用",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制 Deck 將會阻止不屬於這些群組的使用者建立自己的佈告欄。使用者仍然可以在與他們分享的佈告欄上工作。",

View File

@@ -181,10 +181,8 @@
"Failed to transfer the board to {user}" : "轉移看板給 {user} 失敗",
"Add a new list" : "新增列表",
"Archive all cards" : "封存所有卡片",
"Unarchive all cards" : "解除封存所有卡片",
"Delete list" : "刪除列表",
"Archive all cards in this list" : "封存此列表中的所有卡片",
"Unarchive all cards in this list" : "解除封存所有此列表中的卡片",
"Add a new card" : "新增卡片",
"Card name" : "卡片名稱",
"List deleted" : "列表已刪除",
@@ -260,7 +258,6 @@
"Shared with you" : "與您分享",
"Deck settings" : "Deck 設定",
"Use bigger card view" : "使用較大的卡片檢視",
"Show card ID badge" : "顯示卡片 ID 徽章",
"Show boards in calendar/tasks" : "在日曆/工作項目中顯示佈告欄",
"Limit deck usage of groups" : "限制群組的 Deck 使用",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "限制 Deck 將會阻止不屬於這些群組的使用者建立自己的佈告欄。使用者仍然可以在與他們分享的佈告欄上工作。",

View File

@@ -31,7 +31,6 @@ use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card;
@@ -39,7 +38,6 @@ use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\Label;
use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\PermissionService;
use OCP\Activity\IEvent;
use OCP\Activity\IManager;
@@ -51,12 +49,15 @@ use OCP\L10N\IFactory;
class ActivityManager {
public const DECK_NOAUTHOR_COMMENT_SYSTEM_ENFORCED = 'DECK_NOAUTHOR_COMMENT_SYSTEM_ENFORCED';
public const SUBJECT_PARAMS_MAX_LENGTH = 4000;
public const SHORTENED_DESCRIPTION_MAX_LENGTH = 2000;
private $manager;
private $userId;
private $permissionService;
private $boardMapper;
private $cardMapper;
private $attachmentMapper;
private $aclMapper;
private $stackMapper;
private $l10nFactory;
@@ -111,7 +112,6 @@ class ActivityManager {
BoardMapper $boardMapper,
CardMapper $cardMapper,
StackMapper $stackMapper,
AttachmentMapper $attachmentMapper,
AclMapper $aclMapper,
IFactory $l10nFactory,
$userId
@@ -121,7 +121,6 @@ class ActivityManager {
$this->boardMapper = $boardMapper;
$this->cardMapper = $cardMapper;
$this->stackMapper = $stackMapper;
$this->attachmentMapper = $attachmentMapper;
$this->aclMapper = $aclMapper;
$this->l10nFactory = $l10nFactory;
$this->userId = $userId;
@@ -250,19 +249,6 @@ class ActivityManager {
try {
$event = $this->createEvent($objectType, $entity, $subject, $additionalParams, $author);
if ($event !== null) {
$json = json_encode($event->getSubjectParameters());
if (mb_strlen($json) > 4000) {
$params = json_decode(json_encode($event->getSubjectParameters()), true);
$newContent = $params['after'];
unset($params['before'], $params['after'], $params['card']['description']);
$params['after'] = mb_substr($newContent, 0, 2000);
if (mb_strlen($newContent) > 2000) {
$params['after'] .= '...';
}
$event->setSubject($event->getSubject(), $params);
}
$this->sendToUsers($event);
}
} catch (\Exception $e) {
@@ -411,12 +397,31 @@ class ActivityManager {
$subjectParams['author'] = $author === null ? $this->userId : $author;
$subjectParams = array_merge($subjectParams, $additionalParams);
$json = json_encode($subjectParams);
if (mb_strlen($json) > self::SUBJECT_PARAMS_MAX_LENGTH) {
$params = json_decode(json_encode($subjectParams), true);
if ($subject === self::SUBJECT_CARD_UPDATE_DESCRIPTION && isset($params['after'])) {
$newContent = $params['after'];
unset($params['before'], $params['after'], $params['card']['description']);
$params['after'] = mb_substr($newContent, 0, self::SHORTENED_DESCRIPTION_MAX_LENGTH);
if (mb_strlen($newContent) > self::SHORTENED_DESCRIPTION_MAX_LENGTH) {
$params['after'] .= '...';
}
$subjectParams = $params;
} else {
throw new \Exception('Subject parameters too long');
}
}
$event = $this->manager->generateEvent();
$event->setApp('deck')
->setType($eventType)
->setAuthor($subjectParams['author'])
->setObject($objectType, (int)$object->getId(), $object->getTitle())
->setSubject($subject, array_merge($subjectParams, $additionalParams))
->setSubject($subject, $subjectParams)
->setTimestamp(time());
if ($message !== null) {
@@ -544,24 +549,4 @@ class ActivityManager {
'board' => $board
];
}
public function canSeeCardActivity(int $cardId): bool {
try {
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ);
$card = $this->cardMapper->find($cardId);
return $card->getDeletedAt() === 0;
} catch (NoPermissionException $e) {
return false;
}
}
public function canSeeBoardActivity(int $boardId): bool {
try {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
$board = $this->boardMapper->find($boardId);
return $board->getDeletedAt() === 0;
} catch (NoPermissionException $e) {
return false;
}
}
}

View File

@@ -69,15 +69,7 @@ class ChangeSet implements \JsonSerializable {
return $this->after;
}
/**
* Specify data which should be serialized to JSON
*
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
* @since 5.4.0
*/
public function jsonSerialize() {
public function jsonSerialize(): array {
return [
'before' => $this->getBefore(),
'after' => $this->getAfter(),

View File

@@ -111,9 +111,6 @@ class DeckProvider implements IProvider {
$event->setAuthor($author);
}
if ($event->getObjectType() === ActivityManager::DECK_OBJECT_BOARD) {
if (!$this->activityManager->canSeeBoardActivity($event->getObjectId())) {
throw new \InvalidArgumentException();
}
if (isset($subjectParams['board']) && $event->getObjectName() === '') {
$event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['board']['title']);
}
@@ -128,9 +125,6 @@ class DeckProvider implements IProvider {
}
if (isset($subjectParams['card']) && $event->getObjectType() === ActivityManager::DECK_OBJECT_CARD) {
if (!$this->activityManager->canSeeCardActivity($event->getObjectId())) {
throw new \InvalidArgumentException();
}
if ($event->getObjectName() === '') {
$event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['card']['title']);
}

View File

@@ -108,7 +108,7 @@ class ResourceProvider implements IProvider {
private function getBoard(IResource $resource) {
try {
return $this->boardMapper->find((int)$resource->getId(), false, true);
return $this->boardMapper->find($resource->getId(), false, true);
} catch (DoesNotExistException $e) {
} catch (MultipleObjectsReturnedException $e) {
return null;

View File

@@ -0,0 +1,92 @@
<?php
/**
* @copyright Copyright (c) 2021 Vitor Mattos <vitor@php.rio>
*
* @author Vitor Mattos <vitor@php.rio>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Command;
use OCA\Deck\Service\Importer\BoardImportCommandService;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class BoardImport extends Command {
/** @var BoardImportCommandService */
private $boardImportCommandService;
public function __construct(
BoardImportCommandService $boardImportCommandService
) {
$this->boardImportCommandService = $boardImportCommandService;
parent::__construct();
}
/**
* @return void
*/
protected function configure() {
$allowedSystems = $this->boardImportCommandService->getAllowedImportSystems();
$names = array_column($allowedSystems, 'name');
$this
->setName('deck:import')
->setDescription('Import data')
->addOption(
'system',
null,
InputOption::VALUE_REQUIRED,
'Source system for import. Available options: ' . implode(', ', $names) . '.',
null
)
->addOption(
'config',
null,
InputOption::VALUE_REQUIRED,
'Configuration json file.',
'config.json'
)
->addOption(
'data',
null,
InputOption::VALUE_OPTIONAL,
'Data file to import.',
'data.json'
)
;
}
/**
* @param InputInterface $input
* @param OutputInterface $output
*
* @return int
*/
protected function execute(InputInterface $input, OutputInterface $output): int {
$this
->boardImportCommandService
->setInput($input)
->setOutput($output)
->setCommand($this)
->import();
$output->writeln('Done!');
return 0;
}
}

View File

@@ -0,0 +1,85 @@
<?php
/**
* @copyright Copyright (c) 2021 Vitor Mattos <vitor@php.rio>
*
* @author Vitor Mattos <vitor@php.rio>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Controller;
use OCA\Deck\Service\Importer\BoardImportService;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController;
use OCP\IRequest;
class BoardImportApiController extends OCSController {
/** @var BoardImportService */
private $boardImportService;
/** @var string */
private $userId;
public function __construct(
string $appName,
IRequest $request,
BoardImportService $boardImportService,
string $userId
) {
parent::__construct($appName, $request);
$this->boardImportService = $boardImportService;
$this->userId = $userId;
}
/**
* @NoAdminRequired
* @CORS
* @NoCSRFRequired
*/
public function import(string $system, array $config, array $data): DataResponse {
$this->boardImportService->setSystem($system);
$config = json_decode(json_encode($config));
$config->owner = $this->userId;
$this->boardImportService->setConfigInstance($config);
$this->boardImportService->setData(json_decode(json_encode($data)));
$this->boardImportService->import();
return new DataResponse($this->boardImportService->getBoard(), Http::STATUS_OK);
}
/**
* @NoAdminRequired
* @CORS
* @NoCSRFRequired
*/
public function getAllowedSystems(): DataResponse {
$allowedSystems = $this->boardImportService->getAllowedImportSystems();
return new DataResponse($allowedSystems, Http::STATUS_OK);
}
/**
* @NoAdminRequired
* @CORS
* @NoCSRFRequired
*/
public function getConfigSchema(string $name): DataResponse {
$this->boardImportService->setSystem($name);
$this->boardImportService->validateSystem();
$jsonSchemaPath = json_decode(file_get_contents($this->boardImportService->getJsonSchemaPath()));
return new DataResponse($jsonSchemaPath, Http::STATUS_OK);
}
}

View File

@@ -24,7 +24,8 @@
namespace OCA\Deck\Cron;
use OC\BackgroundJob\Job;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\CardMapper;
@@ -35,7 +36,8 @@ class CardDescriptionActivity extends Job {
/** @var CardMapper */
private $cardMapper;
public function __construct(ActivityManager $activityManager, CardMapper $cardMapper) {
public function __construct(ITimeFactory $time, ActivityManager $activityManager, CardMapper $cardMapper) {
parent::__construct($time);
$this->activityManager = $activityManager;
$this->cardMapper = $cardMapper;
}

View File

@@ -24,13 +24,15 @@
namespace OCA\Deck\Cron;
use OC\BackgroundJob\Job;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\InvalidAttachmentType;
use OCA\Deck\Service\AttachmentService;
use OCP\BackgroundJob\IJob;
class DeleteCron extends Job {
class DeleteCron extends TimedJob {
/** @var BoardMapper */
private $boardMapper;
@@ -39,10 +41,14 @@ class DeleteCron extends Job {
/** @var AttachmentMapper */
private $attachmentMapper;
public function __construct(BoardMapper $boardMapper, AttachmentService $attachmentService, AttachmentMapper $attachmentMapper) {
public function __construct(ITimeFactory $time, BoardMapper $boardMapper, AttachmentService $attachmentService, AttachmentMapper $attachmentMapper) {
parent::__construct($time);
$this->boardMapper = $boardMapper;
$this->attachmentService = $attachmentService;
$this->attachmentMapper = $attachmentMapper;
$this->setInterval(60 * 60 * 24);
$this->setTimeSensitivity(IJob::TIME_INSENSITIVE);
}
/**

View File

@@ -23,7 +23,8 @@
namespace OCA\Deck\Cron;
use OC\BackgroundJob\Job;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Notification\NotificationHelper;
@@ -40,10 +41,12 @@ class ScheduledNotifications extends Job {
protected $logger;
public function __construct(
ITimeFactory $time,
CardMapper $cardMapper,
NotificationHelper $notificationHelper,
ILogger $logger
) {
parent::__construct($time);
$this->cardMapper = $cardMapper;
$this->notificationHelper = $notificationHelper;
$this->logger = $logger;

View File

@@ -58,7 +58,7 @@ class Board extends RelationalEntity {
$this->shared = -1;
}
public function jsonSerialize() {
public function jsonSerialize(): array {
$json = parent::jsonSerialize();
if ($this->shared === -1) {
unset($json['shared']);

View File

@@ -79,14 +79,12 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
* @throws DoesNotExistException
*/
public function find(int $id, bool $withLabels = false, bool $withAcl = false, bool $allowDeleted = false): Board {
public function find($id, $withLabels = false, $withAcl = false): Board {
if (!isset($this->boardCache[$id])) {
$qb = $this->db->getQueryBuilder();
$deletedWhere = $allowDeleted ? $qb->expr()->gte('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) : $qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT));
$qb->select('*')
->from('deck_boards')
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
->andWhere($deletedWhere)
->orderBy('id');
$this->boardCache[$id] = $this->findEntity($qb);
}

View File

@@ -50,7 +50,7 @@ class Card extends RelationalEntity {
protected $deletedAt = 0;
protected $commentsUnread = 0;
protected $commentsCount = 0;
protected $relatedStack = null;
protected $relatedBoard = null;
@@ -78,7 +78,7 @@ class Card extends RelationalEntity {
$this->addRelation('commentsUnread');
$this->addRelation('commentsCount');
$this->addResolvable('owner');
$this->addRelation('relatedStack');
$this->addRelation('relatedBoard');
}
@@ -98,22 +98,21 @@ class Card extends RelationalEntity {
return $dt->format('c');
}
public function jsonSerialize() {
public function jsonSerialize(): array {
$json = parent::jsonSerialize();
$json['overdue'] = self::DUEDATE_FUTURE;
$due = strtotime($this->duedate);
$today = new DateTime();
$today->setTime(0, 0);
$match_date = new DateTime($this->duedate);
$match_date->setTime(0, 0);
$diff = $today->diff($match_date);
$diffDays = (integer) $diff->format('%R%a'); // Extract days count in interval
$due = $this->duedate ? strtotime($this->duedate) : false;
if ($due !== false) {
$today = new DateTime();
$today->setTime(0, 0);
$match_date = new DateTime($this->duedate);
$match_date->setTime(0, 0);
$diff = $today->diff($match_date);
$diffDays = (integer) $diff->format('%R%a'); // Extract days count in interval
if ($diffDays === 1) {
$json['overdue'] = self::DUEDATE_NEXT;
}

View File

@@ -266,7 +266,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function findOverdue() {
$qb = $this->db->getQueryBuilder();
$qb->select('id','title','duedate','notified')
$qb->select('id', 'title', 'duedate', 'notified')
->from('deck_cards')
->where($qb->expr()->lt('duedate', $qb->createFunction('NOW()')))
->andWhere($qb->expr()->eq('notified', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
@@ -277,7 +277,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function findUnexposedDescriptionChances() {
$qb = $this->db->getQueryBuilder();
$qb->select('id','title','duedate','notified','description_prev','last_editor','description')
$qb->select('id', 'title', 'duedate', 'notified', 'description_prev', 'last_editor', 'description')
->from('deck_cards')
->where($qb->expr()->isNotNull('last_editor'))
->andWhere($qb->expr()->isNotNull('description_prev'));
@@ -552,7 +552,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function isOwner($userId, $cardId): bool {
$sql = 'SELECT owner 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 = ?))';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT, 0);
$stmt->execute();
$row = $stmt->fetch();
return ($row['owner'] === $userId);

View File

@@ -83,14 +83,14 @@ class LabelMapper extends DeckMapper implements IPermissionMapper {
public function deleteLabelAssignments($labelId) {
$sql = 'DELETE FROM `*PREFIX*deck_assigned_labels` WHERE label_id = ?';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $labelId, \PDO::PARAM_INT);
$stmt->bindParam(1, $labelId, \PDO::PARAM_INT, 0);
$stmt->execute();
}
public function deleteLabelAssignmentsForCard($cardId) {
$sql = 'DELETE FROM `*PREFIX*deck_assigned_labels` WHERE card_id = ?';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT, 0);
$stmt->execute();
}

View File

@@ -63,7 +63,7 @@ class RelationalEntity extends Entity implements \JsonSerializable {
* @return array serialized data
* @throws \ReflectionException
*/
public function jsonSerialize() {
public function jsonSerialize(): array {
$properties = get_object_vars($this);
$reflection = new \ReflectionClass($this);
$json = [];

View File

@@ -23,7 +23,9 @@
namespace OCA\Deck\Db;
class RelationalObject implements \JsonSerializable {
use JsonSerializable;
class RelationalObject implements JsonSerializable {
protected $primaryKey;
protected $object;
@@ -38,7 +40,7 @@ class RelationalObject implements \JsonSerializable {
$this->object = $object;
}
public function jsonSerialize() {
public function jsonSerialize(): array {
return array_merge(
['primaryKey' => $this->primaryKey],
$this->getObjectSerialization()
@@ -51,8 +53,8 @@ class RelationalObject implements \JsonSerializable {
* @throws \Exception
*/
public function getObjectSerialization() {
if ($this->object instanceof \JsonSerializable) {
$this->object->jsonSerialize();
if ($this->object instanceof JsonSerializable) {
return $this->object->jsonSerialize();
} else {
throw new \Exception('jsonSerialize is not implemented on ' . get_class($this));
}

View File

@@ -25,6 +25,13 @@ namespace OCA\Deck\Db;
use Sabre\VObject\Component\VCalendar;
/**
* @method int getId()
* @method int getBoardId()
* @method int getDeletedAt()
* @method int getLastModified()
* @method int getOrder()
*/
class Stack extends RelationalEntity {
protected $title;
protected $boardId;
@@ -45,7 +52,7 @@ class Stack extends RelationalEntity {
$this->cards = $cards;
}
public function jsonSerialize() {
public function jsonSerialize(): array {
$json = parent::jsonSerialize();
if (empty($this->cards)) {
unset($json['cards']);

View File

@@ -48,6 +48,25 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntity($sql, [$id]);
}
/**
* @param $cardId
* @return Stack|null
*/
public function findStackFromCardId($cardId): ?Stack {
$sql = <<<SQL
SELECT s.*
FROM `*PREFIX*deck_stacks` as `s`
INNER JOIN `*PREFIX*deck_cards` as `c` ON s.id = c.stack_id
WHERE c.id = ?
SQL;
try {
return $this->findEntity($sql, [$cardId]);
} catch (MultipleObjectsReturnedException|DoesNotExistException $e) {
}
return null;
}
public function findAll($boardId, $limit = null, $offset = null) {
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` WHERE `board_id` = ? AND deleted_at = 0 ORDER BY `order`, `id`';

View File

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

View File

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

View File

@@ -101,15 +101,12 @@ class Notifier implements INotifier {
switch ($notification->getSubject()) {
case 'card-assigned':
$cardId = $notification->getObjectId();
$boardId = $this->cardMapper->findBoardId($cardId);
$stack = $this->stackMapper->findStackFromCardId($cardId);
$boardId = $stack ? $stack->getBoardId() : null;
if (!$boardId) {
throw new AlreadyProcessedException();
}
$card = $this->cardMapper->find($cardId);
$stackId = $card->getStackId();
$stack = $this->stackMapper->find($stackId);
$initiator = $this->userManager->get($params[2]);
if ($initiator !== null) {
$dn = $initiator->getDisplayName();
@@ -147,15 +144,12 @@ class Notifier implements INotifier {
break;
case 'card-overdue':
$cardId = $notification->getObjectId();
$boardId = $this->cardMapper->findBoardId($cardId);
$stack = $this->stackMapper->findStackFromCardId($cardId);
$boardId = $stack ? $stack->getBoardId() : null;
if (!$boardId) {
throw new AlreadyProcessedException();
}
$card = $this->cardMapper->find($cardId);
$stackId = $card->getStackId();
$stack = $this->stackMapper->find($stackId);
$notification->setParsedSubject(
(string) $l->t('The card "%s" on "%s" has reached its due date.', $params)
);
@@ -182,15 +176,12 @@ class Notifier implements INotifier {
break;
case 'card-comment-mentioned':
$cardId = $notification->getObjectId();
$boardId = $this->cardMapper->findBoardId($cardId);
$stack = $this->stackMapper->findStackFromCardId($cardId);
$boardId = $stack ? $stack->getBoardId() : null;
if (!$boardId) {
throw new AlreadyProcessedException();
}
$card = $this->cardMapper->find($cardId);
$stackId = $card->getStackId();
$stack = $this->stackMapper->find($stackId);
$initiator = $this->userManager->get($params[2]);
if ($initiator !== null) {
$dn = $initiator->getDisplayName();

View File

@@ -33,6 +33,6 @@ use OCP\Search\SearchResultEntry;
class CardSearchResultEntry extends SearchResultEntry {
public function __construct(Board $board, Stack $stack, Card $card, $urlGenerator) {
parent::__construct('', $card->getTitle(), $board->getTitle() . ' » ' . $stack->getTitle() , $urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $card->getId(), 'icon-deck');
parent::__construct('', $card->getTitle(), $board->getTitle() . ' » ' . $stack->getTitle(), $urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $card->getId(), 'icon-deck');
}
}

View File

@@ -35,7 +35,6 @@ use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\NoPermissionException;
use OCA\Deck\NotFoundException;
use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\Validators\AssignmentServiceValidator;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
@@ -77,11 +76,6 @@ class AssignmentService {
private $eventDispatcher;
/** @var string|null */
private $currentUser;
/**
* @var AssignmentServiceValidator
*/
private $assignmentServiceValidator;
public function __construct(
PermissionService $permissionService,
@@ -92,10 +86,8 @@ class AssignmentService {
ActivityManager $activityManager,
ChangeHelper $changeHelper,
IEventDispatcher $eventDispatcher,
AssignmentServiceValidator $assignmentServiceValidator,
$userId
) {
$this->assignmentServiceValidator = $assignmentServiceValidator;
$this->permissionService = $permissionService;
$this->cardMapper = $cardMapper;
$this->assignedUsersMapper = $assignedUsersMapper;
@@ -104,8 +96,6 @@ class AssignmentService {
$this->changeHelper = $changeHelper;
$this->activityManager = $activityManager;
$this->eventDispatcher = $eventDispatcher;
$this->assignmentServiceValidator->check(compact('userId'));
$this->currentUser = $userId;
}
@@ -119,7 +109,13 @@ class AssignmentService {
* @throws DoesNotExistException
*/
public function assignUser($cardId, $userId, int $type = Assignment::TYPE_USER) {
$this->assignmentServiceValidator->check(compact('cardId', 'userId'));
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
if ($userId === false || $userId === null) {
throw new BadRequestException('user id must be provided');
}
if ($type !== Assignment::TYPE_USER && $type !== Assignment::TYPE_GROUP) {
throw new BadRequestException('Invalid type provided for assignemnt');
@@ -172,9 +168,16 @@ class AssignmentService {
* @throws MultipleObjectsReturnedException
*/
public function unassignUser($cardId, $userId, $type = 0) {
$this->assignmentServiceValidator->check(compact('cardId', 'userId'));
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
if ($userId === false || $userId === null) {
throw new BadRequestException('user must be provided');
}
$assignments = $this->assignedUsersMapper->findAll($cardId);
foreach ($assignments as $assignment) {
if ($assignment->getParticipant() === $userId && $assignment->getType() === $type) {

View File

@@ -36,10 +36,10 @@ use OCA\Deck\NoPermissionException;
use OCA\Deck\NotFoundException;
use OCA\Deck\Cache\AttachmentCacheHelper;
use OCA\Deck\StatusException;
use OCA\Deck\Validators\AttachmentServiceValidator;
use OCP\AppFramework\Db\IMapperException;
use OCP\AppFramework\Http\Response;
use OCP\IL10N;
use OCP\IUserManager;
class AttachmentService {
private $attachmentMapper;
@@ -59,10 +59,18 @@ class AttachmentService {
private $activityManager;
/** @var ChangeHelper */
private $changeHelper;
/** @var AttachmentServiceValidator */
private $attachmentServiceValidator;
private IUserManager $userManager;
public function __construct(AttachmentMapper $attachmentMapper, CardMapper $cardMapper, ChangeHelper $changeHelper, PermissionService $permissionService, Application $application, AttachmentCacheHelper $attachmentCacheHelper, $userId, IL10N $l10n, ActivityManager $activityManager, AttachmentServiceValidator $attachmentServiceValidator) {
public function __construct(AttachmentMapper $attachmentMapper,
CardMapper $cardMapper,
IUserManager $userManager,
ChangeHelper $changeHelper,
PermissionService $permissionService,
Application $application,
AttachmentCacheHelper $attachmentCacheHelper,
$userId,
IL10N $l10n,
ActivityManager $activityManager) {
$this->attachmentMapper = $attachmentMapper;
$this->cardMapper = $cardMapper;
$this->permissionService = $permissionService;
@@ -72,7 +80,7 @@ class AttachmentService {
$this->l10n = $l10n;
$this->activityManager = $activityManager;
$this->changeHelper = $changeHelper;
$this->attachmentServiceValidator = $attachmentServiceValidator;
$this->userManager = $userManager;
// Register shipped attachment services
// TODO: move this to a plugin based approach once we have different types of attachments
@@ -131,6 +139,7 @@ class AttachmentService {
try {
$service = $this->getService($attachment->getType());
$service->extendData($attachment);
$this->addCreator($attachment);
} catch (InvalidAttachmentType $e) {
// Ingore invalid attachment types when extending the data
}
@@ -178,7 +187,17 @@ class AttachmentService {
* @throws BadRequestException
*/
public function create($cardId, $type, $data) {
$this->attachmentServiceValidator->check(compact('cardId', 'type'));
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
if ($type === false || $type === null) {
throw new BadRequestException('type must be provided');
}
if ($data === false || $data === null) {
//throw new BadRequestException('data must be provided');
}
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
@@ -204,6 +223,7 @@ class AttachmentService {
}
$service->extendData($attachment);
$this->addCreator($attachment);
} catch (InvalidAttachmentType $e) {
// just store the data
}
@@ -263,8 +283,6 @@ class AttachmentService {
* @throws NoPermissionException
*/
public function update($cardId, $attachmentId, $data, $type = 'deck_file') {
$this->attachmentServiceValidator->check(compact('cardId', 'type', 'data'));
try {
$service = $this->getService($type);
} catch (InvalidAttachmentType $e) {
@@ -286,6 +304,9 @@ class AttachmentService {
}
}
if ($data === false || $data === null) {
//throw new BadRequestException('data must be provided');
}
try {
$attachment = $this->attachmentMapper->find($attachmentId);
} catch (\Exception $e) {
@@ -306,6 +327,7 @@ class AttachmentService {
$this->attachmentMapper->update($attachment);
// extend data so the frontend can use it properly after creating
$service->extendData($attachment);
$this->addCreator($attachment);
$this->changeHelper->cardChanged($attachment->getCardId());
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $attachment, ActivityManager::SUBJECT_ATTACHMENT_UPDATE);
@@ -380,4 +402,28 @@ class AttachmentService {
}
throw new NoPermissionException('Restore is not allowed.');
}
/**
* @param Attachment $attachment
* @return Attachment
* @throws \ReflectionException
*/
private function addCreator(Attachment $attachment): Attachment {
$createdBy = $attachment->jsonSerialize()['createdBy'] ?? '';
$creator = [
'displayName' => $createdBy,
'id' => $createdBy,
'email' => null,
];
if ($this->userManager->userExists($createdBy)) {
$user = $this->userManager->get($createdBy);
$creator['displayName'] = $user->getDisplayName();
$creator['email'] = $user->getEMailAddress();
}
$extendedData = $attachment->jsonSerialize()['extendedData'] ?? [];
$extendedData['attachmentCreator'] = $creator;
$attachment->setExtendedData($extendedData);
return $attachment;
}
}

View File

@@ -52,7 +52,6 @@ use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCP\IUserManager;
use OCA\Deck\BadRequestException;
use OCA\Deck\Validators\BoardServiceValidator;
use OCP\IURLGenerator;
class BoardService {
@@ -76,7 +75,6 @@ class BoardService {
private $boardsCache = null;
private $urlGenerator;
private $boardServiceValidator;
public function __construct(
@@ -96,7 +94,6 @@ class BoardService {
IEventDispatcher $eventDispatcher,
ChangeHelper $changeHelper,
IURLGenerator $urlGenerator,
BoardServiceValidator $boardServiceValidator,
$userId
) {
$this->boardMapper = $boardMapper;
@@ -116,7 +113,6 @@ class BoardService {
$this->userId = $userId;
$this->urlGenerator = $urlGenerator;
$this->cardMapper = $cardMapper;
$this->boardServiceValidator = $boardServiceValidator;
}
/**
@@ -126,7 +122,6 @@ class BoardService {
*/
public function setUserId(string $userId): void {
$this->userId = $userId;
$this->permissionService->setUserId($userId);
}
/**
@@ -181,8 +176,7 @@ class BoardService {
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
* @throws BadRequestException
*/
public function find($boardId, bool $allowDeleted = false) {
$this->boardServiceValidator->check(compact('boardId'));
public function find($boardId) {
if ($this->boardsCache && isset($this->boardsCache[$boardId])) {
return $this->boardsCache[$boardId];
}
@@ -192,7 +186,7 @@ class BoardService {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
/** @var Board $board */
$board = $this->boardMapper->find((int)$boardId, true, true, $allowDeleted);
$board = $this->boardMapper->find($boardId, true, true);
$this->boardMapper->mapOwner($board);
if ($board->getAcl() !== null) {
foreach ($board->getAcl() as $acl) {
@@ -237,7 +231,9 @@ class BoardService {
* @throws BadRequestException
*/
public function isArchived($mapper, $id) {
$this->boardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
try {
$boardId = $id;
@@ -264,7 +260,13 @@ class BoardService {
* @throws BadRequestException
*/
public function isDeleted($mapper, $id) {
$this->boardServiceValidator->check(compact('mapper', 'id'));
if ($mapper === false || $mapper === null) {
throw new BadRequestException('mapper must be provided');
}
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
try {
$boardId = $id;
@@ -290,7 +292,17 @@ class BoardService {
* @throws BadRequestException
*/
public function create($title, $userId, $color) {
$this->boardServiceValidator->check(compact('title', 'userId', 'color'));
if ($title === false || $title === null) {
throw new BadRequestException('title must be provided');
}
if ($userId === false || $userId === null) {
throw new BadRequestException('userId must be provided');
}
if ($color === false || $color === null) {
throw new BadRequestException('color must be provided');
}
if (!$this->permissionService->canCreate()) {
throw new NoPermissionException('Creating boards has been disabled for your account.');
@@ -341,7 +353,9 @@ class BoardService {
* @throws BadRequestException
*/
public function delete($id) {
$this->boardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('board id must be a number');
}
$this->permissionService->checkPermission($this->boardMapper, $id, Acl::PERMISSION_MANAGE);
$board = $this->find($id);
@@ -364,10 +378,12 @@ class BoardService {
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
*/
public function deleteUndo($id) {
$this->boardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('board id must be a number');
}
$this->permissionService->checkPermission($this->boardMapper, $id, Acl::PERMISSION_MANAGE);
$board = $this->find($id, true);
$board = $this->find($id);
$board->setDeletedAt(0);
$board = $this->boardMapper->update($board);
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_BOARD, $board, ActivityManager::SUBJECT_BOARD_RESTORE);
@@ -385,10 +401,12 @@ class BoardService {
* @throws BadRequestException
*/
public function deleteForce($id) {
$this->boardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
$this->permissionService->checkPermission($this->boardMapper, $id, Acl::PERMISSION_MANAGE);
$board = $this->find($id, true);
$board = $this->find($id);
$delete = $this->boardMapper->delete($board);
return $delete;
@@ -406,7 +424,21 @@ class BoardService {
* @throws BadRequestException
*/
public function update($id, $title, $color, $archived) {
$this->boardServiceValidator->check(compact('id', 'title', 'color', 'archived'));
if (is_numeric($id) === false) {
throw new BadRequestException('board id must be a number');
}
if ($title === false || $title === null) {
throw new BadRequestException('title must be provided');
}
if ($color === false || $color === null) {
throw new BadRequestException('color must be provided');
}
if (is_bool($archived) === false) {
throw new BadRequestException('archived must be a boolean');
}
$this->permissionService->checkPermission($this->boardMapper, $id, Acl::PERMISSION_MANAGE);
$board = $this->find($id);
@@ -456,7 +488,29 @@ class BoardService {
* @throws \OCA\Deck\NoPermissionException
*/
public function addAcl($boardId, $type, $participant, $edit, $share, $manage) {
$this->boardServiceValidator->check(compact('boardId', 'type', 'participant', 'edit', 'share', 'manage'));
if (is_numeric($boardId) === false) {
throw new BadRequestException('board id must be a number');
}
if ($type === false || $type === null) {
throw new BadRequestException('type must be provided');
}
if ($participant === false || $participant === null) {
throw new BadRequestException('participant must be provided');
}
if ($edit === null) {
throw new BadRequestException('edit must be provided');
}
if ($share === null) {
throw new BadRequestException('share must be provided');
}
if ($manage === null) {
throw new BadRequestException('manage must be provided');
}
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_SHARE);
[$edit, $share, $manage] = $this->applyPermissions($boardId, $edit, $share, $manage);
@@ -471,7 +525,7 @@ class BoardService {
$newAcl = $this->aclMapper->insert($acl);
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_BOARD, $newAcl, ActivityManager::SUBJECT_BOARD_SHARE, [], $this->userId);
$this->notificationHelper->sendBoardShared($boardId, $acl);
$this->notificationHelper->sendBoardShared((int)$boardId, $acl);
$this->boardMapper->mapAcl($newAcl);
$this->changeHelper->boardChanged($boardId);
@@ -502,7 +556,21 @@ class BoardService {
* @throws BadRequestException
*/
public function updateAcl($id, $edit, $share, $manage) {
$this->boardServiceValidator->check(compact('id', 'edit', 'share', 'manage'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
if ($edit === null) {
throw new BadRequestException('edit must be provided');
}
if ($share === null) {
throw new BadRequestException('share must be provided');
}
if ($manage === null) {
throw new BadRequestException('manage must be provided');
}
$this->permissionService->checkPermission($this->aclMapper, $id, Acl::PERMISSION_SHARE);
@@ -574,7 +642,9 @@ class BoardService {
* @throws BadRequestException
*/
public function clone($id, $userId) {
$this->boardServiceValidator->check(compact('id', 'userId'));
if (is_numeric($id) === false) {
throw new BadRequestException('board id must be a number');
}
$this->permissionService->checkPermission($this->boardMapper, $id, Acl::PERMISSION_READ);

View File

@@ -43,7 +43,6 @@ use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\StatusException;
use OCA\Deck\BadRequestException;
use OCA\Deck\Validators\CardServiceValidator;
use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUserManager;
@@ -66,7 +65,6 @@ class CardService {
private $eventDispatcher;
private $userManager;
private $urlGenerator;
private $cardServiceValidator;
public function __construct(
CardMapper $cardMapper,
@@ -84,7 +82,6 @@ class CardService {
ChangeHelper $changeHelper,
IEventDispatcher $eventDispatcher,
IURLGenerator $urlGenerator,
CardServiceValidator $cardServiceValidator,
$userId
) {
$this->cardMapper = $cardMapper;
@@ -103,7 +100,6 @@ class CardService {
$this->eventDispatcher = $eventDispatcher;
$this->currentUser = $userId;
$this->urlGenerator = $urlGenerator;
$this->cardServiceValidator = $cardServiceValidator;
}
public function enrich($card) {
@@ -118,7 +114,7 @@ class CardService {
$countComments = $this->commentsManager->getNumberOfCommentsForObject('deckCard', (string)$card->getId());
$card->setCommentsUnread($countUnreadComments);
$card->setCommentsCount($countComments);
$stack = $this->stackMapper->find($card->getStackId());
$board = $this->boardService->find($stack->getBoardId());
$card->setRelatedStack($stack);
@@ -126,7 +122,6 @@ class CardService {
}
public function fetchDeleted($boardId) {
$this->cardServiceValidator->check(compact('boardId'));
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
$cards = $this->cardMapper->findDeleted($boardId);
foreach ($cards as $card) {
@@ -192,7 +187,29 @@ class CardService {
* @throws BadrequestException
*/
public function create($title, $stackId, $type, $order, $owner, $description = '', $duedate = null) {
$this->cardServiceValidator->check(compact('title', 'stackId', 'type', 'order', 'owner'));
if ($title === 'false' || $title === null) {
throw new BadRequestException('title must be provided');
}
if (mb_strlen($title) > Card::TITLE_MAX_LENGTH) {
throw new BadRequestException('The title cannot exceed 255 characters');
}
if (is_numeric($stackId) === false) {
throw new BadRequestException('stack id must be a number');
}
if ($type === 'false' || $type === null) {
throw new BadRequestException('type must be provided');
}
if (is_numeric($order) === false) {
throw new BadRequestException('order must be a number');
}
if ($owner === false || $owner === null) {
throw new BadRequestException('owner must be provided');
}
$this->permissionService->checkPermission($this->stackMapper, $stackId, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->stackMapper, $stackId)) {
@@ -207,7 +224,7 @@ class CardService {
$card->setDescription($description);
$card->setDuedate($duedate);
$card = $this->cardMapper->insert($card);
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_CREATE);
$this->changeHelper->cardChanged($card->getId(), false);
$this->eventDispatcher->dispatchTyped(new CardCreatedEvent($card));
@@ -236,7 +253,7 @@ class CardService {
$card = $this->cardMapper->find($id);
$card->setDeletedAt(time());
$this->cardMapper->update($card);
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_DELETE);
$this->notificationHelper->markDuedateAsRead($card);
$this->changeHelper->cardChanged($card->getId(), false);
@@ -262,9 +279,31 @@ class CardService {
* @throws BadRequestException
*/
public function update($id, $title, $stackId, $type, $owner, $description = '', $order = 0, $duedate = null, $deletedAt = null, $archived = null) {
$this->cardServiceValidator->check(compact('id', 'title', 'stackId', 'type', 'owner', 'order'));
if (is_numeric($id) === false) {
throw new BadRequestException('card id must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT, null, true);
if ($title === false || $title === null) {
throw new BadRequestException('title must be provided');
}
if (mb_strlen($title) > Card::TITLE_MAX_LENGTH) {
throw new BadRequestException('The title cannot exceed 255 characters');
}
if (is_numeric($stackId) === false) {
throw new BadRequestException('stack id must be a number $$$');
}
if ($type === false || $type === null) {
throw new BadRequestException('type must be provided');
}
if ($owner === false || $owner === null) {
throw new BadRequestException('owner must be provided');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
$this->permissionService->checkPermission($this->stackMapper, $stackId, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $id)) {
@@ -274,14 +313,6 @@ class CardService {
if ($archived !== null && $card->getArchived() && $archived === true) {
throw new StatusException('Operation not allowed. This card is archived.');
}
if ($card->getDeletedAt() !== 0) {
if ($deletedAt === null || $deletedAt > 0) {
// Only allow operations when restoring the card
throw new NoPermissionException('Operation not allowed. This card was deleted.');
}
}
$changes = new ChangeSet($card);
if ($card->getLastEditor() !== $this->currentUser && $card->getLastEditor() !== null) {
$this->activityManager->triggerEvent(
@@ -307,7 +338,7 @@ class CardService {
$resetDuedateNotification = false;
if (
$card->getDuedate() === null ||
(new \DateTime($card->getDuedate())) != (new \DateTime($changes->getBefore()->getDuedate()))
(new \DateTime($card->getDuedate())) != (new \DateTime($changes->getBefore()->getDuedate() ?? ''))
) {
$card->setNotified(false);
$resetDuedateNotification = true;
@@ -353,7 +384,17 @@ class CardService {
* @throws BadRequestException
*/
public function rename($id, $title) {
$this->cardServiceValidator->check(compact('id', 'title'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
if ($title === false || $title === null) {
throw new BadRequestException('title must be provided');
}
if (mb_strlen($title) > Card::TITLE_MAX_LENGTH) {
throw new BadRequestException('The title cannot exceed 255 characters');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $id)) {
@@ -384,8 +425,17 @@ class CardService {
* @throws BadRequestException
*/
public function reorder($id, $stackId, $order) {
$this->cardServiceValidator->check(compact('id', 'stackId', 'order'));
if (is_numeric($id) === false) {
throw new BadRequestException('card id must be a number');
}
if (is_numeric($stackId) === false) {
throw new BadRequestException('stack id must be a number');
}
if (is_numeric($order) === false) {
throw new BadRequestException('order must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
$this->permissionService->checkPermission($this->stackMapper, $stackId, Acl::PERMISSION_EDIT);
@@ -440,8 +490,9 @@ class CardService {
* @throws BadRequestException
*/
public function archive($id) {
$this->cardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $id)) {
@@ -469,8 +520,9 @@ class CardService {
* @throws BadRequestException
*/
public function unarchive($id) {
$this->cardServiceValidator->check(compact('id'));
if (is_numeric($id) === false) {
throw new BadRequestException('id must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $id)) {
@@ -497,8 +549,13 @@ class CardService {
* @throws BadRequestException
*/
public function assignLabel($cardId, $labelId) {
$this->cardServiceValidator->check(compact('cardId', 'labelId'));
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
if (is_numeric($labelId) === false) {
throw new BadRequestException('label id must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $cardId)) {
@@ -526,8 +583,13 @@ class CardService {
* @throws BadRequestException
*/
public function removeLabel($cardId, $labelId) {
$this->cardServiceValidator->check(compact('cardId', 'labelId'));
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
if (is_numeric($labelId) === false) {
throw new BadRequestException('label id must be a number');
}
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
if ($this->boardService->isArchived($this->cardMapper, $cardId)) {

View File

@@ -83,17 +83,24 @@ class CommentService {
}
/**
* @param string $cardId
* @param string $message
* @param string $replyTo
* @return DataResponse
* @throws BadRequestException
* @throws NotFoundException|NoPermissionException
*/
public function create(int $cardId, string $message, string $replyTo = '0'): DataResponse {
public function create(string $cardId, string $message, string $replyTo = '0'): DataResponse {
if (!is_numeric($cardId)) {
throw new BadRequestException('A valid card id must be provided');
}
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ);
// Check if parent is a comment on the same card
if ($replyTo !== '0') {
try {
$comment = $this->commentsManager->get($replyTo);
if ($comment->getObjectType() !== Application::COMMENT_ENTITY_TYPE || (int)$comment->getObjectId() !== $cardId) {
if ($comment->getObjectType() !== Application::COMMENT_ENTITY_TYPE || $comment->getObjectId() !== $cardId) {
throw new CommentNotFoundException();
}
} catch (CommentNotFoundException $e) {
@@ -102,7 +109,7 @@ class CommentService {
}
try {
$comment = $this->commentsManager->create('users', $this->userId, Application::COMMENT_ENTITY_TYPE, (string)$cardId);
$comment = $this->commentsManager->create('users', $this->userId, Application::COMMENT_ENTITY_TYPE, $cardId);
$comment->setMessage($message);
$comment->setVerb('comment');
$comment->setParentId($replyTo);
@@ -138,7 +145,7 @@ class CommentService {
throw new NoPermissionException('Only authors are allowed to edit their comment.');
}
if ($comment->getParentId() !== '0') {
$this->permissionService->checkPermission($this->cardMapper, (int)$comment->getParentId(), Acl::PERMISSION_READ);
$this->permissionService->checkPermission($this->cardMapper, $comment->getParentId(), Acl::PERMISSION_READ);
}
$comment->setMessage($message);

View File

@@ -66,7 +66,8 @@ class ConfigService {
}
$data = [
'calendar' => $this->isCalendarEnabled()
'calendar' => $this->isCalendarEnabled(),
'cardDetailsInModal' => $this->isCardDetailsInModal(),
];
if ($this->groupManager->isAdmin($this->getUserId())) {
$data['groupLimit'] = $this->get('groupLimit');
@@ -88,6 +89,11 @@ class ConfigService {
return false;
}
return (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'calendar', true);
case 'cardDetailsInModal':
if ($this->getUserId() === null) {
return false;
}
return (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'cardDetailsInModal', true);
}
}
@@ -105,6 +111,19 @@ class ConfigService {
return (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'board:' . $boardId . ':calendar', $defaultState);
}
public function isCardDetailsInModal(int $boardId = null): bool {
if ($this->getUserId() === null) {
return false;
}
$defaultState = (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'cardDetailsInModal', true);
if ($boardId === null) {
return $defaultState;
}
return (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'board:' . $boardId . ':cardDetailsInModal', $defaultState);
}
public function set($key, $value) {
if ($this->getUserId() === null) {
throw new NoPermissionException('Must be logged in to set user config');
@@ -123,6 +142,10 @@ class ConfigService {
$this->config->setUserValue($this->getUserId(), Application::APP_ID, 'calendar', (string)$value);
$result = $value;
break;
case 'cardDetailsInModal':
$this->config->setUserValue($this->getUserId(), Application::APP_ID, 'cardDetailsInModal', (string)$value);
$result = $value;
break;
case 'board':
[$boardId, $boardConfigKey] = explode(':', $key);
if ($boardConfigKey === 'notify-due' && !in_array($value, [self::SETTING_BOARD_NOTIFICATION_DUE_ALL, self::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED, self::SETTING_BOARD_NOTIFICATION_DUE_OFF], true)) {
@@ -176,12 +199,4 @@ class ConfigService {
return $this->config->getUserValue($userId ?? $this->getUserId(), 'deck', 'attachment_folder', '/Deck');
}
public function setAttachmentFolder(?string $userId = null, string $path): void {
if ($userId === null && $this->getUserId() === null) {
throw new NoPermissionException('Must be logged in get the attachment folder');
}
$this->config->setUserValue($userId ?? $this->getUserId(), 'deck', 'attachment_folder', $path);
}
}

View File

@@ -86,7 +86,7 @@ class FileService implements IAttachmentService {
* @return ISimpleFolder
* @throws NotPermittedException
*/
private function getFolder(Attachment $attachment) {
public function getFolder(Attachment $attachment) {
$folderName = 'file-card-' . (int)$attachment->getCardId();
try {
$folder = $this->appData->getFolder($folderName);

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