Compare commits

..

79 Commits

Author SHA1 Message Date
Jakob
bf609b6462 Delete Controls.vue 2020-12-30 13:00:12 +01:00
Jakob Röhrl
91be2a359b date shortcut
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-12-30 12:58:49 +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
89 changed files with 7345 additions and 1150 deletions

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

@@ -0,0 +1,26 @@
name: Static analysis
on: [push, pull_request]
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

@@ -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

@@ -252,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

@@ -250,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

@@ -229,6 +229,9 @@ OC.L10N.register(
"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",
@@ -249,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

@@ -227,6 +227,9 @@
"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",
@@ -247,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

@@ -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

@@ -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

@@ -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])
);

1182
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -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.1",
"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,23 @@
"node": ">=10.0.0"
},
"devDependencies": {
"@babel/core": "^7.12.7",
"@babel/core": "^7.12.10",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/preset-env": "^7.12.7",
"@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",
"@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",
@@ -105,12 +105,12 @@
"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>

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

@@ -1,415 +0,0 @@
<!--
* @copyright Copyright (c) 2018 Michael Weimann <mail@michael-weimann.eu>
*
* @author Michael Weimann <mail@michael-weimann.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/>.
*
-->
<template>
<div class="controls">
<div v-if="overviewName" class="board-title">
<div class="board-bullet icon-calendar-dark" />
<h2>{{ overviewName }}</h2>
</div>
<div v-else-if="board" class="board-title">
<div :style="{backgroundColor: '#' + board.color}" class="board-bullet" />
<h2>{{ board.title }}</h2>
<p v-if="showArchived">
({{ t('deck', 'Archived cards') }})
</p>
</div>
<div v-if="board" class="board-actions">
<div v-if="canManage && !showArchived && !board.archived"
id="stack-add"
v-click-outside="hideAddStack">
<Actions v-if="!isAddStackVisible">
<ActionButton icon="icon-add" @click.stop="showAddStack">
{{ t('deck', 'Add list') }}
</ActionButton>
</Actions>
<form v-else @submit.prevent="addNewStack()">
<label for="new-stack-input-main" class="hidden-visually">{{ t('deck', 'Add list') }}</label>
<input id="new-stack-input-main"
v-model="newStackTitle"
v-focus
type="text"
class="no-close"
:placeholder="t('deck', 'List name')"
required>
<input v-tooltip="t('deck', 'Add list')"
class="icon-confirm"
type="submit"
value="">
</form>
</div>
<div class="board-action-buttons">
<Popover>
<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">
<h3>{{ t('deck', 'Filter by tag') }}</h3>
<div v-for="label in labelsSorted" :key="label.id" class="filter--item">
<input
:id="label.id"
v-model="filter.tags"
type="checkbox"
class="checkbox"
:value="label.id"
@change="setFilter">
<label :for="label.id"><span class="label" :style="labelStyle(label)">{{ label.title }}</span></label>
</div>
<h3>{{ t('deck', 'Filter by assigned user') }}</h3>
<div class="filter--item">
<input
id="unassigned"
v-model="filter.unassigned"
type="checkbox"
class="checkbox"
value="unassigned"
@change="setFilter"
@click="beforeSetFilter">
<label for="unassigned">{{ t('deck', 'Unassigned') }}</label>
</div>
<div v-for="user in board.users" :key="user.uid" class="filter--item">
<input
:id="user.uid"
v-model="filter.users"
type="checkbox"
class="checkbox"
:value="user.uid"
@change="setFilter">
<label :for="user.uid"><Avatar :user="user.uid" :size="24" :disable-menu="true" /> {{ user.displayname }}</label>
</div>
<h3>{{ t('deck', 'Filter by due date') }}</h3>
<div class="filter--item">
<input
id="overdue"
v-model="filter.due"
type="radio"
class="radio"
value="overdue"
@change="setFilter"
@click="beforeSetFilter">
<label for="overdue">{{ t('deck', 'Overdue') }}</label>
</div>
<div class="filter--item">
<input
id="dueToday"
v-model="filter.due"
type="radio"
class="radio"
value="dueToday"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueToday">{{ t('deck', 'Next 24 hours') }}</label>
</div>
<div class="filter--item">
<input
id="dueWeek"
v-model="filter.due"
type="radio"
class="radio"
value="dueWeek"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueWeek">{{ t('deck', 'Next 7 days') }}</label>
</div>
<div class="filter--item">
<input
id="dueMonth"
v-model="filter.due"
type="radio"
class="radio"
value="dueMonth"
@change="setFilter"
@click="beforeSetFilter">
<label for="dueMonth">{{ t('deck', 'Next 30 days') }}</label>
</div>
<div class="filter--item">
<input
id="noDue"
v-model="filter.due"
type="radio"
class="radio"
value="noDue"
@change="setFilter"
@click="beforeSetFilter">
<label for="noDue">{{ t('deck', 'No due date') }}</label>
</div>
<Button :disabled="!isFilterActive" @click="clearFilter">
{{ t('deck', 'Clear filter') }}
</Button>
</div>
</template>
</Popover>
<Actions :style="archivedOpacity">
<ActionButton
icon="icon-archive"
@click="toggleShowArchived">
{{ showArchived ? t('deck', 'Hide archived cards') : t('deck', 'Show archived cards') }}
</ActionButton>
<ActionButton v-if="compactMode"
icon="icon-toggle-compact-collapsed"
@click="toggleCompactMode">
{{ t('deck', 'Toggle compact mode') }}
</ActionButton>
<ActionButton v-else
icon="icon-toggle-compact-expanded"
@click="toggleCompactMode">
{{ t('deck', 'Toggle compact mode') }}
</ActionButton>
</Actions>
<!-- FIXME: ActionRouter currently doesn't work as an inline action -->
<Actions :title="t('deck', 'Details')">
<ActionButton icon="icon-menu-sidebar" @click="toggleDetailsView" />
</Actions>
</div>
</div>
</div>
</template>
<script>
import { mapState, mapGetters } from 'vuex'
import { Actions, ActionButton, Popover, Avatar } from '@nextcloud/vue'
import labelStyle from '../mixins/labelStyle'
export default {
name: 'Controls',
components: {
Actions, ActionButton, Popover, Avatar,
},
mixins: [ labelStyle ],
props: {
board: {
type: Object,
required: false,
default: null,
},
overviewName: {
type: String,
required: false,
default: null,
},
},
data() {
return {
newStackTitle: '',
stack: '',
showArchived: false,
isAddStackVisible: false,
filter: { tags: [], users: [], due: '', unassigned: false },
}
},
computed: {
...mapGetters([
'canEdit',
'canManage',
]),
...mapState({
compactMode: state => state.compactMode,
}),
detailsRoute() {
return {
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
}
return false
},
labelsSorted() {
return [...this.board.labels].sort((a, b) => (a.title < b.title) ? -1 : 1)
},
},
watch: {
board(current, previous) {
if (current?.id !== previous?.id) {
this.clearFilter()
}
},
},
methods: {
beforeSetFilter(e) {
if (this.filter.due === e.target.value) {
this.filter.due = ''
this.$store.dispatch('setFilter', { ...this.filter })
}
if (e.target.value === 'unassigned') {
this.filter.users = []
}
},
setFilter() {
if (this.filter.users.length > 0) {
this.filter.unassigned = false
}
this.$nextTick(() => this.$store.dispatch('setFilter', { ...this.filter }))
},
toggleNav() {
this.$store.dispatch('toggleNav')
},
toggleCompactMode() {
this.$store.dispatch('toggleCompactMode')
},
toggleShowArchived() {
this.$store.dispatch('toggleShowArchived')
this.showArchived = !this.showArchived
},
addNewStack() {
this.stack = { title: this.newStackTitle }
this.$store.dispatch('createStack', this.stack)
this.newStackTitle = ''
this.stack = null
this.isAddStackVisible = false
},
showAddStack() {
this.isAddStackVisible = true
},
hideAddStack() {
this.isAddStackVisible = false
},
toggleDetailsView() {
if (this.$route.name === 'board.details') {
this.$router.push({ name: 'board' })
} else {
this.$router.push({ name: 'board.details' })
}
},
clearFilter() {
const filterReset = { tags: [], users: [], due: '' }
this.$store.dispatch('setFilter', { ...filterReset })
this.filter = filterReset
},
},
}
</script>
<style lang="scss" scoped>
.controls {
display: flex;
padding: 3px;
height: 44px;
padding-left: 44px;
.board-title {
display: flex;
align-items: center;
h2 {
margin: 0;
margin-right: 10px;
}
.board-bullet {
display: inline-block;
width: 20px;
height: 20px;
border: none;
border-radius: 50%;
background-color: transparent;
margin: 12px;
margin-left: -4px;
}
}
#stack-add form {
display: flex;
}
}
#app-navigation-toggle-custom {
position: static;
width: 44px;
height: 44px;
cursor: pointer;
opacity: 1;
display: inline-block !important;
}
.board-actions {
flex-grow: 1;
order: 100;
display: flex;
justify-content: flex-end;
}
.board-action-buttons {
display: flex;
button {
border: 0;
width: 44px;
margin: 0 0 0 -1px;
background-color: transparent;
}
}
.filter--item {
input + label {
display: block;
padding: 6px 0;
vertical-align: middle;
.avatardiv {
vertical-align: middle;
margin-bottom: 2px;
margin-right: 3px;
}
.label {
padding: 5px;
border-radius: 3px;
}
}
}
.filter {
width: 250px;
max-height: 80vh;
overflow: auto;
padding: 8px;
}
.filter h3 {
margin-top: 0px;
margin-bottom: 5px;
}
</style>
<style lang="scss">
.tooltip-inner.popover-inner {
text-align: left;
}
</style>

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

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

