Compare commits

..

122 Commits

Author SHA1 Message Date
Jakob Röhrl
13d57f7a8d attachents in details view
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-12-30 13:30:19 +01:00
Julius Härtl
638e8c152e Only run psalm on stable/master branches
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-30 13:02:22 +01:00
Julius Härtl
cbfee393fd Merge pull request #2690 from nextcloud/tests/relativeci
Try out relativeci
2020-12-30 12:45:40 +01:00
Julius Härtl
90cf64481e Test run relativeci
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-30 12:42:03 +01:00
Julius Härtl
d1db72fcf2 Merge pull request #2686 from nextcloud/tests/integration 2020-12-30 12:36:20 +01:00
Julius Härtl
89efcdee62 Simplify phpunit run configuration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-30 12:13:27 +01:00
Julius Härtl
96e9f8275f Run integration tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-30 12:13:27 +01:00
Julius Härtl
9082075949 Merge pull request #2689 from nextcloud/fix/wordingBiggerView
modal > bigger view wording
2020-12-30 12:11:42 +01:00
Jakob Röhrl
9f708e54c9 modal > bigger view wording
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-12-30 11:55:00 +01:00
Julius Härtl
84fbbafcfb Merge pull request #2688 from nextcloud/fix/boardName
title > boardname
2020-12-30 11:54:37 +01:00
Julius Härtl
da24176aec Merge pull request #2687 from nextcloud/fix/3dots
3dots no opacity
2020-12-30 11:54:07 +01:00
Jakob Röhrl
06a973ae02 title > boardname
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-12-30 11:51:18 +01:00
Jakob Röhrl
2748b4a0b1 3dots no opacity
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-12-30 11:31:23 +01:00
Nextcloud bot
7d88535771 [tx-robot] updated from transifex 2020-12-30 02:31:14 +00:00
Julius Härtl
dd5f47cecd Merge pull request #2681 from nextcloud/bugfix/2660 2020-12-29 20:23:33 +01:00
Julius Härtl
81c3a4ff60 Merge pull request #2680 from nextcloud/bugfix/noid/activity-empty-diff
Do not try to add change data if it doesn't exist
2020-12-29 16:07:48 +01:00
Julius Härtl
7a53076b9b Filter out deleted stacks from results
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-29 15:22:05 +01:00
Julius Härtl
cb3403f659 Do not try to add change data if it doesn't exist
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-29 13:19:46 +01:00
Julius Härtl
60a6ed124f Merge pull request #2676 from nextcloud/enh/filter-avatar-loading
Only load filter view when shown
2020-12-29 08:52:26 +01:00
Julius Härtl
302bf52312 Merge pull request #2679 from eutampieri/master
Fixed documentation typo
2020-12-28 17:32:48 +01:00
eutampieri
5940f3a353 Fixed documentation typo
Signed-off-by: Eugenio Tampieri <eugenio@eutampieri.eu>
2020-12-28 16:26:01 +01:00
Julius Härtl
f1845f1b09 Only load filter view when shown
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 15:57:35 +01:00
Julius Härtl
165656f930 Merge pull request #2626 from MonkeySon/add-description-icon 2020-12-28 15:48:46 +01:00
Julius Härtl
118dd5f424 Merge pull request #2656 from nextcloud/dependabot/npm_and_yarn/master/eslint-config-standard-14.1.1 2020-12-28 15:47:51 +01:00
Julius Härtl
b66326cdf3 Merge pull request #2678 from nextcloud/tests/psalm 2020-12-28 15:44:16 +01:00
Julius Härtl
4e92faa517 Do not error on deprecated methods for now
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 14:48:52 +01:00
Julius Härtl
34f45d985f Fix more issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 13:59:36 +01:00
Julius Härtl
5ee2a07e49 Add github action
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 13:27:39 +01:00
Julius Härtl
2c8c895ee3 Add psalm
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 13:25:24 +01:00
Julius Härtl
9d91d41a56 Merge pull request #2665 from nextcloud/dependabot/composer/nextcloud/coding-standard-tw-0.4.0 2020-12-28 13:21:32 +01:00
Julius Härtl
7cc9cf26ef Update php codestyle
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 13:05:54 +01:00
Julius Härtl
1eabb3ee2a Add composer lockfile
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 13:05:25 +01:00
dependabot[bot]
d0a4804143 Update nextcloud/coding-standard requirement from ^0.3.0 to ^0.4.0
Updates the requirements on nextcloud/coding-standard to permit the latest version.

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 13:01:32 +01:00
Julius Härtl
acff4ae8c3 Merge pull request #2659 from JonFStr/description-caret
Matching color of description cursor with text color
2020-12-28 12:57:44 +01:00
Julius Härtl
e22fbb7277 Fix new eslint rules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-28 12:52:21 +01:00
dependabot[bot]
44a88069db Bump eslint-config-standard from 12.0.0 to 14.1.1
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 12.0.0 to 14.1.1.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v12.0.0...v14.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-28 12:51:26 +01:00
Julius Härtl
1377f24442 Merge pull request #2674 from nextcloud/dependabot/npm_and_yarn/master/webpack-merge-5.7.3
Bump webpack-merge from 5.7.2 to 5.7.3
2020-12-28 11:34:45 +01:00
Julius Härtl
9864feabec Merge pull request #2675 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.0.4
Bump markdown-it from 12.0.3 to 12.0.4
2020-12-28 11:34:36 +01:00
Nextcloud bot
2d6de87f4f [tx-robot] updated from transifex 2020-12-28 02:31:13 +00:00
dependabot[bot]
4f1cc9197c Bump markdown-it from 12.0.3 to 12.0.4
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.0.3 to 12.0.4.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/12.0.3...12.0.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-26 02:07:56 +00:00
dependabot[bot]
c48d29efdb Bump webpack-merge from 5.7.2 to 5.7.3
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 5.7.2 to 5.7.3.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/compare/v5.7.2...v5.7.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-26 02:06:28 +00:00
Nextcloud bot
7013e67e67 [tx-robot] updated from transifex 2020-12-23 02:32:15 +00:00
Nextcloud bot
b1ee728acb [tx-robot] updated from transifex 2020-12-22 02:31:13 +00:00
Julius Härtl
d04eff6b46 Merge pull request #2666 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.2.6
Bump dompurify from 2.2.4 to 2.2.6
2020-12-21 10:01:06 +01:00
Julius Härtl
5fa3b242b3 Merge pull request #2667 from nextcloud/dependabot/npm_and_yarn/master/vue-loader-15.9.6
Bump vue-loader from 15.9.5 to 15.9.6
2020-12-21 10:00:58 +01:00
Julius Härtl
3a9298c6a1 Merge pull request #2668 from nextcloud/dependabot/npm_and_yarn/master/vue-easymde-1.3.2
Bump vue-easymde from 1.3.1 to 1.3.2
2020-12-21 10:00:51 +01:00
Nextcloud bot
267c7f4b46 [tx-robot] updated from transifex 2020-12-20 02:32:46 +00:00
dependabot[bot]
779cfb818d Bump vue-easymde from 1.3.1 to 1.3.2
Bumps [vue-easymde](https://github.com/NikulinIlya/vue-easymde) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/NikulinIlya/vue-easymde/releases)
- [Commits](https://github.com/NikulinIlya/vue-easymde/compare/v1.3.1...v1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-19 02:08:01 +00:00
dependabot[bot]
3bb1775a1c Bump vue-loader from 15.9.5 to 15.9.6
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.5 to 15.9.6.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.9.5...v15.9.6)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-19 02:07:30 +00:00
dependabot[bot]
1170ad71e9 Bump dompurify from 2.2.4 to 2.2.6
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.4 to 2.2.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.4...2.2.6)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-19 02:02:51 +00:00
Nextcloud bot
848e700016 [tx-robot] updated from transifex 2020-12-18 02:32:33 +00:00
Jonathan Straub
6d6740f998 Matching color of description cursor with text color
Fixes #2556

