Merge branch 'master' into assign_to_me_feature
This commit is contained in:
23
.drone.yml
23
.drone.yml
@@ -22,11 +22,11 @@ pipeline:
|
||||
when:
|
||||
matrix:
|
||||
TESTS: check-app-compatbility
|
||||
check-app-compatbility-12:
|
||||
check-app-compatbility-13:
|
||||
image: nextcloudci/php7.0:php7.0-17
|
||||
environment:
|
||||
- APP_NAME=deck
|
||||
- CORE_BRANCH=stable12
|
||||
- CORE_BRANCH=stable13
|
||||
- DB=sqlite
|
||||
commands:
|
||||
# Pre-setup steps
|
||||
@@ -40,24 +40,6 @@ pipeline:
|
||||
when:
|
||||
matrix:
|
||||
TESTS: check-app-compatbility-13
|
||||
check-app-compatbility-12:
|
||||
image: nextcloudci/php7.0:php7.0-17
|
||||
environment:
|
||||
- APP_NAME=deck
|
||||
- CORE_BRANCH=stable12
|
||||
- DB=sqlite
|
||||
commands:
|
||||
# Pre-setup steps
|
||||
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
|
||||
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
|
||||
- cd ../server
|
||||
# Code checker
|
||||
- ./occ app:check-code $APP_NAME -c strong-comparison
|
||||
- ./occ app:check-code $APP_NAME -c deprecation
|
||||
- cd apps/$APP_NAME/
|
||||
when:
|
||||
matrix:
|
||||
TESTS: check-app-compatbility-12
|
||||
signed-off-check:
|
||||
image: nextcloudci/php7.0:php7.0-17
|
||||
environment:
|
||||
@@ -230,7 +212,6 @@ pipeline:
|
||||
matrix:
|
||||
include:
|
||||
- TESTS: check-app-compatbility
|
||||
- TESTS: check-app-compatbility-12
|
||||
- TESTS: check-app-compatbility-13
|
||||
- TESTS: signed-off-check
|
||||
- TESTS: syntax-php5.6
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>0.4.0</version>
|
||||
<version>0.5.0-dev1</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Deck</namespace>
|
||||
@@ -26,7 +26,7 @@
|
||||
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Board.png</screenshot>
|
||||
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Details.png</screenshot>
|
||||
<dependencies>
|
||||
<nextcloud min-version="12" max-version="14" />
|
||||
<nextcloud min-version="13" max-version="14" />
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
|
||||
159
js/package-lock.json
generated
159
js/package-lock.json
generated
@@ -5,17 +5,17 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@uirouter/angularjs": {
|
||||
"version": "1.0.18",
|
||||
"resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.18.tgz",
|
||||
"integrity": "sha512-tswhwMMBDnbGOZnnCVpnA0pbd7dXkBck1HO0WY7fw8GO3dKbWAAc/rL0479dLypR89UDDGym5leTvZCLW4cJnA==",
|
||||
"version": "1.0.19",
|
||||
"resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.19.tgz",
|
||||
"integrity": "sha512-O+M3CB4en9OPMKqSrMC6hZsuMbtttYpGlALZoqAYqUmqdw1CJ5WBnuj7s/40svhZG338SfqxXN/Y2uKh5x+gPQ==",
|
||||
"requires": {
|
||||
"@uirouter/core": "5.0.19"
|
||||
"@uirouter/core": "5.0.20"
|
||||
}
|
||||
},
|
||||
"@uirouter/core": {
|
||||
"version": "5.0.19",
|
||||
"resolved": "https://registry.npmjs.org/@uirouter/core/-/core-5.0.19.tgz",
|
||||
"integrity": "sha512-wow+CKRThUAQkiTLNQCBsKQIU3NbH8GGH/w/TrcjKdvkZQA2jQB9QSqmmZxj7XNoZXY7QVcSSc4DWmxuSeAWmQ=="
|
||||
"version": "5.0.20",
|
||||
"resolved": "https://registry.npmjs.org/@uirouter/core/-/core-5.0.20.tgz",
|
||||
"integrity": "sha512-7MwtORbMF0UFCgMb+KcBAx+7EsYn/6sP5mEAjLNQq14AkHOJom5pPRE0N3nxduFbK3V2TXfsOX2UjtbkuXql+A=="
|
||||
},
|
||||
"@webassemblyjs/ast": {
|
||||
"version": "1.5.13",
|
||||
@@ -2728,9 +2728,9 @@
|
||||
}
|
||||
},
|
||||
"enhanced-resolve": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz",
|
||||
"integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==",
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
|
||||
"integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
@@ -2859,9 +2859,9 @@
|
||||
}
|
||||
},
|
||||
"eslint-scope": {
|
||||
"version": "3.7.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
|
||||
"integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
|
||||
"integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esrecurse": "^4.1.0",
|
||||
@@ -3062,17 +3062,6 @@
|
||||
"chardet": "^0.5.0",
|
||||
"iconv-lite": "^0.4.22",
|
||||
"tmp": "^0.0.33"
|
||||
},
|
||||
"dependencies": {
|
||||
"iconv-lite": {
|
||||
"version": "0.4.23",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
||||
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"extglob": {
|
||||
@@ -4093,9 +4082,9 @@
|
||||
}
|
||||
},
|
||||
"global-modules-path": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.1.0.tgz",
|
||||
"integrity": "sha512-3DrmGj2TP+96cABk9TfMp6f3knH/Y46dqvWznTU3Tf6/bDGLDAn15tFluQ7BcloykOcdY16U0WGq0BQblYOxJQ==",
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz",
|
||||
"integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==",
|
||||
"dev": true
|
||||
},
|
||||
"globals": {
|
||||
@@ -4572,12 +4561,6 @@
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||
@@ -5438,9 +5421,9 @@
|
||||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "8.4.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.1.tgz",
|
||||
"integrity": "sha512-CzzqSSNkFRUf9vlWvhK1awpJreMRqdCrBvZ8DIoDWTOkESMIF741UPAhuAmbyWmdiFPA6WARNhnu2M6Nrhwa+A==",
|
||||
"version": "8.4.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
|
||||
"integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"entities": "~1.1.1",
|
||||
@@ -7208,9 +7191,9 @@
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz",
|
||||
"integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==",
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz",
|
||||
"integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
@@ -8482,9 +8465,9 @@
|
||||
}
|
||||
},
|
||||
"webpack": {
|
||||
"version": "4.16.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.0.tgz",
|
||||
"integrity": "sha512-oNx9djAd6uAcccyfqN3hyXLNMjZHiRySZmBQ4c8FNmf1SNJGhx7n9TSvHNyXxgToRdH65g/Q97s94Ip9N6F7xg==",
|
||||
"version": "4.16.1",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.1.tgz",
|
||||
"integrity": "sha512-6jpzObU18y7lXDJz7XCLvzgrqcJ0rZ2jhKvnTivza9gM2GvPW93xxtmEll2GgmdC0zVQAtbHrH/9BtyMjSDZfA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.5.13",
|
||||
@@ -8498,7 +8481,7 @@
|
||||
"ajv-keywords": "^3.1.0",
|
||||
"chrome-trace-event": "^1.0.0",
|
||||
"enhanced-resolve": "^4.1.0",
|
||||
"eslint-scope": "^3.7.1",
|
||||
"eslint-scope": "^4.0.0",
|
||||
"json-parse-better-errors": "^1.0.2",
|
||||
"loader-runner": "^2.3.0",
|
||||
"loader-utils": "^1.1.0",
|
||||
@@ -8528,9 +8511,9 @@
|
||||
}
|
||||
},
|
||||
"webpack-cli": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.0.8.tgz",
|
||||
"integrity": "sha512-KnRLJ0BUaYRqrhAMb9dv3gzdmhmgIMKo0FmdsnmfqbPGtLnnZ6tORZAvmmKfr+A0VgiVpqC60Gv7Ofg0R2CHtQ==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz",
|
||||
"integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
@@ -8543,7 +8526,7 @@
|
||||
"loader-utils": "^1.1.0",
|
||||
"supports-color": "^5.4.0",
|
||||
"v8-compile-cache": "^2.0.0",
|
||||
"yargs": "^11.1.0"
|
||||
"yargs": "^12.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
@@ -8602,11 +8585,23 @@
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
"decamelize": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
|
||||
"integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"xregexp": "4.0.0"
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "2.0.0",
|
||||
@@ -8614,6 +8609,16 @@
|
||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
||||
"dev": true
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
|
||||
@@ -8625,10 +8630,28 @@
|
||||
"mem": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
|
||||
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
|
||||
"p-limit": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
|
||||
"integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-try": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
|
||||
"integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
@@ -8665,15 +8688,21 @@
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||
"dev": true
|
||||
},
|
||||
"xregexp": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
|
||||
"integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
|
||||
"integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz",
|
||||
"integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^4.0.0",
|
||||
"decamelize": "^1.1.1",
|
||||
"find-up": "^2.1.0",
|
||||
"decamelize": "^2.0.0",
|
||||
"find-up": "^3.0.0",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^2.0.0",
|
||||
"require-directory": "^2.1.1",
|
||||
@@ -8681,14 +8710,14 @@
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^2.0.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^3.2.1",
|
||||
"yargs-parser": "^9.0.2"
|
||||
"y18n": "^3.2.1 || ^4.0.0",
|
||||
"yargs-parser": "^10.1.0"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "9.0.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
|
||||
"integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
|
||||
"integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^4.1.0"
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
"test": "tests"
|
||||
},
|
||||
"dependencies": {
|
||||
"@uirouter/angularjs": "^1.0.18",
|
||||
"@uirouter/angularjs": "^1.0.19",
|
||||
"angular": "^1.7.2",
|
||||
"angular-animate": "^1.7.2",
|
||||
"angular-file-upload": "^2.5.0",
|
||||
"angular-markdown-it": "^0.6.1",
|
||||
"angular-sanitize": "^1.7.2",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"markdown-it": "^8.4.1",
|
||||
"markdown-it": "^8.4.2",
|
||||
"markdown-it-link-target": "^1.0.2",
|
||||
"ng-sortable": "^1.3.8",
|
||||
"ui-select": "^0.19.8"
|
||||
@@ -28,8 +28,8 @@
|
||||
"karma": "^2.0.4",
|
||||
"mini-css-extract-plugin": "^0.4.1",
|
||||
"node-sass": "^4.9.2",
|
||||
"webpack": "^4.16.0",
|
||||
"webpack-cli": "^3.0.8",
|
||||
"webpack": "^4.16.1",
|
||||
"webpack-cli": "^3.1.0",
|
||||
"webpack-merge": "^4.1.3"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
13
l10n/cs.js
13
l10n/cs.js
@@ -12,21 +12,29 @@ OC.L10N.register(
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
||||
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
||||
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.",
|
||||
"Finished" : "Dokončeno",
|
||||
"To review" : "K revizi",
|
||||
"Action needed" : "Nutná akce",
|
||||
"Later" : "Později",
|
||||
"To do" : "Udělat",
|
||||
"Doing" : "Provádím",
|
||||
"Done" : "Hotovo",
|
||||
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||
"Example Task 1" : "První úkol pro ukázku",
|
||||
"The file was uploaded" : "Soubor byl nahrán",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML",
|
||||
"The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
|
||||
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
||||
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
||||
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
||||
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Soubor nebyl nahrán nebo jeho velikost přesáhla %s",
|
||||
"Deck" : "Balík",
|
||||
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní management ve stylu Kanban.",
|
||||
"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- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, jenž je zaintegrovaný do Nextcloudu.\n\n\n- 📥 Vložte a uspořádejte své úkoly do karet\n- 📄 Zapište si dodatečné poznámky \n- 🔖 Přilepte štítek pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přátely nebo rodinou\n- 🚀 Dostaťe svůj projekt pod kontrolu",
|
||||
"Add a new stack" : "Přidat nový zásobník",
|
||||
"Submit" : "Odeslat",
|
||||
"Show archived cards" : "Zobrazit archivované karty",
|
||||
@@ -34,6 +42,7 @@ OC.L10N.register(
|
||||
"Board details" : "Detaily desky",
|
||||
"All Boards" : "Všechny desky",
|
||||
"Archived boards" : "Archivované desky",
|
||||
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
|
||||
"Archive" : "Archiv",
|
||||
"Unarchive" : "Zrušit archivování",
|
||||
"Enter a card title" : "Zadejte nadpis karty",
|
||||
@@ -62,12 +71,14 @@ OC.L10N.register(
|
||||
"Delete board" : "Smazat desku",
|
||||
"Reset" : "Obnovit",
|
||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
||||
"Create new board" : "VYtvořit ovou desku",
|
||||
"Create new board" : "Vytvořit novou desku",
|
||||
"New board title" : "Nadpis nové desky",
|
||||
"Select an attachment" : "Vybrat přílohu",
|
||||
"Cancel upload" : "Zrušit nahrávání",
|
||||
"by" : "od",
|
||||
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Vrátit smazání souboru - v opačném případě bude soubor trvale smazán při dalším běhu cronjobu.",
|
||||
"Undo file deletion" : "Vzít zpět smazání souboru",
|
||||
"Insert the file into the description" : "Vložte soubor do popisku.",
|
||||
"Modified:" : "Upraveno:",
|
||||
"Created:" : "Vytvořeno:",
|
||||
"Choose a tag" : "Vyberte štítek",
|
||||
|
||||
13
l10n/cs.json
13
l10n/cs.json
@@ -10,21 +10,29 @@
|
||||
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
||||
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
||||
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
||||
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.",
|
||||
"Finished" : "Dokončeno",
|
||||
"To review" : "K revizi",
|
||||
"Action needed" : "Nutná akce",
|
||||
"Later" : "Později",
|
||||
"To do" : "Udělat",
|
||||
"Doing" : "Provádím",
|
||||
"Done" : "Hotovo",
|
||||
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||
"Example Task 1" : "První úkol pro ukázku",
|
||||
"The file was uploaded" : "Soubor byl nahrán",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML",
|
||||
"The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
|
||||
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
||||
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
||||
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
||||
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
||||
"No file uploaded or file size exceeds maximum of %s" : "Soubor nebyl nahrán nebo jeho velikost přesáhla %s",
|
||||
"Deck" : "Balík",
|
||||
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní management ve stylu Kanban.",
|
||||
"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- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, jenž je zaintegrovaný do Nextcloudu.\n\n\n- 📥 Vložte a uspořádejte své úkoly do karet\n- 📄 Zapište si dodatečné poznámky \n- 🔖 Přilepte štítek pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přátely nebo rodinou\n- 🚀 Dostaťe svůj projekt pod kontrolu",
|
||||
"Add a new stack" : "Přidat nový zásobník",
|
||||
"Submit" : "Odeslat",
|
||||
"Show archived cards" : "Zobrazit archivované karty",
|
||||
@@ -32,6 +40,7 @@
|
||||
"Board details" : "Detaily desky",
|
||||
"All Boards" : "Všechny desky",
|
||||
"Archived boards" : "Archivované desky",
|
||||
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
|
||||
"Archive" : "Archiv",
|
||||
"Unarchive" : "Zrušit archivování",
|
||||
"Enter a card title" : "Zadejte nadpis karty",
|
||||
@@ -60,12 +69,14 @@
|
||||
"Delete board" : "Smazat desku",
|
||||
"Reset" : "Obnovit",
|
||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
||||
"Create new board" : "VYtvořit ovou desku",
|
||||
"Create new board" : "Vytvořit novou desku",
|
||||
"New board title" : "Nadpis nové desky",
|
||||
"Select an attachment" : "Vybrat přílohu",
|
||||
"Cancel upload" : "Zrušit nahrávání",
|
||||
"by" : "od",
|
||||
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Vrátit smazání souboru - v opačném případě bude soubor trvale smazán při dalším běhu cronjobu.",
|
||||
"Undo file deletion" : "Vzít zpět smazání souboru",
|
||||
"Insert the file into the description" : "Vložte soubor do popisku.",
|
||||
"Modified:" : "Upraveno:",
|
||||
"Created:" : "Vytvořeno:",
|
||||
"Choose a tag" : "Vyberte štítek",
|
||||
|
||||
@@ -18,6 +18,11 @@ OC.L10N.register(
|
||||
"Action needed" : "Action requise",
|
||||
"Later" : "Plus tard",
|
||||
"To do" : "À faire",
|
||||
"Doing" : "En cours",
|
||||
"Done" : "Terminé",
|
||||
"Example Task 3" : "Exemple de tâche 3",
|
||||
"Example Task 2" : "Exemple de tâche 2",
|
||||
"Example Task 1" : "Exemple de tâche 1",
|
||||
"The file was uploaded" : "Le fichier a été téléchargé",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui était spécifiée dans le formulaire HTML",
|
||||
|
||||
@@ -16,6 +16,11 @@
|
||||
"Action needed" : "Action requise",
|
||||
"Later" : "Plus tard",
|
||||
"To do" : "À faire",
|
||||
"Doing" : "En cours",
|
||||
"Done" : "Terminé",
|
||||
"Example Task 3" : "Exemple de tâche 3",
|
||||
"Example Task 2" : "Exemple de tâche 2",
|
||||
"Example Task 1" : "Exemple de tâche 1",
|
||||
"The file was uploaded" : "Le fichier a été téléchargé",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui était spécifiée dans le formulaire HTML",
|
||||
|
||||
@@ -61,6 +61,10 @@ class Application extends App {
|
||||
return $container->getServer()->getConfig()->getSystemValue('dbtype', 'sqlite');
|
||||
});
|
||||
|
||||
$container->registerService('database4ByteSupport', function($container) {
|
||||
return $container->getServer()->getDatabaseConnection()->supports4ByteText();
|
||||
});
|
||||
|
||||
// Delete user/group acl entries when they get deleted
|
||||
/** @var IUserManager $userManager */
|
||||
$userManager = $server->getUserManager();
|
||||
|
||||
@@ -38,29 +38,40 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
|
||||
/** @var IManager */
|
||||
private $notificationManager;
|
||||
private $databaseType;
|
||||
private $database4ByteSupport;
|
||||
|
||||
public function __construct(
|
||||
IDBConnection $db,
|
||||
LabelMapper $labelMapper,
|
||||
IUserManager $userManager,
|
||||
IManager $notificationManager,
|
||||
$databaseType = 'sqlite'
|
||||
$databaseType = 'sqlite',
|
||||
$database4ByteSupport = true
|
||||
) {
|
||||
parent::__construct($db, 'deck_cards', Card::class);
|
||||
$this->labelMapper = $labelMapper;
|
||||
$this->userManager = $userManager;
|
||||
$this->notificationManager = $notificationManager;
|
||||
$this->databaseType = $databaseType;
|
||||
$this->database4ByteSupport = $database4ByteSupport;
|
||||
}
|
||||
|
||||
public function insert(Entity $entity) {
|
||||
$entity->setDatabaseType($this->databaseType);
|
||||
$entity->setCreatedAt(time());
|
||||
$entity->setLastModified(time());
|
||||
if (!$this->database4ByteSupport) {
|
||||
$description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription());
|
||||
$entity->setDescription($description);
|
||||
}
|
||||
return parent::insert($entity);
|
||||
}
|
||||
|
||||
public function update(Entity $entity, $updateModified = true) {
|
||||
if (!$this->database4ByteSupport) {
|
||||
$description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription());
|
||||
$entity->setDescription($description);
|
||||
}
|
||||
$entity->setDatabaseType($this->databaseType);
|
||||
|
||||
if ($updateModified) {
|
||||
|
||||
@@ -195,6 +195,7 @@ class CardService {
|
||||
}
|
||||
|
||||
public function assignUser($cardId, $userId) {
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
$assignments = $this->assignedUsersMapper->find($cardId);
|
||||
foreach ($assignments as $assignment) {
|
||||
if ($assignment->getParticipant() === $userId) {
|
||||
@@ -208,6 +209,7 @@ class CardService {
|
||||
}
|
||||
|
||||
public function unassignUser($cardId, $userId) {
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
$assignments = $this->assignedUsersMapper->find($cardId);
|
||||
foreach ($assignments as $assignment) {
|
||||
if ($assignment->getParticipant() === $userId) {
|
||||
|
||||
Reference in New Issue
Block a user