View File

@@ -101,6 +101,7 @@
:lang="lang"
:formatter="format"
:disabled="saving || !canEdit"
:shortcuts="shortcuts"
confirm />
<Actions v-if="canEdit">
<ActionButton v-if="copiedCard.duedate" icon="icon-delete" @click="removeDue()">
@@ -176,6 +177,23 @@ export default {
stringify: this.stringify,
parse: this.parse,
},
shortcuts: [
{
text: 'Today',
onClick() {
const date = new Date()
return date
},
},
{
text: 'Tomorrow',
onClick() {
const date = new Date()
date.setTime(date.getTime() + 3600 * 1000 * 24)
return date
},
},
],
}
},
computed: {
@@ -316,6 +334,10 @@ export default {
</script>
<style lang="scss" scoped>
.section-wrapper::v-deep .mx-datepicker-main .mx-datepicker-popup {
left: 0 !important;
}
.section-wrapper {
display: flex;
max-width: 100%;

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,

View File

@@ -298,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

@@ -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

@@ -389,7 +389,7 @@ trait BasicStructure {
* @BeforeSuite
*/
public static function addFilesToSkeleton() {
for ($i=0; $i<5; $i++) {
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")) {
@@ -409,7 +409,7 @@ trait BasicStructure {
* @AfterSuite
*/
public static function removeFilesFromSkeleton() {
for ($i=0; $i<5; $i++) {
for ($i = 0; $i < 5; $i++) {
self::removeFile("../../core/skeleton/", "textfile" . "$i" . ".txt");
}
if (is_dir("../../core/skeleton/FOLDER")) {

690
tests/psalm-baseline.xml Normal file
View File

@@ -0,0 +1,690 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.3.1@2feba22a005a18bf31d4c7b9bdb9252c73897476">
<file src="lib/Activity/ActivityManager.php">
<TypeDoesNotContainType occurrences="1">
<code>$message !== null</code>
</TypeDoesNotContainType>
<UndefinedMagicMethod occurrences="9">
<code>getArchived</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getCardId</code>
<code>getCardId</code>
<code>getStackId</code>
<code>getTitle</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Activity/DeckProvider.php">
<InvalidScalarArgument occurrences="1">
<code>(int)$subjectParams['comment']</code>
</InvalidScalarArgument>
</file>
<file src="lib/AppInfo/Application.php">
<DuplicateClass occurrences="1">
<code>Application</code>
</DuplicateClass>
</file>
<file src="lib/AppInfo/Application20.php">
<UndefinedClass occurrences="1">
<code>IBootstrap</code>
</UndefinedClass>
</file>
<file src="lib/AppInfo/ApplicationLegacy.php">
<UndefinedInterfaceMethod occurrences="2">
<code>listen</code>
<code>listen</code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/Collaboration/Resources/ResourceProviderCard.php">
<UndefinedMagicMethod occurrences="4">
<code>getAcl</code>
<code>getOwner</code>
<code>getTitle</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Command/UserExport.php">
<ImplementedReturnTypeMismatch occurrences="1">
<code>void</code>
</ImplementedReturnTypeMismatch>
<UndefinedThisPropertyAssignment occurrences="2">
<code>$this-&gt;boardMapper</code>
<code>$this-&gt;stackMapper</code>
</UndefinedThisPropertyAssignment>
<UndefinedThisPropertyFetch occurrences="2">
<code>$this-&gt;boardMapper</code>
<code>$this-&gt;stackMapper</code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/Controller/BoardApiController.php">
<TypeDoesNotContainNull occurrences="2">
<code>$modified === null</code>
<code>$modified === null</code>
</TypeDoesNotContainNull>
<UndefinedClass occurrences="1">
<code>Util</code>
</UndefinedClass>
<UndefinedThisPropertyAssignment occurrences="1">
<code>$this-&gt;userId</code>
</UndefinedThisPropertyAssignment>
<UndefinedThisPropertyFetch occurrences="1">
<code>$this-&gt;userId</code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/Controller/BoardController.php">
<UndefinedDocblockClass occurrences="1">
<code>\OCP\Deck\DB\Board</code>
</UndefinedDocblockClass>
</file>
<file src="lib/Controller/CommentsApiController.php">
<InvalidScalarArgument occurrences="6">
<code>$cardId</code>
<code>$cardId</code>
<code>$cardId</code>
<code>$commentId</code>
<code>$commentId</code>
<code>$parentId</code>
</InvalidScalarArgument>
</file>
<file src="lib/Controller/PageController.php">
<MissingDependency occurrences="3">
<code>Application</code>
<code>Application</code>
<code>Application</code>
</MissingDependency>
</file>
<file src="lib/Controller/StackApiController.php">
<RedundantCondition occurrences="1">
<code>$modified !== null</code>
</RedundantCondition>
<UndefinedClass occurrences="1">
<code>Util</code>
</UndefinedClass>
</file>
<file src="lib/Cron/CardDescriptionActivity.php">
<UndefinedClass occurrences="1">
<code>Job</code>
</UndefinedClass>
</file>
<file src="lib/Cron/DeleteCron.php">
<UndefinedClass occurrences="1">
<code>Job</code>
</UndefinedClass>
</file>
<file src="lib/Cron/ScheduledNotifications.php">
<UndefinedClass occurrences="1">
<code>Job</code>
</UndefinedClass>
</file>
<file src="lib/DAV/Calendar.php">
<UndefinedClass occurrences="1">
<code>ExternalCalendar</code>
</UndefinedClass>
</file>
<file src="lib/DAV/CalendarObject.php">
<UndefinedClass occurrences="2">
<code>IACL</code>
<code>ICalendarObject</code>
</UndefinedClass>
</file>
<file src="lib/DAV/CalendarPlugin.php">
<UndefinedClass occurrences="1">
<code>ICalendarProvider</code>
</UndefinedClass>
</file>
<file src="lib/DAV/DeckCalendarBackend.php">
<UndefinedClass occurrences="1">
<code>NotFound</code>
</UndefinedClass>
</file>
<file src="lib/Dashboard/DeckWidget.php">
<UndefinedClass occurrences="1">
<code>IWidget</code>
</UndefinedClass>
</file>
<file src="lib/Db/Acl.php">
<UndefinedMagicMethod occurrences="3">
<code>getPermissionEdit</code>
<code>getPermissionManage</code>
<code>getPermissionShare</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/AclMapper.php">
<ParamNameMismatch occurrences="1">
<code>$aclId</code>
</ParamNameMismatch>
</file>
<file src="lib/Db/AssignmentMapper.php">
<ParamNameMismatch occurrences="1">
<code>$cardId</code>
</ParamNameMismatch>
<UndefinedMagicMethod occurrences="9">
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/AttachmentMapper.php">
<UndefinedMagicMethod occurrences="2">
<code>getCardId</code>
<code>getCardId</code>
</UndefinedMagicMethod>
<UndefinedVariable occurrences="1">
<code>$query</code>
</UndefinedVariable>
</file>
<file src="lib/Db/Board.php">
<UndefinedMagicMethod occurrences="1">
<code>getLastModified</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/BoardMapper.php">
<ParamNameMismatch occurrences="1">
<code>$boardId</code>
</ParamNameMismatch>
<UndefinedClass occurrences="1">
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="2">
<code>setAcl</code>
<code>setLabels</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/Card.php">
<UndefinedClass occurrences="2">
<code>VCalendar</code>
<code>VCalendar</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="9">
<code>getArchived</code>
<code>getArchived</code>
<code>getDescription</code>
<code>getLabels</code>
<code>getLabels</code>
<code>getLastModified</code>
<code>getLastModified</code>
<code>getStackId</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/CardMapper.php">
<ImplicitToStringCast occurrences="1">
<code>$qb-&gt;createNamedParameter($boardIds, IQueryBuilder::PARAM_INT_ARRAY)</code>
</ImplicitToStringCast>
<InvalidScalarArgument occurrences="1">
<code>$entity-&gt;getId()</code>
</InvalidScalarArgument>
<ParamNameMismatch occurrences="1">
<code>$cardId</code>
</ParamNameMismatch>
<UndefinedMagicMethod occurrences="13">
<code>getDescription</code>
<code>getDescription</code>
<code>getDuedate</code>
<code>setCreatedAt</code>
<code>setDatabaseType</code>
<code>setDatabaseType</code>
<code>setDescription</code>
<code>setDescription</code>
<code>setLabels</code>
<code>setLastModified</code>
<code>setLastModified</code>
<code>setNotified</code>
<code>setNotified</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/ChangeHelper.php">
<UndefinedThisPropertyAssignment occurrences="3">
<code>$this-&gt;cache</code>
<code>$this-&gt;request</code>
<code>$this-&gt;userId</code>
</UndefinedThisPropertyAssignment>
<UndefinedThisPropertyFetch occurrences="6">
<code>$this-&gt;cache</code>
<code>$this-&gt;cache</code>
<code>$this-&gt;cache</code>
<code>$this-&gt;cache</code>
<code>$this-&gt;request</code>
<code>$this-&gt;userId</code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/Db/Circle.php">
<UndefinedClass occurrences="1">
<code>\OCA\Circles\Model\Circle</code>
</UndefinedClass>
<UndefinedDocblockClass occurrences="5">
<code>$this-&gt;object</code>
<code>$this-&gt;object</code>
<code>$this-&gt;object</code>
<code>$this-&gt;object</code>
<code>\OCA\Circles\Model\Circle</code>
</UndefinedDocblockClass>
</file>
<file src="lib/Db/Label.php">
<UndefinedMagicMethod occurrences="1">
<code>getLastModified</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/LabelMapper.php">
<ParamNameMismatch occurrences="1">
<code>$labelId</code>
</ParamNameMismatch>
<UndefinedMagicMethod occurrences="2">
<code>setLastModified</code>
<code>setLastModified</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/RelationalEntity.php">
<UndefinedMagicMethod occurrences="1">
<code>getETag</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/Stack.php">
<UndefinedClass occurrences="2">
<code>VCalendar</code>
<code>VCalendar</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="2">
<code>getLastModified</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Db/StackMapper.php">
<ParamNameMismatch occurrences="1">
<code>$stackId</code>
</ParamNameMismatch>
<UndefinedMagicMethod occurrences="1">
<code>getBoardId</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Listeners/BeforeTemplateRenderedListener.php">
<UndefinedClass occurrences="1">
<code>BeforeTemplateRenderedEvent</code>
</UndefinedClass>
</file>
<file src="lib/Migration/UnknownUsers.php">
<UndefinedMagicMethod occurrences="4">
<code>getParticipant</code>
<code>getParticipant</code>
<code>getType</code>
<code>getType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Notification/NotificationHelper.php">
<InvalidScalarArgument occurrences="1">
<code>$board-&gt;getId()</code>
</InvalidScalarArgument>
<MissingDependency occurrences="1">
<code>Application</code>
</MissingDependency>
<UndefinedMagicMethod occurrences="3">
<code>getTitle</code>
<code>getTitle</code>
<code>getTitle</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Notification/Notifier.php">
<RedundantCast occurrences="7">
<code>(string) $l-&gt;t('%s has mentioned you in a comment on "%s".', [$dn, $params[0]])</code>
<code>(string) $l-&gt;t('The board "%s" has been shared with you by %s.', [$params[0], $dn])</code>
<code>(string) $l-&gt;t('The card "%s" on "%s" has been assigned to you by %s.', [$params[0], $params[1], $dn])</code>
<code>(string) $l-&gt;t('The card "%s" on "%s" has reached its due date.', $params)</code>
<code>(string) $l-&gt;t('{user} has assigned the card "%s" on "%s" to you.', [$params[0], $params[1]])</code>
<code>(string) $l-&gt;t('{user} has mentioned you in a comment on "%s".', [$params[0]])</code>
<code>(string) $l-&gt;t('{user} has shared the board %s with you.', [$params[0]])</code>
</RedundantCast>
</file>
<file src="lib/Provider/DeckProvider.php">
<InvalidPropertyAssignmentValue occurrences="1">
<code>[]</code>
</InvalidPropertyAssignmentValue>
<UndefinedClass occurrences="2">
<code>IndexDocument</code>
<code>SearchTemplate</code>
</UndefinedClass>
</file>
<file src="lib/Search/BoardSearchResultEntry.php">
<UndefinedClass occurrences="1">
<code>SearchResultEntry</code>
</UndefinedClass>
</file>
<file src="lib/Search/CardSearchResultEntry.php">
<UndefinedClass occurrences="1">
<code>SearchResultEntry</code>
</UndefinedClass>
</file>
<file src="lib/Search/DeckProvider.php">
<UndefinedClass occurrences="1">
<code>IProvider</code>
</UndefinedClass>
</file>
<file src="lib/Service/AssignmentService.php">
<InvalidScalarArgument occurrences="2">
<code>$cardId</code>
<code>$cardId</code>
</InvalidScalarArgument>
<UndefinedMagicMethod occurrences="9">
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
<code>setCardId</code>
<code>setParticipant</code>
<code>setType</code>
</UndefinedMagicMethod>
<UndefinedThisPropertyAssignment occurrences="1">
<code>$this-&gt;currentUser</code>
</UndefinedThisPropertyAssignment>
<UndefinedThisPropertyFetch occurrences="1">
<code>$this-&gt;currentUser</code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/Service/AttachmentService.php">
<MissingDependency occurrences="1">
<code>Application</code>
</MissingDependency>
<UndefinedMagicMethod occurrences="13">
<code>getCardId</code>
<code>getCardId</code>
<code>getCardId</code>
<code>getData</code>
<code>getType</code>
<code>getType</code>
<code>setCardId</code>
<code>setCreatedAt</code>
<code>setCreatedBy</code>
<code>setData</code>
<code>setLastModified</code>
<code>setLastModified</code>
<code>setType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/BoardService.php">
<InvalidArgument occurrences="6">
<code>'\OCA\Deck\Board::onCreate'</code>
<code>'\OCA\Deck\Board::onDelete'</code>
<code>'\OCA\Deck\Board::onDelete'</code>
<code>'\OCA\Deck\Board::onShareEdit'</code>
<code>'\OCA\Deck\Board::onUpdate'</code>
<code>'\OCA\Deck\Board::onUpdate'</code>
</InvalidArgument>
<MissingDependency occurrences="3">
<code>Application</code>
<code>Application</code>
<code>Application</code>
</MissingDependency>
<TooManyArguments occurrences="2">
<code>findAll</code>
<code>findAll</code>
</TooManyArguments>
<UndefinedMagicMethod occurrences="40">
<code>getAcl</code>
<code>getAcl</code>
<code>getAcl</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getParticipant</code>
<code>getType</code>
<code>setBoardId</code>
<code>setBoardId</code>
<code>setBoardId</code>
<code>setBoardId</code>
<code>setColor</code>
<code>setColor</code>
<code>setColor</code>
<code>setColor</code>
<code>setColor</code>
<code>setLabels</code>
<code>setOwner</code>
<code>setOwner</code>
<code>setParticipant</code>
<code>setPermissionEdit</code>
<code>setPermissionEdit</code>
<code>setPermissionManage</code>
<code>setPermissionManage</code>
<code>setPermissionShare</code>
<code>setPermissionShare</code>
<code>setPermissions</code>
<code>setPermissions</code>
<code>setPermissions</code>
<code>setPermissions</code>
<code>setSettings</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/CardService.php">
<TooFewArguments occurrences="1">
<code>findAssignedCards</code>
</TooFewArguments>
<UndefinedDocblockClass occurrences="1">
<code>\OCP\AppFramework\Db\</code>
</UndefinedDocblockClass>
<UndefinedMagicMethod occurrences="44">
<code>getArchived</code>
<code>getArchived</code>
<code>getArchived</code>
<code>getArchived</code>
<code>getArchived</code>
<code>getDescription</code>
<code>getDescription</code>
<code>getDescription</code>
<code>getDescriptionPrev</code>
<code>getDescriptionPrev</code>
<code>getLastEditor</code>
<code>getLastEditor</code>
<code>getLastEditor</code>
<code>getOrder</code>
<code>setArchived</code>
<code>setArchived</code>
<code>setArchived</code>
<code>setAssignedUsers</code>
<code>setAssignedUsers</code>
<code>setAttachmentCount</code>
<code>setAttachments</code>
<code>setCommentsUnread</code>
<code>setDeletedAt</code>
<code>setDeletedAt</code>
<code>setDescription</code>
<code>setDescription</code>
<code>setDescriptionPrev</code>
<code>setDescriptionPrev</code>
<code>setDuedate</code>
<code>setDuedate</code>
<code>setLabels</code>
<code>setLastEditor</code>
<code>setOrder</code>
<code>setOrder</code>
<code>setOwner</code>
<code>setOwner</code>
<code>setStackId</code>
<code>setStackId</code>
<code>setStackId</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setTitle</code>
<code>setType</code>
<code>setType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/CirclesService.php">
<UndefinedClass occurrences="2">
<code>\OCA\Circles\Api\v1\Circles</code>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
</file>
<file src="lib/Service/CommentService.php">
<MissingDependency occurrences="5">
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
</MissingDependency>
<UndefinedThisPropertyAssignment occurrences="2">
<code>$this-&gt;cardMapper</code>
<code>$this-&gt;permissionService</code>
</UndefinedThisPropertyAssignment>
<UndefinedThisPropertyFetch occurrences="8">
<code>$this-&gt;cardMapper</code>
<code>$this-&gt;cardMapper</code>
<code>$this-&gt;cardMapper</code>
<code>$this-&gt;cardMapper</code>
<code>$this-&gt;permissionService</code>
<code>$this-&gt;permissionService</code>
<code>$this-&gt;permissionService</code>
<code>$this-&gt;permissionService</code>
</UndefinedThisPropertyFetch>
</file>
<file src="lib/Service/ConfigService.php">
<InvalidScalarArgument occurrences="1">
<code>(int)$value</code>
</InvalidScalarArgument>
<MissingDependency occurrences="7">
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
<code>Application</code>
</MissingDependency>
</file>
<file src="lib/Service/DefaultBoardService.php">
<MissingDependency occurrences="2">
<code>Application</code>
<code>Application</code>
</MissingDependency>
<TypeDoesNotContainNull occurrences="6">
<code>$color === false || $color === null</code>
<code>$color === null</code>
<code>$title === false || $title === null</code>
<code>$title === null</code>
<code>$userId === false || $userId === null</code>
<code>$userId === null</code>
</TypeDoesNotContainNull>
<TypeDoesNotContainType occurrences="3">
<code>$color === false</code>
<code>$title === false</code>
<code>$userId === false</code>
</TypeDoesNotContainType>
</file>
<file src="lib/Service/FileService.php">
<MissingDependency occurrences="2">
<code>$this-&gt;rootFolder</code>
<code>IRootFolder</code>
</MissingDependency>
<RedundantCondition occurrences="2">
<code>is_resource($content)</code>
<code>is_resource($content)</code>
</RedundantCondition>
<UndefinedMagicMethod occurrences="10">
<code>getCardId</code>
<code>getCardId</code>
<code>getCardId</code>
<code>getData</code>
<code>getData</code>
<code>setData</code>
<code>setData</code>
<code>setDeletedAt</code>
<code>setExtendedData</code>
<code>setLastModified</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/FullTextSearchService.php">
<UndefinedClass occurrences="2">
<code>DocumentAccess</code>
<code>IndexDocument</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="4">
<code>getDescription</code>
<code>getDescription</code>
<code>getTitle</code>
<code>getTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/LabelService.php">
<UndefinedMagicMethod occurrences="4">
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>setBoardId</code>
<code>setColor</code>
<code>setColor</code>
<code>setTitle</code>
<code>setTitle</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/OverviewService.php">
<UndefinedMagicMethod occurrences="4">
<code>setAssignedUsers</code>
<code>setAttachmentCount</code>
<code>setCommentsUnread</code>
<code>setLabels</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/PermissionService.php">
<UndefinedClass occurrences="2">
<code>\OCA\Circles\Api\v1\Circles</code>
<code>\OCA\Circles\Api\v1\Circles</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="6">
<code>getAcl</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getParticipant</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
<code>getType</code>
</UndefinedMagicMethod>
</file>
<file src="lib/Service/StackService.php">
<InvalidArgument occurrences="3">
<code>'\OCA\Deck\Stack::onCreate'</code>
<code>'\OCA\Deck\Stack::onDelete'</code>
<code>'\OCA\Deck\Stack::onUpdate'</code>
</InvalidArgument>
<UndefinedClass occurrences="1">
<code>BadRquestException</code>
</UndefinedClass>
<UndefinedMagicMethod occurrences="14">
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getBoardId</code>
<code>getOrder</code>
<code>setBoardId</code>
<code>setBoardId</code>
<code>setCards</code>
<code>setDeletedAt</code>
<code>setDeletedAt</code>
<code>setOrder</code>
<code>setOrder</code>
<code>setTitle</code>
<code>setTitle</code>
</UndefinedMagicMethod>
</file>
</files>

View File

@@ -50,10 +50,10 @@ class UserExportTest extends \Test\TestCase {
public function setUp(): void {
parent::setUp();
$this->boardMapper = $this->createMock(BoardMapper::class);
$this->boardService= $this->createMock(BoardService::class);
$this->stackMapper= $this->createMock(StackMapper::class);
$this->cardMapper= $this->createMock(CardMapper::class);
$this->assignedUserMapper= $this->createMock(AssignmentMapper::class);
$this->boardService = $this->createMock(BoardService::class);
$this->stackMapper = $this->createMock(StackMapper::class);
$this->cardMapper = $this->createMock(CardMapper::class);
$this->assignedUserMapper = $this->createMock(AssignmentMapper::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->userExport = new UserExport($this->boardMapper, $this->boardService, $this->stackMapper, $this->cardMapper, $this->assignedUserMapper, $this->userManager, $this->groupManager);
@@ -104,13 +104,13 @@ class UserExportTest extends \Test\TestCase {
$this->getCard(2),
$this->getCard(3),
];
$this->cardMapper->expects($this->exactly(count($boards)*count($stacks)))
$this->cardMapper->expects($this->exactly(count($boards) * count($stacks)))
->method('findAllByStack')
->willReturn($cards);
$this->cardMapper->expects($this->exactly(count($boards)*count($stacks)*count($cards)))
$this->cardMapper->expects($this->exactly(count($boards) * count($stacks) * count($cards)))
->method('find')
->willReturn($cards[0]);
$this->assignedUserMapper->expects($this->exactly(count($boards)*count($stacks)*count($cards)))
$this->assignedUserMapper->expects($this->exactly(count($boards) * count($stacks) * count($cards)))
->method('find')
->willReturn([]);
$result = $this->invokePrivate($this->userExport, 'execute', [$input, $output]);

View File

@@ -74,7 +74,7 @@ class AclMapperTest extends MapperTestUtility {
}
}
/** @return Acl */
public function getAcl($type='user', $participant='admin', $edit=false, $share=false, $manage=false, $boardId=123) {
public function getAcl($type = 'user', $participant = 'admin', $edit = false, $share = false, $manage = false, $boardId = 123) {
$acl = new Acl();
$acl->setParticipant($participant);
$acl->setType('user');

View File

@@ -86,7 +86,7 @@ class BoardMapperTest extends MapperTestUtility {
}
}
/** @return Acl */
public function getAcl($type='user', $participant='admin', $edit=false, $share=false, $manage=false, $boardId=123) {
public function getAcl($type = 'user', $participant = 'admin', $edit = false, $share = false, $manage = false, $boardId = 123) {
$acl = new Acl();
$acl->setParticipant($participant);
$acl->setType('user');

View File

@@ -36,7 +36,7 @@ class RelationalEntityTest extends \Test\TestCase {
$entity = new RelationalEntity();
$entity->foo = null;
$entity->setFoo('test');
$this->assertEquals(['foo'=>true], $entity->getUpdatedFields());
$this->assertEquals(['foo' => true], $entity->getUpdatedFields());
}
public function testJsonSerialize() {

View File

@@ -109,7 +109,7 @@ class UnknownUserTest extends \Test\TestCase {
/** @return Acl */
public function getAcl($type=Acl::PERMISSION_TYPE_USER, $participant='admin', $boardId=123) {
public function getAcl($type = Acl::PERMISSION_TYPE_USER, $participant = 'admin', $boardId = 123) {
$acl = new Acl();
$acl->setParticipant($participant);
$acl->setType($type);

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\Service;
use OC\EventDispatcher\SymfonyAdapter;
use OC\L10N\L10N;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\Acl;
@@ -90,7 +91,7 @@ class BoardServiceTest extends TestCase {
$this->groupManager = $this->createMock(IGroupManager::class);
$this->activityManager = $this->createMock(ActivityManager::class);
$this->changeHelper = $this->createMock(ChangeHelper::class);
$this->eventDispatcher = $this->createMock(EventDispatcherInterface::class);
$this->eventDispatcher = $this->createMock(SymfonyAdapter::class);
$this->service = new BoardService(
$this->boardMapper,

View File

@@ -246,7 +246,7 @@ class CardServiceTest extends TestCase {
private function getCards() {
$cards = [];
for ($i=0; $i<10; $i++) {
for ($i = 0; $i < 10; $i++) {
$cards[$i] = new Card();
$cards[$i]->setTitle($i);
$cards[$i]->setOrder($i);

View File

@@ -216,7 +216,7 @@ class PermissionServiceTest extends \Test\TestCase {
}
/** @dataProvider dataCheckPermission */
public function testCheckPermission($boardId, $permission, $result, $owner='foo') {
public function testCheckPermission($boardId, $permission, $result, $owner = 'foo') {
// Setup mapper
$mapper = $this->getMockBuilder(IPermissionMapper::class)->getMock();
@@ -245,7 +245,7 @@ class PermissionServiceTest extends \Test\TestCase {
}
/** @dataProvider dataCheckPermission */
public function testCheckPermissionWithoutMapper($boardId, $permission, $result, $owner='foo') {
public function testCheckPermissionWithoutMapper($boardId, $permission, $result, $owner = 'foo') {
$mapper = null;
$board = new Board();
$board->setId($boardId);

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\Service;
use OC\EventDispatcher\SymfonyAdapter;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Card;
@@ -84,7 +85,7 @@ class StackServiceTest extends TestCase {
$this->labelMapper = $this->createMock(LabelMapper::class);
$this->activityManager = $this->createMock(ActivityManager::class);
$this->changeHelper = $this->createMock(ChangeHelper::class);
$this->eventDispatcher = $this->createMock(EventDispatcherInterface::class);
$this->eventDispatcher = $this->createMock(SymfonyAdapter::class);
$this->stackService = new StackService(
$this->stackMapper,
@@ -116,8 +117,8 @@ class StackServiceTest extends TestCase {
$actual = $this->stackService->findAll(123);
for ($stackId=0; $stackId<3; $stackId++) {
for ($cardId=0;$cardId<10;$cardId++) {
for ($stackId = 0; $stackId < 3; $stackId++) {
for ($cardId = 0;$cardId < 10;$cardId++) {
$this->assertEquals($actual[0]->getCards()[$cardId]->getId(), $cardId);
$this->assertEquals($actual[0]->getCards()[$cardId]->getStackId(), 222);
$this->assertEquals($actual[0]->getCards()[$cardId]->getLabels(), $this->getLabels()[$cardId]);
@@ -132,8 +133,8 @@ class StackServiceTest extends TestCase {
$this->cardMapper->expects($this->any())->method('findAllArchived')->willReturn($this->getCards(222));
$actual = $this->stackService->findAllArchived(123);
for ($stackId=0; $stackId<3; $stackId++) {
for ($cardId=0;$cardId<10;$cardId++) {
for ($stackId = 0; $stackId < 3; $stackId++) {
for ($cardId = 0;$cardId < 10;$cardId++) {
$this->assertEquals($actual[0]->getCards()[$cardId]->getId(), $cardId);
$this->assertEquals($actual[0]->getCards()[$cardId]->getStackId(), 222);
$this->assertEquals($actual[0]->getCards()[$cardId]->getLabels(), $this->getLabels()[$cardId]);
@@ -142,7 +143,7 @@ class StackServiceTest extends TestCase {
}
private function getLabels() {
for ($i=0;$i<10;$i++) {
for ($i = 0;$i < 10;$i++) {
$label1 = new Label();
$label1->setTitle('Important');
$label1->setCardId(1);
@@ -165,9 +166,9 @@ class StackServiceTest extends TestCase {
$s1->setBoardId(1);
return [$s1, $s2];
}
private function getCards($stackId=0) {
private function getCards($stackId = 0) {
$cards = [];
for ($i=0;$i<10;$i++) {
for ($i = 0;$i < 10;$i++) {
$cards[$i] = new Card();
$cards[$i]->setId($i);
$cards[$i]->setStackId($stackId);