Signed-off-by: Jonathan Straub <j.f.straub@gmx.de>
2020-12-17 08:58:38 +01:00
Nextcloud bot
b7a1420523 [tx-robot] updated from transifex 2020-12-17 02:32:45 +00:00
Julius Härtl
149078d585 Merge pull request #2655 from nextcloud/dependabot/npm_and_yarn/master/eslint-loader-4.0.2
Bump eslint-loader from 3.0.4 to 4.0.2
2020-12-16 16:44:34 +01:00
Julius Härtl
03d4f073d8 Merge pull request #2657 from nextcloud/dependabot/npm_and_yarn/master/nextcloud-vue-collections-0.9.0
Bump nextcloud-vue-collections from 0.8.1 to 0.9.0
2020-12-16 16:44:23 +01:00
dependabot[bot]
423499b412 Bump nextcloud-vue-collections from 0.8.1 to 0.9.0
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.8.1 to 0.9.0.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.8.1...v0.9.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-16 15:11:41 +00:00
dependabot[bot]
31cd6471ce Bump eslint-loader from 3.0.4 to 4.0.2
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 3.0.4 to 4.0.2.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/v3.0.4...v4.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-16 15:04:22 +00:00
Julius Härtl
8dcf5bd289 Bump packages
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-12-16 15:58:55 +01:00
Julius Härtl
189a89cf6a Merge pull request #2649 from nextcloud/dependabot/npm_and_yarn/master/webpack-merge-5.6.1
Bump webpack-merge from 5.4.0 to 5.6.1
2020-12-14 13:32:09 +01:00
Julius Härtl
e9a85f31f8 Merge pull request #2648 from nextcloud/dependabot/npm_and_yarn/master/babel/preset-env-7.12.10 2020-12-14 13:29:11 +01:00
Julius Härtl
e65734f480 Merge pull request #2647 from nextcloud/dependabot/npm_and_yarn/master/dompurify-2.2.3 2020-12-14 13:28:57 +01:00
dependabot[bot]
7a632de16a Bump @babel/preset-env from 7.12.7 to 7.12.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.7 to 7.12.10.
- [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.12.10/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 08:32:37 +00:00
dependabot[bot]
48908e6bc8 Bump dompurify from 2.2.2 to 2.2.3
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.2...2.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 08:31:21 +00:00
Julius Härtl
dde4c0e0b4 Merge pull request #2646 from nextcloud/dependabot/npm_and_yarn/master/babel/core-7.12.10
Bump @babel/core from 7.12.9 to 7.12.10
2020-12-14 08:05:42 +01:00
Julius Härtl
f4a52b51c4 Merge pull request #2650 from nextcloud/dependabot/npm_and_yarn/master/markdown-it-12.0.3
Bump markdown-it from 12.0.2 to 12.0.3
2020-12-14 08:05:04 +01:00
Nextcloud bot
b85309edf3 [tx-robot] updated from transifex 2020-12-14 02:31:37 +00:00
Nextcloud bot
2164cd070c [tx-robot] updated from transifex 2020-12-13 02:29:57 +00:00
dependabot[bot]
4fb2139bf0 Bump markdown-it from 12.0.2 to 12.0.3
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.0.2 to 12.0.3.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/12.0.2...12.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-12 02:15:55 +00:00
dependabot[bot]
5ed8cef229 Bump webpack-merge from 5.4.0 to 5.6.1
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 5.4.0 to 5.6.1.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/compare/v5.4.0...v5.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-12 02:14:30 +00:00
dependabot[bot]
c226187e78 Bump @babel/core from 7.12.9 to 7.12.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.9 to 7.12.10.
- [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.12.10/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-12 02:07:06 +00:00
Nextcloud bot
8e0d237444 [tx-robot] updated from transifex 2020-12-10 02:33:14 +00:00
Julius Härtl
dea66fcfb7 Merge pull request #2623 from nextcloud/dependabot/npm_and_yarn/master/babel/core-7.12.9
Bump @babel/core from 7.12.7 to 7.12.9
2020-12-07 23:28:15 +01:00
Nextcloud bot
c262e85fec [tx-robot] updated from transifex 2020-12-07 02:33:17 +00:00
Nextcloud bot
6301eece75 [tx-robot] updated from transifex 2020-12-06 02:31:07 +00:00
Julius Härtl
e511ad01dc Merge pull request #2624 from nextcloud/dependabot/npm_and_yarn/master/babel-loader-8.2.2 2020-12-02 15:51:12 +01:00
Julius Härtl
eea81b6a18 Merge pull request #2625 from nextcloud/dependabot/npm_and_yarn/master/vuex-3.6.0
Bump vuex from 3.5.1 to 3.6.0
2020-12-02 15:50:53 +01:00
Julius Härtl
0e80c431f4 Merge pull request #2622 from nextcloud/bugfix/2581
Fix gradient and stack header spacing for safari
2020-12-02 12:07:11 +01:00
Nextcloud bot
d3b763cadb [tx-robot] updated from transifex 2020-12-01 02:31:55 +00:00
MonkeySon
21e00703e5 Ignore descriptions that only contain spaces
Co-authored-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: Daniel Klepatsch <daniel.klepatsch@gmx.at>
2020-11-30 15:37:33 +01:00
MonkeySon
b314619039 Merge branch 'master' into add-description-icon 2020-11-30 14:47:51 +01:00
Nextcloud bot
4015b57025 [tx-robot] updated from transifex 2020-11-29 02:30:45 +00:00
Daniel Klepatsch
26087f95af Add description icon to cards without checkmark in description
Signed-off-by: Daniel Klepatsch <daniel.klepatsch@gmx.at>
2020-11-28 20:55:22 +01:00
Daniel Klepatsch
5c32133687 Updated description icon
Signed-off-by: Daniel Klepatsch <daniel.klepatsch@gmx.at>
2020-11-28 20:53:35 +01:00
Nextcloud bot
2972aa30f9 [tx-robot] updated from transifex 2020-11-28 02:29:45 +00:00
dependabot[bot]
a429d61a29 Bump vuex from 3.5.1 to 3.6.0
Bumps [vuex](https://github.com/vuejs/vuex) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Changelog](https://github.com/vuejs/vuex/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuex/compare/v3.5.1...v3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-28 02:08:47 +00:00
dependabot[bot]
7a4da3d2d3 Bump babel-loader from 8.2.1 to 8.2.2
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.1 to 8.2.2.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.2.1...v8.2.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-28 02:07:05 +00:00
dependabot[bot]
91e931d82d Bump @babel/core from 7.12.7 to 7.12.9
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.7 to 7.12.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.12.9/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-28 02:05:46 +00:00
Julius Härtl
2822f480f1 Fix gradient and stack header spacing for safari
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-27 14:26:09 +01:00
Nextcloud bot
622106d5de [tx-robot] updated from transifex 2020-11-26 02:31:09 +00:00
Nextcloud bot
af9abe1aa3 [tx-robot] updated from transifex 2020-11-25 02:30:42 +00:00
Julius Härtl
9af565b53b Bump version to 1.2.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-24 15:04:48 +01:00
Julius Härtl
600a7a0786 Merge pull request #2611 from nextcloud/bugfix/2504
Fix paragraph styling in comments
2020-11-24 12:38:25 +01:00
Julius Härtl
f8a518a55b Fix paragraph styling in comments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-24 11:54:41 +01:00
Julius Härtl
84e93c2798 Merge pull request #2588 from nextcloud/bugfix/2567 2020-11-24 11:50:04 +01:00
Julius Härtl
61537b1dea Merge pull request #2587 from nextcloud/bugfix/2575
Move modal top spacing to the header to avoid side-effect when scrolling
2020-11-24 11:49:56 +01:00
Julius Härtl
d444686eb6 Merge pull request #2609 from nextcloud/dependabot/npm_and_yarn/master/juliushaertl/vue-richtext-1.0.1
Bump @juliushaertl/vue-richtext from 1.0.0 to 1.0.1
2020-11-24 11:49:38 +01:00
dependabot[bot]
79d979561f Bump @juliushaertl/vue-richtext from 1.0.0 to 1.0.1
Bumps [@juliushaertl/vue-richtext](https://github.com/juliushaertl/vue-richtext) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/juliushaertl/vue-richtext/releases)
- [Commits](https://github.com/juliushaertl/vue-richtext/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-23 21:28:08 +00:00
Julius Härtl
238512104a Merge pull request #2596 from nextcloud/dependabot/npm_and_yarn/master/babel/core-7.12.7
Bump @babel/core from 7.12.3 to 7.12.7
2020-11-23 22:20:43 +01:00
Julius Härtl
392896efab Merge pull request #2597 from nextcloud/dependabot/npm_and_yarn/master/babel/preset-env-7.12.7
Bump @babel/preset-env from 7.12.1 to 7.12.7
2020-11-23 22:19:10 +01:00
Julius Härtl
b1fe3d9862 Merge pull request #2598 from nextcloud/dependabot/npm_and_yarn/master/stylelint-13.8.0
Bump stylelint from 13.7.2 to 13.8.0
2020-11-23 22:18:58 +01:00
Julius Härtl
50d949e8be Merge pull request #2599 from nextcloud/dependabot/npm_and_yarn/master/vue-easymde-1.3.1
Bump vue-easymde from 1.3.0 to 1.3.1
2020-11-23 22:18:49 +01:00
dependabot[bot]
e3d72ac42b Bump vue-easymde from 1.3.0 to 1.3.1
Bumps [vue-easymde](https://github.com/NikulinIlya/vue-easymde) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/NikulinIlya/vue-easymde/releases)
- [Commits](https://github.com/NikulinIlya/vue-easymde/compare/1.3.0...v1.3.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-21 02:10:26 +00:00
dependabot[bot]
6983458169 Bump stylelint from 13.7.2 to 13.8.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.7.2 to 13.8.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.7.2...13.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-21 02:07:35 +00:00
dependabot[bot]
480ec945d0 Bump @babel/preset-env from 7.12.1 to 7.12.7
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.1 to 7.12.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.12.7/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-21 02:05:43 +00:00
dependabot[bot]
19b005ccfa Bump @babel/core from 7.12.3 to 7.12.7
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.3 to 7.12.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.12.7/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-21 02:05:04 +00:00
Julius Härtl
6e979c5b86 Disable previewing images in editor (fixes #2567)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-19 16:47:31 +01:00
Julius Härtl
ce3e969e34 Bump vue-easymde
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-19 16:47:11 +01:00
Julius Härtl
d9a9a269b7 Merge pull request #2586 from nextcloud/bugfix/2574
Fix card details button
2020-11-19 16:40:46 +01:00
Julius Härtl
80f49360d6 Move modal top spacing to the header to avoid side-effect when scrolling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-19 16:39:41 +01:00
Julius Härtl
f74ee6b151 Fix card details button
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-19 16:18:38 +01:00
Julius Härtl
012f3ea5dd Merge pull request #2584 from nextcloud/bugfix/2580 2020-11-19 13:21:38 +01:00
Julius Härtl
6e5df95e0a Use the original card description for replacing the checkboxes (fixes #2580)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-18 22:11:16 +01:00
Julius Härtl
6b41c80be4 Do not render card sidebar if modal view is used
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-18 22:10:45 +01:00
Julius Härtl
64e72a92e3 Bump version to 1.2.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-18 11:27:58 +01:00
Nextcloud bot
858ccdc79b [tx-robot] updated from transifex 2020-11-18 02:29:48 +00:00
Julius Härtl
d7d8e707ca Merge pull request #2573 from nextcloud/bugfix/24181
Add key do description to not leak any state through card change
2020-11-17 20:10:03 +01:00
Julius Härtl
a155558e93 Add key do description to not leak any state through card change
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-11-17 15:50:32 +01:00
Julius Härtl
2c71529dd8 Merge pull request #2570 from ksteinb/patch-1
Update ApplicationLegacy.php
2020-11-17 12:40:36 +01:00
Julius Härtl
c2cbf00907 Merge pull request #2571 from ksteinb/patch-2
Update Application20.php
2020-11-17 12:40:18 +01:00
ksteinb
703abc09b7 Update Application20.php
findByUserId does not exist anymore change call to findByParticipant
2020-11-17 12:29:25 +01:00
ksteinb
ad84701f81 Update ApplicationLegacy.php
findByUserId was replaced by findByParticipant
2020-11-17 12:26:39 +01:00
Nextcloud bot
7692f51327 [tx-robot] updated from transifex 2020-11-17 02:30:15 +00:00
111 changed files with 8842 additions and 3036 deletions

View File

@@ -1,4 +1,4 @@
name: PHP AppCode Check
name: Nextcloud app code check
on:
pull_request:

View File

@@ -1,4 +1,4 @@
name: Build app package
name: Package build
on:
pull_request:

89
.github/workflows/integration.yml vendored Normal file
View File

@@ -0,0 +1,89 @@
name: Integration tests
on:
pull_request:
push:
branches:
- master
- stable*
env:
APP_NAME: deck
jobs:
integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: ['7.4']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
services:
postgres:
image: postgres
ports:
- 4445:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
mysql:
image: mariadb
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@v2
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout submodules
shell: bash
run: |
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
- name: Checkout app
uses: actions/checkout@v2
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql,
coverage: none
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
run: |
if [ "${{ matrix.databases }}" = "mysql" ]; then
export DB_PORT=4444
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
export DB_PORT=4445
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: Run behat
working-directory: apps/${{ env.APP_NAME }}/tests/integration
run: ./run.sh

View File

@@ -1,4 +1,4 @@
name: Nightly build
name: Package nightly
on:
push:

View File

@@ -22,5 +22,8 @@ jobs:
npm ci
- name: build
run: |
npm run build --if-present
mkdir -p js
npm run build --if-present -- --profile --json | tail -n +6 > js/webpack-stats.json
npx relative-ci-agent

View File

@@ -10,82 +10,30 @@ on:
env:
APP_NAME: deck
jobs:
php:
integration:
runs-on: ubuntu-latest
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['7.4']
databases: ['sqlite']
server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
steps:
- name: Checkout server
uses: actions/checkout@v2
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout submodules
shell: bash
run: |
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
- name: Checkout app
uses: actions/checkout@v2
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v1
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
coverage: none
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
- name: PHPUnit integration
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
mysql:
runs-on: ubuntu-latest
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['7.3', '7.4']
databases: ['mysql']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
services:
postgres:
image: postgres
ports:
- 4445:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
mysql:
image: mariadb
ports:
@@ -114,11 +62,11 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v1
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, mysql, pdo_mysql
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
coverage: none
- name: Set up PHPUnit
@@ -126,83 +74,14 @@ jobs:
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
if [ "${{ matrix.databases }}" = "mysql" ]; then
export DB_PORT=4444
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
export DB_PORT=4445
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
- name: PHPUnit integration
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
pgsql:
runs-on: ubuntu-latest
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['7.4']
databases: ['pgsql']
server-versions: ['master']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
services:
postgres:
image: postgres
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@v2
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout submodules
shell: bash
run: |
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
- name: Checkout app
uses: actions/checkout@v2
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v1
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, pgsql, pdo_pgsql
coverage: none
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &

31
.github/workflows/static-analysis.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Static analysis
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
static-psalm-analysis:
runs-on: ubuntu-latest
strategy:
matrix:
ocp-version: [ 'dev-master', 'v20.0.1' ]
name: Nextcloud ${{ matrix.ocp-version }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: 7.4
tools: composer:v1
coverage: none
- name: Install dependencies
run: composer i
- name: Install dependencies
run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }}
- name: Run coding standards check
run: composer run psalm

1
.gitignore vendored
View File

@@ -7,6 +7,5 @@ tests/integration/vendor/
tests/integration/composer.lock
tests/.phpunit.result.cache
vendor/
*.lock
.php_cs.cache
\.idea/

View File

@@ -1,6 +1,24 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.2.2 - 2020-11-24
### Fixed
* [#2584](https://github.com/nextcloud/deck/pull/2584) Fix updating checkbox state and avoid issues due to duplicate sidebar element
* [#2586](https://github.com/nextcloud/deck/pull/2586) Fix card details button
* [#2587](https://github.com/nextcloud/deck/pull/2587) Move modal top spacing to the header to avoid side-effect when scrolling
* [#2588](https://github.com/nextcloud/deck/pull/2588) Do not render images in editor
* [#2609](https://github.com/nextcloud/deck/pull/2609) Fix issue with depenendency causing newline comments to not show
* [#2611](https://github.com/nextcloud/deck/pull/2611) Fix paragraph styling in comments
## 1.2.1 - 2020-11-18
### Fixed
* [#2570](https://github.com/nextcloud/deck/pull/2570) [#2571](https://github.com/nextcloud/deck/pull/2571) Fix error when deleting users @ksteinb
* [#2573](https://github.com/nextcloud/deck/pull/2573) Fix issue where card description was changed on the wrong card when switching cards
## 1.2.0 - 2020-11-16
### Added

View File

@@ -17,7 +17,7 @@
- 🚀 Get your project organized
</description>
<version>1.2.0</version>
<version>1.2.2</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>

View File

@@ -13,11 +13,12 @@
},
"require-dev": {
"roave/security-advisories": "dev-master",
"christophwurst/nextcloud": "^17",
"jakub-onderka/php-parallel-lint": "^1.0.0",
"christophwurst/nextcloud": "^20",
"phpunit/phpunit": "^8",
"nextcloud/coding-standard": "^0.3.0",
"symfony/event-dispatcher": "^4.0"
"nextcloud/coding-standard": "^0.4.0",
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^4.3",
"php-parallel-lint/php-parallel-lint": "^1.2"
},
"config": {
"optimize-autoloader": true,
@@ -26,6 +27,8 @@
"scripts": {
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
"cs:check": "php-cs-fixer fix --dry-run --diff",
"cs:fix": "php-cs-fixer fix"
"cs:fix": "php-cs-fixer fix",
"psalm": "psalm",
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType"
}
}

4906
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,7 @@
@include icon-black-white('attach', 'deck', 1);
@include icon-black-white('reply', 'deck', 1);
@include icon-black-white('notifications-dark', 'deck', 1);
@include icon-black-white('description', 'deck', 1);
.icon-toggle-compact-collapsed {
@include icon-color('toggle-view-expand', 'deck', $color-black);

View File

@@ -115,7 +115,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| options | Bool | **Optional** Enhance boards with details about labels, stacks and users |
| details | Bool | **Optional** Enhance boards with details about labels, stacks and users |
#### Response

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" version="1.1" height="16"><path fill="#000" d="m2.5 1c-0.28 0-0.5 0.22-0.5 0.5v13c0 0.28 0.22 0.5 0.5 0.5h11c0.28 0 0.5-0.22 0.5-0.5v-10.5l-3-3h-8.5zm1.5 2h6v1h-6v-1zm0 3h5v1h-5v-1zm0 3h8v1h-8v-1zm0 3h4v1h-4v-1z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14,17L4,17v2h10v-2zM20,9L4,9v2h16L20,9zM4,15h16v-2L4,13v2zM4,5v2h16L20,5L4,5z"/></svg>

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 180 B

View File

@@ -64,10 +64,10 @@ OC.L10N.register(
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"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" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"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 afegit un <strong>comentari</strong> a una targeta",
"Upcoming cards" : "Properes targetes",
"Upcoming cards" : "Pròximes targetes",
"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 \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
@@ -81,26 +81,26 @@ OC.L10N.register(
"To review" : "Per revisar",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents",
"copy" : "còpia",
"To do" : "Pendent",
"Doing" : "En procés",
"Done" : "Finalitzades",
"Done" : "Finalitzat",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
"The file was uploaded" : "S'ha carregat el fitxer",
"The file was uploaded" : "S'ha pujat el fitxer",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
"No file was uploaded" : "No s'ha carregat cap fitxer",
"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 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",
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Card details" : "Dades de la targeta",
"Add board" : "Afegeix una taula",
"Card details" : "Detalls de la targeta",
"Add board" : "Afegeix un tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler",
@@ -118,7 +118,7 @@ OC.L10N.register(
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
"Archived cards" : "Targetes arxivades",
"Add list" : "Afegeix una llista",
"List name" : "Nom de llista",
"List name" : "Nom de la llista",
"Apply filter" : "Aplica el filtre",
"Filter by tag" : "Filtra per etiqueta",
"Filter by assigned user" : "Filtra per usuari assignat",
@@ -126,16 +126,16 @@ OC.L10N.register(
"Filter by due date" : "Filtra per data de venciment",
"Overdue" : "Endarrerit",
"Next 24 hours" : "Pròximes 24 hores",
"Next 7 days" : "Propers 7 dies",
"Next 30 days" : "Propers 30 dies",
"Next 7 days" : "Pròxims 7 dies",
"Next 30 days" : "Pròxims 30 dies",
"No due date" : "Sense venciment",
"Clear filter" : "Neteja el filtre",
"Clear filter" : "Esborra el filtre",
"Hide archived cards" : "Amaga les targetes arxivades",
"Show archived cards" : "Mostra les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Details" : "Detalls",
"Loading board" : "Carregant tauler",
"No lists available" : "Cap llista disponible",
"Loading board" : "S'està carregant el tauler",
"No lists available" : "No hi ha cap llista disponible",
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
"Board not found" : "Tauler no trobat",
"Sharing" : "Compartició",
@@ -202,6 +202,7 @@ OC.L10N.register(
"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)",
"(circle)" : "(cercle)",
@@ -228,26 +229,26 @@ OC.L10N.register(
"Clone board" : "Clonar tauler",
"Unarchive board" : "Desarxiva el tauler",
"Archive board" : "Arxiva el tauler",
"Turn on due date reminders" : "Activa el recordatori de data de caducitat",
"Turn off due date reminders" : "Desactiva el recordatori de data de caducitat",
"Due date reminders" : "Recordatori de data de caducitat",
"Turn on due date reminders" : "Activa els recordatoris de data de venciment",
"Turn off due date reminders" : "Desactiva els recordatoris de data de venciment",
"Due date reminders" : "Recordatoris de data de venciment",
"All cards" : "Totes les targetes",
"Assigned cards" : "Targetes assignades",
"No notifications" : "No hi ha notificacions",
"Delete board" : "Suprimeix el tauler",
"Board {0} deleted" : "Sha suprimit el tauler {0}",
"Only assigned cards" : "Només targetes assignades",
"Only assigned cards" : "Només les targetes assignades",
"No reminder" : "Sense recordatoris",
"An error occurred" : "S'ha produït un error",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler.",
"Delete the board?" : "Suprimir el tauler?",
"Delete the board?" : "Voleu suprimir el tauler?",
"Loading filtered view" : "S'està carregant la visualització filtrada",
"Today" : "Avui",
"Tomorrow" : "Demà",
"This week" : "Aquesta setmana",
"No due" : "Sense venciment",
"No upcoming cards" : "No hi ha targetes futures",
"upcoming cards" : "properes targetes",
"No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards" : "pròximes targetes",
"Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta",
"Something went wrong" : "Alguna cosa ha anat malament",

View File

@@ -62,10 +62,10 @@
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"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" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"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 afegit un <strong>comentari</strong> a una targeta",
"Upcoming cards" : "Properes targetes",
"Upcoming cards" : "Pròximes targetes",
"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 \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
@@ -79,26 +79,26 @@
"To review" : "Per revisar",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents",
"copy" : "còpia",
"To do" : "Pendent",
"Doing" : "En procés",
"Done" : "Finalitzades",
"Done" : "Finalitzat",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
"The file was uploaded" : "S'ha carregat el fitxer",
"The file was uploaded" : "S'ha pujat el fitxer",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
"No file was uploaded" : "No s'ha carregat cap fitxer",
"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 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",
"Personal planning and team project organization" : "Planificació personal i organització de projectes en equip",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Card details" : "Dades de la targeta",
"Add board" : "Afegeix una taula",
"Card details" : "Detalls de la targeta",
"Add board" : "Afegeix un tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Search by board title" : "Cerca per títol del tauler",
"Select board" : "Selecciona un tauler",
@@ -116,7 +116,7 @@
"Drop your files to upload" : "Deixeu anar els fitxers per penjar-los",
"Archived cards" : "Targetes arxivades",
"Add list" : "Afegeix una llista",
"List name" : "Nom de llista",
"List name" : "Nom de la llista",
"Apply filter" : "Aplica el filtre",
"Filter by tag" : "Filtra per etiqueta",
"Filter by assigned user" : "Filtra per usuari assignat",
@@ -124,16 +124,16 @@
"Filter by due date" : "Filtra per data de venciment",
"Overdue" : "Endarrerit",
"Next 24 hours" : "Pròximes 24 hores",
"Next 7 days" : "Propers 7 dies",
"Next 30 days" : "Propers 30 dies",
"Next 7 days" : "Pròxims 7 dies",
"Next 30 days" : "Pròxims 30 dies",
"No due date" : "Sense venciment",
"Clear filter" : "Neteja el filtre",
"Clear filter" : "Esborra el filtre",
"Hide archived cards" : "Amaga les targetes arxivades",
"Show archived cards" : "Mostra les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Details" : "Detalls",
"Loading board" : "Carregant tauler",
"No lists available" : "Cap llista disponible",
"Loading board" : "S'està carregant el tauler",
"No lists available" : "No hi ha cap llista disponible",
"Create a new list to add cards to this board" : "Crea una llista nova per afegir targetes a aquest tauler",
"Board not found" : "Tauler no trobat",
"Sharing" : "Compartició",
@@ -200,6 +200,7 @@
"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)",
"(circle)" : "(cercle)",
@@ -226,26 +227,26 @@
"Clone board" : "Clonar tauler",
"Unarchive board" : "Desarxiva el tauler",
"Archive board" : "Arxiva el tauler",
"Turn on due date reminders" : "Activa el recordatori de data de caducitat",
"Turn off due date reminders" : "Desactiva el recordatori de data de caducitat",
"Due date reminders" : "Recordatori de data de caducitat",
"Turn on due date reminders" : "Activa els recordatoris de data de venciment",
"Turn off due date reminders" : "Desactiva els recordatoris de data de venciment",
"Due date reminders" : "Recordatoris de data de venciment",
"All cards" : "Totes les targetes",
"Assigned cards" : "Targetes assignades",
"No notifications" : "No hi ha notificacions",
"Delete board" : "Suprimeix el tauler",
"Board {0} deleted" : "Sha suprimit el tauler {0}",
"Only assigned cards" : "Només targetes assignades",
"Only assigned cards" : "Només les targetes assignades",
"No reminder" : "Sense recordatoris",
"An error occurred" : "S'ha produït un error",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Esteu segur que voleu suprimir el tauler {title}? Això eliminarà totes les dades d'aquest tauler.",
"Delete the board?" : "Suprimir el tauler?",
"Delete the board?" : "Voleu suprimir el tauler?",
"Loading filtered view" : "S'està carregant la visualització filtrada",
"Today" : "Avui",
"Tomorrow" : "Demà",
"This week" : "Aquesta setmana",
"No due" : "Sense venciment",
"No upcoming cards" : "No hi ha targetes futures",
"upcoming cards" : "properes targetes",
"No upcoming cards" : "No hi ha pròximes targetes",
"upcoming cards" : "pròximes targetes",
"Link to a board" : "Enllaça a un tauler",
"Link to a card" : "Enllaç una targeta",
"Something went wrong" : "Alguna cosa ha anat malament",

View File

@@ -202,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Upravit popis",
"View description" : "Zobrazit popis",
"Add Attachment" : "Přidat přílohu",
"Write a description …" : "Zadejte popis…",
"Choose attachment" : "Zvolte přílohu",
"(group)" : "(skupina)",
"(circle)" : "(okruh)",
@@ -225,7 +226,19 @@ OC.L10N.register(
"Board name" : "Název tabule",
"Board details" : "Podrobnosti o desce",
"Edit board" : "Upravit tabuli",
"Clone board" : "Klonovat tabuli",
"Unarchive board" : "Vrátit tabuli zpět z archivu",
"Archive board" : "Archivovat tabuli",
"Turn on due date reminders" : "Zapnout upomínky termínů",
"Turn off due date reminders" : "Vypnout upomínky termínů",
"Due date reminders" : "Upomínky termínů",
"All cards" : "Všechny karty",
"Assigned cards" : "Přiřazené karty",
"No notifications" : "Žádná upozornění",
"Delete board" : "Smazat tabuli",
"Board {0} deleted" : "Tabule {0} smazána",
"Only assigned cards" : "Pouze přiřazené karty",
"No reminder" : "Bez připomínky",
"An error occurred" : "Došlo k chybě",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule.",
"Delete the board?" : "Smazat tabuli?",

View File

@@ -200,6 +200,7 @@
"Edit description" : "Upravit popis",
"View description" : "Zobrazit popis",
"Add Attachment" : "Přidat přílohu",
"Write a description …" : "Zadejte popis…",
"Choose attachment" : "Zvolte přílohu",
"(group)" : "(skupina)",
"(circle)" : "(okruh)",
@@ -223,7 +224,19 @@
"Board name" : "Název tabule",
"Board details" : "Podrobnosti o desce",
"Edit board" : "Upravit tabuli",
"Clone board" : "Klonovat tabuli",
"Unarchive board" : "Vrátit tabuli zpět z archivu",
"Archive board" : "Archivovat tabuli",
"Turn on due date reminders" : "Zapnout upomínky termínů",
"Turn off due date reminders" : "Vypnout upomínky termínů",
"Due date reminders" : "Upomínky termínů",
"All cards" : "Všechny karty",
"Assigned cards" : "Přiřazené karty",
"No notifications" : "Žádná upozornění",
"Delete board" : "Smazat tabuli",
"Board {0} deleted" : "Tabule {0} smazána",
"Only assigned cards" : "Pouze přiřazené karty",
"No reminder" : "Bez připomínky",
"An error occurred" : "Došlo k chybě",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Opravdu chcete tabuly {title} smazat? Toto smaže veškerá data této tabule.",
"Delete the board?" : "Smazat tabuli?",

View File

@@ -99,7 +99,7 @@ OC.L10N.register(
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
"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 ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in Deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit Deinem Team mit Kommentaren\n- ⚡ Behalte Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere Dein Projekt",
"Card details" : "Kartendetails",
"Card details" : "Karten-Details",
"Add board" : "Board hinzufügen",
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
"Search by board title" : "Nach einem Board suchen",
@@ -222,7 +222,7 @@ OC.L10N.register(
"Use modal card view" : "Modale Kartenansicht verwenden",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung von Deck 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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
"Board name" : "Boardname",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
@@ -252,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Something went wrong" : "Etwas ist schiefgelaufen",
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -97,7 +97,7 @@
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Personal planning and team project organization" : "Persönliche Planung und Teamprojektorganisation",
"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 ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisen von Schlagworten für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 📎 Füge Dateien hinzu und verwende diese in Deinen Markdown-Beschreibungen\n- 💬 Diskutiere mit Deinem Team mit Kommentaren\n- ⚡ Behalte Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisiere Dein Projekt",
"Card details" : "Kartendetails",
"Card details" : "Karten-Details",
"Add board" : "Board hinzufügen",
"Select the board to link to a project" : "Wähle ein Board aus, um dieses mit einem Projekt zu verknüpfen",
"Search by board title" : "Nach einem Board suchen",
@@ -220,7 +220,7 @@
"Use modal card view" : "Modale Kartenansicht verwenden",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung von Deck 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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die mit ihnen geteilt wurden.",
"Board name" : "Boardname",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
@@ -250,6 +250,7 @@
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Something went wrong" : "Etwas ist schiefgelaufen",
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -222,7 +222,7 @@ OC.L10N.register(
"Use modal card view" : "Modale Kartenansicht verwenden",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung von Deck 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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"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.",
"Board name" : "Boardname",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
@@ -252,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Something went wrong" : "Etwas ist schiefgelaufen",
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -220,7 +220,7 @@
"Use modal card view" : "Modale Kartenansicht verwenden",
"Show boards in calendar/tasks" : "Board in Kalender/Aufgaben anzeigen",
"Limit deck usage of groups" : "Nutzung von Deck 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." : "Durch die Begrenzung von Deck werden Benutzer, die nicht Teil dieser Gruppen sind, daran gehindert, eigene Boards zu erstellen. Benutzer können weiterhin an Boards arbeiten, die für sie freigegeben wurden.",
"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.",
"Board name" : "Boardname",
"Board details" : "Board-Details",
"Edit board" : "Board bearbeiten",
@@ -250,6 +250,7 @@
"Link to a board" : "Mit einem Board verknüpfen",
"Link to a card" : "Mit einer Karte verknüpfen",
"Something went wrong" : "Etwas ist schiefgelaufen",
"Failed to upload {name}" : "Fehler beim Hochladen von {name}",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -202,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Editar descripción",
"View description" : "Ver descripción",
"Add Attachment" : "Añadir adjunto",
"Write a description …" : "Escribe una descripción...",
"Choose attachment" : "Escoger adjunto",
"(group)" : "(grupo)",
"(circle)" : "(circle)",

View File

@@ -200,6 +200,7 @@
"Edit description" : "Editar descripción",
"View description" : "Ver descripción",
"Add Attachment" : "Añadir adjunto",
"Write a description …" : "Escribe una descripción...",
"Choose attachment" : "Escoger adjunto",
"(group)" : "(grupo)",
"(circle)" : "(circle)",

View File

@@ -202,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Modifier la description",
"View description" : "Afficher la description",
"Add Attachment" : "Ajouter une pièce jointe",
"Write a description …" : "Écrire une description ...",
"Choose attachment" : "Choisir une pièce jointe",
"(group)" : "(groupe)",
"(circle)" : "(cercle)",
@@ -226,11 +227,17 @@ OC.L10N.register(
"Board details" : "Détails du tableau",
"Edit board" : "Modifier le tableau",
"Clone board" : "Dupliquer le tableau",
"Unarchive board" : "Désarchiver le tableau",
"Archive board" : "Archiver le tableau",
"Turn on due date reminders" : "Activer les rappels",
"Turn off due date reminders" : "Désactiver les rappels",
"Due date reminders" : "Rappels",
"All cards" : "Toutes les cartes",
"Assigned cards" : "Cartes assignées",
"No notifications" : "Aucune notification",
"Delete board" : "Supprimer le tableau",
"Board {0} deleted" : "Tableau {0} supprimé",
"Only assigned cards" : "Uniquement les cartes assignées",
"No reminder" : "Aucun rappel",
"An error occurred" : "Une erreur est survenue",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Êtes-vous certain de vouloir supprimer le tableau {title} ? Cela supprimera l'ensemble des données de ce tableau.",
@@ -245,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Relier à un tableau",
"Link to a card" : "Relier à une carte",
"Something went wrong" : "Quelque chose s'est mal passé",
"Failed to upload {name}" : "Échec d'envoi de {name}",
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée"
},
"nplurals=2; plural=(n > 1);");

View File

@@ -200,6 +200,7 @@
"Edit description" : "Modifier la description",
"View description" : "Afficher la description",
"Add Attachment" : "Ajouter une pièce jointe",
"Write a description …" : "Écrire une description ...",
"Choose attachment" : "Choisir une pièce jointe",
"(group)" : "(groupe)",
"(circle)" : "(cercle)",
@@ -224,11 +225,17 @@
"Board details" : "Détails du tableau",
"Edit board" : "Modifier le tableau",
"Clone board" : "Dupliquer le tableau",
"Unarchive board" : "Désarchiver le tableau",
"Archive board" : "Archiver le tableau",
"Turn on due date reminders" : "Activer les rappels",
"Turn off due date reminders" : "Désactiver les rappels",
"Due date reminders" : "Rappels",
"All cards" : "Toutes les cartes",
"Assigned cards" : "Cartes assignées",
"No notifications" : "Aucune notification",
"Delete board" : "Supprimer le tableau",
"Board {0} deleted" : "Tableau {0} supprimé",
"Only assigned cards" : "Uniquement les cartes assignées",
"No reminder" : "Aucun rappel",
"An error occurred" : "Une erreur est survenue",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Êtes-vous certain de vouloir supprimer le tableau {title} ? Cela supprimera l'ensemble des données de ce tableau.",
@@ -243,6 +250,7 @@
"Link to a board" : "Relier à un tableau",
"Link to a card" : "Relier à une carte",
"Something went wrong" : "Quelque chose s'est mal passé",
"Failed to upload {name}" : "Échec d'envoi de {name}",
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}

View File

@@ -17,14 +17,57 @@ OC.L10N.register(
"{user} has archived the board {before}" : "הארכיון {before} הועבר לארכיון על ידי {user}",
"You have unarchived the board {board}" : "הוצאת את הלוח {board} מהארכיון",
"{user} has unarchived the board {before}" : "הלוח {before} הוצא מהארכיון על ידי {user}",
"You have created a new list {stack} on board {board}" : "יצרת רשימה חדשה {stack} על הלוח {board}",
"{user} has created a new list {stack} on board {board}" : "{user} יצר רשימה חדשה {stack} על הלוח {board}",
"You have renamed list {before} to {stack} on board {board}" : "שינית את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} שינה את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
"You have deleted list {stack} on board {board}" : "מחקת את הרשימה {stack} על הלוח {board}",
"{user} has deleted list {stack} on board {board}" : "{user} מחק את הרשימה {stack} על הלוח {board}",
"You have created card {card} in list {stack} on board {board}" : "יצרת כרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} יצר כרטיס {card} ברשימה {stack} על הלוח {board}",
"You have deleted card {card} in list {stack} on board {board}" : "מחקת את הכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} מחק את הכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have renamed the card {before} to {card}" : "שינית את שם הכרטיס {before} ל- {card}",
"{user} has renamed the card {before} to {card}" : "{user} שינה את שם הכרטיס {לפני} ל- {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "הוספת תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} הוסיף תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "עדכנת את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} עדכן את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have archived card {card} in list {stack} on board {board}" : "שמרת כרטיס {card} בארכיון ברשימה {stack} על הלוח {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ארכיב כרטיס {card} ברשימה {stack} על הלוח {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "יש לך כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "ל-{user} יש כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
"You have removed the due date of card {card}" : "הסרת את מועד היעד מהכרטיס {card}",
"{user} has removed the due date of card {card}" : "מועד היעד של הכרטיס {card} הוסר על ידי {user}",
"You have set the due date of card {card} to {after}" : "הגדרת את תאריך היעד של הכרטיס {card} ל- {after}",
"{user} has set the due date of card {card} to {after}" : "{user} הגדיר את תאריך היעד של הכרטיס {card} ל- {after}",
"You have updated the due date of card {card} to {after}" : "עדכנת את תאריך היעד של הכרטיס {card} ל- {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} עדכן את תאריך היעד של הכרטיס {card} ל- {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "הוספת את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} הוסיף את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "הסרת את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} הסיר את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "הקצית {assigneduser} לכרטיס {card} על הלוח {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} הקצה את {assigneduser} לכרטיס {card} על הלוח {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "בטלת את הקצאת {assigneduser} מכרטיס {card} על הלוח {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ביטל את ההקצאה של {assigneduser} מכרטיס {card} על הלוח {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "העברת את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} העביר את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
"You have added the attachment {attachment} to card {card}" : "הוספת את הקובץ המצורף {attachment} לכרטיס {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} הוסיף את הקובץ המצורף {attachment} לכרטיס {card}",
"You have updated the attachment {attachment} on card {card}" : "עדכנת את הקובץ המצורף {attachment} בכרטיס {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} עדכן את הקובץ המצורף {attachment} בכרטיס {card}",
"You have deleted the attachment {attachment} from card {card}" : "מחקת את הקובץ המצורף {attachment} מכרטיס {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} מחק את הקובץ המצורף {attachment} מכרטיס {card}",
"You have restored the attachment {attachment} to card {card}" : "שחזרת את הקובץ המצורף {attachment} לכרטיס {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} שיחזר את הקובץ המצורף {attachment} לכרטיס {card}",
"You have commented on card {card}" : "הגבת על הכרטיס {cart}",
"{user} has commented on card {card}" : "נוספה תגובה מאת {user} על הכרטיס {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>תיאור של כרטיס</strong> בתוך יישומון החבילה נערך",
"Deck" : "חפיסה",
"Changes in the <strong>Deck app</strong>" : "שינויים ל<strong>יישומון החבילה</strong>",
"A <strong>comment</strong> was created on a card" : "נוצרה <strong>הערה</strong> על כרטיס",
"Upcoming cards" : "כרטיסים עתידיים",
"Personal" : "אישי",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "הכרטיס \"%s\" שב־„%s” הוקצה אליך על ידי %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "הכרטיס „%s” שב„%s” הוקצה לך על ידי {user}.",
@@ -55,6 +98,7 @@ OC.L10N.register(
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
"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 הוא כלי ארגון בסגנון kanban המכוון לתכנון אישי ולארגון פרויקטים עבור צוותים המשולבים ב- Nextcloud.\n\n\n- 📥 הוסף את המשימות שלך לכרטיסים וסדר אותן\n- 📄 רשמו הערות נוספות ב-markdown\n- 🔖הקצה תוויות לארגון טוב עוד יותר\n- 👥 שתף עם הצוות שלך, חברים, או משפחה\n- 📎 צרף קבצים והטמע אותם בתיאור ה-markdown שלך\n- 💬 שוחח עם הצוות שלך באמצעות הערות\n- ⚡ עקוב אחר שינויים בזרם הפעילות\n- 🚀 ארגנו את הפרויקט שלכם",
"Card details" : "פרטי הכרטיס",
"Add board" : "הוספת לוח",
"Select the board to link to a project" : "נא לבחור את הלוח לקישור למיזם",
@@ -78,6 +122,7 @@ OC.L10N.register(
"Apply filter" : "החלת מסנן",
"Filter by tag" : "סינון לפי תגית",
"Filter by assigned user" : "סינון לפי משתמש מוקצה",
"Unassigned" : "לא הוקצה",
"Filter by due date" : "סינון לפי תאריך יעד",
"Overdue" : "באיחור",
"Next 24 hours" : "ב־24 השעות הבאות",
@@ -90,6 +135,8 @@ OC.L10N.register(
"Toggle compact mode" : "החלפת מצב חסכוני",
"Details" : "פרטים",
"Loading board" : "הלוח נטען",
"No lists available" : "אין רשימות זמינות",
"Create a new list to add cards to this board" : "צור רשימה חדשה כדי להוסיף כרטיסים ללוח זה",
"Board not found" : "הלוח לא נמצא",
"Sharing" : "שיתוף",
"Tags" : "תגיות",
@@ -99,6 +146,8 @@ OC.L10N.register(
"Undo" : "ביטול",
"Deleted cards" : "כרטיסים שנמחקו",
"Share board with a user, group or circle …" : "שיתוף לוח עם משתמש, קבוצה או מעגל…",
"Searching for users, groups and circles …" : "מחפש משתמשים, קבוצות, ומעגלים ...",
"No participants found" : "לא נמצאו משתתפים",
"Board owner" : "בעלות על הלוח",
"(Group)" : "(קבוצה)",
"(Circle)" : "(מעגל)",
@@ -106,9 +155,15 @@ OC.L10N.register(
"Can share" : "Can share",
"Can manage" : "הרשאת ניהול",
"Delete" : "מחיקה",
"Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה",
"Add a new list" : "הוסף רשימה חדשה",
"Archive all cards" : "ארכיב את כל הכרטיסים",
"Delete list" : "מחיקת רשימה",
"Add card" : "הוספת כרטיס",
"Archive all cards in this list" : "ארכיב את כל הכרטיסים ברשימה זו",
"Add a new card" : "הוספת כרטיס חדש",
"Card name" : "שם כרטיס",
"List deleted" : "הרשימה נמחקה",
"Edit" : "עריכה",
"Add a new tag" : "הוספת תגית חדשה",
"title and color value must be provided" : "יש לספק כותרת וערך צבע",
@@ -118,16 +173,19 @@ OC.L10N.register(
"Add this attachment" : "הוספת קובץ מצורף זה",
"Delete Attachment" : "מחיקת קובץ מצורף",
"Restore Attachment" : "שחזור קובץ מצורף",
"Open in sidebar view" : "פתח בתצוגת סרגל הצד",
"Open in bigger view" : "פתח בתצוגה גדולה יותר",
"Attachments" : "קבצים מצורפים",
"Comments" : "תגובות",
"Modified" : "מועד שינוי",
"Created" : "מועד היצירה",
"The title cannot be empty." : "הכותרת לא יכולה להיות ריקה.",
"No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!",
"Assign a tag to this card…" : "הקצאת תגית לכרטיס זה…",
"Assign to users" : "הקצאה למשתמשים",
"Assign to users/groups/circles" : "הקצאה למשתמשים/קבוצות/מעגלים",
"Assign a user to this card…" : "הקצאת משתמש לכרטיס זה…",
"Due date" : "מועד תפוגה",
"Due date" : "מועד יעד",
"Set a due date" : "הגדרת תאריך יעד",
"Remove due date" : "הסרת מועד התפוגה",
"Select Date" : "בחירת תאריך",
@@ -137,40 +195,64 @@ OC.L10N.register(
"In reply to" : "בתגובה אל",
"Reply" : "תגובה",
"Update" : "עדכון",
"Description" : "תיאוג",
"Description" : "תיאור",
"(Unsaved)" : "(לא נשמר)",
"(Saving…)" : "(מתבצעת שמירה…)",
"Formatting help" : "עזרה בסידור בתבנית",
"Edit description" : "עריכת תיאור",
"View description" : "הצגת תיאור",
"Add Attachment" : "הוספת קובץ מצורף",
"Write a description …" : "כתוב תיאור ...",
"Choose attachment" : "בחירת קובץ מצורף",
"(group)" : "(קבוצה)",
"(circle)" : "(מעגל)",
"Assign to me" : "הקצאה אלי",
"Unassign myself" : "לבטל את הקצאת עצמי",
"Move card" : "העברת כרטיס",
"Unarchive card" : "הוצאת הכרטיס מהארכיון",
"Archive card" : "העברת כרטיס לארכיון",
"Delete card" : "מחיקת כרטיס לארכיון",
"Move card to another board" : "העברת כרטיס ללוח אחר",
"Select a list" : "בחר רשימה",
"Card deleted" : "הכרטיס נמחק",
"seconds ago" : "לפני מספר שניות",
"All boards" : "כל הלוחות",
"Archived boards" : "לוחות שנשמרו בארכיון",
"Shared with you" : "משותף אתך",
"Use modal card view" : "השתמש בתצוגת כרטיס מודאלי",
"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." : "הגבלת חבילה תחסום משתמשים שאינם חלק מקבוצות אלו מיצירת לוחות משלהם. משתמשים עדיין יוכלו לעבור על לוחות ששותפו אתם.",
"Board name" : "שם הלוח",
"Board details" : "פרטי לוח",
"Edit board" : "עריכת לוח",
"Clone board" : "שכפל את הלוח",
"Unarchive board" : "בטל ארכיון של הלוח",
"Archive board" : "העבר את הלוח לארכיון",
"Turn on due date reminders" : "הפעל תזכורות לתאריך היעד",
"Turn off due date reminders" : "השבת תזכורות לתאריך היעד",
"Due date reminders" : "תזכורות לתאריך יעד",
"All cards" : "כל הכרטיסים",
"Assigned cards" : "כרטיסים שהוקצו",
"No notifications" : "אין התראות",
"Delete board" : "מחק לוח",
"Board {0} deleted" : "הלוח {0} נמחק",
"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." : "למחוק את הלוח {title}? פעולה זו תמחק את כל הנתונים של הלוח הזה.",
"Delete the board?" : "למחוק את הלוח הזה?",
"Loading filtered view" : "טוען תצוגה מסוננת",
"Today" : "היום",
"Tomorrow" : "מחר",
"This week" : "השבוע",
"No due" : "אין תאריך יעד",
"No upcoming cards" : "אין כרטיסים עתידיים",
"upcoming cards" : "כרטיסים עתידיים",
"Link to a board" : "קישור ללוח",
"Link to a card" : "קישור לכרטיס",
"Something went wrong" : "משהו השתבש",
"Failed to upload {name}" : "העלאת {name} נכשלה",
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");

View File

@@ -15,14 +15,57 @@
"{user} has archived the board {before}" : "הארכיון {before} הועבר לארכיון על ידי {user}",
"You have unarchived the board {board}" : "הוצאת את הלוח {board} מהארכיון",
"{user} has unarchived the board {before}" : "הלוח {before} הוצא מהארכיון על ידי {user}",
"You have created a new list {stack} on board {board}" : "יצרת רשימה חדשה {stack} על הלוח {board}",
"{user} has created a new list {stack} on board {board}" : "{user} יצר רשימה חדשה {stack} על הלוח {board}",
"You have renamed list {before} to {stack} on board {board}" : "שינית את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} שינה את שם הרשימה {לפני} ל- {stack} על הלוח {board}",
"You have deleted list {stack} on board {board}" : "מחקת את הרשימה {stack} על הלוח {board}",
"{user} has deleted list {stack} on board {board}" : "{user} מחק את הרשימה {stack} על הלוח {board}",
"You have created card {card} in list {stack} on board {board}" : "יצרת כרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} יצר כרטיס {card} ברשימה {stack} על הלוח {board}",
"You have deleted card {card} in list {stack} on board {board}" : "מחקת את הכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} מחק את הכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have renamed the card {before} to {card}" : "שינית את שם הכרטיס {before} ל- {card}",
"{user} has renamed the card {before} to {card}" : "{user} שינה את שם הכרטיס {לפני} ל- {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "הוספת תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} הוסיף תיאור לכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "עדכנת את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} עדכן את תיאור הכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have archived card {card} in list {stack} on board {board}" : "שמרת כרטיס {card} בארכיון ברשימה {stack} על הלוח {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ארכיב כרטיס {card} ברשימה {stack} על הלוח {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "יש לך כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "ל-{user} יש כרטיס {card} שלא הועבר לארכיון ברשימה {stack} על הלוח {board}",
"You have removed the due date of card {card}" : "הסרת את מועד היעד מהכרטיס {card}",
"{user} has removed the due date of card {card}" : "מועד היעד של הכרטיס {card} הוסר על ידי {user}",
"You have set the due date of card {card} to {after}" : "הגדרת את תאריך היעד של הכרטיס {card} ל- {after}",
"{user} has set the due date of card {card} to {after}" : "{user} הגדיר את תאריך היעד של הכרטיס {card} ל- {after}",
"You have updated the due date of card {card} to {after}" : "עדכנת את תאריך היעד של הכרטיס {card} ל- {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} עדכן את תאריך היעד של הכרטיס {card} ל- {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "הוספת את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} הוסיף את התג {label} לכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "הסרת את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} הסיר את התג {label} מכרטיס {card} ברשימה {stack} על הלוח {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "הקצית {assigneduser} לכרטיס {card} על הלוח {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} הקצה את {assigneduser} לכרטיס {card} על הלוח {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "בטלת את הקצאת {assigneduser} מכרטיס {card} על הלוח {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ביטל את ההקצאה של {assigneduser} מכרטיס {card} על הלוח {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "העברת את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} העביר את הכרטיס {card} מהרשימה {stackBefore} ל- {stack}",
"You have added the attachment {attachment} to card {card}" : "הוספת את הקובץ המצורף {attachment} לכרטיס {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} הוסיף את הקובץ המצורף {attachment} לכרטיס {card}",
"You have updated the attachment {attachment} on card {card}" : "עדכנת את הקובץ המצורף {attachment} בכרטיס {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} עדכן את הקובץ המצורף {attachment} בכרטיס {card}",
"You have deleted the attachment {attachment} from card {card}" : "מחקת את הקובץ המצורף {attachment} מכרטיס {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} מחק את הקובץ המצורף {attachment} מכרטיס {card}",
"You have restored the attachment {attachment} to card {card}" : "שחזרת את הקובץ המצורף {attachment} לכרטיס {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} שיחזר את הקובץ המצורף {attachment} לכרטיס {card}",
"You have commented on card {card}" : "הגבת על הכרטיס {cart}",
"{user} has commented on card {card}" : "נוספה תגובה מאת {user} על הכרטיס {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>תיאור של כרטיס</strong> בתוך יישומון החבילה נערך",
"Deck" : "חפיסה",
"Changes in the <strong>Deck app</strong>" : "שינויים ל<strong>יישומון החבילה</strong>",
"A <strong>comment</strong> was created on a card" : "נוצרה <strong>הערה</strong> על כרטיס",
"Upcoming cards" : "כרטיסים עתידיים",
"Personal" : "אישי",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "הכרטיס \"%s\" שב־„%s” הוקצה אליך על ידי %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "הכרטיס „%s” שב„%s” הוקצה לך על ידי {user}.",
@@ -53,6 +96,7 @@
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
"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 הוא כלי ארגון בסגנון kanban המכוון לתכנון אישי ולארגון פרויקטים עבור צוותים המשולבים ב- Nextcloud.\n\n\n- 📥 הוסף את המשימות שלך לכרטיסים וסדר אותן\n- 📄 רשמו הערות נוספות ב-markdown\n- 🔖הקצה תוויות לארגון טוב עוד יותר\n- 👥 שתף עם הצוות שלך, חברים, או משפחה\n- 📎 צרף קבצים והטמע אותם בתיאור ה-markdown שלך\n- 💬 שוחח עם הצוות שלך באמצעות הערות\n- ⚡ עקוב אחר שינויים בזרם הפעילות\n- 🚀 ארגנו את הפרויקט שלכם",
"Card details" : "פרטי הכרטיס",
"Add board" : "הוספת לוח",
"Select the board to link to a project" : "נא לבחור את הלוח לקישור למיזם",
@@ -76,6 +120,7 @@
"Apply filter" : "החלת מסנן",
"Filter by tag" : "סינון לפי תגית",
"Filter by assigned user" : "סינון לפי משתמש מוקצה",
"Unassigned" : "לא הוקצה",
"Filter by due date" : "סינון לפי תאריך יעד",
"Overdue" : "באיחור",
"Next 24 hours" : "ב־24 השעות הבאות",
@@ -88,6 +133,8 @@
"Toggle compact mode" : "החלפת מצב חסכוני",
"Details" : "פרטים",
"Loading board" : "הלוח נטען",
"No lists available" : "אין רשימות זמינות",
"Create a new list to add cards to this board" : "צור רשימה חדשה כדי להוסיף כרטיסים ללוח זה",
"Board not found" : "הלוח לא נמצא",
"Sharing" : "שיתוף",
"Tags" : "תגיות",
@@ -97,6 +144,8 @@
"Undo" : "ביטול",
"Deleted cards" : "כרטיסים שנמחקו",
"Share board with a user, group or circle …" : "שיתוף לוח עם משתמש, קבוצה או מעגל…",
"Searching for users, groups and circles …" : "מחפש משתמשים, קבוצות, ומעגלים ...",
"No participants found" : "לא נמצאו משתתפים",
"Board owner" : "בעלות על הלוח",
"(Group)" : "(קבוצה)",
"(Circle)" : "(מעגל)",
@@ -104,9 +153,15 @@
"Can share" : "Can share",
"Can manage" : "הרשאת ניהול",
"Delete" : "מחיקה",
"Failed to create share with {displayName}" : "יצירת השיתוף עם {displayName} נכשלה",
"Add a new list" : "הוסף רשימה חדשה",
"Archive all cards" : "ארכיב את כל הכרטיסים",
"Delete list" : "מחיקת רשימה",
"Add card" : "הוספת כרטיס",
"Archive all cards in this list" : "ארכיב את כל הכרטיסים ברשימה זו",
"Add a new card" : "הוספת כרטיס חדש",
"Card name" : "שם כרטיס",
"List deleted" : "הרשימה נמחקה",
"Edit" : "עריכה",
"Add a new tag" : "הוספת תגית חדשה",
"title and color value must be provided" : "יש לספק כותרת וערך צבע",
@@ -116,16 +171,19 @@
"Add this attachment" : "הוספת קובץ מצורף זה",
"Delete Attachment" : "מחיקת קובץ מצורף",
"Restore Attachment" : "שחזור קובץ מצורף",
"Open in sidebar view" : "פתח בתצוגת סרגל הצד",
"Open in bigger view" : "פתח בתצוגה גדולה יותר",
"Attachments" : "קבצים מצורפים",
"Comments" : "תגובות",
"Modified" : "מועד שינוי",
"Created" : "מועד היצירה",
"The title cannot be empty." : "הכותרת לא יכולה להיות ריקה.",
"No comments yet. Begin the discussion!" : "אין עדיין הערות. אפשר להתחיל לדון!",
"Assign a tag to this card…" : "הקצאת תגית לכרטיס זה…",
"Assign to users" : "הקצאה למשתמשים",
"Assign to users/groups/circles" : "הקצאה למשתמשים/קבוצות/מעגלים",
"Assign a user to this card…" : "הקצאת משתמש לכרטיס זה…",
"Due date" : "מועד תפוגה",
"Due date" : "מועד יעד",
"Set a due date" : "הגדרת תאריך יעד",
"Remove due date" : "הסרת מועד התפוגה",
"Select Date" : "בחירת תאריך",
@@ -135,40 +193,64 @@
"In reply to" : "בתגובה אל",
"Reply" : "תגובה",
"Update" : "עדכון",
"Description" : "תיאוג",
"Description" : "תיאור",
"(Unsaved)" : "(לא נשמר)",
"(Saving…)" : "(מתבצעת שמירה…)",
"Formatting help" : "עזרה בסידור בתבנית",
"Edit description" : "עריכת תיאור",
"View description" : "הצגת תיאור",
"Add Attachment" : "הוספת קובץ מצורף",
"Write a description …" : "כתוב תיאור ...",
"Choose attachment" : "בחירת קובץ מצורף",
"(group)" : "(קבוצה)",
"(circle)" : "(מעגל)",
"Assign to me" : "הקצאה אלי",
"Unassign myself" : "לבטל את הקצאת עצמי",
"Move card" : "העברת כרטיס",
"Unarchive card" : "הוצאת הכרטיס מהארכיון",
"Archive card" : "העברת כרטיס לארכיון",
"Delete card" : "מחיקת כרטיס לארכיון",
"Move card to another board" : "העברת כרטיס ללוח אחר",
"Select a list" : "בחר רשימה",
"Card deleted" : "הכרטיס נמחק",
"seconds ago" : "לפני מספר שניות",
"All boards" : "כל הלוחות",
"Archived boards" : "לוחות שנשמרו בארכיון",
"Shared with you" : "משותף אתך",
"Use modal card view" : "השתמש בתצוגת כרטיס מודאלי",
"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." : "הגבלת חבילה תחסום משתמשים שאינם חלק מקבוצות אלו מיצירת לוחות משלהם. משתמשים עדיין יוכלו לעבור על לוחות ששותפו אתם.",
"Board name" : "שם הלוח",
"Board details" : "פרטי לוח",
"Edit board" : "עריכת לוח",
"Clone board" : "שכפל את הלוח",
"Unarchive board" : "בטל ארכיון של הלוח",
"Archive board" : "העבר את הלוח לארכיון",
"Turn on due date reminders" : "הפעל תזכורות לתאריך היעד",
"Turn off due date reminders" : "השבת תזכורות לתאריך היעד",
"Due date reminders" : "תזכורות לתאריך יעד",
"All cards" : "כל הכרטיסים",
"Assigned cards" : "כרטיסים שהוקצו",
"No notifications" : "אין התראות",
"Delete board" : "מחק לוח",
"Board {0} deleted" : "הלוח {0} נמחק",
"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." : "למחוק את הלוח {title}? פעולה זו תמחק את כל הנתונים של הלוח הזה.",
"Delete the board?" : "למחוק את הלוח הזה?",
"Loading filtered view" : "טוען תצוגה מסוננת",
"Today" : "היום",
"Tomorrow" : "מחר",
"This week" : "השבוע",
"No due" : "אין תאריך יעד",
"No upcoming cards" : "אין כרטיסים עתידיים",
"upcoming cards" : "כרטיסים עתידיים",
"Link to a board" : "קישור ללוח",
"Link to a card" : "קישור לכרטיס",
"Something went wrong" : "משהו השתבש",
"Failed to upload {name}" : "העלאת {name} נכשלה",
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
}

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Promjene u <strong>aplikaciji Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Na kartici je stvoren <strong>komentar</strong>",
"Upcoming cards" : "Nadolazeće kartice",
"Personal" : "Osobno",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Karticu „%s” na „%s” dodijelio vam je %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vam je dodijelio karticu „%s” na „%s”.",
@@ -145,6 +146,7 @@ OC.L10N.register(
"Undo" : "Poništi",
"Deleted cards" : "Izbrisane kartice",
"Share board with a user, group or circle …" : "Dijelite ploču s korisnikom, grupom ili krugom...",
"No participants found" : "Nije pronađen nijedan sudionik",
"Board owner" : "Vlasnik ploče",
"(Group)" : "(Grupa)",
"(Circle)" : "(Krug)",
@@ -152,10 +154,15 @@ OC.L10N.register(
"Can share" : "Dijeljenje moguće",
"Can manage" : "Upravljanje moguće",
"Delete" : "Izbriši",
"Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo",
"Add a new list" : "Dodaj novi popis",
"Archive all cards" : "Arhiviraj sve kartice",
"Delete list" : "Izbriši popis",
"Add card" : "Dodaj karticu",
"Archive all cards in this list" : "Arhiviraj sve kartice s ovog popisa",
"Add a new card" : "Dodaj novu karticu",
"Card name" : "Naziv kartice",
"List deleted" : "Popis je izbrisan",
"Edit" : "Uredi",
"Add a new tag" : "Dodaj novu oznaku",
"title and color value must be provided" : "potrebno je odabrati naziv i vrijednost boje",
@@ -165,10 +172,13 @@ OC.L10N.register(
"Add this attachment" : "Dodajte ovaj privitak",
"Delete Attachment" : "Izbriši privitak",
"Restore Attachment" : "Vrati privitak",
"Open in sidebar view" : "Otvori u bočnom prikazu",
"Open in bigger view" : "Otvori u većem prikazu",
"Attachments" : "Privici",
"Comments" : "Komentari",
"Modified" : "Promijenjeno",
"Created" : "Stvoreno",
"The title cannot be empty." : "Naslov ne može biti prazan.",
"No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!",
"Assign a tag to this card…" : "Dodijeli oznaku ovoj kartici...",
"Assign to users" : "Dodijeli korisnicima",
@@ -202,21 +212,29 @@ OC.L10N.register(
"Delete card" : "Izbriši karticu",
"Move card to another board" : "Premjesti karticu na drugu ploču",
"Select a list" : "Odaberi popis",
"Card deleted" : "Kartica je izbrisana",
"seconds ago" : "prije nekoliko sekundi",
"All boards" : "Sve ploče",
"Archived boards" : "Arhivirane ploče",
"Shared with you" : "Podijeljeno s vama",
"Use modal card view" : "Koristi modalni prikaz kartice",
"Show boards in calendar/tasks" : "Prikaži ploče u kalendaru/zadacima",
"Limit deck usage of groups" : "Ograniči uporabu decka grupama",
"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." : "Ograničenjem Decka možete spriječiti korisnike koji ne sudjeluju u tim grupama da stvaraju vlastite ploče. Korisnici će i dalje moći raditi na pločama koje su dijeljene s njima.",
"Board name" : "Naziv ploče",
"Board details" : "Pojedinosti o ploči",
"Edit board" : "Uredi ploču",
"Board {0} deleted" : "Ploča {0} je izbrisana",
"An error occurred" : "Došlo je do pogreške",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Jeste li sigurni da želite izbrisati ploču {title}? Time ćete izbrisati sve podatke ploče.",
"Delete the board?" : "Želite li izbrisati ploču?",
"Loading filtered view" : "Učitavanje filtriranog prikaza",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"This week" : "Ovaj tjedan",
"No due" : "Nema nezavršenih",
"No upcoming cards" : "Nema nadolazećih kartica",
"upcoming cards" : "nadolazeće kartice",
"Link to a board" : "Poveznica na ploču",
"Link to a card" : "Poveznica na karticu",
"Something went wrong" : "Nešto je pošlo po krivu",

View File

@@ -65,6 +65,7 @@
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Promjene u <strong>aplikaciji Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Na kartici je stvoren <strong>komentar</strong>",
"Upcoming cards" : "Nadolazeće kartice",
"Personal" : "Osobno",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Karticu „%s” na „%s” dodijelio vam je %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vam je dodijelio karticu „%s” na „%s”.",
@@ -143,6 +144,7 @@
"Undo" : "Poništi",
"Deleted cards" : "Izbrisane kartice",
"Share board with a user, group or circle …" : "Dijelite ploču s korisnikom, grupom ili krugom...",
"No participants found" : "Nije pronađen nijedan sudionik",
"Board owner" : "Vlasnik ploče",
"(Group)" : "(Grupa)",
"(Circle)" : "(Krug)",
@@ -150,10 +152,15 @@
"Can share" : "Dijeljenje moguće",
"Can manage" : "Upravljanje moguće",
"Delete" : "Izbriši",
"Failed to create share with {displayName}" : "Dijeljenje s {displayName} nije uspjelo",
"Add a new list" : "Dodaj novi popis",
"Archive all cards" : "Arhiviraj sve kartice",
"Delete list" : "Izbriši popis",
"Add card" : "Dodaj karticu",
"Archive all cards in this list" : "Arhiviraj sve kartice s ovog popisa",
"Add a new card" : "Dodaj novu karticu",
"Card name" : "Naziv kartice",
"List deleted" : "Popis je izbrisan",
"Edit" : "Uredi",
"Add a new tag" : "Dodaj novu oznaku",
"title and color value must be provided" : "potrebno je odabrati naziv i vrijednost boje",
@@ -163,10 +170,13 @@
"Add this attachment" : "Dodajte ovaj privitak",
"Delete Attachment" : "Izbriši privitak",
"Restore Attachment" : "Vrati privitak",
"Open in sidebar view" : "Otvori u bočnom prikazu",
"Open in bigger view" : "Otvori u većem prikazu",
"Attachments" : "Privici",
"Comments" : "Komentari",
"Modified" : "Promijenjeno",
"Created" : "Stvoreno",
"The title cannot be empty." : "Naslov ne može biti prazan.",
"No comments yet. Begin the discussion!" : "Nema komentara. Započnite raspravu!",
"Assign a tag to this card…" : "Dodijeli oznaku ovoj kartici...",
"Assign to users" : "Dodijeli korisnicima",
@@ -200,21 +210,29 @@
"Delete card" : "Izbriši karticu",
"Move card to another board" : "Premjesti karticu na drugu ploču",
"Select a list" : "Odaberi popis",
"Card deleted" : "Kartica je izbrisana",
"seconds ago" : "prije nekoliko sekundi",
"All boards" : "Sve ploče",
"Archived boards" : "Arhivirane ploče",
"Shared with you" : "Podijeljeno s vama",
"Use modal card view" : "Koristi modalni prikaz kartice",
"Show boards in calendar/tasks" : "Prikaži ploče u kalendaru/zadacima",
"Limit deck usage of groups" : "Ograniči uporabu decka grupama",
"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." : "Ograničenjem Decka možete spriječiti korisnike koji ne sudjeluju u tim grupama da stvaraju vlastite ploče. Korisnici će i dalje moći raditi na pločama koje su dijeljene s njima.",
"Board name" : "Naziv ploče",
"Board details" : "Pojedinosti o ploči",
"Edit board" : "Uredi ploču",
"Board {0} deleted" : "Ploča {0} je izbrisana",
"An error occurred" : "Došlo je do pogreške",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Jeste li sigurni da želite izbrisati ploču {title}? Time ćete izbrisati sve podatke ploče.",
"Delete the board?" : "Želite li izbrisati ploču?",
"Loading filtered view" : "Učitavanje filtriranog prikaza",
"Today" : "Danas",
"Tomorrow" : "Sutra",
"This week" : "Ovaj tjedan",
"No due" : "Nema nezavršenih",
"No upcoming cards" : "Nema nadolazećih kartica",
"upcoming cards" : "nadolazeće kartice",
"Link to a board" : "Poveznica na ploču",
"Link to a card" : "Poveznica na karticu",
"Something went wrong" : "Nešto je pošlo po krivu",

View File

@@ -252,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Collega a una lavagna",
"Link to a card" : " Collega a una scheda",
"Something went wrong" : "Qualcosa non ha funzionato",
"Failed to upload {name}" : "Caricamenti di {name} non riuscito",
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -250,6 +250,7 @@
"Link to a board" : "Collega a una lavagna",
"Link to a card" : " Collega a una scheda",
"Something went wrong" : "Qualcosa non ha funzionato",
"Failed to upload {name}" : "Caricamenti di {name} non riuscito",
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -14,6 +14,9 @@ OC.L10N.register(
"copy" : "복사",
"To do" : "할 일",
"Done" : "완료",
"Example Task 3" : "작업 예제 3",
"Example Task 2" : "작업 예제 2",
"Example Task 1" : "작업 예제 1",
"The file was uploaded" : "파일을 업로드함",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "업로드한 파일의 크기가 php.ini의 upload_max_filesize를 초과함",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일의 크기가 HTML 폼에 지정한 MAX_FILE_SIZE를 초과함",

View File

@@ -12,6 +12,9 @@
"copy" : "복사",
"To do" : "할 일",
"Done" : "완료",
"Example Task 3" : "작업 예제 3",
"Example Task 2" : "작업 예제 2",
"Example Task 1" : "작업 예제 1",
"The file was uploaded" : "파일을 업로드함",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "업로드한 파일의 크기가 php.ini의 upload_max_filesize를 초과함",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "업로드한 파일의 크기가 HTML 폼에 지정한 MAX_FILE_SIZE를 초과함",

View File

@@ -210,7 +210,12 @@ OC.L10N.register(
"Board name" : "Lentos pavadinimas",
"Board details" : "Išsamiau apie lentą",
"Edit board" : "Taisyti lentą",
"All cards" : "Visos kortelės",
"Assigned cards" : "Priskirtos kortelės",
"No notifications" : "Pranešimų nėra",
"Delete board" : "Ištrinti lentą",
"Board {0} deleted" : "Lenta {0} ištrinta",
"Only assigned cards" : "Tik priskirtos kortelės",
"An error occurred" : "Įvyko klaida",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ar tikrai norite ištrinti lentą, pavadinimu {title}? Tai ištrins visus šios lentos duomenis.",
"Delete the board?" : "Ištrinti lentą?",

View File

@@ -208,7 +208,12 @@
"Board name" : "Lentos pavadinimas",
"Board details" : "Išsamiau apie lentą",
"Edit board" : "Taisyti lentą",
"All cards" : "Visos kortelės",
"Assigned cards" : "Priskirtos kortelės",
"No notifications" : "Pranešimų nėra",
"Delete board" : "Ištrinti lentą",
"Board {0} deleted" : "Lenta {0} ištrinta",
"Only assigned cards" : "Tik priskirtos kortelės",
"An error occurred" : "Įvyko klaida",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ar tikrai norite ištrinti lentą, pavadinimu {title}? Tai ištrins visus šios lentos duomenis.",
"Delete the board?" : "Ištrinti lentą?",

View File

@@ -1,10 +1,93 @@
OC.L10N.register(
"deck",
{
"You have created a new board {board}" : "Креиравте нова табла {board}",
"{user} has created a new board {board}" : "{user} креирање нова табла {board}",
"You have deleted the board {board}" : "Избришавте табла {board}",
"{user} has deleted the board {board}" : "{user} избриша табла {board}",
"You have restored the board {board}" : "Вративте табла {board}",
"{user} has restored the board {board}" : "{user} врати табла {board}",
"You have shared the board {board} with {acl}" : "Ја споделивте таблата {board} со {acl}",
"{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}",
"{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}",
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
"{user} has unarchived the board {before}" : "{user} ја врати од архива таблата {before}",
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} креираше картица {card} во листата {stack} на таблата {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} го ажурираше описот на картицата {card} во листата {stack} на таблата {board}",
"You have archived card {card} in list {stack} on board {board}" : "Ја архивиравте картицата {card} во листата {stack} на таблата {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
"{user} has set the due date of card {card} to {after}" : "{user} постави датум на истекување на картицата {card}",
"You have updated the due date of card {card} to {after}" : "Го ажуриравте датумот на истекување на картицата {card} до {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} го ажурираше датумот на истекување на картицата {card} до {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Додадовте ознака {label} на картицата {card} во листата {stack} на таблата {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} додаде ознака {label} на картицата {card} во листата {stack} на таблата {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Ја избришавте ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ја избриша ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Го додадовте {assigneduser} во картицата {card} на таблата {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} го додада {assigneduser} во картицата {card} на таблата {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Го отстранивте {assigneduser} од картицата {card} на таблата {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} го отстрани {assigneduser} од картицата {card} на таблата {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Ја преместивте картицата {card} од листата {stackBefore} во {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ја премести картицата {card} од листата {stackBefore} во {stack}",
"You have added the attachment {attachment} to card {card}" : "Додадовте прилог {attachment} на картицата {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} додадте прилог {attachment} на картицата {card}",
"You have updated the attachment {attachment} on card {card}" : "Го ажуриравте прилогот {attachment} на картицата {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} го ажурираше прилогот {attachment} на картицата {card}",
"You have deleted the attachment {attachment} from card {card}" : "Го избришавте прилогот {attachment} од картицата {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} го избриша прилогот {attachment} од картицата {card}",
"You have restored the attachment {attachment} to card {card}" : "Го вративте прилогот {attachment} на картицата {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} го врати прилогот {attachment} на картицата {card}",
"You have commented on card {card}" : "Коментиравте на картицата {card}",
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описот на картицата</strong> во апликацијата Deck е изменет",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
"Upcoming cards" : "Престојни картици",
"Personal" : "Лично",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} ти ја додели картицата \"%s\" на \"%s\".",
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
"{user} has mentioned you in a comment on \"%s\"." : "{user} те спомна во коментар на \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
"{user} has shared the board %s with you." : "{user} ја сподели таблата %s со тебе.",
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
"Finished" : "Завршено",
"To review" : "На ревизија",
"Action needed" : "Потребна е акција",
"Later" : "Покасно",
"copy" : "копирај",
"To do" : "За работење",
"Doing" : "Се работи",
"Done" : "Готово",
"Example Task 3" : "Пример задача 3",
"Example Task 2" : "Пример задача 2",
"Example Task 1" : "Пример задача 1",
"The file was uploaded" : "Датотеката е прикачена",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
@@ -13,36 +96,161 @@ OC.L10N.register(
"Missing a temporary folder" : "Недостасува привремена папка",
"Could not write file to disk" : "Неможе да се запишува на дискот",
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
"Card details" : "Детали за картица",
"Add board" : "Додади табла",
"Select the board to link to a project" : "Избери табла за поврзување со проект",
"Search by board title" : "Барај по име на табла",
"Select board" : "Избери табла",
"Select the card to link to a project" : "Избери картица за поврзување со проект",
"Select a board" : "Избери табла",
"Select a card" : "Избери картица",
"Link to card" : "Линк до картица",
"Cancel" : "Откажи",
"File already exists" : "Датотека веќе постои",
"A file with the name {filename} already exists." : "Датотека со име {filename} веќе постои.",
"Do you want to overwrite it?" : "Дали сакате да го пребришете?",
"Overwrite file" : "Пребриши датотека",
"Keep existing file" : "Зачувај ја постоечката датотека",
"This board is read only" : "Оваа табла е само за читање",
"Drop your files to upload" : "Повлечи датотеки за да прикачите",
"Archived cards" : "Архивирани картици",
"Add list" : "Додади листа",
"List name" : "Име на листа",
"Apply filter" : "Додади филтер",
"Filter by tag" : "Филтрирај по ознака",
"Filter by assigned user" : "Филтрирај по назначени корисници",
"Unassigned" : "Неназначени",
"Filter by due date" : "Филтрирај по краен рок",
"Overdue" : "Заостанати",
"Next 24 hours" : "Следни 24 часа",
"Next 7 days" : "Следни 7 дена",
"Next 30 days" : "Следни 30 дена",
"No due date" : "Нема краен рок",
"Clear filter" : "Исчисти филтри",
"Hide archived cards" : "Сокриј ги архивираните картици",
"Show archived cards" : "Прикажи ги архивираните картици",
"Toggle compact mode" : "Вклучи компактен мод",
"Details" : "Детали",
"Loading board" : "Вчирување на табла",
"No lists available" : "Нема достапни листи",
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
"Board not found" : "Таблата не е пронајдена",
"Sharing" : "Споделување",
"Tags" : "Ознаки",
"Deleted items" : "Избришани работи",
"Timeline" : "Времеплов",
"Deleted lists" : "Избришани листи",
"Undo" : "Врати",
"Deleted cards" : "Избришани картици",
"Share board with a user, group or circle …" : "Сподели табла со корисник, група или круг ...",
"Searching for users, groups and circles …" : "Пребарување на корисници, групи или кругови ...",
"No participants found" : "Не се пронајдени учесници",
"Board owner" : "Сопственик на таблата",
"(Group)" : "(Група)",
"(Circle)" : "(Круг)",
"Can edit" : "Може да се уредува",
"Can share" : "Can share",
"Can manage" : "Може да ја менаџира",
"Delete" : "Избриши",
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
"Add a new list" : "Додади нова листа",
"Archive all cards" : "Архивирај ги сите картици",
"Delete list" : "Избриши листа",
"Add card" : "Додади картица",
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
"Add a new card" : "Додади нова картица",
"Card name" : "Име на картицата",
"List deleted" : "Листата е избришана",
"Edit" : "Уреди",
"Add a new tag" : "Додади нова ознака",
"title and color value must be provided" : "наслов и боја мора да се приложи",
"Title" : "Наслов",
"Members" : "Членови",
"Upload attachment" : "Прикачи прилог",
"Add this attachment" : "Додади го овој прилог",
"Delete Attachment" : "Избриши прилог",
"Restore Attachment" : "Врати прилог",
"Open in sidebar view" : "Отвори страничен поглед",
"Open in bigger view" : "Отвори на голем екран",
"Attachments" : "Прилози",
"Comments" : "Коментари",
"Modified" : "Изменето",
"Created" : "Креирано",
"The title cannot be empty." : "Насловот неможе да биде празен.",
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
"Assign to users" : "Додели на корисници",
"Assign to users/groups/circles" : "Додели на корисници/групи/кругови",
"Assign a user to this card…" : "Додели корисник на оваа картица...",
"Due date" : "До датум",
"Set a due date" : "Постави краен рок",
"Remove due date" : "Отстрани краен рок",
"Select Date" : "Избери датум",
"Save" : "Зачувај",
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
"In reply to" : "Како одговор на",
"Reply" : "Одговор",
"Update" : "Ажурирај",
"Description" : "Опис",
"(Unsaved)" : "(Незачувано)",
"(Saving…)" : "(Снимање…)",
"Formatting help" : "Помош за форматирање",
"Edit description" : "Измени опис",
"View description" : "Види опис",
"Add Attachment" : "Додади прилог",
"Write a description …" : "Напиши опис ...",
"Choose attachment" : "Избери прилог",
"(group)" : "(group)",
"(circle)" : "(круг)",
"Assign to me" : "Доделени мене",
"Unassign myself" : "Откажи се",
"Move card" : "Премести картица",
"Unarchive card" : "Врати картица од архива",
"Archive card" : "Архивирај картица",
"Delete card" : "Избриши картица",
"Move card to another board" : "Премести ја картицата на друга табла",
"Select a list" : "Избери листа",
"Card deleted" : "Картицата е избришана",
"seconds ago" : "пред неколку секунди",
"All boards" : "Сите табли",
"Archived boards" : "Архивирани табли",
"Shared with you" : "Споделено со тебе",
"Use modal card view" : "Користи модуларен преглед",
"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." : "Ограничувањето на апликацијата ќе ги блокира корисниците кој не се дел од овие групи. Корсниците ќе можат да работат на апликацијата само доколку биде споделена табла со нив.",
"Board name" : "Име на табла",
"Board details" : "Детали за таблата",
"Edit board" : "Измени табла",
"Clone board" : "Клонирај табла",
"Unarchive board" : "Врати табла од архива",
"Archive board" : "Архивирај табла",
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
"Due date reminders" : "Потсетници за крајните рокови",
"All cards" : "Сите картици",
"Assigned cards" : "Доделени картици",
"No notifications" : "Нема известувања",
"Delete board" : "Избриши табла",
"Board {0} deleted" : "Таблата {0} е избришана",
"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." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци на таблата.",
"Delete the board?" : "Бришење на таблата?",
"Loading filtered view" : "Вчитување на филтриран поглед",
"Today" : "Денес",
"Tomorrow" : "Утре",
"This week" : "Оваа недела"
"This week" : "Оваа недела",
"No due" : "Не истекува",
"No upcoming cards" : "Нема престојни картици",
"upcoming cards" : "престојни картици",
"Link to a board" : "Линк до табла",
"Link to a card" : "Линк до картица",
"Something went wrong" : "Нешто не е во ред",
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");

View File

@@ -1,8 +1,91 @@
{ "translations": {
"You have created a new board {board}" : "Креиравте нова табла {board}",
"{user} has created a new board {board}" : "{user} креирање нова табла {board}",
"You have deleted the board {board}" : "Избришавте табла {board}",
"{user} has deleted the board {board}" : "{user} избриша табла {board}",
"You have restored the board {board}" : "Вративте табла {board}",
"{user} has restored the board {board}" : "{user} врати табла {board}",
"You have shared the board {board} with {acl}" : "Ја споделивте таблата {board} со {acl}",
"{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}",
"{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}",
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
"{user} has unarchived the board {before}" : "{user} ја врати од архива таблата {before}",
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
"{user} has created card {card} in list {stack} on board {board}" : "{user} креираше картица {card} во листата {stack} на таблата {board}",
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
"{user} has updated the description of the card {card} in list {stack} on board {board}" : "{user} го ажурираше описот на картицата {card} во листата {stack} на таблата {board}",
"You have archived card {card} in list {stack} on board {board}" : "Ја архивиравте картицата {card} во листата {stack} на таблата {board}",
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
"{user} has set the due date of card {card} to {after}" : "{user} постави датум на истекување на картицата {card}",
"You have updated the due date of card {card} to {after}" : "Го ажуриравте датумот на истекување на картицата {card} до {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} го ажурираше датумот на истекување на картицата {card} до {after}",
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "Додадовте ознака {label} на картицата {card} во листата {stack} на таблата {board}",
"{user} has added the tag {label} to card {card} in list {stack} on board {board}" : "{user} додаде ознака {label} на картицата {card} во листата {stack} на таблата {board}",
"You have removed the tag {label} from card {card} in list {stack} on board {board}" : "Ја избришавте ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
"{user} has removed the tag {label} from card {card} in list {stack} on board {board}" : "{user} ја избриша ознаката {label} од картицата {card} во листата {stack} на таблата {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Го додадовте {assigneduser} во картицата {card} на таблата {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} го додада {assigneduser} во картицата {card} на таблата {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Го отстранивте {assigneduser} од картицата {card} на таблата {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} го отстрани {assigneduser} од картицата {card} на таблата {board}",
"You have moved the card {card} from list {stackBefore} to {stack}" : "Ја преместивте картицата {card} од листата {stackBefore} во {stack}",
"{user} has moved the card {card} from list {stackBefore} to {stack}" : "{user} ја премести картицата {card} од листата {stackBefore} во {stack}",
"You have added the attachment {attachment} to card {card}" : "Додадовте прилог {attachment} на картицата {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} додадте прилог {attachment} на картицата {card}",
"You have updated the attachment {attachment} on card {card}" : "Го ажуриравте прилогот {attachment} на картицата {card}",
"{user} has updated the attachment {attachment} on card {card}" : "{user} го ажурираше прилогот {attachment} на картицата {card}",
"You have deleted the attachment {attachment} from card {card}" : "Го избришавте прилогот {attachment} од картицата {card}",
"{user} has deleted the attachment {attachment} from card {card}" : "{user} го избриша прилогот {attachment} од картицата {card}",
"You have restored the attachment {attachment} to card {card}" : "Го вративте прилогот {attachment} на картицата {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} го врати прилогот {attachment} на картицата {card}",
"You have commented on card {card}" : "Коментиравте на картицата {card}",
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Описот на картицата</strong> во апликацијата Deck е изменет",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
"Upcoming cards" : "Престојни картици",
"Personal" : "Лично",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} ти ја додели картицата \"%s\" на \"%s\".",
"The card \"%s\" on \"%s\" has reached its due date." : "Картицата \"%s\" на \"%s\" го достигна датумот на истекување.",
"%s has mentioned you in a comment on \"%s\"." : "%s те спомна во коментар на \"%s\".",
"{user} has mentioned you in a comment on \"%s\"." : "{user} те спомна во коментар на \"%s\".",
"The board \"%s\" has been shared with you by %s." : "Таблата \"%s\" ја сподли со тебе %s.",
"{user} has shared the board %s with you." : "{user} ја сподели таблата %s со тебе.",
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
"Finished" : "Завршено",
"To review" : "На ревизија",
"Action needed" : "Потребна е акција",
"Later" : "Покасно",
"copy" : "копирај",
"To do" : "За работење",
"Doing" : "Се работи",
"Done" : "Готово",
"Example Task 3" : "Пример задача 3",
"Example Task 2" : "Пример задача 2",
"Example Task 1" : "Пример задача 1",
"The file was uploaded" : "Датотеката е прикачена",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
@@ -11,36 +94,161 @@
"Missing a temporary folder" : "Недостасува привремена папка",
"Could not write file to disk" : "Неможе да се запишува на дискот",
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
"Card details" : "Детали за картица",
"Add board" : "Додади табла",
"Select the board to link to a project" : "Избери табла за поврзување со проект",
"Search by board title" : "Барај по име на табла",
"Select board" : "Избери табла",
"Select the card to link to a project" : "Избери картица за поврзување со проект",
"Select a board" : "Избери табла",
"Select a card" : "Избери картица",
"Link to card" : "Линк до картица",
"Cancel" : "Откажи",
"File already exists" : "Датотека веќе постои",
"A file with the name {filename} already exists." : "Датотека со име {filename} веќе постои.",
"Do you want to overwrite it?" : "Дали сакате да го пребришете?",
"Overwrite file" : "Пребриши датотека",
"Keep existing file" : "Зачувај ја постоечката датотека",
"This board is read only" : "Оваа табла е само за читање",
"Drop your files to upload" : "Повлечи датотеки за да прикачите",
"Archived cards" : "Архивирани картици",
"Add list" : "Додади листа",
"List name" : "Име на листа",
"Apply filter" : "Додади филтер",
"Filter by tag" : "Филтрирај по ознака",
"Filter by assigned user" : "Филтрирај по назначени корисници",
"Unassigned" : "Неназначени",
"Filter by due date" : "Филтрирај по краен рок",
"Overdue" : "Заостанати",
"Next 24 hours" : "Следни 24 часа",
"Next 7 days" : "Следни 7 дена",
"Next 30 days" : "Следни 30 дена",
"No due date" : "Нема краен рок",
"Clear filter" : "Исчисти филтри",
"Hide archived cards" : "Сокриј ги архивираните картици",
"Show archived cards" : "Прикажи ги архивираните картици",
"Toggle compact mode" : "Вклучи компактен мод",
"Details" : "Детали",
"Loading board" : "Вчирување на табла",
"No lists available" : "Нема достапни листи",
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
"Board not found" : "Таблата не е пронајдена",
"Sharing" : "Споделување",
"Tags" : "Ознаки",
"Deleted items" : "Избришани работи",
"Timeline" : "Времеплов",
"Deleted lists" : "Избришани листи",
"Undo" : "Врати",
"Deleted cards" : "Избришани картици",
"Share board with a user, group or circle …" : "Сподели табла со корисник, група или круг ...",
"Searching for users, groups and circles …" : "Пребарување на корисници, групи или кругови ...",
"No participants found" : "Не се пронајдени учесници",
"Board owner" : "Сопственик на таблата",
"(Group)" : "(Група)",
"(Circle)" : "(Круг)",
"Can edit" : "Може да се уредува",
"Can share" : "Can share",
"Can manage" : "Може да ја менаџира",
"Delete" : "Избриши",
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
"Add a new list" : "Додади нова листа",
"Archive all cards" : "Архивирај ги сите картици",
"Delete list" : "Избриши листа",
"Add card" : "Додади картица",
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
"Add a new card" : "Додади нова картица",
"Card name" : "Име на картицата",
"List deleted" : "Листата е избришана",
"Edit" : "Уреди",
"Add a new tag" : "Додади нова ознака",
"title and color value must be provided" : "наслов и боја мора да се приложи",
"Title" : "Наслов",
"Members" : "Членови",
"Upload attachment" : "Прикачи прилог",
"Add this attachment" : "Додади го овој прилог",
"Delete Attachment" : "Избриши прилог",
"Restore Attachment" : "Врати прилог",
"Open in sidebar view" : "Отвори страничен поглед",
"Open in bigger view" : "Отвори на голем екран",
"Attachments" : "Прилози",
"Comments" : "Коментари",
"Modified" : "Изменето",
"Created" : "Креирано",
"The title cannot be empty." : "Насловот неможе да биде празен.",
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
"Assign to users" : "Додели на корисници",
"Assign to users/groups/circles" : "Додели на корисници/групи/кругови",
"Assign a user to this card…" : "Додели корисник на оваа картица...",
"Due date" : "До датум",
"Set a due date" : "Постави краен рок",
"Remove due date" : "Отстрани краен рок",
"Select Date" : "Избери датум",
"Save" : "Зачувај",
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
"In reply to" : "Како одговор на",
"Reply" : "Одговор",
"Update" : "Ажурирај",
"Description" : "Опис",
"(Unsaved)" : "(Незачувано)",
"(Saving…)" : "(Снимање…)",
"Formatting help" : "Помош за форматирање",
"Edit description" : "Измени опис",
"View description" : "Види опис",
"Add Attachment" : "Додади прилог",
"Write a description …" : "Напиши опис ...",
"Choose attachment" : "Избери прилог",
"(group)" : "(group)",
"(circle)" : "(круг)",
"Assign to me" : "Доделени мене",
"Unassign myself" : "Откажи се",
"Move card" : "Премести картица",
"Unarchive card" : "Врати картица од архива",
"Archive card" : "Архивирај картица",
"Delete card" : "Избриши картица",
"Move card to another board" : "Премести ја картицата на друга табла",
"Select a list" : "Избери листа",
"Card deleted" : "Картицата е избришана",
"seconds ago" : "пред неколку секунди",
"All boards" : "Сите табли",
"Archived boards" : "Архивирани табли",
"Shared with you" : "Споделено со тебе",
"Use modal card view" : "Користи модуларен преглед",
"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." : "Ограничувањето на апликацијата ќе ги блокира корисниците кој не се дел од овие групи. Корсниците ќе можат да работат на апликацијата само доколку биде споделена табла со нив.",
"Board name" : "Име на табла",
"Board details" : "Детали за таблата",
"Edit board" : "Измени табла",
"Clone board" : "Клонирај табла",
"Unarchive board" : "Врати табла од архива",
"Archive board" : "Архивирај табла",
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
"Due date reminders" : "Потсетници за крајните рокови",
"All cards" : "Сите картици",
"Assigned cards" : "Доделени картици",
"No notifications" : "Нема известувања",
"Delete board" : "Избриши табла",
"Board {0} deleted" : "Таблата {0} е избришана",
"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." : "Дали сте сигурени дека сакате да ја избришете оваа табла {title}? Ова ќе ги избрише и сите податоци на таблата.",
"Delete the board?" : "Бришење на таблата?",
"Loading filtered view" : "Вчитување на филтриран поглед",
"Today" : "Денес",
"Tomorrow" : "Утре",
"This week" : "Оваа недела"
"This week" : "Оваа недела",
"No due" : "Не истекува",
"No upcoming cards" : "Нема престојни картици",
"upcoming cards" : "престојни картици",
"Link to a board" : "Линк до табла",
"Link to a card" : "Линк до картица",
"Something went wrong" : "Нешто не е во ред",
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
}

View File

@@ -202,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Bewerk beschrijving",
"View description" : "Bekijk beschrijving",
"Add Attachment" : "Toevoegen bijlage",
"Write a description …" : "Voeg een beschrijving toe ...",
"Choose attachment" : "Kies bijlage",
"(group)" : "(groep)",
"(circle)" : "(kring)",
@@ -236,7 +237,7 @@ OC.L10N.register(
"No notifications" : "Geen meldingen",
"Delete board" : "Verwijder bord",
"Board {0} deleted" : "Bord {0} verwijderd",
"Only assigned cards" : "Enkel toegewezen kaarten",
"Only assigned cards" : "Uitsluitend toegewezen kaarten",
"No reminder" : "Geen herinnering",
"An error occurred" : "Er is een fout opgetreden",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Weet je zeker dat je bord {title} met wilt verwijderen? Dit verwijderd alle informatie van dit bord.",
@@ -251,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Verbind met een bord",
"Link to a card" : "Koppel met een kaart",
"Something went wrong" : "Er ging iets verkeerd",
"Failed to upload {name}" : "Kon {name} niet uploaden",
"Maximum file size of {size} exceeded" : "Maximale bestandsomvang van {size} overschreden"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -200,6 +200,7 @@
"Edit description" : "Bewerk beschrijving",
"View description" : "Bekijk beschrijving",
"Add Attachment" : "Toevoegen bijlage",
"Write a description …" : "Voeg een beschrijving toe ...",
"Choose attachment" : "Kies bijlage",
"(group)" : "(groep)",
"(circle)" : "(kring)",
@@ -234,7 +235,7 @@
"No notifications" : "Geen meldingen",
"Delete board" : "Verwijder bord",
"Board {0} deleted" : "Bord {0} verwijderd",
"Only assigned cards" : "Enkel toegewezen kaarten",
"Only assigned cards" : "Uitsluitend toegewezen kaarten",
"No reminder" : "Geen herinnering",
"An error occurred" : "Er is een fout opgetreden",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Weet je zeker dat je bord {title} met wilt verwijderen? Dit verwijderd alle informatie van dit bord.",
@@ -249,6 +250,7 @@
"Link to a board" : "Verbind met een bord",
"Link to a card" : "Koppel met een kaart",
"Something went wrong" : "Er ging iets verkeerd",
"Failed to upload {name}" : "Kon {name} niet uploaden",
"Maximum file size of {size} exceeded" : "Maximale bestandsomvang van {size} overschreden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -252,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Link do tablicy",
"Link to a card" : "Link do karty",
"Something went wrong" : "Coś poszło nie tak",
"Failed to upload {name}" : "Nie udało się wysłać {name}",
"Maximum file size of {size} exceeded" : "Przekroczono maksymalny rozmiar pliku {size}"
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");

View File

@@ -250,6 +250,7 @@
"Link to a board" : "Link do tablicy",
"Link to a card" : "Link do karty",
"Something went wrong" : "Coś poszło nie tak",
"Failed to upload {name}" : "Nie udało się wysłać {name}",
"Maximum file size of {size} exceeded" : "Przekroczono maksymalny rozmiar pliku {size}"
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
}

View File

@@ -67,7 +67,7 @@ OC.L10N.register(
"Deck" : "Карточки",
"Changes in the <strong>Deck app</strong>" : "Изменения в <strong>приложении Карточки</strong>",
"A <strong>comment</strong> was created on a card" : "Добавлен <strong>комментарий</strong> к карточке",
"Upcoming cards" : "Ожидающие выполнения карточки",
"Upcoming cards" : "Ожидающие выполнения",
"Personal" : "Личное",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} назначил Вам карточку «%s» из «%s».",
@@ -146,6 +146,8 @@ OC.L10N.register(
"Undo" : "Отменить",
"Deleted cards" : "Карточки в корзине",
"Share board with a user, group or circle …" : "Поделиться с пользователями, группами или кругами…",
"Searching for users, groups and circles …" : "Поиск пользователей, групп или кругов...",
"No participants found" : "Не удалось найти ни одного участника",
"Board owner" : "Владелец доски",
"(Group)" : "(Группа)",
"(Circle)" : "(Круг)",
@@ -153,6 +155,7 @@ OC.L10N.register(
"Can share" : "Разрешить делиться с другими",
"Can manage" : "Разрешить изменять",
"Delete" : "Удалить",
"Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}",
"Add a new list" : "Создать список",
"Archive all cards" : "Переместить все карточки в архив",
"Delete list" : "Удалить список",
@@ -199,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Редактировать описание",
"View description" : "Просмотреть описание",
"Add Attachment" : "Добавить вложение",
"Write a description …" : "Добавьте описание...",
"Choose attachment" : "Выберите вложение",
"(group)" : "(группа)",
"(circle)" : "(круг)",
@@ -222,7 +226,19 @@ OC.L10N.register(
"Board name" : "Название доски",
"Board details" : "Свойства доски",
"Edit board" : "Редактировать",
"Clone board" : "Скопировать доску",
"Unarchive board" : "Восстановить доску из архива",
"Archive board" : "Переместить доску в архив",
"Turn on due date reminders" : "Включить напоминания о сроке выполнения",
"Turn off due date reminders" : "Отключить напоминания о сроке выполнения",
"Due date reminders" : "Напоминания о сроке выполнения",
"All cards" : "Для всех карточек",
"Assigned cards" : "Назначенные карточки",
"No notifications" : "Без уведомлений",
"Delete board" : "Удалить доску",
"Board {0} deleted" : "Доска {0} удалена",
"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." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске.",
"Delete the board?" : "Удалить доску?",

View File

@@ -65,7 +65,7 @@
"Deck" : "Карточки",
"Changes in the <strong>Deck app</strong>" : "Изменения в <strong>приложении Карточки</strong>",
"A <strong>comment</strong> was created on a card" : "Добавлен <strong>комментарий</strong> к карточке",
"Upcoming cards" : "Ожидающие выполнения карточки",
"Upcoming cards" : "Ожидающие выполнения",
"Personal" : "Личное",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Вам назначена карточка «%s» с рабочей доски «%s» пользователем %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} назначил Вам карточку «%s» из «%s».",
@@ -144,6 +144,8 @@
"Undo" : "Отменить",
"Deleted cards" : "Карточки в корзине",
"Share board with a user, group or circle …" : "Поделиться с пользователями, группами или кругами…",
"Searching for users, groups and circles …" : "Поиск пользователей, групп или кругов...",
"No participants found" : "Не удалось найти ни одного участника",
"Board owner" : "Владелец доски",
"(Group)" : "(Группа)",
"(Circle)" : "(Круг)",
@@ -151,6 +153,7 @@
"Can share" : "Разрешить делиться с другими",
"Can manage" : "Разрешить изменять",
"Delete" : "Удалить",
"Failed to create share with {displayName}" : "Не удалось предоставить общий доступ для {displayName}",
"Add a new list" : "Создать список",
"Archive all cards" : "Переместить все карточки в архив",
"Delete list" : "Удалить список",
@@ -197,6 +200,7 @@
"Edit description" : "Редактировать описание",
"View description" : "Просмотреть описание",
"Add Attachment" : "Добавить вложение",
"Write a description …" : "Добавьте описание...",
"Choose attachment" : "Выберите вложение",
"(group)" : "(группа)",
"(circle)" : "(круг)",
@@ -220,7 +224,19 @@
"Board name" : "Название доски",
"Board details" : "Свойства доски",
"Edit board" : "Редактировать",
"Clone board" : "Скопировать доску",
"Unarchive board" : "Восстановить доску из архива",
"Archive board" : "Переместить доску в архив",
"Turn on due date reminders" : "Включить напоминания о сроке выполнения",
"Turn off due date reminders" : "Отключить напоминания о сроке выполнения",
"Due date reminders" : "Напоминания о сроке выполнения",
"All cards" : "Для всех карточек",
"Assigned cards" : "Назначенные карточки",
"No notifications" : "Без уведомлений",
"Delete board" : "Удалить доску",
"Board {0} deleted" : "Доска {0} удалена",
"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." : "Подтвердите удаление доски «{title}»; это действие приведёт к удалению также все данных, принадлежащих этой доске.",
"Delete the board?" : "Удалить доску?",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Deck" : "Nástenka",
"Changes in the <strong>Deck app</strong>" : "Zmeny v apke <strong>Nástenka</strong>",
"A <strong>comment</strong> was created on a card" : "Na karte bol vytvorený <strong>komentár</strong>. ",
"Upcoming cards" : "Nadchádzajúce karty",
"Personal" : "Osobné",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Používateľ %s vám priradil kartu „%s“ na „%s“.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "Používateľ {user} vám priradil kartu „%s“ na „%s“.",
@@ -145,6 +146,8 @@ OC.L10N.register(
"Undo" : "Odvolať",
"Deleted cards" : "Odstránené karty",
"Share board with a user, group or circle …" : "Zdieľanie nástenky s použivateľom, skupinou alebo okruhom…",
"Searching for users, groups and circles …" : "Vyhľadávanie v používateľoch, skupinách a kruhoch...",
"No participants found" : "Nenašli sa žiadni účastníci",
"Board owner" : "Vlastník nástenky",
"(Group)" : "(Skupina)",
"(Circle)" : "(Okruh)",
@@ -152,12 +155,15 @@ OC.L10N.register(
"Can share" : "Môže sprístupniť",
"Can manage" : "Môže spravovať",
"Delete" : "Zmazať",
"Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť sprístupnenie pre {displayName}",
"Add a new list" : "Pridať nový zoznam",
"Archive all cards" : "Archivovať všetky karty",
"Delete list" : "Vymazať zoznam",
"Add card" : "Pridať kartu",
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
"Add a new card" : "Pridať novú kartu",
"Card name" : "Názov karty",
"List deleted" : "Zoznam bol vymazaný",
"Edit" : "Upraviť",
"Add a new tag" : "Pridať nový štítok",
"title and color value must be provided" : "je potrebné zadať nadpis a vybrať farbu",
@@ -167,10 +173,13 @@ OC.L10N.register(
"Add this attachment" : "Pridať túto prílohu",
"Delete Attachment" : "Odstrániť prílohu",
"Restore Attachment" : "Obnoviť prílohu",
"Open in sidebar view" : "Otvoriť v zobrazení v bočnom paneli",
"Open in bigger view" : "Otvoriť vo väčšom zobrazení",
"Attachments" : "Prílohy",
"Comments" : "Komentáre",
"Modified" : "Upravené",
"Created" : "Vytvorené",
"The title cannot be empty." : "Nadpis nemôže byť prázdny.",
"No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!",
"Assign a tag to this card…" : "Tejto karte priradiť štítok…",
"Assign to users" : "Priradiť používateľom",
@@ -193,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Upraviť popis",
"View description" : "Zobraziť popis",
"Add Attachment" : "Pridať prílohu",
"Write a description …" : "Napíšte popis...",
"Choose attachment" : "Vybrať prílohu",
"(group)" : "(skupina)",
"(circle)" : "(okruh)",
@@ -204,21 +214,41 @@ OC.L10N.register(
"Delete card" : "Zmazať kartu",
"Move card to another board" : "Presunúť kartu na inú nástenku",
"Select a list" : "Vybrať zoznam",
"Card deleted" : "Karta bola vymazaná",
"seconds ago" : "pred niekoľkými sekundami",
"All boards" : "Všetky nástenky",
"Archived boards" : "Archivované nástenky",
"Shared with you" : "Vám sprístupnené",
"Use modal card view" : "Použiť modálne zobrazenie 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í.",
"Board name" : "Názov nástenky",
"Board details" : "Podrobnosti o nástenke",
"Edit board" : "Upraviť nástenku",
"Clone board" : "Duplikovať nástenku",
"Unarchive board" : "Zrušiť archiváciu nástenky",
"Archive board" : "Archivovať nástenku",
"Turn on due date reminders" : "Zapnúť pripomienky na termín dokončenia",
"Turn off due date reminders" : "Vypnúť pripomienky na termín dokončenia",
"Due date reminders" : "Pripomienky termínu dokončenia",
"All cards" : "Všetky karty",
"Assigned cards" : "Priradené karty",
"No notifications" : "Žiadne upozornenia",
"Delete board" : "Vymazať nástenku",
"Board {0} deleted" : "Nástenka {0} vymazaná",
"Only assigned cards" : "Len priradené karty",
"No reminder" : "Žiadna pripomienka",
"An error occurred" : "Vyskytla sa chyba",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Naozaj chcete chcete vymazať nástenku {title}? Toto zmaže všetky údaje o tejto nástenke.",
"Delete the board?" : "Vymazať nástenku?",
"Loading filtered view" : "Načítavanie filtrovaného pohľadu",
"Today" : "Dnes",
"Tomorrow" : "Zajtra",
"This week" : "Tento týždeň",
"No due" : "Žiadny termín dokončenia",
"No upcoming cards" : "Žiadne nadchádzajúce karty",
"upcoming cards" : "nadchádzajúce karty",
"Link to a board" : "Odkaz na nástenku",
"Link to a card" : "Prepojiť s kartou",
"Something went wrong" : "Niečo sa pokazilo",

View File

@@ -65,6 +65,7 @@
"Deck" : "Nástenka",
"Changes in the <strong>Deck app</strong>" : "Zmeny v apke <strong>Nástenka</strong>",
"A <strong>comment</strong> was created on a card" : "Na karte bol vytvorený <strong>komentár</strong>. ",
"Upcoming cards" : "Nadchádzajúce karty",
"Personal" : "Osobné",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Používateľ %s vám priradil kartu „%s“ na „%s“.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "Používateľ {user} vám priradil kartu „%s“ na „%s“.",
@@ -143,6 +144,8 @@
"Undo" : "Odvolať",
"Deleted cards" : "Odstránené karty",
"Share board with a user, group or circle …" : "Zdieľanie nástenky s použivateľom, skupinou alebo okruhom…",
"Searching for users, groups and circles …" : "Vyhľadávanie v používateľoch, skupinách a kruhoch...",
"No participants found" : "Nenašli sa žiadni účastníci",
"Board owner" : "Vlastník nástenky",
"(Group)" : "(Skupina)",
"(Circle)" : "(Okruh)",
@@ -150,12 +153,15 @@
"Can share" : "Môže sprístupniť",
"Can manage" : "Môže spravovať",
"Delete" : "Zmazať",
"Failed to create share with {displayName}" : "Nepodarilo sa vytvoriť sprístupnenie pre {displayName}",
"Add a new list" : "Pridať nový zoznam",
"Archive all cards" : "Archivovať všetky karty",
"Delete list" : "Vymazať zoznam",
"Add card" : "Pridať kartu",
"Archive all cards in this list" : "Archivovať všetky karty v tomto zozname",
"Add a new card" : "Pridať novú kartu",
"Card name" : "Názov karty",
"List deleted" : "Zoznam bol vymazaný",
"Edit" : "Upraviť",
"Add a new tag" : "Pridať nový štítok",
"title and color value must be provided" : "je potrebné zadať nadpis a vybrať farbu",
@@ -165,10 +171,13 @@
"Add this attachment" : "Pridať túto prílohu",
"Delete Attachment" : "Odstrániť prílohu",
"Restore Attachment" : "Obnoviť prílohu",
"Open in sidebar view" : "Otvoriť v zobrazení v bočnom paneli",
"Open in bigger view" : "Otvoriť vo väčšom zobrazení",
"Attachments" : "Prílohy",
"Comments" : "Komentáre",
"Modified" : "Upravené",
"Created" : "Vytvorené",
"The title cannot be empty." : "Nadpis nemôže byť prázdny.",
"No comments yet. Begin the discussion!" : "Zatiaľ bez komentárov. Začnite diskusiu!",
"Assign a tag to this card…" : "Tejto karte priradiť štítok…",
"Assign to users" : "Priradiť používateľom",
@@ -191,6 +200,7 @@
"Edit description" : "Upraviť popis",
"View description" : "Zobraziť popis",
"Add Attachment" : "Pridať prílohu",
"Write a description …" : "Napíšte popis...",
"Choose attachment" : "Vybrať prílohu",
"(group)" : "(skupina)",
"(circle)" : "(okruh)",
@@ -202,21 +212,41 @@
"Delete card" : "Zmazať kartu",
"Move card to another board" : "Presunúť kartu na inú nástenku",
"Select a list" : "Vybrať zoznam",
"Card deleted" : "Karta bola vymazaná",
"seconds ago" : "pred niekoľkými sekundami",
"All boards" : "Všetky nástenky",
"Archived boards" : "Archivované nástenky",
"Shared with you" : "Vám sprístupnené",
"Use modal card view" : "Použiť modálne zobrazenie 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í.",
"Board name" : "Názov nástenky",
"Board details" : "Podrobnosti o nástenke",
"Edit board" : "Upraviť nástenku",
"Clone board" : "Duplikovať nástenku",
"Unarchive board" : "Zrušiť archiváciu nástenky",
"Archive board" : "Archivovať nástenku",
"Turn on due date reminders" : "Zapnúť pripomienky na termín dokončenia",
"Turn off due date reminders" : "Vypnúť pripomienky na termín dokončenia",
"Due date reminders" : "Pripomienky termínu dokončenia",
"All cards" : "Všetky karty",
"Assigned cards" : "Priradené karty",
"No notifications" : "Žiadne upozornenia",
"Delete board" : "Vymazať nástenku",
"Board {0} deleted" : "Nástenka {0} vymazaná",
"Only assigned cards" : "Len priradené karty",
"No reminder" : "Žiadna pripomienka",
"An error occurred" : "Vyskytla sa chyba",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Naozaj chcete chcete vymazať nástenku {title}? Toto zmaže všetky údaje o tejto nástenke.",
"Delete the board?" : "Vymazať nástenku?",
"Loading filtered view" : "Načítavanie filtrovaného pohľadu",
"Today" : "Dnes",
"Tomorrow" : "Zajtra",
"This week" : "Tento týždeň",
"No due" : "Žiadny termín dokončenia",
"No upcoming cards" : "Žiadne nadchádzajúce karty",
"upcoming cards" : "nadchádzajúce karty",
"Link to a board" : "Odkaz na nástenku",
"Link to a card" : "Prepojiť s kartou",
"Something went wrong" : "Niečo sa pokazilo",

View File

@@ -146,6 +146,7 @@ OC.L10N.register(
"Undo" : "Razveljavi",
"Deleted cards" : "Izbrisane naloge",
"Share board with a user, group or circle …" : "Souporaba z uporabniki, skupinami ali krogi ...",
"Searching for users, groups and circles …" : "Iskanje uporabnikov, skupin in krogov ...",
"No participants found" : "Ni zaznanih udeleženev",
"Board owner" : "Lastnik zbirke",
"(Group)" : "(Skupina)",
@@ -201,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Uredi opis",
"View description" : "Pokaži opis",
"Add Attachment" : "Dodaj prilogo",
"Write a description …" : "Vpišite opis ...",
"Choose attachment" : "Izbor priloge",
"(group)" : "(skupina)",
"(circle)" : "(krog)",
@@ -224,7 +226,19 @@ OC.L10N.register(
"Board name" : "Ime zbirke",
"Board details" : "Podrobnosti zbirke",
"Edit board" : "Uredi zbirko",
"Clone board" : "Kloniraj zbirko",
"Unarchive board" : "Povrni zbirko",
"Archive board" : "Arhiviraj zbirko",
"Turn on due date reminders" : "Omogoči opomnike o datumu zapadlosti ",
"Turn off due date reminders" : "Onemogoči opomnike o datumu zapadlosti",
"Due date reminders" : "Opomniki o datumu zapadlosti",
"All cards" : "Vse naloge",
"Assigned cards" : "Dodeljene naloge",
"No notifications" : "Ni obvestil",
"Delete board" : "Izbriši zbirko",
"Board {0} deleted" : "Zbirka {0} je izbrisana",
"Only assigned cards" : "Le dodeljene naloge",
"No reminder" : "Ni vpisanih opomnikov",
"An error occurred" : "Prišlo je do napake.",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ali ste prepričani, da želite izbrisati zbirko »{title}«? S tem boste izbrisali tudi vse podatke zbirke.",
"Delete the board?" : "Ali želite izbrisati zbirko?",
@@ -238,6 +252,7 @@ OC.L10N.register(
"Link to a board" : "Povezava do zbirke",
"Link to a card" : "Povezava do naloge",
"Something went wrong" : "Prišlo je do napake ...",
"Failed to upload {name}" : "Pošiljanje {name} je spodletelo",
"Maximum file size of {size} exceeded" : "Omejitev velikosti datoteke {size} je prekoračena."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");

View File

@@ -144,6 +144,7 @@
"Undo" : "Razveljavi",
"Deleted cards" : "Izbrisane naloge",
"Share board with a user, group or circle …" : "Souporaba z uporabniki, skupinami ali krogi ...",
"Searching for users, groups and circles …" : "Iskanje uporabnikov, skupin in krogov ...",
"No participants found" : "Ni zaznanih udeleženev",
"Board owner" : "Lastnik zbirke",
"(Group)" : "(Skupina)",
@@ -199,6 +200,7 @@
"Edit description" : "Uredi opis",
"View description" : "Pokaži opis",
"Add Attachment" : "Dodaj prilogo",
"Write a description …" : "Vpišite opis ...",
"Choose attachment" : "Izbor priloge",
"(group)" : "(skupina)",
"(circle)" : "(krog)",
@@ -222,7 +224,19 @@
"Board name" : "Ime zbirke",
"Board details" : "Podrobnosti zbirke",
"Edit board" : "Uredi zbirko",
"Clone board" : "Kloniraj zbirko",
"Unarchive board" : "Povrni zbirko",
"Archive board" : "Arhiviraj zbirko",
"Turn on due date reminders" : "Omogoči opomnike o datumu zapadlosti ",
"Turn off due date reminders" : "Onemogoči opomnike o datumu zapadlosti",
"Due date reminders" : "Opomniki o datumu zapadlosti",
"All cards" : "Vse naloge",
"Assigned cards" : "Dodeljene naloge",
"No notifications" : "Ni obvestil",
"Delete board" : "Izbriši zbirko",
"Board {0} deleted" : "Zbirka {0} je izbrisana",
"Only assigned cards" : "Le dodeljene naloge",
"No reminder" : "Ni vpisanih opomnikov",
"An error occurred" : "Prišlo je do napake.",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Ali ste prepričani, da želite izbrisati zbirko »{title}«? S tem boste izbrisali tudi vse podatke zbirke.",
"Delete the board?" : "Ali želite izbrisati zbirko?",
@@ -236,6 +250,7 @@
"Link to a board" : "Povezava do zbirke",
"Link to a card" : "Povezava do naloge",
"Something went wrong" : "Prišlo je do napake ...",
"Failed to upload {name}" : "Pošiljanje {name} je spodletelo",
"Maximum file size of {size} exceeded" : "Omejitev velikosti datoteke {size} je prekoračena."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
}

View File

@@ -202,6 +202,7 @@ OC.L10N.register(
"Edit description" : "Ändra beskrivning",
"View description" : "Visa beskrivning",
"Add Attachment" : "Lägg till bilaga",
"Write a description …" : "Ange en beskrivning ...",
"Choose attachment" : "Välj bilaga",
"(group)" : " (grupp)",
"(circle)" : "(cirkel)",
@@ -225,7 +226,19 @@ OC.L10N.register(
"Board name" : "Tavlans namn",
"Board details" : "Taveldetaljer",
"Edit board" : "Ändra tavla",
"Clone board" : "Kopiera tavla",
"Unarchive board" : "Ta bort tavlan ur arkivet",
"Archive board" : "Arkivera tavla",
"Turn on due date reminders" : "Aktivera påminnelser om förfallodatum",
"Turn off due date reminders" : "Inaktivera påminnelser om förfallodatum",
"Due date reminders" : "Påminnelser om förfallodatum",
"All cards" : "Alla kort",
"Assigned cards" : "Tilldelade kort",
"No notifications" : "Inga aviseringar",
"Delete board" : "Radera tavla",
"Board {0} deleted" : "Tavla {0} raderad",
"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." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
"Delete the board?" : "Ta bort tavlan?",

View File

@@ -200,6 +200,7 @@
"Edit description" : "Ändra beskrivning",
"View description" : "Visa beskrivning",
"Add Attachment" : "Lägg till bilaga",
"Write a description …" : "Ange en beskrivning ...",
"Choose attachment" : "Välj bilaga",
"(group)" : " (grupp)",
"(circle)" : "(cirkel)",
@@ -223,7 +224,19 @@
"Board name" : "Tavlans namn",
"Board details" : "Taveldetaljer",
"Edit board" : "Ändra tavla",
"Clone board" : "Kopiera tavla",
"Unarchive board" : "Ta bort tavlan ur arkivet",
"Archive board" : "Arkivera tavla",
"Turn on due date reminders" : "Aktivera påminnelser om förfallodatum",
"Turn off due date reminders" : "Inaktivera påminnelser om förfallodatum",
"Due date reminders" : "Påminnelser om förfallodatum",
"All cards" : "Alla kort",
"Assigned cards" : "Tilldelade kort",
"No notifications" : "Inga aviseringar",
"Delete board" : "Radera tavla",
"Board {0} deleted" : "Tavla {0} raderad",
"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." : "Är du säker på att du vill radera tavla {title}? Detta kommer att radera all information från denna tavla.",
"Delete the board?" : "Ta bort tavlan?",

View File

@@ -45,6 +45,7 @@ OC.L10N.register(
"Deck" : "看板",
"Changes in the <strong>Deck app</strong>" : "<strong>看板应用</strong>中的改变",
"A <strong>comment</strong> was created on a card" : "卡片上创建了一个 <strong>评论</strong>",
"Upcoming cards" : "即将到来的卡片",
"Personal" : "个人",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "%s已给您指派\"%s\" 中的卡片\"%s\"。",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} 已给您指派\"%s\" 中的卡片\"%s\"。",
@@ -112,6 +113,8 @@ OC.L10N.register(
"Toggle compact mode" : "切换简洁模式",
"Details" : "详情",
"Loading board" : "正在加载面板",
"No lists available" : "无列表可用",
"Create a new list to add cards to this board" : "创建一个新列表来添加卡片到这个看板",
"Board not found" : "未找到面板",
"Sharing" : "正在共享",
"Tags" : "标签",
@@ -121,6 +124,7 @@ OC.L10N.register(
"Undo" : "撤消",
"Deleted cards" : "已删除卡片",
"Share board with a user, group or circle …" : "与一个用户,群组或圈子共享面板...",
"Searching for users, groups and circles …" : "正在搜索用户、群组和圈子 ......",
"No participants found" : "未找到参与者",
"Board owner" : "面板拥有者",
"(Group)" : "(群组)",
@@ -129,10 +133,15 @@ OC.L10N.register(
"Can share" : "可以共享",
"Can manage" : "可以管理",
"Delete" : "删除",
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
"Add a new list" : "添加一个新列表",
"Archive all cards" : "存档所有卡片",
"Delete list" : "删除列表",
"Add card" : "添加卡片",
"Archive all cards in this list" : "存档该列表的所有卡片",
"Add a new card" : "添加一张新卡片",
"Card name" : "卡片名",
"List deleted" : "列表被删除",
"Edit" : "编辑",
"Add a new tag" : "新增一个标签",
"title and color value must be provided" : "必须提供标题和颜色值",
@@ -142,10 +151,13 @@ OC.L10N.register(
"Add this attachment" : "添加此附件",
"Delete Attachment" : "删除附件",
"Restore Attachment" : "恢复附件",
"Open in sidebar view" : "在侧边栏视图中打开",
"Open in bigger view" : "在较大视图中打开",
"Attachments" : "附件",
"Comments" : "评论",
"Modified" : "已修改",
"Created" : "已创建",
"The title cannot be empty." : "标题不能为空",
"No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!",
"Assign a tag to this card…" : "为该卡片分配标签…",
"Assign to users" : "指派给用户",
@@ -168,33 +180,57 @@ OC.L10N.register(
"Edit description" : "编辑描述",
"View description" : "查看描述",
"Add Attachment" : "添加附件",
"Write a description …" : "写一段描述",
"Choose attachment" : "选择附件",
"(group)" : "(组)",
"(circle)" : "(圈子)",
"Assign to me" : "指派给我",
"Unassign myself" : "自己解除分配",
"Move card" : "移动卡片",
"Unarchive card" : "恢复卡片存档",
"Archive card" : "归档卡片",
"Delete card" : "删除卡片",
"Move card to another board" : "将卡片移到其他面板",
"Select a list" : "选择一个列表",
"Card deleted" : "卡片被删除",
"seconds ago" : "几秒前",
"All boards" : "全部面板",
"Archived boards" : "已归档面板",
"Shared with you" : "收到的共享",
"Use modal card view" : "使用模式卡片视图",
"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." : "非面板创建用户组的用户将不能使用受限看板。但用户仍然能够使用已共享给他们的面板工作。",
"Board name" : "看板名",
"Board details" : "面板详情",
"Edit board" : "编辑面板",
"Clone board" : "克隆看板",
"Unarchive board" : "取消对看板的存档",
"Archive board" : "存档看板",
"Turn on due date reminders" : "打开到期日期提醒 ",
"Turn off due date reminders" : "关闭到期日提醒",
"Due date reminders" : "到期日期提醒",
"All cards" : "所有卡片",
"Assigned cards" : "分配的卡片",
"No notifications" : "无通知",
"Delete board" : "删除看板",
"Board {0} deleted" : "面板{0} 被删除",
"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." : "你确定你要删除 {title}面板吗?面板内所有数据都将因此被删除。",
"Delete the board?" : "是否删除面板?",
"Loading filtered view" : "正在加载已过滤视图",
"Today" : "今天",
"Tomorrow" : "明天",
"This week" : "本周",
"No due" : "没有到期的",
"No upcoming cards" : "没有即将到来的卡片",
"upcoming cards" : "即将到来的卡片",
"Link to a board" : "链接到一个面板",
"Link to a card" : "链接到一张卡片",
"Something went wrong" : "有地方出错了",
"Failed to upload {name}" : "未能上传 {name}",
"Maximum file size of {size} exceeded" : "文件大小 {size} 超出最大限制"
},
"nplurals=1; plural=0;");

View File

@@ -43,6 +43,7 @@
"Deck" : "看板",
"Changes in the <strong>Deck app</strong>" : "<strong>看板应用</strong>中的改变",
"A <strong>comment</strong> was created on a card" : "卡片上创建了一个 <strong>评论</strong>",
"Upcoming cards" : "即将到来的卡片",
"Personal" : "个人",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "%s已给您指派\"%s\" 中的卡片\"%s\"。",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} 已给您指派\"%s\" 中的卡片\"%s\"。",
@@ -110,6 +111,8 @@
"Toggle compact mode" : "切换简洁模式",
"Details" : "详情",
"Loading board" : "正在加载面板",
"No lists available" : "无列表可用",
"Create a new list to add cards to this board" : "创建一个新列表来添加卡片到这个看板",
"Board not found" : "未找到面板",
"Sharing" : "正在共享",
"Tags" : "标签",
@@ -119,6 +122,7 @@
"Undo" : "撤消",
"Deleted cards" : "已删除卡片",
"Share board with a user, group or circle …" : "与一个用户,群组或圈子共享面板...",
"Searching for users, groups and circles …" : "正在搜索用户、群组和圈子 ......",
"No participants found" : "未找到参与者",
"Board owner" : "面板拥有者",
"(Group)" : "(群组)",
@@ -127,10 +131,15 @@
"Can share" : "可以共享",
"Can manage" : "可以管理",
"Delete" : "删除",
"Failed to create share with {displayName}" : "用 {displayName} 创建分享失败",
"Add a new list" : "添加一个新列表",
"Archive all cards" : "存档所有卡片",
"Delete list" : "删除列表",
"Add card" : "添加卡片",
"Archive all cards in this list" : "存档该列表的所有卡片",
"Add a new card" : "添加一张新卡片",
"Card name" : "卡片名",
"List deleted" : "列表被删除",
"Edit" : "编辑",
"Add a new tag" : "新增一个标签",
"title and color value must be provided" : "必须提供标题和颜色值",
@@ -140,10 +149,13 @@
"Add this attachment" : "添加此附件",
"Delete Attachment" : "删除附件",
"Restore Attachment" : "恢复附件",
"Open in sidebar view" : "在侧边栏视图中打开",
"Open in bigger view" : "在较大视图中打开",
"Attachments" : "附件",
"Comments" : "评论",
"Modified" : "已修改",
"Created" : "已创建",
"The title cannot be empty." : "标题不能为空",
"No comments yet. Begin the discussion!" : "还没有评论。 开始讨论吧!",
"Assign a tag to this card…" : "为该卡片分配标签…",
"Assign to users" : "指派给用户",
@@ -166,33 +178,57 @@
"Edit description" : "编辑描述",
"View description" : "查看描述",
"Add Attachment" : "添加附件",
"Write a description …" : "写一段描述",
"Choose attachment" : "选择附件",
"(group)" : "(组)",
"(circle)" : "(圈子)",
"Assign to me" : "指派给我",
"Unassign myself" : "自己解除分配",
"Move card" : "移动卡片",
"Unarchive card" : "恢复卡片存档",
"Archive card" : "归档卡片",
"Delete card" : "删除卡片",
"Move card to another board" : "将卡片移到其他面板",
"Select a list" : "选择一个列表",
"Card deleted" : "卡片被删除",
"seconds ago" : "几秒前",
"All boards" : "全部面板",
"Archived boards" : "已归档面板",
"Shared with you" : "收到的共享",
"Use modal card view" : "使用模式卡片视图",
"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." : "非面板创建用户组的用户将不能使用受限看板。但用户仍然能够使用已共享给他们的面板工作。",
"Board name" : "看板名",
"Board details" : "面板详情",
"Edit board" : "编辑面板",
"Clone board" : "克隆看板",
"Unarchive board" : "取消对看板的存档",
"Archive board" : "存档看板",
"Turn on due date reminders" : "打开到期日期提醒 ",
"Turn off due date reminders" : "关闭到期日提醒",
"Due date reminders" : "到期日期提醒",
"All cards" : "所有卡片",
"Assigned cards" : "分配的卡片",
"No notifications" : "无通知",
"Delete board" : "删除看板",
"Board {0} deleted" : "面板{0} 被删除",
"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." : "你确定你要删除 {title}面板吗?面板内所有数据都将因此被删除。",
"Delete the board?" : "是否删除面板?",
"Loading filtered view" : "正在加载已过滤视图",
"Today" : "今天",
"Tomorrow" : "明天",
"This week" : "本周",
"No due" : "没有到期的",
"No upcoming cards" : "没有即将到来的卡片",
"upcoming cards" : "即将到来的卡片",
"Link to a board" : "链接到一个面板",
"Link to a card" : "链接到一张卡片",
"Something went wrong" : "有地方出错了",
"Failed to upload {name}" : "未能上传 {name}",
"Maximum file size of {size} exceeded" : "文件大小 {size} 超出最大限制"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -25,7 +25,6 @@
namespace OCA\Deck\Activity;
use cogpowered\FineDiff\Diff;
use OCA\Deck\Db\Acl;
use OCP\Activity\IEvent;
use OCP\Activity\IProvider;
@@ -290,7 +289,7 @@ class DeckProvider implements IProvider {
try {
$comment = $this->commentsManager->get((int)$subjectParams['comment']);
$event->setParsedMessage($comment->getMessage());
$params['comment'] =[
$params['comment'] = [
'type' => 'highlight',
'id' => $subjectParams['comment'],
'name' => $comment->getMessage()
@@ -326,11 +325,9 @@ class DeckProvider implements IProvider {
* @return mixed
*/
private function parseParamForChanges($subjectParams, $params, $event) {
if (array_key_exists('diff', $subjectParams) && $subjectParams['diff']) {
$diff = new Diff();
if (array_key_exists('diff', $subjectParams) && $subjectParams['diff'] && !empty($subjectParams['after'])) {
// Don't add diff as message since we are limited to 255 chars here
$event->setParsedMessage($subjectParams['after']);
//$event->setParsedMessage('<pre class="visualdiff">' . $diff->render($subjectParams['before'], $subjectParams['after']) . '</pre>');
return $params;
}
if (array_key_exists('before', $subjectParams)) {

View File

@@ -133,7 +133,7 @@ class Application20 extends App implements IBootstrap {
}
// delete existing user assignments
$assignmentMapper = $container->query(AssignmentMapper::class);
$assignments = $assignmentMapper->findByUserId($user->getUID());
$assignments = $assignmentMapper->findByParticipant($user->getUID());
foreach ($assignments as $assignment) {
$assignmentMapper->delete($assignment);
}
@@ -214,7 +214,7 @@ class Application20 extends App implements IBootstrap {
}
);
$eventDispatcher->addListener(
'\OCA\Deck\Board::onShareNew', function (Event $e) {
'\OCA\Deck\Board::onShareNew', function (Event $e) use ($server) {
$fullTextSearchService = $server->get(FullTextSearchService::class);
$fullTextSearchService->onBoardShares($e);
}

View File

@@ -114,7 +114,7 @@ class ApplicationLegacy extends App {
}
// delete existing user assignments
$assignmentMapper = $container->query(AssignmentMapper::class);
$assignments = $assignmentMapper->findByUserId($user->getUID());
$assignments = $assignmentMapper->findByParticipant($user->getUID());
foreach ($assignments as $assignment) {
$assignmentMapper->delete($assignment);
}

View File

@@ -36,7 +36,7 @@ class CardDescriptionActivity extends Job {
private $cardMapper;
public function __construct(ActivityManager $activityManager, CardMapper $cardMapper) {
$this->activityManager = $activityManager;
$this->activityManager = $activityManager;
$this->cardMapper = $cardMapper;
}

View File

@@ -204,7 +204,7 @@ class Calendar extends ExternalCalendar {
public function getProperties($properties) {
return [
'{DAV:}displayname' => 'Deck: ' . ($this->board ? $this->board->getTitle() : 'no board object provided'),
'{http://apple.com/ns/ical/}calendar-color' => '#' . $this->board->getColor(),
'{http://apple.com/ns/ical/}calendar-color' => '#' . $this->board->getColor(),
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VTODO']),
];
}

View File

@@ -91,7 +91,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
* Check if user exists before assigning it to a card
*
* @param Entity $entity
* @return null|Assignment
* @return Assignment
* @throws NotFoundException
*/
public function insert(Entity $entity): Entity {

View File

@@ -215,6 +215,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
->andWhere($qb->expr()->isNotNull('c.duedate'))
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
@@ -233,6 +234,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
// Filter out archived/deleted cards and board
->andWhere($qb->expr()->eq('c.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('b.archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
->andWhere($qb->expr()->eq('b.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
@@ -261,6 +263,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
public function search($boardIds, $term, $limit = null, $offset = null) {
$qb = $this->queryCardsByBoards($boardIds);
$qb->andWhere($qb->expr()->eq('c.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
$qb->andWhere($qb->expr()->eq('s.deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)));
$qb->andWhere(
$qb->expr()->orX(
$qb->expr()->iLike('c.title', $qb->createNamedParameter('%' . $this->db->escapeLikeParameter($term) . '%')),

View File

@@ -49,7 +49,7 @@ class ChangeHelper {
$time = time();
$etag = md5($time . microtime());
$this->cache->set(self::TYPE_BOARD . '-' . $boardId, $etag);
$sql = 'UPDATE `*PREFIX*deck_boards` SET `last_modified` = ? WHERE `id` = ?';
$sql = 'UPDATE `*PREFIX*deck_boards` SET `last_modified` = ? WHERE `id` = ?';
$this->db->executeUpdate($sql, [$time, $boardId]);
}

View File

@@ -39,9 +39,8 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
/**
* @param $id
* @return \OCP\AppFramework\Db\Entity if not found
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
* @throws \OCP\AppFramework\Db\DoesNotExistException
* @throws MultipleObjectsReturnedException
* @throws DoesNotExistException
*/
public function find($id): Stack {
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` ' .

View File

@@ -128,10 +128,8 @@ class DeckProvider implements IFullTextSearchProvider {
}
/**
* @return ISearchTemplate
*/
public function getSearchTemplate(): ISearchTemplate {
/** @psalm-var ISearchTemplate */
$template = new SearchTemplate('icon-deck', 'icons');
return $template;
@@ -204,6 +202,7 @@ class DeckProvider implements IFullTextSearchProvider {
* @throws MultipleObjectsReturnedException
*/
public function updateDocument(IIndex $index): IIndexDocument {
/** @psalm-var IIndexDocument */
$document = new IndexDocument(DeckProvider::DECK_PROVIDER_ID, $index->getDocumentId());
$document->setIndex($index);

View File

@@ -24,6 +24,7 @@
namespace OCA\Deck\Service;
use OC\EventDispatcher\SymfonyAdapter;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\AppInfo\Application;
@@ -46,7 +47,6 @@ use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCP\IUserManager;
use OCA\Deck\BadRequestException;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class BoardService {
@@ -64,7 +64,6 @@ class BoardService {
private $groupManager;
private $userId;
private $activityManager;
/** @var EventDispatcherInterface */
private $eventDispatcher;
private $changeHelper;
@@ -84,7 +83,7 @@ class BoardService {
IUserManager $userManager,
IGroupManager $groupManager,
ActivityManager $activityManager,
EventDispatcherInterface $eventDispatcher,
SymfonyAdapter $eventDispatcher,
ChangeHelper $changeHelper,
$userId
) {

View File

@@ -161,6 +161,7 @@ class FullTextSearchService {
* @return IIndexDocument
*/
public function generateIndexDocumentFromCard(Card $card): IIndexDocument {
/** @psalm-var IIndexDocument */
$document = new IndexDocument(DeckProvider::DECK_PROVIDER_ID, (string)$card->getId());
return $document;
@@ -193,6 +194,7 @@ class FullTextSearchService {
public function generateDocumentAccessFromCardId(int $cardId): IDocumentAccess {
$board = $this->getBoardFromCardId($cardId);
/** @psalm-var IDocumentAccess */
return new DocumentAccess($board->getOwner());
}

View File

@@ -106,7 +106,7 @@ class PermissionService {
/**
* Get current user permissions for a board
*
* @param Board|Entity $board
* @param Board $board
* @return array|bool
* @internal param $boardId
*/
@@ -170,10 +170,9 @@ class PermissionService {
try {
$board = $this->boardMapper->find($boardId);
return $board && $userId === $board->getOwner();
} catch (DoesNotExistException $e) {
} catch (MultipleObjectsReturnedException $e) {
return false;
} catch (DoesNotExistException | MultipleObjectsReturnedException $e) {
}
return false;
}
/**

View File

@@ -24,6 +24,7 @@
namespace OCA\Deck\Service;
use OC\EventDispatcher\SymfonyAdapter;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\BadRequestException;
@@ -36,7 +37,6 @@ use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper;
use OCA\Deck\StatusException;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class StackService {
@@ -50,8 +50,7 @@ class StackService {
private $assignedUsersMapper;
private $attachmentService;
private $activityManager;
/** @var EventDispatcherInterface */
private $eventDispatcher;
private $symfonyAdapter;
private $changeHelper;
public function __construct(
@@ -65,7 +64,7 @@ class StackService {
AssignmentMapper $assignedUsersMapper,
AttachmentService $attachmentService,
ActivityManager $activityManager,
EventDispatcherInterface $eventDispatcher,
SymfonyAdapter $eventDispatcher,
ChangeHelper $changeHelper
) {
$this->stackMapper = $stackMapper;
@@ -78,7 +77,7 @@ class StackService {
$this->assignedUsersMapper = $assignedUsersMapper;
$this->attachmentService = $attachmentService;
$this->activityManager = $activityManager;
$this->eventDispatcher = $eventDispatcher;
$this->symfonyAdapter = $eventDispatcher;
$this->changeHelper = $changeHelper;
}
@@ -226,7 +225,7 @@ class StackService {
);
$this->changeHelper->boardChanged($boardId);
$this->eventDispatcher->dispatch(
$this->symfonyAdapter->dispatch(
'\OCA\Deck\Stack::onCreate',
new GenericEvent(null, ['id' => $stack->getId(), 'stack' => $stack])
);
@@ -260,7 +259,7 @@ class StackService {
$this->changeHelper->boardChanged($stack->getBoardId());
$this->enrichStackWithCards($stack);
$this->eventDispatcher->dispatch(
$this->symfonyAdapter->dispatch(
'\OCA\Deck\Stack::onDelete', new GenericEvent(null, ['id' => $id, 'stack' => $stack])
);
@@ -315,7 +314,7 @@ class StackService {
);
$this->changeHelper->boardChanged($stack->getBoardId());
$this->eventDispatcher->dispatch(
$this->symfonyAdapter->dispatch(
'\OCA\Deck\Stack::onUpdate', new GenericEvent(null, ['id' => $id, 'stack' => $stack])
);

3902
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -17,7 +17,7 @@
"license": "agpl",
"private": true,
"scripts": {
"build": "NODE_ENV=production webpack --progress --hide-modules --config webpack.js",
"build": "NODE_ENV=production webpack --progress --config webpack.js",
"dev": "NODE_ENV=development webpack --progress --config webpack.js",
"watch": "NODE_ENV=development webpack --progress --watch --config webpack.js",
"lint": "eslint --ext .js,.vue src",
@@ -30,7 +30,7 @@
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.12.5",
"@juliushaertl/vue-richtext": "^1.0.0",
"@juliushaertl/vue-richtext": "^1.0.1",
"@nextcloud/auth": "^1.3.0",
"@nextcloud/axios": "^1.5.0",
"@nextcloud/dialogs": "^3.1.1",
@@ -40,25 +40,25 @@
"@nextcloud/l10n": "^1.4.1",
"@nextcloud/moment": "^1.1.1",
"@nextcloud/router": "^1.2.0",
"@nextcloud/vue": "^2.9.0",
"@nextcloud/vue": "^3.3.2",
"@nextcloud/vue-dashboard": "^1.0.1",
"blueimp-md5": "^2.18.0",
"dompurify": "^2.2.2",
"dompurify": "^2.2.6",
"lodash": "^4.17.20",
"markdown-it": "^12.0.2",
"markdown-it": "^12.0.4",
"markdown-it-task-lists": "^2.1.1",
"moment": "^2.29.1",
"nextcloud-vue-collections": "^0.8.1",
"nextcloud-vue-collections": "^0.9.0",
"p-queue": "^6.6.2",
"url-search-params-polyfill": "^8.1.0",
"vue": "^2.6.12",
"vue-at": "^2.5.0-beta.2",
"vue-click-outside": "^1.1.0",
"vue-easymde": "^1.3.0",
"vue-easymde": "^1.3.2",
"vue-infinite-loading": "^2.4.5",
"vue-router": "^3.4.9",
"vue-smooth-dnd": "^0.8.1",
"vuex": "^3.5.1",
"vuex": "^3.6.0",
"vuex-router-sync": "^5.0.0"
},
"browserslist": [
@@ -68,23 +68,24 @@
"node": ">=10.0.0"
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/core": "^7.12.10",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/preset-env": "^7.12.1",
"@babel/preset-env": "^7.12.11",
"@nextcloud/browserslist-config": "^1.0.0",
"@nextcloud/eslint-config": "^2.1.0",
"@nextcloud/eslint-config": "^2.2.0",
"@nextcloud/eslint-plugin": "^1.5.0",
"@nextcloud/webpack-vue-config": "^1.4.1",
"@vue/test-utils": "^1.1.1",
"@relative-ci/agent": "^1.4.0",
"@vue/test-utils": "^1.1.2",
"acorn": "^8.0.4",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.6.3",
"babel-loader": "^8.2.1",
"babel-loader": "^8.2.2",
"css-loader": "^4.3.0",
"eslint": "^6.8.0",
"eslint-config-standard": "^12.0.0",
"eslint-config-standard": "^14.1.1",
"eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^3.0.4",
"eslint-loader": "^4.0.2",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
@@ -98,19 +99,19 @@
"raw-loader": "^4.0.2",
"sass-loader": "^10.1.0",
"style-loader": "^1.3.0",
"stylelint": "^13.7.2",
"stylelint": "^13.8.0",
"stylelint-config-recommended": "^3.0.0",
"stylelint-config-recommended-scss": "^4.2.0",
"stylelint-scss": "^3.18.0",
"stylelint-webpack-plugin": "^2.1.1",
"url-loader": "^4.1.1",
"vue-jest": "^3.0.7",
"vue-loader": "^15.9.5",
"vue-loader": "^15.9.6",
"vue-template-compiler": "^2.6.12",
"webpack": "^4.44.2",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0",
"webpack-merge": "^5.4.0"
"webpack-merge": "^5.7.3"
},
"jest": {
"moduleFileExtensions": [

54
psalm.xml Normal file
View File

@@ -0,0 +1,54 @@
<?xml version="1.0"?>
<psalm
errorLevel="4"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
errorBaseline="tests/psalm-baseline.xml"
>
<projectFiles>
<directory name="lib" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
<extraFiles>
<directory name="vendor" />
<ignoreFiles>
<directory name="vendor/phpunit/php-code-coverage" />
<directory name="vendor/vimeo" />
</ignoreFiles>
</extraFiles>
<issueHandlers>
<UndefinedMagicMethod>
<errorLevel type="suppress">
<referencedMethod name="/Db\\.*::.*/" />
</errorLevel>
</UndefinedMagicMethod>
<UndefinedInterfaceMethod>
<errorLevel type="suppress">
<!-- FIXME Deprecated event handling -->
<referencedMethod name="OCP\IUserManager::listen" />
<referencedMethod name="OCP\IGroupManager::listen" />
</errorLevel>
</UndefinedInterfaceMethod>
<UndefinedClass>
<errorLevel type="suppress">
<referencedClass name="OC\*" />
<referencedClass name="OC" />
<referencedClass name="OC\Security\CSP\ContentSecurityPolicyNonceManager" />
</errorLevel>
</UndefinedClass>
<UndefinedDocblockClass>
<errorLevel type="suppress">
<referencedClass name="OC\*" />
<referencedClass name="Doctrine\DBAL\Schema\Schema" />
<referencedClass name="Doctrine\DBAL\Schema\SchemaException" />
<referencedClass name="Doctrine\DBAL\Driver\Statement" />
<referencedClass name="Doctrine\DBAL\Schema\Table" />
<referencedClass name="OC\Security\CSP\ContentSecurityPolicyNonceManager" />
</errorLevel>
</UndefinedDocblockClass>
</issueHandlers>
</psalm>

8
relativeci.config.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
// Allow the agent to pick up the current commit message
includeCommitMessage: true,
webpack: {
// Path to Webpack stats JSON file
stats: './js/webpack-stats.json'
}
};

View File

@@ -37,7 +37,7 @@
</div>
</Modal>
<router-view v-show="!cardDetailsInModal || !$route.params.cardId" name="sidebar" />
<router-view name="sidebar" :visible="!cardDetailsInModal || !$route.params.cardId" />
</Content>
</template>

View File

@@ -63,7 +63,7 @@ export default {
components: {
RichText,
},
mixins: [ relativeDate ],
mixins: [relativeDate],
props: {
activity: {
type: Object,

View File

@@ -79,7 +79,7 @@ try {
export default {
name: 'AttachmentDragAndDrop',
components: { Modal },
mixins: [ attachmentUpload ],
mixins: [attachmentUpload],
props: {
cardId: {
type: Number,

View File

@@ -58,14 +58,14 @@
</form>
</div>
<div class="board-action-buttons">
<Popover>
<Popover @show="filterVisible=true" @hide="filterVisible=false">
<Actions slot="trigger" :title="t('deck', 'Apply filter')">
<ActionButton v-if="isFilterActive" icon="icon-filter_set" />
<ActionButton v-else icon="icon-filter" />
</Actions>
<template>
<div class="filter">
<div v-if="filterVisible" class="filter">
<h3>{{ t('deck', 'Filter by tag') }}</h3>
<div v-for="label in labelsSorted" :key="label.id" class="filter--item">
<input
@@ -170,7 +170,7 @@
</template>
</Popover>
<Actions :style="archivedOpacity">
<Actions>
<ActionButton
icon="icon-archive"
@click="toggleShowArchived">
@@ -206,7 +206,7 @@ export default {
components: {
Actions, ActionButton, Popover, Avatar,
},
mixins: [ labelStyle ],
mixins: [labelStyle],
props: {
board: {
type: Object,
@@ -223,6 +223,7 @@ export default {
return {
newStackTitle: '',
stack: '',
filterVisible: false,
showArchived: false,
isAddStackVisible: false,
filter: { tags: [], users: [], due: '', unassigned: false },
@@ -242,12 +243,6 @@ export default {
name: 'board.details',
}
},
archivedOpacity() {
if (this.showArchived) {
return 'opacity: 1;'
}
return 'opacity: .5;'
},
isFilterActive() {
if (this.filter.tags.length !== 0 || this.filter.users.length !== 0 || this.filter.due !== '') {
return true

View File

@@ -21,12 +21,18 @@
-->
<template>
<router-view name="sidebar" />
<router-view v-if="visible" name="sidebar" />
</template>
<script>
export default {
name: 'Sidebar',
props: {
visible: {
type: Boolean,
default: true,
},
},
methods: {
closeSidebar() {
this.$router.push({ name: 'board' })

View File

@@ -38,7 +38,7 @@ import relativeDate from '../../mixins/relativeDate'
export default {
name: 'DeletedTabSidebar',
mixins: [ relativeDate ],
mixins: [relativeDate],
props: {
board: {
type: Object,

View File

@@ -279,24 +279,32 @@ export default {
z-index: 100;
padding-left: $card-spacing;
cursor: grab;
min-height: 44px;
// Smooth fade out of the cards at the top
&:before {
content: ' ';
display: block;
position: absolute;
background-image: linear-gradient(180deg, var(--color-main-background) 3px, transparent 100%);
width: 100%;
height: 25px;
top: 35px;
right: 6px;
height: 20px;
top: 30px;
right: 10px;
z-index: 99;
transition: top var(--animation-slow);
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(255, 255, 255, 0) 100%);
body.theme--dark & {
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(0, 0, 0, 0) 100%);
}
}
&--add:before {
height: 80px;
background-image: linear-gradient(180deg, var(--color-main-background) 68px, transparent 100%);
background-image: linear-gradient(180deg, var(--color-main-background) 68px, rgba(255, 255, 255, 0) 100%);
body.theme--dark & {
background-image: linear-gradient(180deg, var(--color-main-background) 68px, rgba(0, 0, 0, 0) 100%);
}
}
& > * {
@@ -323,7 +331,9 @@ export default {
}
.stack__card-add {
height: 52px;
width: $stack-width;
height: 44px;
flex-shrink: 0;
z-index: 100;
display: flex;
margin-left: 12px;
@@ -336,10 +346,10 @@ export default {
display: flex;
width: 100%;
margin: 0;
margin-right: 6px;
box-shadow: 0 0 3px var(--color-box-shadow);
border-radius: var(--border-radius-large);
overflow: hidden;
padding: 2px;
}
&.icon-loading-small:after,

View File

@@ -29,7 +29,7 @@
<div class="board-list-bullet" />
</div>
<div class="board-list-title-cell">
{{ t('deck', 'Title') }}
{{ t('deck', 'Board name') }}
</div>
<div class="board-list-avatars-cell">
{{ t('deck', 'Members') }}

View File

@@ -21,58 +21,65 @@
-->
<template>
<AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar">
<button class="icon-upload" @click="clickAddNewAttachmment()">
{{ t('deck', 'Upload attachment') }}
</button>
<input ref="localAttachments"
type="file"
style="display: none;"
multiple
@change="handleUploadFile">
<ul class="attachment-list">
<li v-for="attachment in uploadQueue" :key="attachment.name" class="attachment">
<a class="fileicon" :style="mimetypeForAttachment('none')" />
<div class="details">
<a>
<div class="filename">
<span class="basename">{{ attachment.name }}</span>
</div>
<progress :value="attachment.progress" max="100" />
</a>
</div>
</li>
<li v-for="attachment in attachments"
:key="attachment.id"
class="attachment">
<a class="fileicon" :style="mimetypeForAttachment(attachment.extendedData.mimetype)" :href="attachmentUrl(attachment)" />
<div class="details">
<a :href="attachmentUrl(attachment)" target="_blank">
<div class="filename">
<span class="basename">{{ attachment.data }}</span>
</div>
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
<span class="filedate">{{ relativeDate(attachment.createdAt*1000) }}</span>
<span class="filedate">{{ attachment.createdBy }}</span>
</a>
</div>
<Actions v-if="selectable">
<ActionButton icon="icon-confirm" @click="$emit('selectAttachment', attachment)">
{{ t('deck', 'Add this attachment') }}
</ActionButton>
</Actions>
<Actions v-if="removable">
<ActionButton v-if="attachment.deletedAt === 0" icon="icon-delete" @click="$emit('deleteAttachment', attachment)">
{{ t('deck', 'Delete Attachment') }}
</ActionButton>
<div>
<h5>
{{ t('deck', 'Attachments') }}
<Actions>
<ActionButton icon="icon-upload" @click="clickAddNewAttachmment()">
{{ t('deck', 'Upload attachment') }}
</ActionButton>
</Actions>
</h5>
<AttachmentDragAndDrop :card-id="cardId" class="drop-upload--sidebar">
<input ref="localAttachments"
type="file"
style="display: none;"
multiple
@change="handleUploadFile">
<ul class="attachment-list">
<li v-for="attachment in uploadQueue" :key="attachment.name" class="attachment">
<a class="fileicon" :style="mimetypeForAttachment('none')" />
<div class="details">
<a>
<div class="filename">
<span class="basename">{{ attachment.name }}</span>
</div>
<progress :value="attachment.progress" max="100" />
</a>
</div>
</li>
<li v-for="attachment in attachments"
:key="attachment.id"
class="attachment">
<a class="fileicon" :style="mimetypeForAttachment(attachment.extendedData.mimetype)" :href="attachmentUrl(attachment)" />
<div class="details">
<a :href="attachmentUrl(attachment)" target="_blank">
<div class="filename">
<span class="basename">{{ attachment.data }}</span>
</div>
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
<span class="filedate">{{ relativeDate(attachment.createdAt*1000) }}</span>
<span class="filedate">{{ attachment.createdBy }}</span>
</a>
</div>
<Actions v-if="selectable">
<ActionButton icon="icon-confirm" @click="$emit('selectAttachment', attachment)">
{{ t('deck', 'Add this attachment') }}
</ActionButton>
</Actions>
<Actions v-if="removable">
<ActionButton v-if="attachment.deletedAt === 0" icon="icon-delete" @click="$emit('deleteAttachment', attachment)">
{{ t('deck', 'Delete Attachment') }}
</ActionButton>
<ActionButton v-else icon="icon-history" @click="$emit('restoreAttachment', attachment)">
{{ t('deck', 'Restore Attachment') }}
</ActionButton>
</Actions>
</li>
</ul>
</AttachmentDragAndDrop>
<ActionButton v-else icon="icon-history" @click="$emit('restoreAttachment', attachment)">
{{ t('deck', 'Restore Attachment') }}
</ActionButton>
</Actions>
</li>
</ul>
</AttachmentDragAndDrop>
</div>
</template>
<script>
@@ -171,6 +178,21 @@ export default {
<style lang="scss" scoped>
h5 {
border-bottom: 1px solid var(--color-border);
margin-top: 20px;
margin-bottom: 5px;
color: var(--color-text-maxcontrast);
.icon-upload {
background-size: 16px;
float: right;
margin-top: -14px;
opacity: .7;
}
}
.icon-upload {
padding-left: 35px;
background-position: 10px center;

View File

@@ -46,13 +46,6 @@
<CardSidebarTabDetails :card="currentCard" />
</AppSidebarTab>
<AppSidebarTab id="attachments"
:order="1"
:name="t('deck', 'Attachments')"
icon="icon-attach">
<CardSidebarTabAttachments :card="currentCard" />
</AppSidebarTab>
<AppSidebarTab
id="comments"
:order="2"
@@ -75,7 +68,6 @@
import { ActionButton, AppSidebar, AppSidebarTab } from '@nextcloud/vue'
import { mapState, mapGetters } from 'vuex'
import CardSidebarTabDetails from './CardSidebarTabDetails'
import CardSidebarTabAttachments from './CardSidebarTabAttachments'
import CardSidebarTabComments from './CardSidebarTabComments'
import CardSidebarTabActivity from './CardSidebarTabActivity'
import relativeDate from '../../mixins/relativeDate'
@@ -90,7 +82,6 @@ export default {
AppSidebar,
AppSidebarTab,
ActionButton,
CardSidebarTabAttachments,
CardSidebarTabComments,
CardSidebarTabActivity,
CardSidebarTabDetails,
@@ -168,12 +159,13 @@ export default {
left: 0;
right: 0;
max-width: calc(100% - #{$modal-padding*2});
padding: 14px;
max-height: calc(100% - #{$modal-padding*2});
padding: 0 14px;
max-height: 100%;
&::v-deep {
.app-sidebar-header {
position: sticky;
top: 0;
padding-top: $modal-padding;
z-index: 100;
background-color: var(--color-main-background);
}

View File

@@ -71,7 +71,7 @@ export default {
},
},
watch: {
'card': {
card: {
immediate: true,
handler() {
this.loadComments()

View File

@@ -117,7 +117,13 @@
type="deck-card" />
</div>
<Description :card="card" />
<AttachmentList
:card-id="card.id"
:removable="true"
@deleteAttachment="deleteAttachment"
@restoreAttachment="restoreAttachment" />
<Description :key="card.id" :card="card" />
</div>
</template>
@@ -125,7 +131,7 @@
import { mapState, mapGetters } from 'vuex'
import moment from '@nextcloud/moment'
import { Avatar, Actions, ActionButton, Multiselect, DatetimePicker } from '@nextcloud/vue'
import AttachmentList from './AttachmentList'
import { CollectionList } from 'nextcloud-vue-collections'
import Color from '../../mixins/color'
import {
@@ -146,6 +152,7 @@ export default {
ActionButton,
Avatar,
CollectionList,
AttachmentList,
},
mixins: [Color],
props: {
@@ -234,6 +241,12 @@ export default {
this.initialize()
},
methods: {
deleteAttachment(attachment) {
this.$store.dispatch('deleteAttachment', attachment)
},
restoreAttachment(attachment) {
this.$store.dispatch('restoreAttachment', attachment)
},
async initialize() {
if (!this.card) {
return

View File

@@ -60,7 +60,7 @@ const AtMention = {
const { user, displayName } = context.props
return createElement(
'span',
{ attrs: { 'data-at-embedded': true, 'contenteditable': false } },
{ attrs: { 'data-at-embedded': true, contenteditable: false } },
[createElement(UserBubble, { props: { user, displayName }, attrs: { 'data-mention-id': user } })]
)
},
@@ -76,7 +76,7 @@ export default {
CommentForm,
RichText,
},
mixins: [ relativeDate ],
mixins: [relativeDate],
props: {
comment: {
type: Object,
@@ -196,7 +196,13 @@ export default {
}
}
.comment--content::v-deep a {
text-decoration: underline;
.comment--content::v-deep {
a {
text-decoration: underline;
}
p {
margin-bottom: 1em;
}
}
</style>

View File

@@ -113,6 +113,7 @@ export default {
autosave: { enabled: false, uniqueId: 'unique' },
toolbar: false,
placeholder: t('deck', 'Write a description …'),
previewImagesInEditor: false,
},
descriptionSaveTimeout: null,
descriptionSaving: false,
@@ -180,7 +181,7 @@ export default {
const clickedIndex = [...document.querySelector('#description-preview').querySelectorAll('input')].findIndex((li) => li.id === e.target.id)
const reg = /\[(X|\s|_|-)\]/ig
let nth = 0
const updatedDescription = this.description.replace(reg, (match, i, original) => {
const updatedDescription = this.card.description.replace(reg, (match, i, original) => {
let result = match
if ('' + nth++ === '' + clickedIndex) {
if (match.match(/^\[\s\]/i)) {
@@ -297,6 +298,10 @@ h5 {
color: var(--color-text-maxcontrast);
}
.CodeMirror-cursor {
border-left: 1px solid var(--color-main-text);
}
.editor-preview,
.editor-statusbar {
display: none;

View File

@@ -27,6 +27,7 @@
<div v-if="card.description && checkListCount > 0" class="card-tasks icon icon-checkmark">
{{ checkListCheckedCount }}/{{ checkListCount }}
</div>
<div v-else-if="card.description.trim() && checkListCount == 0" class="icon icon-description" />
<div v-if="card.attachmentCount > 0" class="icon-attach icon icon-attach-dark">
{{ card.attachmentCount }}

View File

@@ -24,22 +24,31 @@
<div v-if="card">
<div @click.stop.prevent>
<Actions v-if="canEdit && !isArchived">
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned" icon="icon-user" @click="assignCardToMe()">
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned"
icon="icon-user"
:close-after-click="true"
@click="assignCardToMe()">
{{ t('deck', 'Assign to me') }}
</ActionButton>
<ActionButton v-if="showArchived === false && isCurrentUserAssigned" icon="icon-user" @click="unassignCardFromMe()">
<ActionButton v-if="showArchived === false && isCurrentUserAssigned"
icon="icon-user"
:close-after-click="true"
@click="unassignCardFromMe()">
{{ t('deck', 'Unassign myself') }}
</ActionButton>
<ActionButton icon="icon-external" @click.stop="modalShow=true">
<ActionButton icon="icon-external" :close-after-click="true" @click="modalShow=true">
{{ t('deck', 'Move card') }}
</ActionButton>
<ActionButton icon="icon-settings-dark" @click="openCard">
<ActionButton icon="icon-settings-dark" :close-after-click="true" @click="openCard">
{{ t('deck', 'Card details') }}
</ActionButton>
<ActionButton icon="icon-archive" @click="archiveUnarchiveCard()">
<ActionButton icon="icon-archive" :close-after-click="true" @click="archiveUnarchiveCard()">
{{ showArchived ? t('deck', 'Unarchive card') : t('deck', 'Archive card') }}
</ActionButton>
<ActionButton v-if="showArchived === false" icon="icon-delete" @click="deleteCard()">
<ActionButton v-if="showArchived === false"
icon="icon-delete"
:close-after-click="true"
@click="deleteCard()">
{{ t('deck', 'Delete card') }}
</ActionButton>
</Actions>
@@ -127,7 +136,8 @@ export default {
},
methods: {
openCard() {
this.$router.push({ name: 'card', params: { cardId: this.id } })
const boardId = this.card?.boardId ? this.card.boardId : this.$route.params.id
this.$router.push({ name: 'card', params: { id: boardId, cardId: this.card.id } }).catch(() => {})
},
deleteCard() {
this.$store.dispatch('deleteCard', this.card)

View File

@@ -58,7 +58,7 @@
type="checkbox"
class="checkbox">
<label for="toggle-modal">
{{ t('deck', 'Use modal card view') }}
{{ t('deck', 'Use bigger card view') }}
</label>
</div>

View File

@@ -35,7 +35,7 @@ export default {
async onLocalAttachmentSelected(file) {
if (this.maxUploadSize > 0 && file.size > this.maxUploadSize) {
showError(
t('deck', `Failed to upload {name}`, { name: file.name }) + ' - '
t('deck', 'Failed to upload {name}', { name: file.name }) + ' - '
+ t('deck', 'Maximum file size of {size} exceeded', { size: formatFileSize(this.maxUploadSize) })
)
event.target.value = ''
@@ -49,7 +49,8 @@ export default {
bodyFormData.append('file', file)
await queue.add(async() => {
try {
await this.$store.dispatch('createAttachment', { cardId: this.cardId,
await this.$store.dispatch('createAttachment', {
cardId: this.cardId,
formData: bodyFormData,
onUploadProgress: (e) => {
const percentCompleted = Math.round((e.loaded * 100) / e.total)

View File

@@ -23,7 +23,7 @@
import Color from './color'
export default {
mixins: [ Color ],
mixins: [Color],
computed: {
labelStyle() {
return (label) => {

View File

@@ -31,7 +31,7 @@ export class CardApi {
}
addCard(card) {
return axios.post(this.url(`/cards`), card)
return axios.post(this.url('/cards'), card)
.then(
(response) => {
return Promise.resolve(response.data)

View File

@@ -31,7 +31,7 @@ export class CommentApi {
}
async loadComments({ cardId, limit, offset }) {
const api = await axios.get(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments`, {
const api = await axios.get(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments`, {
params: { limit, offset },
headers: { 'OCS-APIRequest': 'true' },
})
@@ -39,7 +39,7 @@ export class CommentApi {
}
async createComment({ cardId, comment, replyTo }) {
const api = await axios.post(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments`, {
const api = await axios.post(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments`, {
message: `${comment}`,
parentId: replyTo ? replyTo.id : null,
})
@@ -47,14 +47,14 @@ export class CommentApi {
}
async updateComment({ cardId, id, comment }) {
const api = await axios.put(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments/${id}`, {
const api = await axios.put(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments/${id}`, {
message: `${comment}`,
})
return api.data.ocs.data
}
async deleteComment({ cardId, id }) {
const api = await axios.delete(generateOcsUrl(`apps/deck/api/v1.0/cards`, 2) + `${cardId}/comments/${id}`)
const api = await axios.delete(generateOcsUrl('apps/deck/api/v1.0/cards', 2) + `${cardId}/comments/${id}`)
return api.data.ocs.data
}

View File

@@ -26,7 +26,7 @@ import { generateOcsUrl } from '@nextcloud/router'
export class OverviewApi {
url(url) {
return generateOcsUrl(`apps/deck/api/v1.0`) + url
return generateOcsUrl('apps/deck/api/v1.0') + url
}
get(filter) {

View File

@@ -81,7 +81,7 @@ export class StackApi {
* @returns {Promise}
*/
createStack(stack) {
return axios.post(this.url(`/stacks`), stack)
return axios.post(this.url('/stacks'), stack)
.then(
(response) => {
return Promise.resolve(response.data)

View File

@@ -53,7 +53,7 @@ export default {
if (state.comments[cardId] === undefined) {
Vue.set(state.comments, cardId, {
hasMore: comments.length > 0,
comments: [ ...comments ],
comments: [...comments],
})
} else {
const newComments = comments.filter((comment) => {

View File

@@ -312,7 +312,7 @@ export default new Vuex.Store({
async setConfig({ commit }, config) {
for (const key in config) {
try {
await axios.post(generateOcsUrl(`apps/deck/api/v1.0/config`) + key, {
await axios.post(generateOcsUrl('apps/deck/api/v1.0/config') + key, {
value: config[key],
})
commit('SET_CONFIG', { key, value: config[key] })

View File

@@ -62,7 +62,7 @@ export default {
DueDate,
DashboardWidget,
},
mixins: [ labelStyle ],
mixins: [labelStyle],
data() {
return {
loading: false,

View File

@@ -1,22 +1,17 @@
{
"require-dev": {
"phpunit/phpunit": "~4.6",
"behat/behat": "^3.0",
"guzzlehttp/guzzle": "~5.0",
"phpunit/phpunit": "~6.5",
"behat/behat": "~3.8.0",
"guzzlehttp/guzzle": "6.5.2",
"jarnaiz/behat-junit-formatter": "^1.3",
"sabre/dav": "3.2"
"sabre/dav": "3.2.3",
"symfony/event-dispatcher": "~4.4"
},
"autoload": {
"files": [
"../../../../build/integration/features/bootstrap/Auth.php",
"../../../../build/integration/features/bootstrap/Provisioning.php",
"../../../../build/integration/features/bootstrap/Sharing.php",
"../../../../build/integration/features/bootstrap/WebDav.php",
"../../../../build/integration/features/bootstrap/Trashbin.php"
],
"psr-0": {
"": [
"features/bootstrap/"
"features/bootstrap/",
"../../../../build/integration/features/bootstrap/"
]
}
}

View File

@@ -1,451 +0,0 @@
<?php
/**
*
* @author Christoph Wurst <christoph@owncloud.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Sergio Bertolin <sbertolin@solidgear.es>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @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/>.
*
*/
use GuzzleHttp\Client;
use GuzzleHttp\Cookie\CookieJar;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Message\ResponseInterface;
require __DIR__ . '/../../vendor/autoload.php';
trait BasicStructure {
use Auth;
/** @var string */
private $currentUser = '';
/** @var string */
private $currentServer = '';
/** @var string */
private $baseUrl = '';
/** @var int */
private $apiVersion = 1;
/** @var ResponseInterface */
private $response = null;
/** @var CookieJar */
private $cookieJar;
/** @var string */
private $requestToken;
public function __construct($baseUrl, $admin, $regular_user_password) {
// Initialize your context here
$this->baseUrl = $baseUrl;
$this->adminUser = $admin;
$this->regularUser = $regular_user_password;
$this->localBaseUrl = $this->baseUrl;
$this->remoteBaseUrl = $this->baseUrl;
$this->currentServer = 'LOCAL';
$this->cookieJar = new CookieJar();
// in case of ci deployment we take the server url from the environment
$testServerUrl = getenv('TEST_SERVER_URL');
if ($testServerUrl !== false) {
$this->baseUrl = $testServerUrl;
$this->localBaseUrl = $testServerUrl;
}
// federated server url from the environment
$testRemoteServerUrl = getenv('TEST_SERVER_FED_URL');
if ($testRemoteServerUrl !== false) {
$this->remoteBaseUrl = $testRemoteServerUrl;
}
}
/**
* @Given /^using api version "(\d+)"$/
* @param string $version
*/
public function usingApiVersion($version) {
$this->apiVersion = (int) $version;
}
/**
* @Given /^As an "([^"]*)"$/
* @param string $user
*/
public function asAn($user) {
$this->currentUser = $user;
}
/**
* @Given /^Using server "(LOCAL|REMOTE)"$/
* @param string $server
* @return string Previous used server
*/
public function usingServer($server) {
$previousServer = $this->currentServer;
if ($server === 'LOCAL') {
$this->baseUrl = $this->localBaseUrl;
$this->currentServer = 'LOCAL';
return $previousServer;
} else {
$this->baseUrl = $this->remoteBaseUrl;
$this->currentServer = 'REMOTE';
return $previousServer;
}
}
/**
* @When /^sending "([^"]*)" to "([^"]*)"$/
* @param string $verb
* @param string $url
*/
public function sendingTo($verb, $url) {
$this->sendingToWith($verb, $url, null);
}
/**
* Parses the xml answer to get ocs response which doesn't match with
* http one in v1 of the api.
* @param ResponseInterface $response
* @return string
*/
public function getOCSResponse($response) {
return $response->xml()->meta[0]->statuscode;
}
/**
* This function is needed to use a vertical fashion in the gherkin tables.
* @param array $arrayOfArrays
* @return array
*/
public function simplifyArray($arrayOfArrays) {
$a = array_map(function ($subArray) {
return $subArray[0];
}, $arrayOfArrays);
return $a;
}
/**
* @When /^sending "([^"]*)" to "([^"]*)" with$/
* @param string $verb
* @param string $url
* @param \Behat\Gherkin\Node\TableNode $body
*/
public function sendingToWith($verb, $url, $body) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php" . $url;
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
} else {
$options['auth'] = [$this->currentUser, $this->regularUser];
}
$options['headers'] = [
'OCS_APIREQUEST' => 'true'
];
if ($body instanceof \Behat\Gherkin\Node\TableNode) {
$fd = $body->getRowsHash();
$options['body'] = $fd;
}
// TODO: Fix this hack!
if ($verb === 'PUT' && $body === null) {
$options['body'] = [
'foo' => 'bar',
];
}
try {
$this->response = $client->send($client->createRequest($verb, $fullUrl, $options));
} catch (ClientException $ex) {
$this->response = $ex->getResponse();
}
}
/**
* @When /^sending "([^"]*)" with exact url to "([^"]*)"$/
* @param string $verb
* @param string $url
*/
public function sendingToDirectUrl($verb, $url) {
$this->sendingToWithDirectUrl($verb, $url, null);
}
public function sendingToWithDirectUrl($verb, $url, $body) {
$fullUrl = substr($this->baseUrl, 0, -5) . $url;
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
} else {
$options['auth'] = [$this->currentUser, $this->regularUser];
}
if ($body instanceof \Behat\Gherkin\Node\TableNode) {
$fd = $body->getRowsHash();
$options['body'] = $fd;
}
try {
$this->response = $client->send($client->createRequest($verb, $fullUrl, $options));
} catch (ClientException $ex) {
$this->response = $ex->getResponse();
}
}
public function isExpectedUrl($possibleUrl, $finalPart) {
$baseUrlChopped = substr($this->baseUrl, 0, -4);
$endCharacter = strlen($baseUrlChopped) + strlen($finalPart);
return (substr($possibleUrl,0,$endCharacter) == "$baseUrlChopped" . "$finalPart");
}
/**
* @Then /^the OCS status code should be "([^"]*)"$/
* @param int $statusCode
*/
public function theOCSStatusCodeShouldBe($statusCode) {
PHPUnit_Framework_Assert::assertEquals($statusCode, $this->getOCSResponse($this->response));
}
/**
* @Then /^the HTTP status code should be "([^"]*)"$/
* @param int $statusCode
*/
public function theHTTPStatusCodeShouldBe($statusCode) {
PHPUnit_Framework_Assert::assertEquals($statusCode, $this->response->getStatusCode());
}
/**
* @Then /^the Content-Type should be "([^"]*)"$/
* @param string $contentType
*/
public function theContentTypeShouldbe($contentType) {
PHPUnit_Framework_Assert::assertEquals($contentType, $this->response->getHeader('Content-Type'));
}
/**
* @param ResponseInterface $response
*/
private function extracRequestTokenFromResponse(ResponseInterface $response) {
$this->requestToken = substr(preg_replace('/(.*)data-requesttoken="(.*)">(.*)/sm', '\2', $response->getBody()->getContents()), 0, 89);
}
/**
* @Given Logging in using web as :user
* @param string $user
*/
public function loggingInUsingWebAs($user) {
$loginUrl = substr($this->baseUrl, 0, -5) . '/login';
// Request a new session and extract CSRF token
$client = new Client();
$response = $client->get(
$loginUrl,
[
'cookies' => $this->cookieJar,
]
);
$this->extracRequestTokenFromResponse($response);
// Login and extract new token
$password = ($user === 'admin') ? 'admin' : '123456';
$client = new Client();
$response = $client->post(
$loginUrl,
[
'body' => [
'user' => $user,
'password' => $password,
'requesttoken' => $this->requestToken,
],
'cookies' => $this->cookieJar,
]
);
$this->extracRequestTokenFromResponse($response);
}
/**
* @When Sending a :method to :url with requesttoken
* @param string $method
* @param string $url
*/
public function sendingAToWithRequesttoken($method, $url) {
$baseUrl = substr($this->baseUrl, 0, -5);
$client = new Client();
$request = $client->createRequest(
$method,
$baseUrl . $url,
[
'cookies' => $this->cookieJar,
]
);
$request->addHeader('requesttoken', $this->requestToken);
try {
$this->response = $client->send($request);
} catch (ClientException $e) {
$this->response = $e->getResponse();
}
}
/**
* @When Sending a :method to :url without requesttoken
* @param string $method
* @param string $url
*/
public function sendingAToWithoutRequesttoken($method, $url) {
$baseUrl = substr($this->baseUrl, 0, -5);
$client = new Client();
$request = $client->createRequest(
$method,
$baseUrl . $url,
[
'cookies' => $this->cookieJar,
]
);
try {
$this->response = $client->send($request);
} catch (ClientException $e) {
$this->response = $e->getResponse();
}
}
public static function removeFile($path, $filename) {
if (file_exists("$path" . "$filename")) {
unlink("$path" . "$filename");
}
}
/**
* @Given User :user modifies text of :filename with text :text
* @param string $user
* @param string $filename
* @param string $text
*/
public function modifyTextOfFile($user, $filename, $text) {
self::removeFile("../../data/$user/files", "$filename");
file_put_contents("../../data/$user/files" . "$filename", "$text");
}
public function createFileSpecificSize($name, $size) {
$file = fopen("work/" . "$name", 'w');
fseek($file, $size - 1 ,SEEK_CUR);
fwrite($file,'a'); // write a dummy char at SIZE position
fclose($file);
}
public function createFileWithText($name, $text) {
$file = fopen("work/" . "$name", 'w');
fwrite($file, $text);
fclose($file);
}
/**
* @Given file :filename of size :size is created in local storage
* @param string $filename
* @param string $size
*/
public function fileIsCreatedInLocalStorageWithSize($filename, $size) {
$this->createFileSpecificSize("local_storage/$filename", $size);
}
/**
* @Given file :filename with text :text is created in local storage
* @param string $filename
* @param string $text
*/
public function fileIsCreatedInLocalStorageWithText($filename, $text) {
$this->createFileWithText("local_storage/$filename", $text);
}
/**
* @When Sleep for :seconds seconds
* @param int $seconds
*/
public function sleepForSeconds($seconds) {
sleep((int)$seconds);
}
/**
* @BeforeSuite
*/
public static function addFilesToSkeleton() {
for ($i=0; $i<5; $i++) {
file_put_contents("../../core/skeleton/" . "textfile" . "$i" . ".txt", "Nextcloud test text file\n");
}
if (!file_exists("../../core/skeleton/FOLDER")) {
mkdir("../../core/skeleton/FOLDER", 0777, true);
}
if (!file_exists("../../core/skeleton/PARENT")) {
mkdir("../../core/skeleton/PARENT", 0777, true);
}
file_put_contents("../../core/skeleton/PARENT/" . "parent.txt", "Nextcloud test text file\n");
if (!file_exists("../../core/skeleton/PARENT/CHILD")) {
mkdir("../../core/skeleton/PARENT/CHILD", 0777, true);
}
file_put_contents("../../core/skeleton/PARENT/CHILD/" . "child.txt", "Nextcloud test text file\n");
}
/**
* @AfterSuite
*/
public static function removeFilesFromSkeleton() {
for ($i=0; $i<5; $i++) {
self::removeFile("../../core/skeleton/", "textfile" . "$i" . ".txt");
}
if (is_dir("../../core/skeleton/FOLDER")) {
rmdir("../../core/skeleton/FOLDER");
}
self::removeFile("../../core/skeleton/PARENT/CHILD/", "child.txt");
if (is_dir("../../core/skeleton/PARENT/CHILD")) {
rmdir("../../core/skeleton/PARENT/CHILD");
}
self::removeFile("../../core/skeleton/PARENT/", "parent.txt");
if (is_dir("../../core/skeleton/PARENT")) {
rmdir("../../core/skeleton/PARENT");
}
}
/**
* @BeforeScenario @local_storage
*/
public static function removeFilesFromLocalStorageBefore() {
$dir = "./work/local_storage/";
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($ri as $file) {
$file->isDir() ? rmdir($file) : unlink($file);
}
}
/**
* @AfterScenario @local_storage
*/
public static function removeFilesFromLocalStorageAfter() {
$dir = "./work/local_storage/";
$di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
$ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($ri as $file) {
$file->isDir() ? rmdir($file) : unlink($file);
}
}
}

View File

@@ -28,23 +28,7 @@ class FeatureContext implements Context {
* @When Sending a :method to :url with JSON
*/
public function sendingAToWithJSON($method, $url, \Behat\Gherkin\Node\PyStringNode $data) {
$baseUrl = substr($this->baseUrl, 0, -5);
$client = new Client;
$request = $client->createRequest(
$method,
$baseUrl . $url,
[
'cookies' => $this->cookieJar,
'json' => json_decode($data)
]
);
$request->addHeader('requesttoken', $this->requestToken);
try {
$this->response = $client->send($request);
} catch (ClientException $e) {
$this->response = $e->getResponse();
}
$this->sendJSONrequest($method, $url, json_decode($data));
}
@@ -149,17 +133,18 @@ class FeatureContext implements Context {
$baseUrl = substr($this->baseUrl, 0, -5);
$client = new Client;
$request = $client->createRequest(
$method,
$baseUrl . $url,
[
'cookies' => $this->cookieJar,
'json' => $data
]
);
$request->addHeader('requesttoken', $this->requestToken);
try {
$this->response = $client->send($request);
$this->response = $client->request(
$method,
$baseUrl . $url,
[
'cookies' => $this->cookieJar,
'json' => $data,
'headers' => [
'requesttoken' => $this->requestToken
]
]
);
} catch (ClientException $e) {
$this->response = $e->getResponse();
}

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