Compare commits

...
Author SHA1 Message Date
Julius Härtl af41532044 Prepare 0.6.0-beta1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-30 12:15:17 +01:00
Nextcloud bot ed3a92572f [tx-robot] updated from transifex 2019-03-30 01:20:29 +00:00
Julius HärtlandGitHub 4f54c4365d Merge pull request #885 from nextcloud/feature/noid/nc16-fulltextsearch
[nc16-only] Implementing fulltextsearch
2019-03-29 21:02:19 +01:00
Julius Härtl 3ebe794930 Disable occ app:check-code until appinfo schema in server is updated
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-29 20:43:21 +01:00
Nextcloud bot f6e3722cd3 [tx-robot] updated from transifex 2019-03-29 01:20:02 +00:00
Julius Härtl efaed4140d Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 19:21:39 +01:00
Julius Härtl f9b40a05e4 Fix unknown global
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 18:55:41 +01:00
Maxence LangeandJulius Härtl bc33a71f0d limit fulltextsearch to NC16
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-03-28 18:51:26 +01:00
Maxence LangeandJulius Härtl 5e0eff5407 implementing fulltextsearch
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
cleaning

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
cleaning some useless code

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
compat nc6

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
compat nc16

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Merge remote-tracking branch 'origin/feature/noid/nc16-fulltextsearch' into feature/noid/nc16-fulltextsearch

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-03-28 18:51:26 +01:00
Maxence LangeandJulius Härtl 957eb271ca adding events
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-03-28 18:51:26 +01:00
Maxence LangeandJulius Härtl 0cb8c75744 implementing fulltextsearch
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-03-28 18:49:56 +01:00
Maxence LangeandJulius Härtl 5d72750d92 ignore .idea
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-03-28 18:49:29 +01:00
Julius HärtlandGitHub d2cd6341bd Merge pull request #964 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.9.5
Bump nextcloud-vue from 0.9.4 to 0.9.5 in /js
2019-03-28 18:47:39 +01:00
Julius HärtlandGitHub d5212ec6dd Merge pull request #960 from nextcloud/enhancement/954/rest
REST API enhancements
2019-03-28 18:47:16 +01:00
Julius Härtl 29f6ae477b Make circles/collections depending on available version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 18:46:37 +01:00
dependabot[bot] 27837cc635 Bump nextcloud-vue from 0.9.4 to 0.9.5 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.9.4 to 0.9.5.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.9.4...v0.9.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-28 15:53:36 +00:00
Julius Härtl 9ee2c92a9d Update API docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 16:49:24 +01:00
Julius Härtl 7a77c04caf Unify params
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 16:49:24 +01:00
Julius Härtl 1b4cf508e6 Add details paramter to board request
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 16:49:24 +01:00
Julius Härtl 6c1fe18f92 Add acl endpoints to REST API
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 16:49:24 +01:00
Julius HärtlandGitHub 8532db96e3 Merge pull request #962 from nextcloud/dependabot/npm_and_yarn/js/vue-and-vue-template-compiler-2.6.10
Bump vue and vue-template-compiler in /js
2019-03-28 16:48:25 +01:00
Julius HärtlandGitHub fe7ccac9ed Merge pull request #961 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.9.4
Bump nextcloud-vue from 0.8.0 to 0.9.4 in /js
2019-03-28 16:48:20 +01:00
Julius HärtlandGitHub 8615fe1a40 Merge pull request #923 from nextcloud/feature/126/circles
Share with circles
2019-03-28 16:48:05 +01:00
dependabot[bot] ef1eb0bff2 Bump vue and vue-template-compiler in /js
Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.8 to 2.6.10
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.8...v2.6.10)

Updates `vue-template-compiler` from 2.6.8 to 2.6.10
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.8...v2.6.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-28 07:28:08 +00:00
dependabot[bot] 094556a4f1 Bump nextcloud-vue from 0.8.0 to 0.9.4 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.8.0 to 0.9.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.8.0...v0.9.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-28 07:27:36 +00:00
Julius Härtl aa725eee62 Add release docs from github wiki
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-28 08:21:52 +01:00
Nextcloud bot c0cce67d40 [tx-robot] updated from transifex 2019-03-28 01:20:37 +00:00
Julius HärtlandGitHub 195d63073e Merge pull request #946 from nextcloud/feature/collections
Collaboration linking
2019-03-27 18:38:35 +01:00
Julius Härtl ed38e70989 Properly fetch infromation for personal circles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-27 18:15:11 +01:00
Julius Härtl ed3991b7bd Share with circles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-27 18:10:43 +01:00
Nextcloud bot a842fd6d26 [tx-robot] updated from transifex 2019-03-27 01:13:48 +00:00
Julius HärtlandGitHub ed5f52a164 Merge pull request #959 from nextcloud/bugfix/840
Fix activity text
2019-03-26 13:45:08 +01:00
Julius Härtl 42f72f33d9 Fix activity text
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-26 10:49:15 +01:00
Julius Härtl e00eeb6ef9 Fix eslint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-26 09:09:40 +01:00
Julius Härtl fd2dfbf056 Remove usused dependency
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-26 09:09:40 +01:00
Julius Härtl d6e3ab3c26 Bump nextcloud-vue-collections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:44 +01:00
Julius Härtl e1824a3d85 Fix popover menu of vue-components
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:44 +01:00
Julius Härtl 076fc1a876 Fix codacy errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:44 +01:00
Julius Härtl 7009d2d6f4 Test compatibility against master
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:44 +01:00
Julius Härtl 33953affa6 Make import dependent on version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:44 +01:00
Julius Härtl 706a1b8e96 Fix code style
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:43 +01:00
Julius Härtl d46a7ffe69 Ignore vue files from eslint for now
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:43 +01:00
Julius Härtl 2852510b55 Require 16 for collections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:43 +01:00
Julius Härtl e2be00a18d Implement collections integration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-25 14:51:42 +01:00
Nextcloud bot 9149a01949 [tx-robot] updated from transifex 2019-03-24 01:14:13 +00:00
Nextcloud bot e3c8072f77 [tx-robot] updated from transifex 2019-03-23 01:13:50 +00:00
Julius HärtlandGitHub aae6b162c6 Merge pull request #922 from nextcloud/enhancement/noid/api-exception
Let ExceptionMiddleware properly return JSON on API related exceptions
2019-03-22 16:06:32 +01:00
Julius Härtl 0132dae215 Let ExceptionMiddleware properly return JSON on API related exceptions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-22 13:41:03 +01:00
Julius HärtlandGitHub 2b65ff9fb0 Merge pull request #956 from nextcloud/docs/add-user-docs
Add user docs to the navigation
2019-03-22 10:33:44 +01:00
Julius Härtl 36b013029a Add user docs to the navigation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-22 10:26:50 +01:00
Julius HärtlandGitHub 5c7ee5c920 Merge pull request #936 from quentinDupont/user_documentation
User documentation in english
2019-03-22 10:23:40 +01:00
Julius HärtlandGitHub 58cf153aa8 Merge pull request #950 from nextcloud/dependabot/npm_and_yarn/js/@babel/polyfill-7.4.0
Bump @babel/polyfill from 7.2.5 to 7.4.0 in /js
2019-03-22 09:56:08 +01:00
dependabot[bot] 91e4eb95b3 Bump @babel/polyfill from 7.2.5 to 7.4.0 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.2.5 to 7.4.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.5...v7.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-21 13:36:54 +00:00
Julius HärtlandGitHub 3b6aaa6c05 Merge pull request #953 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.4.2
Bump @babel/preset-env from 7.4.1 to 7.4.2 in /js
2019-03-21 14:34:31 +01:00
dependabot[bot] 116c563197 Bump @babel/preset-env from 7.4.1 to 7.4.2 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.1 to 7.4.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.1...v7.4.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-21 10:30:35 +00:00
Julius HärtlandGitHub 4dec2ef1f6 Merge pull request #948 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.4.1
Bump @babel/preset-env from 7.3.4 to 7.4.1 in /js
2019-03-21 11:26:44 +01:00
Julius HärtlandGitHub cc343e8eb0 Merge pull request #947 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.4.0
Bump @babel/core from 7.3.4 to 7.4.0 in /js
2019-03-21 11:26:21 +01:00
dependabot[bot] f6ce5e109c Bump @babel/preset-env from 7.3.4 to 7.4.1 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.3.4 to 7.4.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-21 09:22:14 +00:00
dependabot[bot] 8eafe4533a Bump @babel/core from 7.3.4 to 7.4.0 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.3.4 to 7.4.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-21 09:21:37 +00:00
Nextcloud bot ab32b11362 [tx-robot] updated from transifex 2019-03-21 01:22:15 +00:00
Julius HärtlandGitHub 29f9dc547d Merge pull request #939 from nextcloud/bugfix/noid/board-api-stacks
Enrich board listing with stacks
2019-03-19 22:54:50 +01:00
Julius Härtl 33ca8a1827 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-19 22:43:53 +01:00
Julius HärtlandGitHub 3941849b07 Merge pull request #937 from nextcloud/bugfix/noid/noadminrequired
Add proper annotations for assignUser
2019-03-19 12:19:13 +01:00
Nextcloud bot 206eef9c29 [tx-robot] updated from transifex 2019-03-19 01:20:42 +00:00
Nextcloud bot 07e81f363b [tx-robot] updated from transifex 2019-03-17 01:21:15 +00:00
Julius HärtlandGitHub 093d330213 Merge pull request #942 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.3.0
Bump webpack-cli from 3.2.3 to 3.3.0 in /js
2019-03-16 09:36:12 +01:00
dependabot[bot] b4549ca298 Bump webpack-cli from 3.2.3 to 3.3.0 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.2.3 to 3.3.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/V.3.2.3...v.3.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-16 02:13:14 +00:00
Nextcloud bot c301447363 [tx-robot] updated from transifex 2019-03-15 01:22:44 +00:00
Julius Härtl 6e4f8ca8ea Enrich board listing with stacks
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-14 22:32:06 +01:00
Julius Härtl b72d1c82a9 Add proper annotations for assignUser
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-13 17:24:13 +01:00
Nextcloud bot 7cd8bca9dc [tx-robot] updated from transifex 2019-03-13 01:14:38 +00:00
Quentin DupontandQuentin Dupont 7f3ac6249c User documentation in english
Signed-off-by: Quentin Dupont <perso@quentindupont.fr>
2019-03-12 23:15:09 +01:00
Julius HärtlandGitHub 3a6abcfb54 Merge pull request #933 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.8
Bump angular from 1.7.7 to 1.7.8 in /js
2019-03-12 10:48:42 +01:00
dependabot[bot] 892580c207 Bump angular from 1.7.7 to 1.7.8 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.7 to 1.7.8.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.7...v1.7.8)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-12 07:48:47 +00:00
Julius HärtlandGitHub 2c826a26fa Merge pull request #927 from nextcloud/dependabot/npm_and_yarn/js/css-loader-2.1.1
Bump css-loader from 2.1.0 to 2.1.1 in /js
2019-03-12 08:47:24 +01:00
Julius HärtlandGitHub eb8fcc3849 Merge pull request #929 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.8
Bump angular-animate from 1.7.7 to 1.7.8 in /js
2019-03-12 08:43:15 +01:00
Julius HärtlandGitHub 3c8009cb2f Merge pull request #931 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.8
Bump angular-sanitize from 1.7.7 to 1.7.8 in /js
2019-03-12 08:42:28 +01:00
dependabot[bot] a385fcaed2 Bump angular-sanitize from 1.7.7 to 1.7.8 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.7 to 1.7.8.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.7...v1.7.8)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-11 14:03:47 +00:00
dependabot[bot] 98a9f10548 Bump angular-animate from 1.7.7 to 1.7.8 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.7 to 1.7.8.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.7...v1.7.8)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-11 14:03:15 +00:00
Nextcloud bot 6bdb0435c2 [tx-robot] updated from transifex 2019-03-10 01:14:24 +00:00
dependabot[bot] 4394540b5c Bump css-loader from 2.1.0 to 2.1.1 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-09 02:13:44 +00:00
Nextcloud bot 60b7016622 [tx-robot] updated from transifex 2019-03-08 01:14:34 +00:00
Nextcloud bot eef033a397 [tx-robot] updated from transifex 2019-03-06 01:13:57 +00:00
Julius HärtlandGitHub c5d50279c0 Merge pull request #816 from nextcloud/bugfix/780/duplicate-delete-call
Fix duplicate call to delete
2019-03-05 12:27:00 +01:00
Julius Härtl 3156f69717 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-05 10:10:18 +01:00
Julius HärtlandGitHub 791bd9417d Merge pull request #814 from nextcloud/issue586
Prevent duplicate tag names
2019-03-05 10:02:05 +01:00
Julius Härtl 944780f74b Only allow deletion for undeleted boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-05 10:01:04 +01:00
Julius Härtl 91129c80b0 Fix duplicate call to delete
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-05 10:01:04 +01:00
Julius Härtl ee93d64fd0 Fix codacy warnings and remove unused code
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-05 09:29:28 +01:00
Julius Härtl 4481fc1ace Remove unused is_object
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-05 09:27:28 +01:00
Jakob RöhrlandJulius Härtl d11917e4ff now the tests are working
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-03-05 09:26:03 +01:00
Jakob RöhrlandJulius Härtl ee20841ad6 fix failed unit test
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-03-05 09:26:03 +01:00
Jakob RöhrlandJulius Härtl e5d3c16a80 show different error messages and UI reset after failed update
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-03-05 09:26:03 +01:00
Jakob RöhrlandJulius Härtl f01cd506f7 new try
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-03-05 09:25:21 +01:00
Jakob RöhrlandJulius Härtl ab73f58fd8 added private function
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-03-05 09:24:05 +01:00
Jakob RöhrlandJulius Härtl eb0cd9685d Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
fix for issue586
2019-03-05 09:24:05 +01:00
Julius HärtlandGitHub 4eca322ca2 Merge pull request #906 from nextcloud/issue869
change timeline icon opacity
2019-03-05 09:21:45 +01:00
Julius HärtlandGitHub 77cba48058 Merge pull request #920 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.29.6
Bump webpack from 4.29.5 to 4.29.6 in /js
2019-03-05 08:07:51 +01:00
Nextcloud bot 01bfb44a52 [tx-robot] updated from transifex 2019-03-05 01:17:54 +00:00
dependabot[bot] 567f9c7068 Bump webpack from 4.29.5 to 4.29.6 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.5 to 4.29.6.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.5...v4.29.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-04 15:28:23 +00:00
Julius HärtlandGitHub d8e8b485b5 Merge pull request #910 from nextcloud/dependabot/npm_and_yarn/js/karma-4.0.1
Bump karma from 4.0.0 to 4.0.1 in /js
2019-03-04 16:27:07 +01:00
Julius HärtlandGitHub f4f639833e Merge pull request #911 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.3.4
Bump @babel/preset-env from 7.3.1 to 7.3.4 in /js
2019-03-04 16:26:51 +01:00
Julius HärtlandGitHub 806cb6d450 Merge pull request #914 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.3.4
Bump @babel/core from 7.3.3 to 7.3.4 in /js
2019-03-04 16:26:22 +01:00
Julius HärtlandGitHub 11f7944fa6 Merge pull request #913 from nextcloud/dependabot/npm_and_yarn/js/uglifyjs-webpack-plugin-2.1.2
Bump uglifyjs-webpack-plugin from 2.1.1 to 2.1.2 in /js
2019-03-04 16:26:09 +01:00
dependabot[bot] 5d668097a6 Bump @babel/core from 7.3.3 to 7.3.4 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.3.3 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.3...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-02 02:14:41 +00:00
dependabot[bot] 28e3a363e3 Bump uglifyjs-webpack-plugin from 2.1.1 to 2.1.2 in /js
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.1.1...v2.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-02 02:14:34 +00:00
dependabot[bot] e8d0c1dde2 Bump @babel/preset-env from 7.3.1 to 7.3.4 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.3.1 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.1...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-02 02:13:13 +00:00
dependabot[bot] 8a3e9bc9ef Bump karma from 4.0.0 to 4.0.1 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v4.0.0...v4.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-02 02:12:48 +00:00
Nextcloud bot c66143dc9d [tx-robot] updated from transifex 2019-03-01 01:19:48 +00:00
Nextcloud bot 73c20dbb77 [tx-robot] updated from transifex 2019-02-28 01:20:40 +00:00
Jakob Röhrl 7c0a1488a6 change opacity
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-02-25 11:23:06 +01:00
Nextcloud bot 0562af094a [tx-robot] updated from transifex 2019-02-21 01:18:45 +00:00
Julius HärtlandGitHub 2f8b955241 Merge pull request #870 from nextcloud/issue570
change UI after label has been changed
2019-02-20 14:35:53 +01:00
Julius HärtlandGitHub 51c4c54a2d Merge pull request #904 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.29.5
Bump webpack from 4.29.3 to 4.29.5 in /js
2019-02-20 14:30:38 +01:00
dependabot[bot] a16eb3946d Bump webpack from 4.29.3 to 4.29.5 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.3 to 4.29.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.3...v4.29.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-20 13:24:52 +00:00
Nextcloud bot 1ed8a57713 [tx-robot] updated from transifex 2019-02-20 01:19:16 +00:00
Julius HärtlandGitHub 492cd0a277 Merge pull request #902 from nextcloud/revert-898-dependabot/npm_and_yarn/js/webpack-4.29.4
Revert "Bump webpack from 4.29.3 to 4.29.4 in /js"
2019-02-18 17:22:53 +01:00
Julius HärtlandGitHub 239c1ff46e Revert "Bump webpack from 4.29.3 to 4.29.4 in /js" 2019-02-18 10:15:47 +01:00
Nextcloud bot 4424f6702c [tx-robot] updated from transifex 2019-02-17 01:20:49 +00:00
Julius HärtlandGitHub c952303049 Bump webpack from 4.29.3 to 4.29.4 in /js (#898)
Bump webpack from 4.29.3 to 4.29.4 in /js
2019-02-16 09:36:09 +01:00
Julius HärtlandGitHub 8da2893721 Bump @babel/core from 7.2.2 to 7.3.3 in /js (#899)
Bump @babel/core from 7.2.2 to 7.3.3 in /js
2019-02-16 09:35:52 +01:00
Julius HärtlandGitHub 38aa576e18 Update stale.yml 2019-02-16 09:23:44 +01:00
dependabot[bot] 8f280ad527 Bump @babel/core from 7.2.2 to 7.3.3 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.2.2 to 7.3.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.2...v7.3.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-16 02:14:12 +00:00
dependabot[bot] 227456d1a6 Bump webpack from 4.29.3 to 4.29.4 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.3 to 4.29.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.3...v4.29.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-16 02:13:35 +00:00
Nextcloud bot ee9c874d6d [tx-robot] updated from transifex 2019-02-15 01:20:44 +00:00
Julius HärtlandGitHub 81908e984b Merge pull request #739 from nextcloud/bugfix/noid/group-limit
Allow deck to be limited to groups again
2019-02-14 15:20:31 +01:00
Julius Härtl 9d0a7b3f57 Fix eslint error
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-02-14 15:10:07 +01:00
Jakob RöhrlandJulius Härtl b4353ce102 change UI after label has been changed
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-02-14 14:03:23 +01:00
Julius HärtlandGitHub 4961c109a2 Merge pull request #893 from nextcloud/versions/bump-0.6-dev
Bump master version for 0.6
2019-02-14 13:58:56 +01:00
Nextcloud bot 9147d64953 [tx-robot] updated from transifex 2019-02-14 01:19:21 +00:00
Nextcloud bot 108c8bf112 [tx-robot] updated from transifex 2019-02-13 01:19:15 +00:00
Julius HärtlandGitHub 53f8bc9058 Merge pull request #857 from nextcloud/issue254
Use JS tooltips for board controls
2019-02-12 11:13:35 +01:00
Julius HärtlandGitHub fe126664df Merge pull request #821 from nextcloud/dependabot/npm_and_yarn/js/@babel/polyfill-7.2.5
Bump @babel/polyfill from 7.0.0 to 7.2.5 in /js
2019-02-12 11:11:21 +01:00
Julius Härtl 9c0b240687 Adjust test matrix
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-02-12 11:08:54 +01:00
Julius Härtl 4fa703e723 0.6 will be 15/16 only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-02-12 11:05:43 +01:00
Julius HärtlandGitHub df4596a8df Merge pull request #873 from nextcloud/issue795
Removed tooltips "Access for group" in board.sidebarView
2019-02-12 11:01:02 +01:00
Julius HärtlandGitHub 6c4fb4acb4 Merge pull request #876 from nextcloud/issue725
prevent loading details by clicking on the card title
2019-02-12 10:52:36 +01:00
Julius HärtlandGitHub baa06dcb6b Merge pull request #886 from nextcloud/bugfix/noid/babel-polyfill
Fix issues with duplicate polyfill added with 16
2019-02-12 10:44:47 +01:00
Julius HärtlandGitHub 1aa13d8aaf Merge pull request #880 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.7
Bump angular from 1.7.6 to 1.7.7 in /js
2019-02-12 10:34:41 +01:00
dependabot[bot] f042ab5f7b Bump angular from 1.7.6 to 1.7.7 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.6 to 1.7.7.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.6...v1.7.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-12 09:20:15 +00:00
Julius HärtlandGitHub 13260bfce6 Merge pull request #884 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.29.3
Bump webpack from 4.29.0 to 4.29.3 in /js
2019-02-12 10:18:29 +01:00
Julius HärtlandGitHub f6b044db9b Merge pull request #882 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.7
Bump angular-animate from 1.7.6 to 1.7.7 in /js
2019-02-12 10:18:03 +01:00
Julius Härtl 8071b34ddb Fix issues with duplicate polyfill added with 16
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-02-12 10:15:11 +01:00
Nextcloud bot 056bf1ccab [tx-robot] updated from transifex 2019-02-12 01:19:27 +00:00
dependabot[bot] 7833e4f261 Bump webpack from 4.29.0 to 4.29.3 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.0 to 4.29.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.0...v4.29.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-11 17:17:36 +00:00
Julius HärtlandGitHub b4f4341dc1 Merge pull request #881 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.2.3
Bump webpack-cli from 3.2.0 to 3.2.3 in /js
2019-02-11 18:12:59 +01:00
dependabot[bot] debcd9203c Bump angular-animate from 1.7.6 to 1.7.7 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.6 to 1.7.7.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.6...v1.7.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-11 15:53:55 +00:00
Julius HärtlandGitHub ee07630b55 Merge pull request #879 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.7
Bump angular-sanitize from 1.7.6 to 1.7.7 in /js
2019-02-11 16:51:58 +01:00
Julius HärtlandGitHub 6d4c59cbb4 Merge pull request #874 from nextcloud/dependabot/npm_and_yarn/js/@uirouter/angularjs-1.0.22
Bump @uirouter/angularjs from 1.0.21 to 1.0.22 in /js
2019-02-11 16:51:13 +01:00
Julius HärtlandGitHub 25743a05cd Merge pull request #883 from nextcloud/dependabot/npm_and_yarn/js/lodash-4.17.11
[Security] Bump lodash from 4.17.10 to 4.17.11 in /js
2019-02-11 16:50:35 +01:00
dependabot[bot] bed704270c [Security] Bump lodash from 4.17.10 to 4.17.11 in /js
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.10 to 4.17.11. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Changelog](https://github.com/lodash/lodash/blob/master/CHANGELOG)
- [Commits](https://github.com/lodash/lodash/compare/4.17.10...4.17.11)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-07 19:04:37 +00:00
dependabot[bot] e7ab69233a Bump webpack-cli from 3.2.0 to 3.2.3 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.2.0 to 3.2.3.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-06 16:05:20 +00:00
dependabot[bot] d6923b3268 Bump angular-sanitize from 1.7.6 to 1.7.7 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.6 to 1.7.7.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.6...v1.7.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-06 16:03:09 +00:00
Jakob Röhrl 618394f9f7 prevent loading details by clicking on the title
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-02-04 10:23:02 +01:00
Nextcloud bot 8403265f35 [tx-robot] updated from transifex 2019-02-03 01:13:55 +00:00
dependabot[bot] d117479a5d Bump @uirouter/angularjs from 1.0.21 to 1.0.22 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.21 to 1.0.22.
- [Release notes](https://github.com/angular-ui/ui-router/releases)
- [Changelog](https://github.com/angular-ui/ui-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular-ui/ui-router/compare/1.0.21...1.0.22)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-02 02:13:12 +00:00
Jakob Röhrl 6a6af073fc Tooltip replaced
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-01-31 11:52:19 +01:00
Nextcloud bot c7513dcf13 [tx-robot] updated from transifex 2019-01-31 01:13:40 +00:00
Jakob Röhrl ec72c7b1f1 now it
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-01-29 09:09:11 +01:00
Julius HärtlandGitHub a7f8b66cce Merge pull request #856 from nextcloud/issue439
hide sidebar after card deletion
2019-01-28 18:17:58 +01:00
dependabot[bot] df8e3a543e Bump @babel/polyfill from 7.0.0 to 7.2.5 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.0.0 to 7.2.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.0.0...v7.2.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-28 17:15:45 +00:00
Julius HärtlandGitHub fb00f41829 Merge pull request #852 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.6
Bump angular from 1.7.5 to 1.7.6 in /js
2019-01-28 18:14:12 +01:00
Julius HärtlandGitHub 0efd35c603 Merge pull request #858 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.29.0
Bump webpack from 4.28.4 to 4.29.0 in /js
2019-01-28 18:14:03 +01:00
Julius HärtlandGitHub a4aaa62b49 Merge pull request #860 from nextcloud/dependabot/npm_and_yarn/js/karma-4.0.0
Bump karma from 3.1.4 to 4.0.0 in /js
2019-01-28 18:12:59 +01:00
Julius HärtlandGitHub 3667edf9f7 Merge pull request #859 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.3.1
Bump @babel/preset-env from 7.2.3 to 7.3.1 in /js
2019-01-28 18:12:44 +01:00
Nextcloud bot c43ef715d6 [tx-robot] updated from transifex 2019-01-28 01:13:28 +00:00
Nextcloud bot 17fe0092b0 [tx-robot] updated from transifex 2019-01-27 01:14:04 +00:00
dependabot[bot] cfc94899bc Bump karma from 3.1.4 to 4.0.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 3.1.4 to 4.0.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v3.1.4...v4.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-26 02:15:54 +00:00
dependabot[bot] fa83741938 Bump @babel/preset-env from 7.2.3 to 7.3.1 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.2.3 to 7.3.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.3...v7.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-26 02:15:06 +00:00
dependabot[bot] f5562529f6 Bump webpack from 4.28.4 to 4.29.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.28.4 to 4.29.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.28.4...v4.29.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-26 02:14:01 +00:00
Nextcloud bot 8e9dda297b [tx-robot] updated from transifex 2019-01-26 01:19:01 +00:00
Jakob Röhrl c035f01848 Use JS tooltips for board controls
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-01-25 10:40:24 +01:00
Jakob Röhrl 6ef0335321 hide sidebar after card deletion
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-01-25 09:17:38 +01:00
Nextcloud bot 1ba7f8b56f [tx-robot] updated from transifex 2019-01-25 01:19:17 +00:00
Nextcloud bot f6afd3d22c [tx-robot] updated from transifex 2019-01-24 01:19:23 +00:00
Nextcloud bot 87da9db877 [tx-robot] updated from transifex 2019-01-22 01:19:20 +00:00
dependabot[bot] cb3df9fc7b Bump angular from 1.7.5 to 1.7.6 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.5 to 1.7.6.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.5...v1.7.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-21 09:06:55 +00:00
Julius HärtlandGitHub 5a17b2c10f Merge pull request #853 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.6
Bump angular-sanitize from 1.7.5 to 1.7.6 in /js
2019-01-21 10:05:26 +01:00
Julius HärtlandGitHub 2afec002b1 Merge pull request #851 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.6
Bump angular-animate from 1.7.5 to 1.7.6 in /js
2019-01-21 10:04:50 +01:00
Nextcloud bot 2355e5eb2f [tx-robot] updated from transifex 2019-01-21 01:18:17 +00:00
Nextcloud bot 139b38ca1d [tx-robot] updated from transifex 2019-01-19 01:19:11 +00:00
dependabot[bot] 64971d866d Bump angular-sanitize from 1.7.5 to 1.7.6 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.5 to 1.7.6.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.5...v1.7.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 14:49:05 +00:00
dependabot[bot] 98ad7b04bd Bump angular-animate from 1.7.5 to 1.7.6 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.5 to 1.7.6.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.5...v1.7.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 14:48:21 +00:00
Nextcloud bot 8c9335bebf [tx-robot] updated from transifex 2019-01-18 01:21:45 +00:00
Nextcloud bot f7cb1356f9 [tx-robot] updated from transifex 2019-01-17 01:19:24 +00:00
Nextcloud bot a6a4ff07af [tx-robot] updated from transifex 2019-01-15 01:19:51 +00:00
Julius HärtlandGitHub 63aa96068a Merge pull request #843 from nextcloud/dependabot/npm_and_yarn/js/@uirouter/angularjs-1.0.21
Bump @uirouter/angularjs from 1.0.20 to 1.0.21 in /js
2019-01-14 19:40:23 +01:00
Julius HärtlandGitHub 60dcdd7ee7 Merge pull request #842 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.28.4
Bump webpack from 4.28.3 to 4.28.4 in /js
2019-01-14 19:40:02 +01:00
Nextcloud bot d9d070ebe3 [tx-robot] updated from transifex 2019-01-13 01:20:16 +00:00
dependabot[bot] e22c494b84 Bump @uirouter/angularjs from 1.0.20 to 1.0.21 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.20 to 1.0.21.
- [Release notes](https://github.com/angular-ui/ui-router/releases)
- [Changelog](https://github.com/angular-ui/ui-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular-ui/ui-router/compare/1.0.20...1.0.21)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-12 02:13:17 +00:00
dependabot[bot] 66e217f7e2 Bump webpack from 4.28.3 to 4.28.4 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.28.3 to 4.28.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.28.3...v4.28.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-12 02:12:48 +00:00
Nextcloud bot c7bbeda3ad [tx-robot] updated from transifex 2019-01-12 01:18:31 +00:00
Nextcloud bot a12bd23ffa [tx-robot] updated from transifex 2019-01-11 01:19:11 +00:00
Julius HärtlandGitHub e65140bcbb Merge pull request #838 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.2.0
Bump webpack-cli from 3.1.2 to 3.2.0 in /js
2019-01-07 10:45:16 +01:00
dependabot[bot] fe13d562b2 Bump webpack-cli from 3.1.2 to 3.2.0 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-07 08:27:34 +00:00
Julius HärtlandGitHub b1832cc925 Merge pull request #836 from nextcloud/dependabot/npm_and_yarn/js/babel-loader-8.0.5
Bump babel-loader from 8.0.4 to 8.0.5 in /js
2019-01-07 09:24:42 +01:00
Julius HärtlandGitHub db87547a7d Merge pull request #837 from nextcloud/dependabot/npm_and_yarn/js/webpack-merge-4.2.1
Bump webpack-merge from 4.1.5 to 4.2.1 in /js
2019-01-07 09:24:22 +01:00
dependabot[bot] c96a3c2ba7 Bump webpack-merge from 4.1.5 to 4.2.1 in /js
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.1.5 to 4.2.1.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/compare/v4.1.5...v4.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-06 15:17:41 +00:00
dependabot[bot] 3808dc3430 Bump babel-loader from 8.0.4 to 8.0.5 in /js
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.4 to 8.0.5.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.0.4...v8.0.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-06 15:16:39 +00:00
Nextcloud bot 722b52f168 [tx-robot] updated from transifex 2019-01-05 01:18:20 +00:00
Nextcloud bot 8f2e5366a1 [tx-robot] updated from transifex 2019-01-03 01:18:16 +00:00
Julius HärtlandGitHub 2b2c6771e8 Merge pull request #831 from nextcloud/dependabot/npm_and_yarn/js/css-loader-2.1.0
Bump css-loader from 2.0.2 to 2.1.0 in /js
2019-01-02 17:56:01 +01:00
dependabot[bot] f5c1152eb0 Bump css-loader from 2.0.2 to 2.1.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 2.0.2 to 2.1.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v2.0.2...v2.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-31 02:23:17 +00:00
Nextcloud bot 7ccfae6f29 [tx-robot] updated from transifex 2018-12-31 01:18:28 +00:00
Nextcloud bot 5187337db7 [tx-robot] updated from transifex 2018-12-30 01:19:33 +00:00
Julius HärtlandGitHub 872a88c347 Merge pull request #830 from nextcloud/dependabot/npm_and_yarn/js/uglifyjs-webpack-plugin-2.1.1
Bump uglifyjs-webpack-plugin from 2.1.0 to 2.1.1 in /js
2018-12-29 23:38:07 +01:00
dependabot[bot] 5dee524870 Bump uglifyjs-webpack-plugin from 2.1.0 to 2.1.1 in /js
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-29 22:30:13 +00:00
Julius HärtlandGitHub 720dd4f5e0 Merge pull request #829 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.28.3
Bump webpack from 4.27.1 to 4.28.3 in /js
2018-12-29 23:27:01 +01:00
dependabot[bot] 93cadc6d0a Bump webpack from 4.27.1 to 4.28.3 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.27.1 to 4.28.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.27.1...v4.28.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-29 22:16:34 +00:00
Julius HärtlandGitHub 19c53eec7b Merge pull request #824 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.2.3
Bump @babel/preset-env from 7.2.0 to 7.2.3 in /js
2018-12-29 23:14:05 +01:00
Julius HärtlandGitHub e89182e012 Merge pull request #825 from nextcloud/dependabot/npm_and_yarn/js/uglifyjs-webpack-plugin-2.1.0
Bump uglifyjs-webpack-plugin from 2.0.1 to 2.1.0 in /js
2018-12-29 23:13:38 +01:00
Julius HärtlandGitHub 735bd1e918 Merge pull request #823 from nextcloud/dependabot/npm_and_yarn/js/karma-3.1.4
Bump karma from 3.1.3 to 3.1.4 in /js
2018-12-29 23:13:24 +01:00
Julius HärtlandGitHub 213789139e Update stale.yml 2018-12-28 15:59:54 +01:00
Nextcloud bot 1302d44c77 [tx-robot] updated from transifex 2018-12-28 01:18:23 +00:00
Nextcloud bot 52c94619ba [tx-robot] updated from transifex 2018-12-27 01:18:45 +00:00
Nextcloud bot 17d73fd8a8 [tx-robot] updated from transifex 2018-12-26 01:18:23 +00:00
Nextcloud bot e0583c1b22 [tx-robot] updated from transifex 2018-12-25 01:18:15 +00:00
dependabot[bot] 75e49d9fe6 Bump uglifyjs-webpack-plugin from 2.0.1 to 2.1.0 in /js
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.0.1...v2.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-24 08:11:25 +00:00
dependabot[bot] b2d0f53767 Bump @babel/preset-env from 7.2.0 to 7.2.3 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.2.0 to 7.2.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.0...v7.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-24 08:11:03 +00:00
dependabot[bot] cf80c84fbd Bump karma from 3.1.3 to 3.1.4 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v3.1.3...v3.1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-24 08:10:25 +00:00
Julius HärtlandGitHub cf0c51daf1 Merge pull request #826 from nextcloud/dependabot/npm_and_yarn/js/css-loader-2.0.2
Bump css-loader from 2.0.1 to 2.0.2 in /js
2018-12-24 09:08:23 +01:00
dependabot[bot] 042b9f8c81 Bump css-loader from 2.0.1 to 2.0.2 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v2.0.1...v2.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-24 02:20:16 +00:00
Nextcloud bot c733b356f6 [tx-robot] updated from transifex 2018-12-24 01:23:45 +00:00
Nextcloud bot 5233f3f4dc [tx-robot] updated from transifex 2018-12-23 01:19:02 +00:00
Julius HärtlandGitHub 75407d9dc4 Merge pull request #818 from cloud2018/Papercut-translation
make "archived cards" translatable
2018-12-21 10:14:35 +01:00
cloud2018andGitHub 61786e4d94 make "archived cards" translatable
Signed-off-by: Markus Eckstein <eckstein-markus@gmx.de>
2018-12-20 17:43:18 +01:00
Julius HärtlandGitHub 2721e51850 Merge pull request #815 from nextcloud/release/0.5.2
Bump version to 0.5.2
2018-12-20 15:28:08 +01:00
Julius Härtl 77708ac5c1 Bump version to 0.5.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 11:50:26 +01:00
Julius HärtlandGitHub 67677f1dfc Merge pull request #813 from nextcloud/bugfix/768/due-date-notification-archive
Mark notification as read if a card with duedate gets archived
2018-12-20 11:36:36 +01:00
Julius HärtlandGitHub 03ad5cb040 Merge branch 'master' into bugfix/768/due-date-notification-archive 2018-12-20 11:30:07 +01:00
Julius HärtlandGitHub 35bec2749c Merge pull request #811 from nextcloud/bugfix/807/edge
Fix edge issues
2018-12-20 11:29:57 +01:00
Julius HärtlandGitHub ff21f855ca Merge pull request #812 from nextcloud/bugfix/796/comments-format
Only pass valid subject parameters when commenting
2018-12-20 11:29:37 +01:00
Julius Härtl 5c0455ec56 Only pass valid subject parameters when commenting
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 10:49:07 +01:00
Julius Härtl 8b750b7c7c Mark notification as read if a card with duedate gets archived
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 10:46:48 +01:00
Julius Härtl 1551a8a862 Add empty search text default to avoid filtering issue with undefined value on edge (fixes #807)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 10:19:14 +01:00
Julius Härtl 50a5048fbe Fix drop shadow on edge
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 10:18:44 +01:00
Julius Härtl cf41665c0a Add stale bot config
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 08:51:23 +01:00
Julius HärtlandGitHub 02c3131f18 Merge pull request #774 from nextcloud/bugfix/771/rest-types
Fix numeric types and missing card id in card detail results
2018-12-20 08:45:44 +01:00
Julius Härtl af57c3bf4f Fix If-Modified-Since header parsing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 08:27:13 +01:00
Julius Härtl ec42c0c2b4 Fix numeric types and missing card id in card detail results
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-20 08:27:10 +01:00
Nextcloud bot 082346b9e9 [tx-robot] updated from transifex 2018-12-20 01:18:15 +00:00
Julius HärtlandGitHub d986dd2beb Merge pull request #784 from nextcloud/dependabot/npm_and_yarn/js/webpack-merge-4.1.5
Bump webpack-merge from 4.1.4 to 4.1.5 in /js
2018-12-18 20:37:45 +01:00
Julius HärtlandGitHub 68934ca747 Merge pull request #782 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.27.1
Bump webpack from 4.26.1 to 4.27.1 in /js
2018-12-18 20:36:49 +01:00
Julius HärtlandGitHub 078a008e6c Merge pull request #783 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.5.0
Bump mini-css-extract-plugin from 0.4.5 to 0.5.0 in /js
2018-12-18 20:36:35 +01:00
Julius HärtlandGitHub 553a9b9fc9 Merge pull request #788 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.2.0
Bump @babel/preset-env from 7.1.6 to 7.2.0 in /js
2018-12-18 20:36:20 +01:00
Nextcloud bot f7a8222939 [tx-robot] updated from transifex 2018-12-18 01:17:58 +00:00
dependabot[bot] c2eb4ed7fa Bump @babel/preset-env from 7.1.6 to 7.2.0 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.1.6 to 7.2.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.6...v7.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 09:20:00 +00:00
dependabot[bot] 3b11e01cc8 Bump webpack from 4.26.1 to 4.27.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.26.1 to 4.27.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.26.1...v4.27.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 09:16:14 +00:00
dependabot[bot] 12c95cfb8f Bump mini-css-extract-plugin from 0.4.5 to 0.5.0 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.5 to 0.5.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.5...v0.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 09:16:04 +00:00
Julius HärtlandGitHub 4498eba6ae Merge pull request #804 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.2.2
Bump @babel/core from 7.1.6 to 7.2.2 in /js
2018-12-17 10:13:29 +01:00
Julius HärtlandGitHub 87b995681f Merge pull request #803 from nextcloud/dependabot/npm_and_yarn/js/css-loader-2.0.1
Bump css-loader from 1.0.1 to 2.0.1 in /js
2018-12-17 10:12:22 +01:00
dependabot[bot] 3ccca3f240 Bump @babel/core from 7.1.6 to 7.2.2 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.1.6 to 7.2.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.6...v7.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 02:24:34 +00:00
dependabot[bot] 95a0301ac7 Bump css-loader from 1.0.1 to 2.0.1 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 1.0.1 to 2.0.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v1.0.1...v2.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 02:24:01 +00:00
Nextcloud bot cf05a5687d [tx-robot] updated from transifex 2018-12-17 01:18:00 +00:00
Nextcloud bot 4d9f88afba [tx-robot] updated from transifex 2018-12-16 01:19:33 +00:00
Nextcloud bot fa2453ae80 [tx-robot] updated from transifex 2018-12-15 01:18:04 +00:00
Nextcloud bot 36d28cf6fc [tx-robot] updated from transifex 2018-12-14 01:19:05 +00:00
Nextcloud bot f1d3bbd95f [tx-robot] updated from transifex 2018-12-13 01:18:37 +00:00
Nextcloud bot d556484888 [tx-robot] updated from transifex 2018-12-12 01:24:36 +00:00
dependabot[bot] 07857a2309 Bump webpack-merge from 4.1.4 to 4.1.5 in /js
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-10 02:21:16 +00:00
Nextcloud bot 0296b8dd37 [tx-robot] updated from transifex 2018-12-10 01:18:22 +00:00
Nextcloud bot e56742a065 [tx-robot] updated from transifex 2018-12-09 01:19:00 +00:00
Julius HärtlandGitHub c6a701393f Merge pull request #777 from nextcloud/bugfix/775
Make new comment string translatable
2018-12-08 13:42:03 +01:00
Julius Härtl 073eb0e417 Make new comment string translatable
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-08 13:01:28 +01:00
Nextcloud bot e15f14c21b [tx-robot] updated from transifex 2018-12-08 01:17:45 +00:00
Julius HärtlandGitHub 0590621182 Merge pull request #773 from nextcloud/bugfix/noid/duedate-activity
Use proper timezone and locale format for due date activities
2018-12-07 23:32:58 +01:00
Julius HärtlandGitHub 4519b2a052 Merge pull request #770 from nextcloud/bugfix/noid/permission-groups
Check group limit in the proper way
2018-12-07 23:32:41 +01:00
Julius Härtl 1dc68f97c5 Use proper timezone and locale format for due date activities
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-07 16:33:49 +01:00
Julius Härtl b8d00c8228 Make sure only groups can create if set
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-07 08:27:29 +01:00
Nextcloud bot 81bdbadea1 [tx-robot] updated from transifex 2018-12-07 01:18:22 +00:00
Julius HärtlandGitHub 6298e0f107 Merge pull request #735 from cloud2018/Papercut-Unify-text-of-activity
Update ActivityManager.php
2018-12-06 10:14:14 +01:00
Nextcloud bot ea2193a46e [tx-robot] updated from transifex 2018-12-06 01:19:02 +00:00
Julius HärtlandGitHub 96dffbfedd Merge pull request #764 from nextcloud/release/0.5.1
Release 0.5.1
2018-12-05 19:48:54 +01:00
Julius Härtl eb590b5a71 Bump version and changelog for 0.5.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 18:51:05 +01:00
Julius HärtlandGitHub c2294b6e6f Merge pull request #766 from nextcloud/bugfix/noid/13-groups
Use regular groups endpoint to support Nextcloud 13
2018-12-05 18:50:10 +01:00
Julius Härtl 8906d12a47 Use regular groups endpoint to support Nextcloud 13
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 18:31:54 +01:00
Julius HärtlandGitHub 3162ff4261 Merge pull request #765 from nextcloud/bugfix/763/comment-notification
Trigger comment notification on update only
2018-12-05 16:08:31 +01:00
Julius Härtl 57643447d6 Trigger comment notification on update only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 14:01:03 +01:00
Julius HärtlandGitHub 6b86d8ae30 Merge pull request #709 from nextcloud/enhancement/noid/activity-settings
Add dedicated setting for description change activities
2018-12-05 13:33:18 +01:00
Julius Härtl 4279e09cc2 Fix tests for new setting
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 13:22:17 +01:00
Julius Härtl dd104466d6 Do not expose activity on every autosave
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 13:09:43 +01:00
Julius Härtl 43a11327a6 Add dedicated setting for description change activities
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-05 13:09:36 +01:00
Julius HärtlandGitHub e1080ffd98 Merge pull request #762 from nextcloud/tests/noid/php7.3
Add drone tests for PHP 7.3
2018-12-05 12:04:22 +01:00
Nextcloud bot ebc375fe20 [tx-robot] updated from transifex 2018-12-05 01:18:15 +00:00
Julius Härtl b778420d63 Add drone tests for PHP 7.3
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 15:24:38 +01:00
Julius HärtlandGitHub baf7ff9ebf Merge pull request #753 from xf-/task/travisPhp7_3
Travis PHP 7.3 test
2018-12-04 15:21:47 +01:00
Julius HärtlandGitHub 7733754c2b Merge pull request #761 from nextcloud/bugfix/721/activity-fix
Fix information in activity emails
2018-12-04 13:46:16 +01:00
Julius HärtlandGitHub 3c1d1d2dd5 Merge pull request #759 from nextcloud/bugfix/716/comments-board-timeline
Do not show comments in board timeline
2018-12-04 13:05:18 +01:00
Julius HärtlandGitHub 82bc6b2a71 Merge pull request #760 from nextcloud/bugfix/712/search
Use new search API when available
2018-12-04 13:05:09 +01:00
Julius Härtl e5fe19c107 Fix missing information in activity emails
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 13:04:54 +01:00
Julius Härtl 8499318928 Fix comment activity entry
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 11:42:26 +01:00
Julius Härtl 0dd96e9858 Do not show comments in board timeline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 11:06:16 +01:00
Julius Härtl 0296dc78f1 Use new search API when available
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 10:36:29 +01:00
Julius HärtlandGitHub 3b403d5576 Merge pull request #758 from nextcloud/bugfix/noid/group-restrict
Implement group restrictions for creating and sharing
2018-12-04 10:27:16 +01:00
Julius HärtlandGitHub f5d7fdf75f Merge pull request #746 from tinko92/master
Added optional classes has-tasks, has-tasks-completed, overdue, now and
2018-12-04 10:02:01 +01:00
Julius Härtl 0528bd59d1 Fix tests for group restrictions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 09:25:35 +01:00
Julius Härtl 7c95783ab5 Add group limit for creating boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 09:11:50 +01:00
Julius Härtl bff3cafb37 Check if sharing is disabled for a user via core settings
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 07:51:47 +01:00
Julius Härtl 9e58207392 Use write only permission by default
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-04 07:50:53 +01:00
Nextcloud bot c33b41dcbe [tx-robot] updated from transifex 2018-12-04 01:28:17 +00:00
Julius HärtlandGitHub efe2a50a4e Merge pull request #756 from nextcloud/dependabot/npm_and_yarn/js/karma-3.1.3
Bump karma from 3.1.1 to 3.1.3 in /js
2018-12-03 16:26:31 +01:00
dependabot[bot] cfc3b41471 Bump karma from 3.1.1 to 3.1.3 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 3.1.1 to 3.1.3.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v3.1.1...v3.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-03 02:23:57 +00:00
Xaver Maierhofer cfd67eab95 Travis PHP 7.3 test
Signed-off-by: Xaver Maierhofer <xaver.maierhofer@xwissen.info>
2018-11-30 19:09:03 +01:00
Nextcloud bot 98fa04528d [tx-robot] updated from transifex 2018-11-30 01:18:20 +00:00
Nextcloud bot 20e8ebc26a [tx-robot] updated from transifex 2018-11-28 01:18:36 +00:00
Julius HärtlandGitHub 405d5585ce Merge pull request #747 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.26.1
Bump webpack from 4.26.0 to 4.26.1 in /js
2018-11-26 11:53:08 +01:00
dependabot[bot] 1fb562d94b Bump webpack from 4.26.0 to 4.26.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.26.0 to 4.26.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.26.0...v4.26.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 02:17:52 +00:00
Nextcloud bot 1beff0e760 [tx-robot] updated from transifex 2018-11-26 01:17:34 +00:00
Tinko Bartels 6c6f8ae53f Added optional classes has-tasks, has-tasks-completed, overdue, now and
next to li.card in mainView-template.

Signed-off-by: Tinko Bartels <mail@tinkobartels.de>
2018-11-25 14:45:25 +01:00
Nextcloud bot ed53de4cf1 [tx-robot] updated from transifex 2018-11-25 01:18:53 +00:00
Nextcloud bot 9f96627435 [tx-robot] updated from transifex 2018-11-24 01:17:37 +00:00
Julius Härtl 9ee215affd Allow deck to be limited to groups again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-23 18:29:04 +01:00
Julius HärtlandGitHub b39b7d9629 Merge pull request #726 from nextcloud/bugfix/724
Remove unused activity script
2018-11-23 18:26:28 +01:00
Julius HärtlandGitHub 2ecba36ba3 Merge pull request #723 from nextcloud/feature-631/remember-side-menu-state
Deck now remembers the side menu state
2018-11-23 15:31:47 +01:00
Julius HärtlandGitHub 7963f7f7b6 Merge pull request #738 from nextcloud/tests/stable15
Test compatibility with stable15
2018-11-23 15:31:22 +01:00
Julius HärtlandGitHub 50faa97558 Merge pull request #736 from nextcloud/bugfix/noid/remove-card-parameter-when-its-null
Remove card parameter when it's null
2018-11-23 15:31:04 +01:00
Julius HärtlandGitHub 135d7741d2 Merge pull request #734 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.26.0
Bump webpack from 4.25.1 to 4.26.0 in /js
2018-11-23 15:30:53 +01:00
dependabot[bot] 2b1e9ba07d Bump webpack from 4.25.1 to 4.26.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.25.1 to 4.26.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.25.1...v4.26.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-23 14:15:23 +00:00
Julius HärtlandGitHub e121353ac8 Merge pull request #733 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.5
Bump mini-css-extract-plugin from 0.4.4 to 0.4.5 in /js
2018-11-23 15:13:01 +01:00
Julius Härtl 07442a187a Test compatibility with stable15
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-23 15:06:12 +01:00
Julius Härtl 2c024dedce Remove null board value in activity parameters
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-23 15:04:04 +01:00
cloud2018 c7687382f8 Update ActivityManager.php
Fix: "object" +" title of object"

Additional Conditions for SUBJECT_CARD_UPDATE_DUEDATE Adjusted

Signed-off-by: cloud2018 <eckstein-markus@gmx.de>
2018-11-23 12:44:52 +01:00
Joas Schilling d28bf74c73 Remove card parameter when it's null
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-11-23 12:30:55 +01:00
Nextcloud bot 223523005d [tx-robot] updated from transifex 2018-11-23 01:30:04 +00:00
dependabot[bot] c68437e836 Bump mini-css-extract-plugin from 0.4.4 to 0.4.5 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.4 to 0.4.5.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.4...v0.4.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-22 19:02:37 +00:00
Julius HärtlandGitHub c65a9151ab Merge branch 'master' into feature-631/remember-side-menu-state 2018-11-22 20:01:00 +01:00
Julius HärtlandGitHub 0b90f09873 Merge branch 'master' into bugfix/724 2018-11-22 20:00:42 +01:00
Julius HärtlandGitHub 3374f6c908 Merge pull request #727 from nextcloud/bugfix/684/deleted-items
Fix relative timestamp and alignment in deleted items list
2018-11-22 20:00:11 +01:00
Julius HärtlandGitHub 7bcd313883 Merge pull request #732 from nextcloud/bugfix/noid/ci
Fix CI build
2018-11-22 19:59:54 +01:00
Julius Härtl 76bb42e526 Update packages
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-22 19:50:32 +01:00
Julius HärtlandGitHub d4b5f2af57 Merge pull request #731 from cloud2018/remove-duplicate-blanks
Papercut: remove duplicate blanks
2018-11-22 19:40:53 +01:00
cloud2018andGitHub 1299fcf978 remove duplicate blanks
Signed-off-by: Markus Eckstein <eckstein-markus@gmx.de>

resolves  #729
2018-11-22 18:58:58 +01:00
Julius Härtl d04f8742a6 Fix relative timestamp and alignment in deleted items list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-22 18:24:19 +01:00
Julius Härtl 6b8e5f8b76 Remove unused activity script
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-22 18:07:36 +01:00
Nextcloud bot c429ba5aff [tx-robot] updated from transifex 2018-11-22 01:18:31 +00:00
Michael Weimann ef36103c47 Deck now remembers the side menu state #631
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-11-21 21:17:19 +01:00
Nextcloud bot 82336e82d9 [tx-robot] updated from transifex 2018-11-21 01:18:30 +00:00
Julius HärtlandGitHub 3baf9500c3 Merge pull request #715 from bpcurse/master
Bugfix for missing dbtableprefix in 'cardChanged' function in /lib/Db…
2018-11-20 10:42:57 +01:00
Nextcloud bot 1dcefc1d57 [tx-robot] updated from transifex 2018-11-20 01:19:17 +00:00
Julius HärtlandGitHub 66b6d4a09a Fix link to contribution guidelines (fixes #714) 2018-11-19 11:38:04 +01:00
Nextcloud bot 44c1ba62e8 [tx-robot] updated from transifex 2018-11-19 01:18:22 +00:00
Nextcloud bot 590cdba75b [tx-robot] updated from transifex 2018-11-18 01:19:31 +00:00
bpcurse 9786efe490 Bugfix for missing dbtableprefix in 'cardChanged' function in /lib/Db/ChangeHelper.php (68) 2018-11-17 17:29:50 +01:00
Julius HärtlandGitHub 352851a686 Merge pull request #699 from cloud2018/Papercut-unify-name-of-actions
Papercut: unify name of actions
2018-11-17 10:45:51 +01:00
cloud2018 b4c1d35b52 Papercut: unify name of actions
Signed-off-by: Markus Eckstein <eckstein-markus@gmx.de>

resolves  #691
2018-11-16 10:44:54 +01:00
Julius HärtlandGitHub 776d79c12b Merge pull request #701 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.1.6
Bump @babel/preset-env from 7.1.5 to 7.1.6 in /js
2018-11-15 10:03:42 +01:00
Julius HärtlandGitHub 291b0ee3c0 Merge pull request #702 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.1.6
Bump @babel/core from 7.1.5 to 7.1.6 in /js
2018-11-15 10:03:27 +01:00
Julius Härtl 16c7e409d7 Fix event message
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-15 09:55:18 +01:00
Julius Härtl 6064fe71a0 Bump version to 0.5.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-15 09:29:47 +01:00
Nextcloud bot 360f01a07b [tx-robot] updated from transifex 2018-11-15 01:18:44 +00:00
dependabot[bot] 4546337d3e Bump @babel/core from 7.1.5 to 7.1.6 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.1.5 to 7.1.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.5...v7.1.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-14 12:12:02 +00:00
dependabot[bot] aeae192eaf Bump @babel/preset-env from 7.1.5 to 7.1.6 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.1.5 to 7.1.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.5...v7.1.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-14 12:11:21 +00:00
Nextcloud bot 3db56ca93e [tx-robot] updated from transifex 2018-11-13 01:20:17 +00:00
Julius HärtlandGitHub c69fc9ec77 Merge pull request #690 from cloud2018/unify-title-icons-more
Papercut: unifiy title icon-more
2018-11-12 14:31:06 +01:00
Julius Härtl 87b56ec111 Bump version to 0.5.0-rc2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-12 14:09:11 +01:00
Julius HärtlandGitHub 74abc499d8 Merge pull request #693 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.1.5
Bump @babel/preset-env from 7.1.0 to 7.1.5 in /js
2018-11-12 14:07:58 +01:00
Julius HärtlandGitHub 7c04602cc7 Merge pull request #694 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.1.5
Bump @babel/core from 7.1.2 to 7.1.5 in /js
2018-11-12 14:07:45 +01:00
Julius HärtlandGitHub daed799fa7 Merge pull request #697 from nextcloud/bugfix/noid/noitification-length
Fix issue with comments longer than 64 chars
2018-11-12 13:26:18 +01:00
Julius HärtlandGitHub 65e192efc3 Merge pull request #695 from nextcloud/bugfix/noid/tabdetails
Fix tab details alignment
2018-11-12 12:56:29 +01:00
Julius Härtl e1c700878a Fix issue with comments longer than 64 chars
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-12 12:55:11 +01:00
Julius Härtl 81a0c62308 Fix tab details alignment
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-12 10:35:37 +01:00
Nextcloud bot 470538ac91 [tx-robot] updated from transifex 2018-11-12 01:19:13 +00:00
dependabot[bot] c6e7d621f0 Bump @babel/core from 7.1.2 to 7.1.5 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.1.2 to 7.1.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.2...v7.1.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-11 20:18:46 +00:00
dependabot[bot] 99ca1ecf8c Bump @babel/preset-env from 7.1.0 to 7.1.5 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.1.0 to 7.1.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.1.0...v7.1.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-11 20:18:17 +00:00
Nextcloud bot 4a0398923f [tx-robot] updated from transifex 2018-11-11 01:19:53 +00:00
cloud2018 c7816b5a1f Papercut: unifiy title icon-more
Signed-off-by: Markus Eckstein eckstein-markus@gmx.de
2018-11-10 12:06:00 +01:00
Julius HärtlandGitHub 6c5f09e1f9 Merge pull request #686 from nextcloud/release/0.5.0-rc1
Release 0.5.0-rc1
2018-11-10 11:16:02 +01:00
Julius Härtl 4aea8817df Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 11:11:03 +01:00
Julius Härtl b4929e1b45 Conditional loading for activity templates
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 11:09:20 +01:00
Julius Härtl a56907862c Fix loading and activity warning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 11:04:15 +01:00
Julius Härtl 24db3fbdc9 Add dependencies to info.xml
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 10:54:05 +01:00
Julius HärtlandGitHub 9cf30dc77b Merge pull request #681 from nextcloud/design-fixes
Design fixes
2018-11-10 10:49:08 +01:00
Julius Härtl b42c80b464 Fix assign user click target
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 10:43:12 +01:00
Julius Härtl 8dd310cee2 Fix datepicker on 13
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 10:42:32 +01:00
Julius Härtl 4d1e6100db Bump version to 0.5.0-rc1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-10 09:56:16 +01:00
Nextcloud bot dc5eb9e815 [tx-robot] updated from transifex 2018-11-10 01:19:05 +00:00
Julius Härtl e1b5efcd79 Fix card highlight state
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 17:29:08 +01:00
Julius Härtl 644c64aa4b Fix diff of large descriptions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 17:21:36 +01:00
Julius Härtl 3c706c8009 Fix eslint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 17:00:41 +01:00
Julius Härtl 7234050447 Set min height for markdown area (fixes #655)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:52:39 +01:00
Julius Härtl 6a7ceee75f Fix table rendering in markdown (fixes #363)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:47:41 +01:00
Julius Härtl 7d64784dc4 Fix tab headers on 15
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:43:19 +01:00
Julius Härtl 21b7f08e18 Move activity template overriding to the constructor
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:43:19 +01:00
Julius Härtl 47fc2eb20d Fix css variable usage on Nextcloud 13
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:43:19 +01:00
Julius Härtl fc5cabedd0 Fix design issues on 15
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:43:19 +01:00
Julius Härtl b60abba6e4 Clear deleted stack/card list after switch (fixes #683)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:42:04 +01:00
Julius HärtlandGitHub 5371a02653 Merge pull request #680 from nextcloud/bugfix/noid/activity-plain-subject
Replace subject parameters in plain subject string as well
2018-11-09 16:03:46 +01:00
Julius Härtl a6da1ded25 13: force app sidebar on top (fixes #575)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 16:01:45 +01:00
Julius Härtl 4e5f4df29a Properly trigger checkbox toggle on label click only
fixes #577

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 15:49:06 +01:00
Julius Härtl 2b74da9d30 Replace subject parameters in plain subject string as well
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 15:36:18 +01:00
Julius HärtlandGitHub 924d4bd01f Merge pull request #642 from nextcloud/bugfix/noid/checkboxes
Checkbox fixes
2018-11-09 14:45:04 +01:00
Julius HärtlandGitHub a8173b045d Merge pull request #682 from nextcloud/bugfix/621
Only call fclose if resource is still available
2018-11-09 12:40:07 +01:00
Julius Härtl 71e6ff1b79 Make checkbox id order ascending (fixes #678)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 12:39:12 +01:00
Julius Härtl 2bd77fd2ce Fix checkbox matching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-09 12:38:50 +01:00
Julius Härtl aee5fb7a98 Only call fclose if resource is still available
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-08 18:55:48 +01:00
Julius HärtlandGitHub 733f17d59a Merge pull request #675 from nextcloud/activity-15
Fix activity view on 15
2018-11-08 18:32:12 +01:00
Julius Härtl 785bc08d7f Fix activity view on 15
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:55:17 +01:00
Julius HärtlandGitHub 7cb5045dff Update README.md 2018-11-06 19:53:53 +01:00
Julius HärtlandGitHub 2b0954951d Merge pull request #676 from nextcloud/fix-duplicate-register
Do not call register for comment entities twice
2018-11-06 19:45:42 +01:00
Julius HärtlandGitHub ad1e0c91ec Merge pull request #677 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.25.1
Bump webpack from 4.24.0 to 4.25.1 in /js
2018-11-06 19:44:55 +01:00
Julius Härtl 9cf30bf5fd Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:44:29 +01:00
Julius HärtlandGitHub a22c152bd7 Merge pull request #648 from nextcloud/documentation
Documentation
2018-11-06 19:43:17 +01:00
Julius Härtl ec1faad4ab Add note about bad request response
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:41:44 +01:00
Julius Härtl 35991b7448 Add data examples to the docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:39:09 +01:00
Julius Härtl 89cb797250 More api docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:55 +01:00
Julius Härtl 26ab4a950d Add database structure docs
thanks to @desperateCoder for drawing an er diagram

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:55 +01:00
Julius Härtl 31273a31b7 Fix typo
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:55 +01:00
Julius Härtl c83952ad00 Use config for old mkdocs version of readthedocs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:54 +01:00
Julius Härtl 31cf89d874 Restructure docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:54 +01:00
Julius Härtl b494e9e1b0 Change level of api docs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:54 +01:00
Julius Härtl fdd248b7d5 Add documentation with list of API endpoints
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-06 19:08:52 +01:00
dependabot[bot] 580bff4643 Bump webpack from 4.24.0 to 4.25.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.24.0 to 4.25.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.24.0...v4.25.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-06 16:49:27 +00:00
Nextcloud bot f1c19023e8 [tx-robot] updated from transifex 2018-11-06 01:19:26 +00:00
Julius HärtlandGitHub 927b96219c Merge pull request #665 from nextcloud/enhancement/659
Implement modification changes for REST API
2018-11-05 15:07:35 +01:00
Julius Härtl 2673bada6a Update stack lastModified as well
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-05 14:56:36 +01:00
Julius Härtl a026ebf094 Add change database helper
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-05 14:53:01 +01:00
Julius Härtl d830c5006c 0.5 will support 15 as well
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-05 14:36:17 +01:00
Julius Härtl d74138837e Do not call register for comment entities twice
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-05 14:33:44 +01:00
Julius HärtlandGitHub 413875b697 Merge pull request #673 from nextcloud/dependabot/npm_and_yarn/js/node-sass-4.10.0
Bump node-sass from 4.9.4 to 4.10.0 in /js
2018-11-05 13:45:31 +01:00
Julius Härtl a068d6e1c6 Add last_modified to board/stack database and add check on index methods
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-05 13:23:26 +01:00
dependabot[bot] 25f543d3ad Bump node-sass from 4.9.4 to 4.10.0 in /js
Bumps [node-sass](https://github.com/sass/node-sass) from 4.9.4 to 4.10.0.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.9.4...v4.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-05 12:19:25 +00:00
Julius HärtlandGitHub 38bc02c07e Merge pull request #672 from nextcloud/dependabot/npm_and_yarn/js/css-loader-1.0.1
Bump css-loader from 1.0.0 to 1.0.1 in /js
2018-11-05 13:17:42 +01:00
Julius HärtlandGitHub 2921a07f29 Merge pull request #671 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.24.0
Bump webpack from 4.23.1 to 4.24.0 in /js
2018-11-05 13:17:30 +01:00
dependabot[bot] 0c8e6d0e60 Bump css-loader from 1.0.0 to 1.0.1 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-05 01:22:07 +00:00
dependabot[bot] ac7fda0e5a Bump webpack from 4.23.1 to 4.24.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.23.1 to 4.24.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.23.1...v4.24.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-05 01:21:01 +00:00
Nextcloud bot e66aa2e988 [tx-robot] updated from transifex 2018-11-05 01:19:10 +00:00
Nextcloud bot aa0fa5a18d [tx-robot] updated from transifex 2018-11-04 01:21:08 +00:00
Nextcloud bot 68976883cc [tx-robot] updated from transifex 2018-11-02 01:20:30 +00:00
Julius HärtlandGitHub d7bc382331 Merge pull request #667 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.23.1
Bump webpack from 4.22.0 to 4.23.1 in /js
2018-10-29 12:40:19 +01:00
Julius HärtlandGitHub b38ef8fab0 Merge pull request #666 from nextcloud/dependabot/npm_and_yarn/js/karma-3.1.1
Bump karma from 3.1.0 to 3.1.1 in /js
2018-10-29 12:40:10 +01:00
dependabot[bot] bdca96c460 Bump webpack from 4.22.0 to 4.23.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.22.0 to 4.23.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.22.0...v4.23.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-29 01:16:17 +00:00
dependabot[bot] 8dd2d88ff2 Bump karma from 3.1.0 to 3.1.1 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v3.1.0...v3.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-29 01:15:31 +00:00
Nextcloud bot 280d97c40c [tx-robot] updated from transifex 2018-10-27 00:19:07 +00:00
Nextcloud bot 771e8e7db3 [tx-robot] updated from transifex 2018-10-26 00:19:28 +00:00
Julius HärtlandGitHub ef4235bbdc Merge pull request #651 from nextcloud/bugfix/csp
Fix webpack build with new CSP on 15
2018-10-25 16:05:31 +02:00
Julius HärtlandGitHub 513147c18a Merge pull request #643 from nextcloud/bugfix/noid/style-accessibility
General styling and accessibility fixes
2018-10-25 14:44:04 +02:00
Julius HärtlandGitHub 65c263c7d8 Merge pull request #656 from cloud2018/consistent-pop-up
consistent-pop-up
2018-10-25 14:20:46 +02:00
Julius Härtl 32726af9c6 Fix icon inversion
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-25 14:17:10 +02:00
Julius Härtl b72dca6536 General styling and accessibility fixes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-25 14:00:07 +02:00
Julius Härtl 0a52cdfe6b Fix webpack build with new CSP on 15
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-25 13:38:00 +02:00
Nextcloud bot bdace3159f [tx-robot] updated from transifex 2018-10-24 00:19:17 +00:00
Julius HärtlandGitHub cd69c2fd71 Merge pull request #641 from nextcloud/design/noid/simplify
General design improvements
2018-10-23 09:29:49 +02:00
Julius HärtlandGitHub 658ab485aa Merge pull request #658 from nextcloud/dependabot/npm_and_yarn/js/node-sass-4.9.4
Bump node-sass from 4.9.3 to 4.9.4 in /js
2018-10-23 09:29:11 +02:00
Julius HärtlandGitHub 0632551c65 Merge pull request #661 from nextcloud/dependabot/npm_and_yarn/js/karma-3.1.0
Bump karma from 3.0.0 to 3.1.0 in /js
2018-10-23 09:28:12 +02:00
Nextcloud bot 5b385822dc [tx-robot] updated from transifex 2018-10-23 00:13:03 +00:00
dependabot[bot] 5aefdd2302 Bump node-sass from 4.9.3 to 4.9.4 in /js
Bumps [node-sass](https://github.com/sass/node-sass) from 4.9.3 to 4.9.4.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.9.3...v4.9.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-22 21:14:53 +00:00
dependabot[bot] b691b1a382 Bump karma from 3.0.0 to 3.1.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-22 20:51:44 +00:00
Julius HärtlandGitHub d029067849 Merge pull request #657 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.22.0
Bump webpack from 4.20.2 to 4.22.0 in /js
2018-10-22 20:27:35 +02:00
Nextcloud bot 162c47ef60 [tx-robot] updated from transifex 2018-10-22 00:13:05 +00:00
dependabot[bot] 8b626251c1 Bump webpack from 4.20.2 to 4.22.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.20.2 to 4.22.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.20.2...v4.22.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-21 11:35:34 +00:00
Nextcloud bot 6aee11ef6f [tx-robot] updated from transifex 2018-10-21 00:13:25 +00:00
Nextcloud bot 1c9774a659 [tx-robot] updated from transifex 2018-10-20 00:12:53 +00:00
cloud2018andGitHub f3f75fb1d4 consistent-pop-up
fixes #429 
add delete icon to left pop-ups more (3 dots)
change some blanks to tabs
Signed-off-by: Markus Eckstein <eckstein-markus@gmx.de>
2018-10-19 21:02:59 +02:00
Nextcloud bot b320ef8818 [tx-robot] updated from transifex 2018-10-19 00:12:52 +00:00
Julius HärtlandGitHub 33a2c5e403 Merge branch 'master' into design/noid/simplify 2018-10-18 16:27:15 +02:00
Nextcloud bot dc4245ca11 [tx-robot] updated from transifex 2018-10-18 00:12:42 +00:00
Julius HärtlandGitHub 4b4f597d3e Merge pull request #653 from nextcloud/bugfix/649
Fix comment mention subject
2018-10-17 11:39:34 +02:00
rakeknivenandGitHub 2a3b4a8e3b Update NotifierTest.php
Fixed tests
2018-10-17 10:57:29 +02:00
Nextcloud bot 8f6e8d9004 [tx-robot] updated from transifex 2018-10-17 00:12:37 +00:00
Julius HärtlandGitHub 0a4a58cddc Fix comment mention subject
fixes #649

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-16 10:16:30 +02:00
Julius Härtl c025d1b5fd Add tooltip to sidebar sections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-16 10:14:06 +02:00
Julius Härtl 5cc65cac6e Remove author since it is availiable in the activity stream (fixes #647)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-16 10:14:06 +02:00
Julius Härtl e9a320e528 New sidebar layout
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-16 10:14:06 +02:00
Julius Härtl 7500a179c0 Make sidebar a bit cleaner
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-16 10:14:06 +02:00
Nextcloud bot 8bf3aed9a7 [tx-robot] updated from transifex 2018-10-16 00:12:31 +00:00
Julius HärtlandGitHub 612a65d2e6 Merge pull request #650 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.4
Bump mini-css-extract-plugin from 0.4.3 to 0.4.4 in /js
2018-10-15 08:56:27 +02:00
dependabot[bot] 0cb3c9c1f8 Bump mini-css-extract-plugin from 0.4.3 to 0.4.4 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.3...v0.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-15 01:15:53 +00:00
Nextcloud bot 61c9a76c73 [tx-robot] updated from transifex 2018-10-15 00:12:49 +00:00
Nextcloud bot 93d0f9b3b8 [tx-robot] updated from transifex 2018-10-14 00:12:34 +00:00
Nextcloud bot 4e59d386dc [tx-robot] updated from transifex 2018-10-13 00:12:18 +00:00
Nextcloud bot 118fc0b0cc [tx-robot] updated from transifex 2018-10-12 00:12:19 +00:00
Nextcloud bot 4f39b76573 [tx-robot] updated from transifex 2018-10-11 00:11:52 +00:00
Nextcloud bot 80ba6314ee [tx-robot] updated from transifex 2018-10-10 00:19:55 +00:00
Julius HärtlandGitHub 6f1a0b0aef Merge pull request #638 from nextcloud/release/0.5.0-beta1
v0.5.0-beta1
2018-10-09 21:30:04 +02:00
Julius Härtl 3255b8c4c6 Update description in appinfo
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 20:51:28 +02:00
Julius Härtl 4bd7f4fd39 Fix adding comment when no activity entry is present
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 20:38:08 +02:00
Julius Härtl 8e3fa71a2d Fix comment entity registration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 19:18:44 +02:00
Julius Härtl 8b161927da Adapt tests for stable branch
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 19:02:55 +02:00
Julius Härtl b0eee23ef2 Add changelog and set proper max-version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 19:02:54 +02:00
Julius Härtl 09dc403b0e Bump version to v0.5.0-beta1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 19:02:54 +02:00
Julius HärtlandGitHub 6754cfe73b Merge pull request #639 from nextcloud/bugfix/noid/comment-compatibility
Bugfix/noid/comment compatibility
2018-10-09 19:01:17 +02:00
Julius Härtl 59e8d9b4cf Add annotation for global variables
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 18:52:52 +02:00
Julius HärtlandGitHub d11d033360 Update README.md 2018-10-09 18:13:51 +02:00
Julius HärtlandGitHub 8cad06f702 Update README.md 2018-10-09 18:06:15 +02:00
Julius Härtl f0118c0848 Unify deleted entry tabs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 17:50:24 +02:00
Julius Härtl 33dbbd0d62 Fix loading if no comments are available
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 17:41:41 +02:00
Julius Härtl 72fd0fcc9b Fix 13 compatibility issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 17:41:09 +02:00
Julius Härtl 43b5571315 Fix loading of comments type
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 17:40:35 +02:00
Julius Härtl 29756e1e8c Make timeline tab only available if comments/activity apps are enabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 17:15:38 +02:00
Julius HärtlandGitHub 1d777550ed Merge pull request #632 from nextcloud/feature/10/comments
Comments support
2018-10-09 16:44:19 +02:00
Julius Härtl 4779d3ae0c Tests: Comment actrivity parsing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 14:52:55 +02:00
Julius Härtl 68880fc4be Add test for mention notifications
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 14:47:18 +02:00
Julius Härtl da0cfdb1dc Add unit tests for comment handling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:29 +02:00
Julius Härtl 5edb95fc6b Fix codacy issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:29 +02:00
Julius Härtl 27f9707058 Allow submit of comments using shift+enter
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:29 +02:00
Julius Härtl cb3c083d8b Fix user id in mention notification
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:29 +02:00
Julius Härtl 3a36f7da2f Fix racecondition during loading of comments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:29 +02:00
Julius Härtl 3e8451e1e1 Fix unread comment count
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl 5f8c46b146 Fix issue when switching between cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl 9363f8667c Add UI feedback for comment deletion
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl dcc3601bd7 Implement editing comments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl 46720dc37b Fix jslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl 691c72d717 Use board users for @-mentioning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:28 +02:00
Julius Härtl f66f4e0be0 Send notification on user mention
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl 93c3c542e8 Fix styling and proper template rendering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl 97b7bca255 Fix eslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl e0ac86ac1f Inject user manager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl 310af37d67 Implement user mentioning in frontend
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl e29efe8935 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:27 +02:00
Julius Härtl 63a34e7018 Properly inject ICommentsManager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl ddeefd5bf3 Move contenteditable directive to separate file
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl 630a5badf8 Sidebar design improvements
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl f5520d3087 Implement comment deletion and loading indicator
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl e547a5d2b9 Add comment action menu
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl ffd32a803f Enhance activity list with comment data
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:26 +02:00
Julius Härtl 63337c1d26 Add comment event handler for activities
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:25 +02:00
Julius Härtl 2e824f0c80 Add backbone comment classes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:25 +02:00
Julius Härtl 339bc34f9b Add basic comments frontend
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:25 +02:00
Julius Härtl 41db5d0024 Load comments entity for app
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:25 +02:00
Julius Härtl d3027acd37 Add backend support for comments
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 13:08:25 +02:00
Julius HärtlandGitHub 10c09927e2 Merge pull request #630 from nextcloud/dependabot/npm_and_yarn/js/babel-loader-8.0.4
Bump babel-loader from 7.1.5 to 8.0.4 in /js
2018-10-09 13:07:19 +02:00
Julius HärtlandGitHub 014e7e4cbe Merge pull request #611 from nextcloud/bug/589/empty-titles
Don't allow empty card titles
2018-10-09 12:22:50 +02:00
Julius HärtlandGitHub 884de2b4f2 Merge pull request #609 from nextcloud/feature/195/print-css
Printing CSS styles
2018-10-09 12:21:40 +02:00
Julius Härtl a5a836450e Bump babel to 7.x.x
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 11:55:00 +02:00
Julius Härtl da2e3add9d Adjust print css
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 11:43:20 +02:00
DubidubiduuandJulius Härtl e9a505f273 add import print.scss
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 11:34:08 +02:00
DubidubiduuandJulius Härtl 8ec4a8e2bb add print file
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-10-09 11:34:08 +02:00
Michael WeimannandJulius Härtl a02bd5ab52 Implements a validation for empty titles input in the card directly
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-10-09 11:28:19 +02:00
Michael WeimannandJulius Härtl df43e07057 Implements a validation for empty titles input at the side bar
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-10-09 11:28:19 +02:00
Michael WeimannandJulius Härtl d17cd78605 Implements validation when adding new cards
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-10-09 11:28:16 +02:00
dependabot[bot] fe6caf094b Bump babel-loader from 7.1.5 to 8.0.4 in /js
Bumps [babel-loader](https://github.com/babel/babel-loader) from 7.1.5 to 8.0.4.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v7.1.5...v8.0.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-08 12:04:47 +00:00
Julius HärtlandGitHub 84969180e2 Merge pull request #635 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.5
Bump angular from 1.7.4 to 1.7.5 in /js
2018-10-08 14:03:06 +02:00
dependabot[bot] 7008745395 Bump angular from 1.7.4 to 1.7.5 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.4 to 1.7.5.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.4...v1.7.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-08 09:14:47 +00:00
Julius HärtlandGitHub 34d5f05821 Merge pull request #636 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.5
Bump angular-animate from 1.7.4 to 1.7.5 in /js
2018-10-08 11:12:36 +02:00
Julius HärtlandGitHub b96038c049 Merge pull request #637 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.5
Bump angular-sanitize from 1.7.4 to 1.7.5 in /js
2018-10-08 11:12:20 +02:00
dependabot[bot] 0d21df347b Bump angular-sanitize from 1.7.4 to 1.7.5 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.4 to 1.7.5.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.4...v1.7.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-08 01:16:25 +00:00
dependabot[bot] f865149d35 Bump angular-animate from 1.7.4 to 1.7.5 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.4 to 1.7.5.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.4...v1.7.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-08 01:15:59 +00:00
Nextcloud bot 5898428fb9 [tx-robot] updated from transifex 2018-10-05 00:19:46 +00:00
Julius HärtlandGitHub 792b05dfdf Merge pull request #628 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.1.2
Bump webpack-cli from 3.1.0 to 3.1.2 in /js
2018-10-01 14:19:29 +02:00
Julius HärtlandGitHub 08b6274131 Merge pull request #613 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.4
Bump angular from 1.7.3 to 1.7.4 in /js
2018-10-01 14:18:52 +02:00
dependabot[bot] d8db1c9019 Bump webpack-cli from 3.1.0 to 3.1.2 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/commits/v3.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-01 11:58:30 +00:00
dependabot[bot] f089c552e0 Bump angular from 1.7.3 to 1.7.4 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.3 to 1.7.4.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.3...v1.7.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-01 11:57:42 +00:00
Julius HärtlandGitHub 61978088fc Merge pull request #626 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.3
Bump mini-css-extract-plugin from 0.4.2 to 0.4.3 in /js
2018-10-01 13:56:19 +02:00
Julius HärtlandGitHub a9d7095354 Merge pull request #616 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.4
Bump angular-sanitize from 1.7.3 to 1.7.4 in /js
2018-10-01 13:56:09 +02:00
Julius HärtlandGitHub 353fd792a4 Merge pull request #615 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.4
Bump angular-animate from 1.7.3 to 1.7.4 in /js
2018-10-01 13:55:47 +02:00
dependabot[bot] e7d535e0c0 Bump mini-css-extract-plugin from 0.4.2 to 0.4.3 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.2 to 0.4.3.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.2...v0.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-01 10:43:19 +00:00
dependabot[bot] dc756991ae Bump angular-sanitize from 1.7.3 to 1.7.4 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.3 to 1.7.4.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.3...v1.7.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-01 10:40:59 +00:00
dependabot[bot] 7529cfb892 Bump angular-animate from 1.7.3 to 1.7.4 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.3 to 1.7.4.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.3...v1.7.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-01 10:28:46 +00:00
Julius HärtlandGitHub 08485b0381 Merge pull request #623 from nextcloud/dependabot/composer/christophwurst/nextcloud-tw-14.0
Update christophwurst/nextcloud requirement from ^13.0 to ^14.0
2018-10-01 12:22:17 +02:00
Julius HärtlandGitHub 1283c41283 Merge pull request #629 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.20.2
Bump webpack from 4.17.1 to 4.20.2 in /js
2018-10-01 12:21:49 +02:00
dependabot[bot] 774809a3a8 Bump webpack from 4.17.1 to 4.20.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.17.1 to 4.20.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.17.1...v4.20.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-30 08:31:22 +00:00
Nextcloud bot 5a0227a339 [tx-robot] updated from transifex 2018-09-29 00:17:55 +00:00
Nextcloud bot 3cb0e8fc2d [tx-robot] updated from transifex 2018-09-28 00:13:12 +00:00
Nextcloud bot 7026c2ca88 [tx-robot] updated from transifex 2018-09-26 00:18:56 +00:00
Nextcloud bot ed5d57d474 [tx-robot] updated from transifex 2018-09-25 00:19:35 +00:00
dependabot[bot] 61ead7dc66 Update christophwurst/nextcloud requirement from ^13.0 to ^14.0
Updates the requirements on [christophwurst/nextcloud](https://github.com/ChristophWurst/nextcloud_composer) to permit the latest version.
- [Release notes](https://github.com/ChristophWurst/nextcloud_composer/releases)
- [Commits](https://github.com/ChristophWurst/nextcloud_composer/commits/14.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-24 01:12:38 +00:00
Nextcloud bot 1bb185c8f0 [tx-robot] updated from transifex 2018-09-24 00:19:07 +00:00
Nextcloud bot 0ea5a5b7d6 [tx-robot] updated from transifex 2018-09-23 00:19:40 +00:00
Nextcloud bot 9f8533b96c [tx-robot] updated from transifex 2018-09-22 00:19:14 +00:00
Nextcloud bot 4fd8add19c [tx-robot] updated from transifex 2018-09-21 00:19:44 +00:00
Nextcloud bot cf8926952a [tx-robot] updated from transifex 2018-09-20 00:19:49 +00:00
Nextcloud bot 47fe8913c4 [tx-robot] updated from transifex 2018-09-18 00:19:08 +00:00
Nextcloud bot bdd07ec31e [tx-robot] updated from transifex 2018-09-17 00:19:41 +00:00
Nextcloud bot 4fbbb6aa79 [tx-robot] updated from transifex 2018-09-16 00:19:36 +00:00
Nextcloud bot 57193181d1 [tx-robot] updated from transifex 2018-09-15 00:18:54 +00:00
Nextcloud bot cbbeb394c1 [tx-robot] updated from transifex 2018-09-14 00:19:36 +00:00
Nextcloud bot 1174b8f7ca [tx-robot] updated from transifex 2018-09-13 00:19:12 +00:00
Nextcloud bot cca9390555 [tx-robot] updated from transifex 2018-09-12 00:18:47 +00:00
Nextcloud bot b9531ce684 [tx-robot] updated from transifex 2018-09-09 00:20:35 +00:00
Nextcloud bot e0decdf55e [tx-robot] updated from transifex 2018-09-08 00:19:34 +00:00
Julius HärtlandGitHub f5691e6d7f Merge pull request #607 from nextcloud/feature/211/activity
Activity integration
2018-09-07 16:18:39 +02:00
Julius Härtl b979e37ad6 Fix deps in Makefile
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 16:12:23 +02:00
Julius Härtl 41f254af74 Run composer on build
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 15:36:14 +02:00
Julius Härtl d95a8e8975 Do not run apply after $http promise resolve
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 15:21:53 +02:00
Julius Härtl 28f58ee5f3 Fix activity rendering in the sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 15:04:42 +02:00
Julius Härtl df4f8dda60 Frontend code cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 13:18:59 +02:00
Julius Härtl 4441075f49 Add tests for param parsing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 12:53:58 +02:00
Julius Härtl 56f9b5b6e6 Code cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-07 08:51:52 +02:00
Julius Härtl f686b1e75b Activity: trigger activity on board share/unshare
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 21:09:21 +02:00
Julius Härtl 7e88d246c0 Tests: Add tests for ActivityManager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 20:01:26 +02:00
Julius Härtl 80aadb2717 Tests: More coverage for DeckProvider->parse()
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 15:05:35 +02:00
Julius Härtl 0cc4fffd08 Add tests for activity classes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 13:19:54 +02:00
Julius Härtl 4ba47045b2 Run composer on travis as well
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:14:57 +02:00
Julius Härtl a6dceb2e64 Fix eslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:03 +02:00
Julius Härtl eea5803ae5 Fix existing service tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:03 +02:00
Julius Härtl e06a5ad44f Use proper trigger methods for activities
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:03 +02:00
Julius Härtl f8f36dac09 Run composer install before on drone tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:03 +02:00
Julius Härtl 4c300bf432 Adjust tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl 2d545aafa5 Fix service update methods
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl 8d384c7c5c Fix some styling issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl 790ea6ff63 Fix info.xml order
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl bc15b48ea2 Properly fetch activities for board and fix refresh of lists
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl 3319f9c3b3 Add activity list to sidebars
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:02 +02:00
Julius Härtl 18f92f7b54 Implement remaining activity types
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:01 +02:00
Julius Härtl b5cf3709c2 Emit activity events in StackService
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:01 +02:00
Julius Härtl df8c1984ca Emit activity events in CardService
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:01 +02:00
Julius Härtl c32ab5648c Emit activity events in BoardService
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:01 +02:00
Julius Härtl 6a5b4fe40c WIP: Activity integration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 10:05:01 +02:00
Julius HärtlandGitHub 0ee0a5840b Merge pull request #608 from nextcloud/tests/stable14
Adjust tests for stable14 / 15 on master
2018-09-06 10:04:26 +02:00
Julius Härtl 6f883d1417 Set max-version to 15 for development
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 09:57:43 +02:00
Julius Härtl 8e974111ba Add app compatibility check for 14
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-09-06 09:57:22 +02:00
Nextcloud bot 45ee875646 [tx-robot] updated from transifex 2018-09-06 00:19:57 +00:00
Nextcloud bot 1877340cd3 [tx-robot] updated from transifex 2018-09-01 00:18:36 +00:00
Nextcloud bot bcebec10bc [tx-robot] updated from transifex 2018-08-31 00:18:30 +00:00
Nextcloud bot dfbe15319c [tx-robot] updated from transifex 2018-08-30 00:18:08 +00:00
Julius HärtlandGitHub 33764f645b Merge pull request #602 from nextcloud/feature/587/compact-mode
Adds the compact mode
2018-08-29 17:47:35 +02:00
Michael Weimann b20ea4dea1 Stores the compact mode state in the local storage
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-08-29 17:34:42 +02:00
Michael Weimann e53c623759 Implements the compact toggle
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-08-29 16:04:59 +02:00
Nextcloud bot 2c12a99020 [tx-robot] updated from transifex 2018-08-28 00:19:16 +00:00
Julius HärtlandGitHub a4105d22dc Merge pull request #600 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.2
Bump mini-css-extract-plugin from 0.4.1 to 0.4.2 in /js
2018-08-27 15:23:49 +02:00
dependabot[bot] c7a058e575 Bump mini-css-extract-plugin from 0.4.1 to 0.4.2 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.1 to 0.4.2.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.1...v0.4.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-27 12:18:48 +00:00
Julius HärtlandGitHub b603c31398 Merge pull request #599 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.17.1
Bump webpack from 4.16.5 to 4.17.1 in /js
2018-08-27 14:16:41 +02:00
dependabot[bot] f650e52f6a Bump webpack from 4.16.5 to 4.17.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.16.5 to 4.17.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.16.5...v4.17.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-27 01:16:16 +00:00
Nextcloud bot 07ea4a1b4f [tx-robot] updated from transifex 2018-08-27 00:18:42 +00:00
Julius HärtlandGitHub a5ae5b3e26 Merge pull request #596 from willianveiga/feature/due-date-input-use-local-date-format
Due date input uses user's local date format
2018-08-26 16:19:46 +02:00
Julius HärtlandGitHub adf9e057b4 Merge pull request #597 from nextcloud/acc_workshop
Fix some small accessibility issues
2018-08-26 16:12:50 +02:00
Tobia De Koninck c432f89424 Fix some small accessibility issues
Signed-off-by: Tobia De Koninck <LEDfan@users.noreply.github.com>
2018-08-26 12:00:14 +02:00
Nextcloud bot 410654b766 [tx-robot] updated from transifex 2018-08-26 00:19:15 +00:00
Willian Gustavo Veiga 9e49064847 Use tabs instead of spaces
Signed-off-by: Willian Gustavo Veiga <beberveiga@gmail.com>
2018-08-25 12:36:23 -03:00
Willian Gustavo Veiga f8239f4e8a Due date input uses user's local date format
Signed-off-by: Willian Gustavo Veiga <beberveiga@gmail.com>
2018-08-25 11:57:56 -03:00
Nextcloud bot b3b16f8fbd [tx-robot] updated from transifex 2018-08-25 00:18:54 +00:00
Julius HärtlandGitHub 939f5fa621 Merge pull request #592 from nextcloud/251-card-title-inline
editable inline card titles
2018-08-24 15:57:25 +02:00
Ryan FletcherandJulius Härtl d17d0ec16f removing whitespaces
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-24 14:56:37 +02:00
Julius Härtl f1ebe01e5e Fix inline input sizing for card title edit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-24 14:56:37 +02:00
Ryan FletcherandJulius Härtl 1949dae8d4 attempt at solving css "jumps" on inline edits.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-24 14:56:37 +02:00
Ryan FletcherandJulius Härtl 7c6d36fde1 Added class input-inline
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-24 14:56:36 +02:00
Ryan FletcherandJulius Härtl 5fd8ff003b editable inline card titles
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-24 14:56:36 +02:00
Julius HärtlandGitHub abb5290baa Merge pull request #593 from nextcloud/250-emptycontent-views
#250-emptycontent-views
2018-08-23 13:47:14 +02:00
Ryan Fletcher fd7dd9c3b4 cleaning up whitespace / unused css style.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-23 07:10:17 -04:00
Nextcloud bot 4a4c787de2 [tx-robot] updated from transifex 2018-08-22 00:18:37 +00:00
Ryan Fletcher 6fb4525754 sending strings through translation code.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-21 17:25:09 -04:00
Ryan Fletcher 001609982d adjusting solution based on standards shown to me by jancborchardt
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-21 17:11:47 -04:00
Ryan Fletcher 9353e4852c Added empty message to board list when there are no boards present.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-21 14:35:03 -04:00
Nextcloud bot eb29baef4b [tx-robot] updated from transifex 2018-08-21 00:18:50 +00:00
Nextcloud bot 031d20199e [tx-robot] updated from transifex 2018-08-18 00:19:12 +00:00
Nextcloud bot adf0b7b68b [tx-robot] updated from transifex 2018-08-17 00:18:31 +00:00
Nextcloud bot 7296302af2 [tx-robot] updated from transifex 2018-08-16 00:18:57 +00:00
Julius HärtlandGitHub f040df785d Merge pull request #535 from nextcloud/feature/83/json-api
REST API
2018-08-15 21:21:25 +02:00
Julius Härtl 5639bd1274 Fix controller deleted at parameter
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:23 +02:00
Julius Härtl babfcbddd8 Fix imports
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:23 +02:00
Julius Härtl 0c9b1f5338 Mapper can be null if provided id is a board id
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:23 +02:00
Julius Härtl 81d333243d Fix comparison
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:23 +02:00
Julius Härtl 47a7e76a4d Catch DoesNotExistException to return proper API repsonses
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:23 +02:00
Ryan FletcherandJulius Härtl 4391bf4eb8 added missing BadRequestException checks to StackService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl aba7d02cfe Added BadRequestException checks in DefaultBoardService. Fixed bug in DefaultBoardService BadRequestException checks.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl 6f5c0a2816 Added in BadRequestException checks in CardService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl e8571454d9 Added BadRequestException checks into BoardService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl 7930fec5d7 Added in BadRequestException tests into AttachmentService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl 37a2858d5f wrote attachment api controller, fixed bug caught by unit test in CardService
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:22 +02:00
Ryan FletcherandJulius Härtl e88c9a760d Wrote unit tests for AttachmentApiController and stubbed out AttachmentApicontroller. Trying out test driven development.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 172a80fa5d Added additional endpoints for cards / stacks
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 3e965d0cfb Implemented additional CardApiController endpoints
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 72aeb723a5 fixed up missing checks from labelService, BadRequestException is now extending StatusException
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 507a7fd243 Code cleanup, removing unused code from older iteration.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 184cd00a8b Wrote initial unit tests for LabelApiControllerTest.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:21 +02:00
Ryan FletcherandJulius Härtl 9c81584b02 Wrote tests for CardApiControllerTest.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl 5bc8a363b9 Split Card Update in CardApiController as it was gigantic and broke codacy complexity rules by a lot. Also moved validation checks into respective services.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl f1169b9c7e finished writing StackApiControllerTest.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl f2268c7f58 Moved Data Response checks into stack serivice, cleaned up related unit tests.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl d33dd3e0fc Moved BadRequestException checks to middleware, removed uneeded unit tests in BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl 8cac183af6 simple code style changes according to codacy standards.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:20 +02:00
Ryan FletcherandJulius Härtl 570ac81848 added the create tests in StackApiControllerTest
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:19 +02:00
Ryan FletcherandJulius Härtl 5719e9f134 Wrote unit tests against StackApiController -> get()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:19 +02:00
Ryan FletcherandJulius Härtl 891fa7b7d5 Created index tests for StackApiTestController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:19 +02:00
Ryan FletcherandJulius Härtl 54f110f7c6 first attempt at BoardApiControllerTest->testGetNoPermission()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:19 +02:00
Julius Härtl dcfb9f3903 Properly annotate exceptions thrown by services
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:19 +02:00
Julius Härtl 2482dc963a Fix BoardServiceTest
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl 6d57b1081a BoardApiControllerTest wrote delete tests
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl 8dd732631a BoardApiController wrote update tests
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl 1fe70568cb Wrote unit tests for the BoardApiController -> create tests
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl bd254fd261 BoardApiControllerTest wrote get() tests.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl fad579c4d3 Wrote first unit test for BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:18 +02:00
Ryan FletcherandJulius Härtl e8c53d71aa fixed more unit tests.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl e0049cf07b Resolved unit tests errors, down from 36 to 9.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl 881b05aeb1 fixed BoardControllerTest from errors
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl cfd9ab98c6 Implemented StackApiController Get Function.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl dd1d4246fe Finished Error handling across the API
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl 2668f6b80c committing WIP (improving error validation across the api's)
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:17 +02:00
Ryan FletcherandJulius Härtl a388d199dc Refactored error handling in StackApiController and moved it into ApiHelper.php, this will allow me to use the same checks in all controllers.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl d9f3d492dc Better variable name for stackService in StackApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl a14ca3d1f5 Better error handling in StackApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl 7d9fc83dc9 Code style fixings.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl f97c7c3f7b Added in Create + Delete functions to the LabelApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl 6002067b64 Created LabelApiController and it's get / update methods.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:16 +02:00
Ryan FletcherandJulius Härtl 7e4d24236a Updated the CardApiController->update method to allow updating of archive state and assigned user,.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl b82591a0bc Added delete operation to CardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl e5f7f89ed9 Wrote update method for CardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl a68e888654 Started CardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl 0c0910ee81 Co authored for my changes.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl ced87edfa5 Put in validation responses in BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:15 +02:00
Ryan FletcherandJulius Härtl 5415ec21dc Validation Checking against StackApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl 3cb496daa2 Cleaned up StackApiController to use proper route parameters, removed route parameters from request payloads as per rest standards.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl 03e0559afe StackApiController->delete($boardId, $id) added in error handling
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl be91ff641c StackApiController added the update put route.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl cec06493c0 Error handling for StackApiController->Index()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl 0da84a3e8c Corrected comment in BoardApiController from copy / paste.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:14 +02:00
Ryan FletcherandJulius Härtl 6822d7d099 Error handling in undelete function and created the update function in BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Ryan FletcherandJulius Härtl d82746be97 Error handling for undoDelete and created an update method in BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Ryan FletcherandJulius Härtl 3b49c7f262 Added exception handling to BoardApiController -> Delete
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Ryan FletcherandJulius Härtl 9bc9569a0d Added checks to see if the entity is not found in BoardApiController -> get($id)
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Ryan FletcherandJulius Härtl 8771e35f11 Added exception handling to StackApiController->create()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Ryan FletcherandJulius Härtl 656e8efa43 quick test in StackApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-08-15 21:15:13 +02:00
Julius Härtl 9fc01eb51f Move DI of IUserManager, IGroupManager, userId to the BoardService
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:12 +02:00
Steven R. BakerandJulius Härtl e32adb17f2 Don't need to pass around the userInfo with it encapsulated in BoardService.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:12 +02:00
Steven R. BakerandJulius Härtl 1ffa3211ba Extract getBoardPererequisites() so it can be re-used.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:11 +02:00
Steven R. BakerandJulius Härtl 41cf623bb8 This should be 200 on deletion, so we can tell whether a deletion succeeds or not.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:10 +02:00
Steven R. BakerandJulius Härtl 8ec97032b1 Re-format code according to the coding style.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:08 +02:00
Steven R. BakerandJulius Härtl 40f34eb3bc Fix the routing and the stacks API endpoint.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:07 +02:00
Steven R. BakerandJulius Härtl a4b348488b Add Stack support to API.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:05 +02:00
Steven R. BakerandJulius Härtl 8316a0b25f Board creation via API.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:04 +02:00
Steven R. BakerandJulius Härtl 86dde2d6b8 These parens are not needed.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:15:03 +02:00
Steven R. BakerandJulius Härtl 84a8db7b75 Change the API version to 1.0, and fix the preflighted_cors version.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:14:59 +02:00
Steven R. BakerandJulius Härtl 975b6f3572 Update the documentation.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 21:14:43 +02:00
Steven R. BakerandJulius Härtl b4224dadfb Undo deletion of boards via API.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 20:53:07 +02:00
Steven R. BakerandJulius Härtl 7dcd49c485 Delete boards via the API.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 20:53:07 +02:00
Steven R. BakerandJulius Härtl 0c266d4a1f List boards, and fetch a specific board.
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 20:53:07 +02:00
Julius HärtlandGitHub a3a70f67b4 Merge pull request #557 from nextcloud/feature/undo-delete-cards-and-stacks
Feature/undo delete cards and stacks
2018-08-15 20:52:01 +02:00
Julius Härtl 43e76ecca3 Bump development version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-08-15 20:46:58 +02:00
Manuel Arno KorfmannandJulius Härtl 241a654f28 codacy fix
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:31 +02:00
Manuel Arno KorfmannandJulius Härtl 94e1b86eaf fixed bugs where labels would dissappear
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:31 +02:00
Manuel Arno KorfmannandJulius Härtl 4d5353b8d4 renaming and more codacy
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:31 +02:00
Manuel Arno KorfmannandJulius Härtl 5ddfb66633 Card,Stack undo delete: CardServiceTest fix
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Stack,Card undo delete: Test Fix 2

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Card, Stack undo delete: Test fix 3

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Card,Stack undo delete: Test fix 4

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Stack, Card undo delete: Relative time in deleted entity listings

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Card, Stack undo delete: Test Fix 5

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Test Fix 6

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

Test Fix 7

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

fix codacy

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:31 +02:00
Manuel Arno KorfmannandJulius Härtl 41d30d4fd4 stack, card undo delete: refactoring
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack undo delete: serve cards with deleted and delete actions

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack, cards undo delete: codacy

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

card undo delete: 526#discussion_r204501758, refactoring

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

card, stack undo delete: code review fixes #1

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

undo card, stack delete: show deleted stacks name in deleted card listing

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:31 +02:00
Manuel Arno KorfmannandJulius Härtl 95548fba54 Conditional restoration of deleted stacks on card undo delete
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:30 +02:00
Manuel Arno KorfmannandJulius Härtl ef4ce31c47 refactoring and stack undo delete early wip
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack soft delete done

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack undo delete done

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack undo: code review remarks and fixes

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:30 +02:00
Manuel Arno KorfmannandJulius Härtl f2795f120b show deleted cards in sidebar tab (styling still wip)
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

card undo delete done, styling still wip

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

fix Codacy findings

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:30 +02:00
Manuel Arno KorfmannandJulius Härtl 2ef4b55af4 cards soft delete wip
Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

cards: softdelete done; undo delete wip

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

show deleted cards in board settings sidebar wip

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

CardMapper#findDeleted: fix bug in entity property assigning

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
2018-08-15 20:33:30 +02:00
Julius HärtlandGitHub 3e4dedf397 Merge pull request #581 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.3
Bump angular from 1.7.2 to 1.7.3 in /js
2018-08-14 21:38:47 +02:00
dependabot[bot] ebcb86ff3e Bump angular from 1.7.2 to 1.7.3 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.2...v1.7.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 19:32:43 +00:00
Julius HärtlandGitHub c0defcab9b Merge pull request #578 from nextcloud/dependabot/npm_and_yarn/js/angular-animate-1.7.3
Bump angular-animate from 1.7.2 to 1.7.3 in /js
2018-08-14 21:30:02 +02:00
Julius HärtlandGitHub 25f6f16718 Merge pull request #580 from nextcloud/dependabot/npm_and_yarn/js/angular-sanitize-1.7.3
Bump angular-sanitize from 1.7.2 to 1.7.3 in /js
2018-08-14 21:29:50 +02:00
Julius HärtlandGitHub 34767cdd13 Merge pull request #572 from nextcloud/dependabot/npm_and_yarn/js/webpack-merge-4.1.4
Bump webpack-merge from 4.1.3 to 4.1.4 in /js
2018-08-14 21:29:38 +02:00
Julius HärtlandGitHub 9975d2b483 Merge pull request #583 from nextcloud/dependabot/npm_and_yarn/js/node-sass-4.9.3
Bump node-sass from 4.9.2 to 4.9.3 in /js
2018-08-14 21:29:28 +02:00
dependabot[bot] 3f77c99544 Bump angular-animate from 1.7.2 to 1.7.3 in /js
Bumps [angular-animate](https://github.com/angular/angular.js) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.2...v1.7.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 19:24:12 +00:00
dependabot[bot] 9eab136f53 Bump webpack-merge from 4.1.3 to 4.1.4 in /js
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/survivejs/webpack-merge/releases)
- [Changelog](https://github.com/survivejs/webpack-merge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/survivejs/webpack-merge/compare/v4.1.3...v4.1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 19:23:39 +00:00
dependabot[bot] 998d993102 Bump node-sass from 4.9.2 to 4.9.3 in /js
Bumps [node-sass](https://github.com/sass/node-sass) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.9.2...v4.9.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 19:23:18 +00:00
dependabot[bot] f27d399dfc Bump angular-sanitize from 1.7.2 to 1.7.3 in /js
Bumps [angular-sanitize](https://github.com/angular/angular.js) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/angular/angular.js/releases)
- [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular.js/compare/v1.7.2...v1.7.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 19:23:13 +00:00
Julius HärtlandGitHub a117cc8e0c Merge pull request #579 from nextcloud/dependabot/npm_and_yarn/js/@uirouter/angularjs-1.0.20
Bump @uirouter/angularjs from 1.0.19 to 1.0.20 in /js
2018-08-14 21:21:26 +02:00
dependabot[bot] 2c59a4148d Bump @uirouter/angularjs from 1.0.19 to 1.0.20 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/angular-ui/ui-router/releases)
- [Changelog](https://github.com/angular-ui/ui-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular-ui/ui-router/compare/1.0.19...1.0.20)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-14 18:44:36 +00:00
Julius HärtlandGitHub dc20ff52d8 Merge pull request #582 from nextcloud/dependabot/npm_and_yarn/js/karma-3.0.0
Bump karma from 2.0.5 to 3.0.0 in /js
2018-08-14 20:41:53 +02:00
dependabot[bot] 1764e6e0fe Bump karma from 2.0.5 to 3.0.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 2.0.5 to 3.0.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v2.0.5...v3.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-13 11:09:23 +00:00
Julius HärtlandGitHub e65d2f2a85 Merge pull request #584 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.16.5
Bump webpack from 4.16.4 to 4.16.5 in /js
2018-08-13 12:39:59 +02:00
dependabot[bot] 2d26b24b10 Bump webpack from 4.16.4 to 4.16.5 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.16.4 to 4.16.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.16.4...v4.16.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-13 01:21:41 +00:00
Nextcloud bot 990a70e958 [tx-robot] updated from transifex 2018-08-13 00:18:56 +00:00
Nextcloud bot 2868391cf6 [tx-robot] updated from transifex 2018-08-12 00:18:53 +00:00
Julius HärtlandGitHub 4050cddd12 Merge pull request #571 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.16.4
Bump webpack from 4.16.3 to 4.16.4 in /js
2018-08-09 17:13:45 +02:00
dependabot[bot] 92cee7b441 Bump webpack from 4.16.3 to 4.16.4 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.16.3 to 4.16.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.16.3...v4.16.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-08-06 01:16:08 +00:00
Nextcloud bot 8e0f6c6e83 [tx-robot] updated from transifex 2018-08-05 00:19:19 +00:00
Nextcloud bot e7eb1dfbf0 [tx-robot] updated from transifex 2018-08-01 00:18:12 +00:00
Julius HärtlandGitHub f8a0b6c0c6 Update pull_request_template.md 2018-07-31 09:58:59 +02:00
Julius HärtlandGitHub 9f7bef9447 Merge pull request #561 from nextcloud/551_show_tag_title_on_cards_overview
551_show_tag_title_on_cards_overview
2018-07-31 09:57:03 +02:00
Philippe Le VanandJulius Härtl 508674f404 little more bottom margin after review
Signed-off-by: Philippe Le Van <philippe.levan@kibatic.com>
2018-07-31 09:21:19 +02:00
Philippe Le VanandJulius Härtl 25fa1a0e69 First proposition of label styling
Signed-off-by: Philippe Le Van <philippe.levan@kibatic.com>
2018-07-31 09:21:18 +02:00
Nextcloud bot 2453f27284 [tx-robot] updated from transifex 2018-07-31 00:18:57 +00:00
Julius HärtlandGitHub 05598d1445 Merge pull request #559 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.16.3
Bump webpack from 4.16.1 to 4.16.3 in /js
2018-07-30 23:28:13 +02:00
Julius HärtlandGitHub c82d99a656 Merge pull request #558 from nextcloud/dependabot/npm_and_yarn/js/karma-2.0.5
Bump karma from 2.0.4 to 2.0.5 in /js
2018-07-30 23:26:51 +02:00
dependabot[bot] 619acbed15 Bump webpack from 4.16.1 to 4.16.3 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.16.1 to 4.16.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.16.1...v4.16.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-30 01:14:09 +00:00
dependabot[bot] fef5bb6342 Bump karma from 2.0.4 to 2.0.5 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v2.0.4...v2.0.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-30 01:13:49 +00:00
Nextcloud bot 4e91e06c64 [tx-robot] updated from transifex 2018-07-30 00:18:37 +00:00
Julius HärtlandGitHub 0057c2be84 Update README.md
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-28 14:36:41 +02:00
Julius Härtl e8e50a3e31 Fix more 14 layout issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-28 13:06:40 +02:00
Julius HärtlandGitHub 769053b76d Merge pull request #545 from steav/issue-475-notifications-on-card-assignment
Add notification on card assignment to user, fixes #475
2018-07-28 12:32:54 +02:00
Julius Härtl 1948c303f2 Add missing import statement
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-28 12:25:23 +02:00
steavandJulius Härtl 476b15ee9d Fix tests for card assignment notification
Signed-off-by: steav <steav8@gmail.com>
2018-07-28 12:17:28 +02:00
steavandJulius Härtl 9595e00ae1 Do not send card assignment notifications to ourselves
Signed-off-by: steav <steav8@gmail.com>
2018-07-28 12:17:28 +02:00
steavandJulius Härtl fdc1f275c5 Add tests for card assignment notification
Signed-off-by: steav <steav8@gmail.com>
2018-07-28 12:17:28 +02:00
steavandJulius Härtl 1276dddc37 Fix failing CardServiceTest
Signed-off-by: steav <steav8@gmail.com>
2018-07-28 12:17:28 +02:00
SteavandJulius Härtl ed62a48ddd Add richsubject to notification on user assignment
Signed-off-by: Steav <steav8@gmail.com>
2018-07-28 12:17:28 +02:00
SteavandJulius Härtl 327c379ff3 Undo manual changes to l10n files
Signed-off-by: Steav <steav8@gmail.com>
2018-07-28 12:17:27 +02:00
SteavandJulius Härtl 77472b978d Add notification on card assignment to user
Signed-off-by: Steav <steav8@gmail.com>
2018-07-28 12:16:50 +02:00
Julius HärtlandGitHub e81c08f7f0 Create pull_request_template.md
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-28 12:07:34 +02:00
Nextcloud bot 1e24b3d774 [tx-robot] updated from transifex 2018-07-28 00:18:40 +00:00
Nextcloud bot a4044eff30 [tx-robot] updated from transifex 2018-07-27 00:18:55 +00:00
Julius HärtlandGitHub 31c690ebf8 Merge pull request #554 from nextcloud/bugfix/550/make-14-compatible
Compatibility for Nextcloud 14
2018-07-27 00:15:02 +02:00
Julius Härtl b84f118b4d Fix eslint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-27 00:06:34 +02:00
Julius Härtl c33783ac81 Cleanup css
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-27 00:06:33 +02:00
Julius Härtl 725ba6ff72 Move app sidebar handling to angular/css
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-27 00:06:33 +02:00
Julius Härtl bf9811bf11 Add CSS rules for 13 to be backward compatible
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-27 00:06:33 +02:00
Julius Härtl e08c430422 Move app sidebar out of app content
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-27 00:06:33 +02:00
Nextcloud bot c72000bfc0 [tx-robot] updated from transifex 2018-07-26 00:18:56 +00:00
Julius HärtlandGitHub a131e468c0 Merge pull request #544 from philippe-levan/assign_to_me_feature
"assign to me" feature
2018-07-25 21:53:20 +02:00
Julius HärtlandGitHub d4a16589af Merge branch 'master' into assign_to_me_feature 2018-07-25 21:45:32 +02:00
Philippe Le Van 5e69a453a2 added TODO comment for jquery calls 2018-07-25 20:57:51 +02:00
Julius HärtlandGitHub 23d3425ca4 Merge pull request #541 from nextcloud/bugfix/532/4byte-description
Simly remove 4byte chars from the description if those are not supported
2018-07-25 18:51:57 +02:00
Julius HärtlandGitHub 653a1ccd58 Merge pull request #555 from nextcloud/bugfix/543/permissions
Check when assigning users
2018-07-25 18:51:29 +02:00
Julius Härtl 09105d6e3d Check when assigning users
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-25 18:39:08 +02:00
Julius Härtl 4d8acecc57 Simly remove 4byte chars from the description if those are not supported
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-25 18:33:24 +02:00
Julius Härtl 8d54028b31 Remove stable12 from drone tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-24 19:45:15 +02:00
Julius Härtl 415acfce57 Bump development version and make NC13 a minimum
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-24 19:44:07 +02:00
Philippe Le Van f25401e9fd assign to me feature
codacy fix

codacy fix #2

revert translation files

coding style : spaces to tabs

Signed-off-by: Philippe Le Van <philippe.levan@kibatic.com>
2018-07-24 09:40:57 +02:00
Nextcloud bot bcf26cee53 [tx-robot] updated from transifex 2018-07-24 00:18:21 +00:00
Julius HärtlandGitHub 161bfb0e91 Merge pull request #547 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.1.0
Bump webpack-cli from 3.0.8 to 3.1.0 in /js
2018-07-23 12:22:17 +02:00
Julius HärtlandGitHub c1e52d7837 Merge pull request #548 from nextcloud/dependabot/npm_and_yarn/js/@uirouter/angularjs-1.0.19
Bump @uirouter/angularjs from 1.0.18 to 1.0.19 in /js
2018-07-23 12:22:04 +02:00
Julius HärtlandGitHub 9cb096046a Merge pull request #546 from nextcloud/dependabot/npm_and_yarn/js/markdown-it-8.4.2
Bump markdown-it from 8.4.1 to 8.4.2 in /js
2018-07-23 12:21:45 +02:00
dependabot[bot] 3c32f0533a Bump markdown-it from 8.4.1 to 8.4.2 in /js
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 8.4.1 to 8.4.2.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/8.4.1...8.4.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-23 09:57:39 +00:00
dependabot[bot] 3bf197bb32 Bump @uirouter/angularjs from 1.0.18 to 1.0.19 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.18 to 1.0.19.
- [Release notes](https://github.com/angular-ui/ui-router/releases)
- [Changelog](https://github.com/angular-ui/ui-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular-ui/ui-router/compare/1.0.18...1.0.19)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-23 09:57:34 +00:00
dependabot[bot] 4dc5c7da18 Bump webpack-cli from 3.0.8 to 3.1.0 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.0.8 to 3.1.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-23 09:57:18 +00:00
Julius HärtlandGitHub 9ad070f40a Merge pull request #549 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.16.1
Bump webpack from 4.16.0 to 4.16.1 in /js
2018-07-23 11:55:24 +02:00
dependabot[bot] a806714f56 Bump webpack from 4.16.0 to 4.16.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.16.0 to 4.16.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.16.0...v4.16.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-23 01:14:57 +00:00
Nextcloud bot bd630e31bc [tx-robot] updated from transifex 2018-07-23 00:18:16 +00:00
Nextcloud bot 6313f24dc9 [tx-robot] updated from transifex 2018-07-20 00:18:38 +00:00
Nextcloud bot 5a5cd23eb2 [tx-robot] updated from transifex 2018-07-19 00:18:20 +00:00
Nextcloud bot 7fda7c1a4a [tx-robot] updated from transifex 2018-07-17 00:18:29 +00:00
Julius HärtlandGitHub ab637c7c13 Merge pull request #538 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.16.0
Bump webpack from 4.15.1 to 4.16.0 in /js
2018-07-16 11:41:46 +02:00
dependabot[bot] 7f497d59bc Bump webpack from 4.15.1 to 4.16.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.15.1 to 4.16.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.15.1...v4.16.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-16 01:13:39 +00:00
Nextcloud bot d794d61337 [tx-robot] updated from transifex 2018-07-16 00:18:17 +00:00
Julius HärtlandGitHub 9f03854b3c Merge pull request #536 from philippe-levan/patch-1
click on assign user or the plus button
2018-07-15 15:13:41 +02:00
Nextcloud bot 17996822d3 [tx-robot] updated from transifex 2018-07-15 00:18:13 +00:00
Philippe Le Van (@plv)andGitHub ee438ad7b2 click on assign user or the plus button
Hi,

We often add users on cards. I believe the button to assign a user shoud be bigger.

I suggest with this PR to make all the header clickable to assign a new user (but I let the button with the hover to let the UI intuitive).

Best regards,
Phillippe
2018-07-14 16:46:37 +02:00
Julius HärtlandGitHub 6bf4efbfe6 Merge pull request #527 from Nebri/issue_197
Add default board
2018-07-14 12:12:30 +02:00
Julius HärtlandGitHub 3163563fce Merge branch 'master' into issue_197 2018-07-14 11:57:53 +02:00
Ryan Fletcher 04cb5f656d Mocked up $this->l10n calls in DefaultBoardServiceTest
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-13 08:53:21 -04:00
Ryan Fletcher 3863c7497b Used $l10n references in my unit test, this should allow it pass.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-12 12:15:46 -04:00
Ryan Fletcher 8d4dbd4d82 Fixed up code styles as per review by juliushaertl
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-12 11:17:11 -04:00
Julius HärtlandGitHub 8f4fe1b05b Merge pull request #529 from nextcloud/bugfix/528/cast-inf
Cast uploadLimit to integer to catch possible INF result
2018-07-12 16:43:32 +02:00
Julius Härtl 7794fa065c Cast uploadLimit to integer to catch possible INF result
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-12 16:06:17 +02:00
Ryan Fletcher af92da9a7c Removing translations I attempted to put in before knowing the process.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 16:18:00 -04:00
Ryan Fletcher ba378ea00b First attempt at using l10n
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 15:00:08 -04:00
Ryan Fletcher be8a3479ac Updated PageControllerTest.php to reflect new changes
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 13:33:04 -04:00
Ryan Fletcher 2002841c61 Wrote unit tests for checkFirstRun method in the default board service
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 12:59:40 -04:00
Julius HärtlandGitHub fde5096856 Merge pull request #524 from nextcloud/release/v0.4.0
Prepare 0.4.0 release
2018-07-11 18:37:17 +02:00
Ryan Fletcher 08f9874745 Updated constructor in PageControllerTest
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 11:50:11 -04:00
Ryan Fletcher 712ab9e0bc Corrected testCreateDefaultBoard()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 11:49:20 -04:00
Ryan Fletcher e07fc0a2c7 Corrected missing import and missing parameter in defaultBoardServiceTest
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 10:49:46 -04:00
Ryan Fletcher 61fb68f4cf Added a unit test against DefaultBoardService->TestCreateDefaultBoard()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 10:20:42 -04:00
Julius Härtl f3296dd443 Add compatibility check for 12,13
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 14:07:58 +02:00
Ryan Fletcher 8a8cffc542 Completed checkFirstRun() in DefaultBoardService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-11 08:02:54 -04:00
Julius Härtl 820ad7c523 Update changelog
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 13:54:06 +02:00
Julius Härtl 9f66ce618e Bump version to 0.4.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 13:54:06 +02:00
Julius Härtl 2318425160 Add package target to Makefile
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 08:48:01 +02:00
Ryan Fletcher a36dfcc144 first attempt at writing the checkFirstRun() in DefaultBoardService.php
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-10 21:16:24 -04:00
Nextcloud bot 213e3083a1 [tx-robot] updated from transifex 2018-07-11 00:19:11 +00:00
Ryan Fletcher 683354da9d corrected null errors from first attempt.
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-10 19:30:47 -04:00
Ryan Fletcher e208fd8222 First Attempt at implementing createDefaultBoard()
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
2018-07-10 17:10:27 -04:00
Julius HärtlandGitHub 4fc65c8302 Merge pull request #522 from nextcloud/dependabot/npm_and_yarn/js/css-loader-1.0.0
Bump css-loader from 0.28.11 to 1.0.0 in /js
2018-07-10 15:21:35 +02:00
dependabot[bot] bcb54faeaf Bump css-loader from 0.28.11 to 1.0.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 0.28.11 to 1.0.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v0.28.11...v1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-10 12:41:11 +00:00
Julius HärtlandGitHub f5753f3fde Merge pull request #521 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.15.1
Bump webpack from 4.14.0 to 4.15.1 in /js
2018-07-10 14:39:30 +02:00
dependabot[bot] 5ff8618c10 Bump webpack from 4.14.0 to 4.15.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.14.0 to 4.15.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.14.0...v4.15.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-10 12:35:38 +00:00
Julius HärtlandGitHub bee918e810 Merge pull request #520 from nextcloud/dependabot/npm_and_yarn/js/node-sass-4.9.2
Bump node-sass from 4.9.0 to 4.9.2 in /js
2018-07-10 14:33:59 +02:00
dependabot[bot] 37301ae92b Bump node-sass from 4.9.0 to 4.9.2 in /js
Bumps [node-sass](https://github.com/sass/node-sass) from 4.9.0 to 4.9.2.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.9.0...v4.9.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-09 07:50:44 +00:00
Julius HärtlandGitHub bd304d5f27 Merge pull request #523 from nextcloud/dependabot/npm_and_yarn/js/babel-loader-7.1.5
Bump babel-loader from 7.1.4 to 7.1.5 in /js
2018-07-09 09:47:27 +02:00
dependabot[bot] 827c69bd7b Bump babel-loader from 7.1.4 to 7.1.5 in /js
Bumps [babel-loader](https://github.com/babel/babel-loader) from 7.1.4 to 7.1.5.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v7.1.4...v7.1.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-09 01:15:28 +00:00
Nextcloud bot 812a225334 [tx-robot] updated from transifex 2018-07-08 00:12:30 +00:00
Julius Härtl 90c4e7818a Use ng-attr-value to support IE11
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-06 13:49:29 +02:00
Nextcloud bot 1299df539e [tx-robot] updated from transifex 2018-07-06 00:12:18 +00:00
Julius Härtl 20b25e0108 Bump version to 0.4.0-beta5
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-05 18:53:47 +02:00
Julius HärtlandGitHub e959afb2de Merge pull request #519 from nextcloud/bugfix/noid/stream-attachment-download
Fetch file from rootFolder instead of IAppData to use StreamResponse
2018-07-05 18:52:45 +02:00
Julius Härtl cb25643741 Fetch file from rootFolder instead of IAppData to use StreamResponse when displaying
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-05 18:42:33 +02:00
Nextcloud bot bbfb9e713a [tx-robot] updated from transifex 2018-07-04 00:12:38 +00:00
Nextcloud bot e71a38fe96 [tx-robot] updated from transifex 2018-07-03 00:16:32 +00:00
Julius Härtl 120e4e13a6 Bump version to 0.4.0-beta4
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 12:16:02 +02:00
Julius HärtlandGitHub 04aa9df45b Merge pull request #470 from nextcloud/feature/noid/export
Implement user data export via occ command
2018-07-02 12:06:53 +02:00
Julius Härtl 8d60a4379d Add rough test and fix card array
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 11:51:53 +02:00
Julius Härtl 4e96dec474 Implement user data export via occ command
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 11:06:13 +02:00
Julius HärtlandGitHub 9727356d3b Merge pull request #514 from nextcloud/feature/noid/file-progress
File upload progress
2018-07-02 09:49:00 +02:00
Julius Härtl c0c0cb8545 Implement file upload status and cancel button
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 09:34:57 +02:00
Julius Härtl af646c1999 Reset FileService status when switching cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 09:34:57 +02:00
Julius HärtlandGitHub 38bb4c7a3a Merge pull request #515 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.1
Bump mini-css-extract-plugin from 0.4.0 to 0.4.1 in /js
2018-07-02 08:35:07 +02:00
dependabot[bot] 573fa2c457 Bump mini-css-extract-plugin from 0.4.0 to 0.4.1 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.0 to 0.4.1.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.0...v0.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-02 06:29:23 +00:00
Julius HärtlandGitHub d7e7fd58b0 Merge pull request #516 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.14.0
Bump webpack from 4.12.1 to 4.14.0 in /js
2018-07-02 08:27:07 +02:00
dependabot[bot] f5a234fd26 Bump webpack from 4.12.1 to 4.14.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.12.1 to 4.14.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.12.1...v4.14.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-02 01:14:11 +00:00
Nextcloud bot f75c9e0d4a [tx-robot] updated from transifex 2018-07-02 00:14:13 +00:00
Nextcloud bot 5eca92a0ea [tx-robot] updated from transifex 2018-07-01 00:16:09 +00:00
Julius HärtlandGitHub 384b7a41a9 Merge pull request #513 from nextcloud/bugfix/noid/img-colorpicker-dark
Add misisng colorpicker image
2018-06-30 10:59:19 +02:00
Julius Härtl 47e27a7a89 Add misisng colorpicker image
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-30 09:47:46 +02:00
Nextcloud bot ac19621d5b [tx-robot] updated from transifex 2018-06-30 00:16:44 +00:00
Nextcloud bot cf2e84873c [tx-robot] updated from transifex 2018-06-29 00:18:56 +00:00
Julius HärtlandGitHub c523474980 Merge pull request #508 from nextcloud/bugfix/502/markdown-newline
Fix markdownit configuration
2018-06-28 21:36:19 +02:00
Julius HärtlandGitHub 754486673a Merge pull request #510 from nextcloud/bugfix/noid/upload-size-fontend
Add frontend check for file size before starting to upload
2018-06-28 21:34:54 +02:00
Julius HärtlandGitHub a7110082e7 Merge branch 'master' into bugfix/502/markdown-newline 2018-06-28 21:32:03 +02:00
Julius HärtlandGitHub db619e4cda Merge pull request #509 from nextcloud/bugfix/504/fix-inline-javascript-error
Do not prefix href of select2 with unsafe to avoid #504
2018-06-28 21:31:38 +02:00
Julius HärtlandGitHub 34d05f2ac0 Merge pull request #511 from nextcloud/bugfix/501/colorpicker-invert
Invert color picker icon on bright backgrounds
2018-06-28 21:31:15 +02:00
Julius Härtl fdb1dbf397 Invert color picker icon on bright backgrounds
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 16:02:24 +02:00
Julius Härtl 5c2925aeed Fix markdownit configuration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:34:36 +02:00
Julius Härtl dc5fbbf7eb Do not prefix href of select2 with unsafe to avoid #504
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:26:27 +02:00
Julius Härtl e46844988e Add frontend check for file size before starting to upload
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:25:25 +02:00
Julius HärtlandGitHub 9d98107f3a Merge pull request #506 from nextcloud/dependabot/npm_and_yarn/js/karma-2.0.4
Bump karma from 2.0.3 to 2.0.4 in /js
2018-06-28 10:55:53 +02:00
Nextcloud bot 681176c684 [tx-robot] updated from transifex 2018-06-28 00:18:52 +00:00
Nextcloud bot 5d4757ddf1 [tx-robot] updated from transifex 2018-06-27 00:18:47 +00:00
dependabot[bot] 9731e6811a Bump karma from 2.0.3 to 2.0.4 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v2.0.3...v2.0.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-26 08:43:48 +00:00
Julius HärtlandGitHub 23c86a4fcc Merge pull request #507 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.12.1
Bump webpack from 4.12.0 to 4.12.1 in /js
2018-06-26 10:41:55 +02:00
Nextcloud bot 43ea0136c8 [tx-robot] updated from transifex 2018-06-26 00:18:51 +00:00
dependabot[bot] 2cc8eb1313 Bump webpack from 4.12.0 to 4.12.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.12.0 to 4.12.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.12.0...v4.12.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-25 22:19:43 +00:00
291 changed files with 22508 additions and 8372 deletions
+42 -40
View File
@@ -5,7 +5,7 @@ clone:
pipeline:
check-app-compatbility:
image: nextcloudci/php7.0:php7.0-17
image: nextcloudci/php7.1:php7.1-15
environment:
- APP_NAME=deck
- CORE_BRANCH=master
@@ -16,8 +16,8 @@ pipeline:
- 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
- ./occ app:check-code $APP_NAME -c strong-comparison || true
- ./occ app:check-code $APP_NAME -c deprecation || true
- cd apps/$APP_NAME/
when:
matrix:
@@ -26,7 +26,7 @@ pipeline:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- wget https://raw.githubusercontent.com/nextcloud/server/master/build/signed-off-checker.php
@@ -35,27 +35,15 @@ pipeline:
when:
matrix:
TESTS: signed-off-check
syntax-php5.6:
image: nextcloudci/php5.6:php5.6-8
environment:
- APP_NAME=deck
- CORE_BRANCH=stable13
- DB=sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php5.6
syntax-php7.0:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
- ./vendor/bin/parallel-lint --exclude ./vendor/ --exclude ./lib/Collaboration/ .
when:
matrix:
TESTS: syntax-php7.0
@@ -63,7 +51,7 @@ pipeline:
image: nextcloudci/php7.1:php7.1-15
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- composer install
@@ -75,7 +63,7 @@ pipeline:
image: nextcloudci/php7.2:php7.2-9
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- composer install
@@ -83,31 +71,23 @@ pipeline:
when:
matrix:
TESTS: syntax-php7.2
php5.6:
image: nextcloudci/php5.6:php5.6-8
syntax-php7.3:
image: nextcloudci/php7.3:php7.3-2
environment:
- APP_NAME=deck
- CORE_BRANCH=stable13
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- apt update && apt-get -y install php5-xdebug
# 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/
- ./occ app:enable $APP_NAME
- cd apps/$APP_NAME
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: php5.6
TESTS: syntax-php7.3
php7.0:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
# Pre-setup steps
@@ -117,6 +97,7 @@ pipeline:
- php occ app:enable deck
- cd apps/$APP_NAME
# Run phpunit tests
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
@@ -126,7 +107,7 @@ pipeline:
image: nextcloudci/php7.1:php7.1-15
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
# Pre-setup steps
@@ -135,6 +116,7 @@ pipeline:
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
@@ -144,7 +126,7 @@ pipeline:
image: nextcloudci/php7.2:php7.2-9
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
# Pre-setup steps
@@ -153,16 +135,36 @@ pipeline:
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.2
php7.3:
image: nextcloudci/php7.3:php7.3-2
environment:
- APP_NAME=deck
- CORE_BRANCH=stable15
- 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/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.3
integration:
image: nextcloudci/integration-php7.0:integration-php7.0-6
environment:
- APP_NAME=deck
- CORE_BRANCH=master
- CORE_BRANCH=stable15
- DB=sqlite
commands:
# Pre-setup steps
@@ -195,14 +197,14 @@ matrix:
include:
- TESTS: check-app-compatbility
- TESTS: signed-off-check
- TESTS: syntax-php5.6
- TESTS: syntax-php7.0
- TESTS: syntax-php7.1
- TESTS: syntax-php7.2
- TESTS: php5.6
- TESTS: syntax-php7.3
- TESTS: php7.0
- TESTS: php7.1
- TESTS: php7.2
- TESTS: php7.3
- TESTS: eslint
- TESTS: jsbuild
#- TESTS: integration
+1
View File
@@ -6,6 +6,7 @@ extends:
env:
browser: true
amd: true
es6: true
globals:
global: false
+17
View File
@@ -0,0 +1,17 @@
* Resolves: # <!-- related github issue -->
* Target version: master
### Summary
### TODO
- [ ] ...
### Checklist
- [ ] Code is properly formatted
- [ ] Sign-off message is added to all commits
- [ ] Tests (unit, integration, api and/or acceptance) are included
- [ ] Documentation (manuals or wiki) has been updated or is not required
+25
View File
@@ -0,0 +1,25 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "1. to develop"
- "2. developing"
- "3. to review"
- "discussion"
- "bounty"
- "bug"
- "enhancement"
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
+2
View File
@@ -9,3 +9,5 @@ tests/integration/vendor/
tests/integration/composer.lock
vendor/
*.lock
\.idea/
+3 -1
View File
@@ -5,8 +5,9 @@ php:
- 7.0
- 7.1
- 7.2
- 7.3
env:
- CORE_BRANCH=master DB=mysql
- CORE_BRANCH=stable15 DB=mysql
before_install:
- wget https://phar.phpunit.de/phpunit-5.7.phar
@@ -24,6 +25,7 @@ before_script:
- cd apps/deck
script:
- composer install
- make test-unit
after_success:
+80 -1
View File
@@ -1,7 +1,85 @@
# Changelog
All notable changes to this project will be documented in this file.
## 0.4.0 - unreleased
## 0.6.0 - unreleased
### Added
- Share boards with circles
- Integration with collections in Nextcloud 16
- Support for full text search
- Nextcloud 16 compatibility
### Fixed
- Fix duplicate call to delete
- Prevent duplicate tag names @jakobroehrl
- Prevent loading details when editing the card title @jakobroehrl
- Hide sidebar after card deletion @jakobroehrl
- Update labels after change in the UI @jakobroehrl
- Allow limiting the app to groups again
- Various REST API enhancements and fixes
## 0.5.2 - 2018-12-20
### Fixed
- Mark notification as read if a card with duedate gets archived
- Use proper timezone and locale format for due date activities
- Various translation fixes and updates
- Check group limit properly
- Fix comment activities on Nextcloud 15
- Fix issues with Edge
- API: Fix numeric types that were returned as strings
- API: Fix If-Modified-Since header parsing
## 0.5.1 - 2018-12-05
### Added
- Separate settings for description changes in activity
- Less verbose description change activities
- Use server settings to restrict sharing to groups
- Add setting to exclude groups from creating their own boards
### Fixed
- Fix issue when using a separate table prefix @bpcurse
- Fix invalid activity parameters being published
- Wording fixes @cloud2018
- Improve loading performance by removing unused activity preloading
- Fix timestamp issues in deleted items tab
- Remember show state of the board navigation @weeman1337
- Add optional classes for custom styling @tinko92
- Fix missing details on activity emails
- Fix unrelated comments in board activity list
- Fix search not working properly
- Trigger comment notification on update only
## 0.5.0 - 2018-11-15
### Added
- Activity stream for board and cards
- Comments on cards
- Use users locale format on date picker
- Compact display mode
- Card title inline editing
- REST API
- Empty content view for board lists
- Undo for card and stack deletion
- Show tag name on board
- Notify users about card assignments
- Add shortcut to assign a card to yourself
- Improved view for printing
- Support for Nextcloud 15
### Fixed
- Accesibility improvements
- Don't allow empty card titles
- Improved checkbox handling in markdown
## 0.4.0 - 2018-07-11
### Added
@@ -9,6 +87,7 @@ All notable changes to this project will be documented in this file.
- Embed attachments into the card description
- Color picker to use any color value for board and labels
- Support for checkboxes inside the description
- occ command to export user data as JSON
### Fixed
+9 -4
View File
@@ -12,7 +12,7 @@ sign_dir=$(build_dir)/sign
cert_dir=$(HOME)/.nextcloud/certificates
default: build
default: package
clean-build:
rm -rf $(build_dir)
@@ -20,12 +20,15 @@ clean-build:
clean-dist:
rm -rf js/node_modules
install-deps:
install-deps: install-deps-js
composer install
install-deps-js:
cd js && npm install
build: build-js
build: install-deps build-js
build-js: install-deps
build-js: install-deps-js
cd js && npm run build
build-js-dev: install-deps
@@ -95,3 +98,5 @@ test-integration:
test-js: install-deps
cd js && run test
package:
krankerl package
+11 -6
View File
@@ -1,6 +1,6 @@
# Deck
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=master)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=master)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=master) [![Dependency Status](https://www.versioneye.com/user/projects/5af6c4090fb24f0e3a423c40/badge.svg)](https://www.versioneye.com/user/projects/5af6c4090fb24f0e3a423c40) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
[![Build Status](https://travis-ci.org/nextcloud/deck.svg?branch=master)](https://travis-ci.org/nextcloud/deck) [![CodeCov](https://codecov.io/github/nextcloud/deck/coverage.svg?branch=master)](https://codecov.io/github/nextcloud/deck) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e403f723f42a4abd93b2cfe36cbd7eee)](https://www.codacy.com/app/juliushaertl/deck?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextcloud/deck&amp;utm_campaign=Badge_Grade) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/deck/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/deck/?branch=master) [![#nextcloud-deck](https://img.shields.io/badge/IRC-%23nextcloud--deck%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-deck)
Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
@@ -9,14 +9,17 @@ Deck is a kanban style organization tool aimed at personal planning and project
- :page_facing_up: Write down additional notes in markdown
- :bookmark: Assign labels for even better organization
- :busts_in_silhouette: Share with your team, friends or family
- :paperclip: Attach files and embed them in your markdown description
- :speech_balloon: Discuss with your team using comments
- :zap: Keep track of changes in the activity stream
- :rocket: Get your project organized
![Deck - Manage cards on your board](https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Board.png)
![Deck - Manage cards on your board](https://download.bitgrid.net/nextcloud/deck/screenshots/Deck.png)
## Installation/Update
This app is supposed to work on Nextcloud version 12 or later.
This app is supposed to work on the two latest Nextcloud versions.
### Install latest release
@@ -30,10 +33,10 @@ If you want to run the latest development version from git source, you need to c
git clone https://github.com/nextcloud/deck.git
cd deck
make install-deps
make
make build
```
Please make sure you have installed the following dependencies: `make, which, tar, npm, curl`
Please make sure you have installed the following dependencies: `make, which, tar, npm, curl, composer`
### Install the nightly builds
@@ -54,13 +57,15 @@ You can use the provided Makefile to run all tests by using:
make test
### Documentation
The documentation for our REST API can be found at https://deck.readthedocs.io/en/latest/API/
## Contribution Guidelines
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
For more information please review the [guidelines for contributing](https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md) to this repository.
For more information please review the [guidelines for contributing](https://github.com/nextcloud/server/blob/master/.github/CONTRIBUTING.md) to this repository.
### Apply a license
+10 -1
View File
@@ -21,6 +21,15 @@
*
*/
if ((@include_once __DIR__ . '/../vendor/autoload.php')===false) {
throw new Exception('Cannot include autoload. Did you run install dependencies using composer?');
}
$app = new \OCA\Deck\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerNotifications();
$app->registerNotifications();
$app->registerCommentsEntity();
$app->registerFullTextSearch();
/** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity');
+5 -5
View File
@@ -5,20 +5,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
*/
namespace OCA\Deck\AppInfo;
@@ -28,4 +28,4 @@ use OCP\AppFramework\App;
/**
* Additional autoloader registration, e.g. registering composer autoloaders
*/
// require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../vendor/autoload.php';
+41
View File
@@ -46,6 +46,13 @@
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
</declaration>
</table>
<table>
@@ -77,6 +84,21 @@
<length>8</length>
<notnull>false</notnull>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<index>
<name>deck_stacks_board_id_index</name>
<field>
@@ -113,6 +135,11 @@
<type>clob</type>
<notnull>false</notnull>
</field>
<field>
<name>description_prev</name>
<type>clob</type>
<notnull>false</notnull>
</field>
<field>
<name>stack_id</name>
<type>integer</type>
@@ -133,6 +160,12 @@
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_editor</name>
<type>text</type>
<notnull>false</notnull>
<length>64</length>
</field>
<field>
<name>created_at</name>
<type>integer</type>
@@ -167,6 +200,14 @@
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<index>
<name>deck_cards_stack_id_index</name>
<field>
+35 -4
View File
@@ -11,30 +11,61 @@
- 📄 Write down additional notes in markdown
- 🔖 Assign labels for even better organization
- 👥 Share with your team, friends or family
- 📎 Attach files and embed them in your markdown description
- 💬 Discuss with your team using comments
- ⚡ Keep track of changes in the activity stream
- 🚀 Get your project organized
</description>
<version>0.4.0-beta3</version>
<version>0.6.0-beta1</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
<types>
<dav />
</types>
<category>organization</category>
<category>office</category>
<website>https://github.com/nextcloud/deck</website>
<bugs>https://github.com/nextcloud/deck/issues</bugs>
<repository type="git">https://github.com/nextcloud/deck.git</repository>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Board.png</screenshot>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Details.png</screenshot>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/0.5/deck-notifications.png</screenshot>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/0.5/deck-comment2.png</screenshot>
<dependencies>
<nextcloud min-version="12" max-version="14" />
<php min-version="5.6"/>
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="5.5">mysql</database>
<nextcloud min-version="15" max-version="16" />
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>
<job>OCA\Deck\Cron\ScheduledNotifications</job>
<job>OCA\Deck\Cron\CardDescriptionActivity</job>
</background-jobs>
<repair-steps>
<post-migration>
<step>OCA\Deck\Migration\UnknownUsers</step>
</post-migration>
</repair-steps>
<commands>
<command>OCA\Deck\Command\UserExport</command>
</commands>
<activity>
<settings>
<setting>OCA\Deck\Activity\Setting</setting>
<setting>OCA\Deck\Activity\DescriptionSetting</setting>
</settings>
<filters>
<filter>OCA\Deck\Activity\Filter</filter>
</filters>
<providers>
<provider>OCA\Deck\Activity\DeckProvider</provider>
</providers>
</activity>
<fulltextsearch>
<provider min-version="16">OCA\Deck\Provider\DeckProvider</provider>
</fulltextsearch>
</info>
+53 -5
View File
@@ -3,28 +3,32 @@
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
* @author Ryan Fletcher <ryan.fletcher@codepassion.ca>
*
* @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/>.
*
*
*/
return [
'routes' => [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'Config#get', 'url' => '/config', 'verb' => 'GET'],
['name' => 'Config#setValue', 'url' => '/config/{key}', 'verb' => 'POST'],
// boards
['name' => 'board#index', 'url' => '/boards', 'verb' => 'GET'],
['name' => 'board#create', 'url' => '/boards', 'verb' => 'POST'],
@@ -34,7 +38,7 @@ return [
['name' => 'board#deleteUndo', 'url' => '/boards/{boardId}/deleteUndo', 'verb' => 'POST'],
['name' => 'board#getUserPermissions', 'url' => '/boards/{boardId}/permissions', 'verb' => 'GET'],
['name' => 'board#addAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'POST'],
['name' => 'board#updateAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'PUT'],
['name' => 'board#updateAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'PUT'],
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
// stacks
@@ -43,6 +47,7 @@ return [
['name' => 'stack#update', 'url' => '/stacks/{stackId}', 'verb' => 'PUT'],
['name' => 'stack#reorder', 'url' => '/stacks/{stackId}/reorder', 'verb' => 'PUT'],
['name' => 'stack#delete', 'url' => '/stacks/{stackId}', 'verb' => 'DELETE'],
['name' => 'stack#deleted', 'url' => '/{boardId}/stacks/deleted', 'verb' => 'GET'],
['name' => 'stack#archived', 'url' => '/stacks/{boardId}/archived', 'verb' => 'GET'],
// cards
@@ -50,6 +55,7 @@ return [
['name' => 'card#create', 'url' => '/cards', 'verb' => 'POST'],
['name' => 'card#update', 'url' => '/cards/{cardId}', 'verb' => 'PUT'],
['name' => 'card#delete', 'url' => '/cards/{cardId}', 'verb' => 'DELETE'],
['name' => 'card#deleted', 'url' => '/{boardId}/cards/deleted', 'verb' => 'GET'],
['name' => 'card#rename', 'url' => '/cards/{cardId}/rename', 'verb' => 'PUT'],
['name' => 'card#reorder', 'url' => '/cards/{cardId}/reorder', 'verb' => 'PUT'],
['name' => 'card#archive', 'url' => '/cards/{cardId}/archive', 'verb' => 'PUT'],
@@ -74,5 +80,47 @@ return [
['name' => 'label#update', 'url' => '/labels/{labelId}', 'verb' => 'PUT'],
['name' => 'label#delete', 'url' => '/labels/{labelId}', 'verb' => 'DELETE'],
// api
['name' => 'board_api#index', 'url' => '/api/v1.0/boards', 'verb' => 'GET'],
['name' => 'board_api#get', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'GET'],
['name' => 'board_api#create', 'url' => '/api/v1.0/boards', 'verb' => 'POST'],
['name' => 'board_api#delete', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'DELETE'],
['name' => 'board_api#update', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'PUT'],
['name' => 'board_api#undo_delete', 'url' => '/api/v1.0/boards/{boardId}/undo_delete', 'verb' => 'POST'],
['name' => 'board_api#addAcl', 'url' => '/api/v1.0/boards/{boardId}/acl', 'verb' => 'POST'],
['name' => 'board_api#deleteAcl', 'url' => '/api/v1.0/boards/{boardId}/acl', 'verb' => 'DELETE'],
['name' => 'board_api#updateAcl', 'url' => '/api/v1.0/boards/{boardId}/acl', 'verb' => 'PUT'],
['name' => 'stack_api#index', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'GET'],
['name' => 'stack_api#getArchived', 'url' => '/api/v1.0/boards/{boardId}/stacks/archived', 'verb' => 'GET'],
['name' => 'stack_api#get', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'GET'],
['name' => 'stack_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'POST'],
['name' => 'stack_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'PUT'],
['name' => 'stack_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'DELETE'],
['name' => 'card_api#get', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'GET'],
['name' => 'card_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards', 'verb' => 'POST'],
['name' => 'card_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'PUT'],
['name' => 'card_api#assignLabel', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel', 'verb' => 'PUT'],
['name' => 'card_api#removeLabel', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel', 'verb' => 'PUT'],
['name' => 'card_api#assignUser', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'],
['name' => 'card_api#unassignUser', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'],
['name' => 'card_api#reorder', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'],
['name' => 'card_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'],
['name' => 'label_api#get', 'url' => '/api/v1.0/boards/{boardId}/labels/{labelId}', 'verb' => 'GET'],
['name' => 'label_api#create', 'url' => '/api/v1.0/boards/{boardId}/labels', 'verb' => 'POST'],
['name' => 'label_api#update', 'url' => '/api/v1.0/boards/{boardId}/labels/{labelId}', 'verb' => 'PUT'],
['name' => 'label_api#delete', 'url' => '/api/v1.0/boards/{boardId}/labels/{labelId}', 'verb' => 'DELETE'],
['name' => 'attachment_api#getAll', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments', 'verb' => 'GET'],
['name' => 'attachment_api#display', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'GET'],
['name' => 'attachment_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments', 'verb' => 'POST'],
['name' => 'attachment_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'PUT'],
['name' => 'attachment_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'DELETE'],
['name' => 'attachment_api#restore', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore', 'verb' => 'PUT'],
['name' => 'board_api#preflighted_cors', 'url' => '/api/v1.0/{path}','verb' => 'OPTIONS', 'requirements' => ['path' => '.+']],
]
];
+5 -2
View File
@@ -8,9 +8,12 @@
"email": "jus@bitgrid.net"
}
],
"require": {},
"require": {
"cogpowered/finediff": "0.3.*"
},
"require-dev": {
"christophwurst/nextcloud": "^13.0",
"roave/security-advisories": "dev-master",
"christophwurst/nextcloud": "^14.0",
"jakub-onderka/php-parallel-lint": "^1.0.0"
}
}
+28
View File
@@ -0,0 +1,28 @@
.activitymessage .visualdiff ins {
background-color: rgba(70, 186, 97, 0.2);
text-decoration: none;
}
.activitymessage .visualdiff del {
background-color: rgba(233, 50, 45, 0.2);
text-decoration: none;
}
.activitymessage .visualdiff {
overflow: scroll;
max-height: 200px;
}
.activityTabView .avatardiv-container {
display: inline-block;
bottom: -3px;
margin-left: 3px;
}
.activityTabView .avatar-name-wrapper {
font-weight: bold;
}
.activityTabView .activitysubject a {
font-weight: bold;
}
+43
View File
@@ -0,0 +1,43 @@
/*
* @copyright Copyright (c) 2018 Michael Weimann <mail@michael-weimann.eu>
*
* @author 2018 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/>.
*
*/
.compact-item.ng-enter,
.compact-item.ng-leave {
overflow: hidden;
transition: all 250ms linear;
}
.compact-item.ng-enter {
max-height: 0;
&.ng-enter-active {
max-height: 50px;
}
}
.compact-item.ng-leave {
max-height: 50px;
&.ng-leave-active {
max-height: 0;
}
}
+77
View File
@@ -0,0 +1,77 @@
/**
* based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,
* only changed colors and font-weight
*/
.atwho-view {
position:absolute;
top: 0;
left: 0;
display: none;
margin-top: 18px;
background: var(--color-main-background);
color: var(--color-main-text);
border: 1px solid var(--color-border);
border-radius: var(--border-radius);
box-shadow: 0 0 5px var(--color-box-shadow);
min-width: 120px;
z-index: 11110 !important;
}
.atwho-view .atwho-header {
padding: 5px;
margin: 5px;
cursor: pointer;
border-bottom: solid 1px var(--color-border);
color: var(--color-main-text);
font-size: 11px;
font-weight: bold;
}
.atwho-view .atwho-header .small {
color: var(--color-main-text);
float: right;
padding-top: 2px;
margin-right: -5px;
font-size: 12px;
font-weight: normal;
}
.atwho-view .atwho-header:hover {
cursor: default;
}
.atwho-view .cur {
background: var(--color-primary);
color: var(--color-primary-text);
}
.atwho-view .cur small {
color: var(--color-primary-text);
}
.atwho-view strong {
color: var(--color-main-text);
font-weight: normal;
}
.atwho-view .cur strong {
color: var(--color-primary-text);
font-weight: normal;
}
.atwho-view ul {
/* width: 100px; */
list-style:none;
padding:0;
margin:auto;
max-height: 200px;
overflow-y: auto;
}
.atwho-view ul li {
display: block;
padding: 5px 10px;
border-bottom: 1px solid var(--color-border);
cursor: pointer;
}
.atwho-view small {
font-size: smaller;
color: var(--color-main-text);
font-weight: normal;
}
+10
View File
@@ -0,0 +1,10 @@
.icon-deck {
background-image: url('../img/deck-dark.svg');
}
.resource-type-deck img {
opacity: 0.4 !important;
}
.resource-type-deck:hover img {
opacity: 0.7 !important;
}
+50
View File
@@ -0,0 +1,50 @@
#content-wrapper #content {
height: 100%;
}
#app-content {
flex-grow: 1;
height: 100%;
&.details-visible {
margin-right: 500px;
}
}
#app-sidebar {
right: -500px;
max-width: 100%;
width: 500px;
display:flex;
flex-direction: column;
z-index: 1000;
&.details-visible {
right: 0;
}
}
#content[class*='app-'] * {
box-sizing: border-box;
}
body:not(.snapjs-left) {
.app-navigation-hide {
#app-content {
margin-left: 0 !important;
}
#app-navigation {
display: none;
}
}
}
#commentsTabView .newCommentForm .message {
width: 100%;
margin-left: 0;
padding-right: 0;
display: block;
}
#commentsTabView .comment {
margin-bottom: 0;
}
+41
View File
@@ -0,0 +1,41 @@
/*
* @copyright Copyright (c) 2018 Michael Weimann <mail@michael-weimann.eu>
*
* @author 2018 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/>.
*
*/
.compact-mode {
.card {
margin: $compact-board-item-margin;
&:last-child {
margin: $compact-board-last-item-margin;
}
}
.stack {
.as-sortable-placeholder {
margin: $compact-board-item-margin;
&:last-child {
margin: $compact-board-last-item-margin;
}
}
}
}
+40 -2
View File
@@ -34,9 +34,47 @@
}
.icon-home {
background-image: url('../../../core/img/places/home.svg');
background-image: var(--icon-home-000, url('../../../core/img/places/home.svg'));
}
.icon-description {
background-image: var(--icon-text-000, url('../img/description.svg'));
}
.icon-badge {
background-image: url('../../../core/img/places/calendar-dark.svg');
background-image: url('../img/calendar-dark.svg');
}
.icon-toggle-compact-collapsed {
background-image: url('../img/toggle-view-expand.svg');
}
.icon-toggle-compact-expanded {
background-image: url('../img/toggle-view-collapse.svg');
}
@if mixin-exists('icon-black-white') {
@include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', 'deck', 1);
@include icon-black-white('circles', 'deck', 1);
.icon-toggle-compact-collapsed {
@include icon-color('toggle-view-expand', 'deck', $color-black);
}
.icon-toggle-compact-expanded {
@include icon-color('toggle-view-collapse', 'deck', $color-black);
}
.icon-activity {
@include icon-color('activity-dark', 'activity', $color-black);
}
}
.avatardiv.circles {
background: var(--color-primary);
}
.icon-circles {
opacity: 1;
background-size: 20px;
background-position: center center;
}
+90
View File
@@ -0,0 +1,90 @@
@media print {
/* hide stuff */
#body-user {
#header,
div#app-navigation,
div.board-header-controls,
#app-navigation-toggle,
#app-navigation-toggle-custom,
div#controls.ng-scope div.crumb:not(.title),
div#controls.ng-scope div.crumb a.bullet,
a.ng-binding + a,
div.card.create,
button.card-options {
display: none !important;
}
#content {
margin: 0;
padding: 0;
}
#app-content {
margin: 0 !important;
}
}
div#app-navigation-toggle.icon-menu {
display:block;
width:0px;
height:0px;
background:none;
}
/* title */
div#controls.ng-scope {padding-left:20px;}
div#controls.ng-scope div.crumb.title {
display:inline;
font-size: 2em;
line-height:2.5em;
background:none;
}
div#controls.ng-scope div.crumb.title a.ng-binding {
color:#000;
opacity:1;
}
/*Due, assigned-users and description*/
div.card-controls {
flex-direction:row;
flex-wrap:wrap;
}
div.card-controls i.icon.icon-filetype-text {background:none;}
div.card-controls i.icon.icon-filetype-text:after {
content: attr(title);
display:block;
width:289px;
height:1.5em;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
span.due { }
div.card-assigned-users {
margin-right:10px;
}
ul.labels li.ng-scope span.ng-binding {
color:#000;
display:inline;
padding-left:5px;
}
/* Layout */
@page {
size: A4 landscape;
margin: 2cm;
}
div#innerBoard {
display:flex;
flex-wrap: wrap;
}
div.stack.ng-scope.as-sortable-item {border-right: 1px solid #000;}
div#innerBoard.ng-pristine.ng-untouched.ng-valid.ng-scope.ng-not-empty div.stack.ng-scope.as-sortable-item:nth-child(6n) {
page-break-after: always;
}
}
+315 -87
View File
@@ -5,6 +5,7 @@
* @author Artem Anufrij <artem.anufrij@live.de>
* @author Marin Treselj <marin@pixelipo.com>
* @author Oskar Kurz <oskar.kurz@gmail.com>
* @author Ryan Fletcher <ryan.fletcher@codepassion.ca>
*
* @license GNU AGPL version 3 or any later version
*
@@ -23,17 +24,29 @@
*
*/
// colors
$color-warning-light: nc-lighten($color-warning, 15%);
$color-lightgrey: nc-darken($color-main-background, 4%);
$color-grey: nc-darken($color-main-background, 7%);
$color-darkgrey: nc-darken($color-main-background, 32%);
@import 'comp-appnav.scss';
@import 'icons.scss';
// margins/paddings
$board-item-margin: 10px 10px 20px 10px;
$board-last-item-margin: 10px;
$compact-board-item-margin: 5px 10px 10px 10px;
$compact-board-last-item-margin: 5px 10px 10px;
@import 'comp-appnav';
@import 'icons';
@import 'animations';
@import 'compact-mode';
@import 'autocomplete';
/**
* General styles
*/
button,
.button,
.app-deck .icon {
@@ -70,6 +83,26 @@ input.input-inline {
cursor: text;
}
/**
* Generic app layout
*/
#content {
height: 100%;
min-height: initial;
}
.app.app-deck {
width: 100%;
height: 100%;
display: flex;
}
#app-content {
display: flex;
flex-direction: column;
}
/**
* Navigation sidebar
*/
@@ -115,6 +148,22 @@ input.input-inline {
}
#app-settings-content {
overflow: initial;
.ui-select-match-item {
border: 1px solid var(--color-background-darker) !important;
.select-label {
color: var(--color-main-text);
}
}
p.hint {
margin-top: 10px;
color: var(--color-text-light);
}
}
/**
* Board view
*/
@@ -123,7 +172,7 @@ input.input-inline {
z-index: 999;
width: 100%;
height: 100%;
background-color: $color-main-background;
background-color: var(--color-main-background, $color-main-background);
}
#board {
@@ -152,10 +201,10 @@ input.input-inline {
&.card-selected {
.card {
box-shadow: 0px 0px 7px 0px $color-grey;
box-shadow: 0px 0px 7px 0px var(--color-background-darker, $color-grey);
&.current {
box-shadow: 0px 0px 7px 0px $color-darkgrey;
box-shadow: 0px 0px 7px 0px var(--color-text-lighter, $color-darkgrey);
}
}
}
@@ -180,10 +229,16 @@ input.input-inline {
padding: 10px;
> .as-sortable-placeholder {
display: inline-block !important;
display: flex !important;
width: 320px;
min-width: 320px;
margin-top: 0;
margin-left: 0;
}
> .as-sortable-drag {
background-color: var(--color-main-background $color-main-background);
}
}
#controls {
@@ -221,9 +276,17 @@ input.input-inline {
}
button {
height: inherit;
width: 36px;
height: 36px;
padding: 9px;
}
#stack-add form {
button {
height: auto;
width: 32px;
}
}
input[type='text'] {
padding: 6px;
border: 0 none transparent;
@@ -238,7 +301,7 @@ input.input-inline {
}
}
#app-navigation-toggle {
#app-navigation-toggle-custom {
width: 44px;
height: 44px;
cursor: pointer;
@@ -288,7 +351,7 @@ input.input-inline {
}
#stack-add {
background-color: $color-lightgrey;
background-color: var(--color-background-dark, $color-lightgrey);
border-radius: 3px;
margin: 3px;
display: flex;
@@ -333,9 +396,8 @@ input.input-inline {
width: 100%;
margin: 0;
font-size: 12pt;
font-weight: 700;
border: 0;
background-color: $color-main-background;
background-color: var(--color-main-background, $color-main-background);
min-height: initial;
}
@@ -358,15 +420,20 @@ input.input-inline {
}
.as-sortable-placeholder {
margin: 10px 10px 20px 10px;
margin: $board-item-margin;
border: 1px dashed $color-darkgrey;
min-height: 96px;
transition: margin 250ms linear;
&:last-child {
margin: 10px;
margin: $board-last-item-margin;
}
}
&.as-sortable-item {
height: 100%;
display: flex;
}
> ul {
display: flex;
@@ -375,17 +442,17 @@ input.input-inline {
}
.card {
background-color: $color-main-background;
margin: 10px 10px 20px 10px;
background-color: var(--color-main-background, $color-main-background);
margin: $board-item-margin;
white-space: normal;
position: relative;
box-shadow: 0 0 3px $color-darkgrey;
box-shadow: 0 0 3px 1px var(--color-background-darker, $color-darkgrey);
border-radius: 3px;
transition: margin 250ms linear;
&:last-child {
margin: 10px;
margin: $board-last-item-margin;
}
&.archived .card-upper {
@@ -409,7 +476,7 @@ input.input-inline {
}
.card-controls {
background: $color-lightgrey;
background: var(--color-background-dark, $color-lightgrey);
display: flex;
position: relative;
padding-left: 10px;
@@ -422,9 +489,10 @@ input.input-inline {
opacity: 1;
}
.icon-filetype-text {
.icon-description {
margin: 10px;
margin-left: 0px;
opacity: 0.5;
}
.due {
@@ -442,7 +510,7 @@ input.input-inline {
&.overdue {
background-color: $color-error;
color: $color-primary-text;
color: var(--color-primary-text, $color-primary-text);
.icon-badge {
background-image: url('../img/calendar-white.svg');
@@ -460,7 +528,7 @@ input.input-inline {
}
}
.card-tasks, .card-files {
.card-tasks, .card-files, .card-comments {
border-radius: 3px;
margin: 4px 4px 4px 0px;
padding: 0 2px;
@@ -489,37 +557,39 @@ input.input-inline {
font-weight: normal;
font-size: 10pt;
padding: 0;
margin: 5px;
margin: 0 5px;
overflow: hidden;
text-overflow: ellipsis;
}
&.has-labels h4 {
margin-top: 15px;
span {
padding: 6px 0;
padding-top: 7px;
display: block;
}
input {
width: 100%;
margin: 0;
}
}
.labels {
position: absolute;
top: -5px;
left: 10px;
position: relative;
margin-left: 5px;
li {
padding: 0;
width: 15px;
height: 20px;
padding: 0 4px;
margin: 0 2px 2px 0;
border-radius: 3px;
font-size: 80%;
font-size: 75%;
border: none transparent;
float: left;
span {
display: none;
}
&:hover span {
position: absolute;
padding: 3px;
display: inline-block;
font-weight: bold;
background-color: inherit;
line-height: normal;
}
}
}
@@ -584,7 +654,7 @@ input.input-inline {
min-height: 16px;
}
.popovermenu {
.popovermenu:not(.action-item__menu) {
z-index: 999;
opacity: 1;
display: block;
@@ -617,25 +687,19 @@ input.input-inline {
/**
* App sidebar
*/
#app-sidebar {
right: -500px;
max-width: 100%;
width: 500px;
display:flex;
flex-direction: column;
&.details-visible {
right: 0;
}
}
#sidebar-header {
position: sticky;
top: 0;
background-color: var(--color-main-background, $color-main-background);
z-index: 200;
h3 {
font-size: 14pt;
padding: 9px 10px;
padding: 15px 15px 3px;
margin: 0;
overflow: hidden;
background-color: $color-lightgrey;
input {
min-height: 0px;
@@ -643,6 +707,12 @@ input.input-inline {
}
}
#card-dates {
font-size: 80%;
opacity: 0.5;
padding-left: 15px;
}
.icon-close {
position: absolute;
top: 0px;
@@ -662,7 +732,7 @@ input.input-inline {
position: absolute;
width: 100%;
height: 100%;
background-color: #fff;
background-color: var(--color-main-background, $color-main-background);
z-index: 100;
opacity: 0.9;
text-align: center;
@@ -683,7 +753,7 @@ input.input-inline {
height: 100%;
display: flex;
flex-direction: column;
padding: 15px;
padding: 0 15px;
.duedate {
display: flex;
@@ -722,6 +792,7 @@ input.input-inline {
flex: 1;
}
}
.section-header-tabbed {
margin-top: 10px;
margin-bottom: 5px;
@@ -731,8 +802,15 @@ input.input-inline {
margin: 0;
flex-grow: 1;
}
.tabDetails {
display: flex;
}
.tabDetails {
display: flex;
height: 40px;
align-items: center;
justify-content: center;
input[type=button] {
width: 32px;
}
}
@@ -742,15 +820,14 @@ input.input-inline {
padding: 0 10px;
font-size: 8pt;
display: none;
align-self: flex-end;
text-align: center;
&.saved {
background-color: $color-success;
color: $color-primary-text;
}
&.unsaved {
background-color: $color-lightgrey;
color: $color-darkgrey;
background-color: var(--color-background-dark, $color-lightgrey);
color: var(--color-text-light, $color-darkgrey);
}
}
@@ -760,12 +837,6 @@ input.input-inline {
display: inline;
}
#card-dates {
font-size: 80%;
opacity: 0.5;
text-align: right;
}
.card-details-assign-users {
.select2 .ui-select-choices-row-inner {
@@ -799,6 +870,7 @@ input.input-inline {
background-color: rgba($color-darkgrey, 0.5);
left: 0;
top: 0;
z-index: 300;
}
.attachment-list {
&.selector {
@@ -811,10 +883,10 @@ input.input-inline {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: $color-main-background;
background-color: var(--color-main-background, $color-main-background);
z-index: 2;
border-radius: 3px;
box-shadow: 0 0 3px $color-darkgrey;
box-shadow: 0 0 3px var(--color-background-dark, $color-darkgrey);
overflow: scroll;
}
h3.attachment-selector {
@@ -877,6 +949,9 @@ input.input-inline {
button.icon-history {
width: 44px;
}
progress {
margin-top: 3px;
}
}
}
@@ -905,12 +980,75 @@ input.input-inline {
}
.container {
background-color: $color-main-background;
background-color: var(--color-main-background, $color-main-background);
}
}
}
}
.activity-icon {
opacity: 1 !important;
.avatardiv-container {
top: -4px;
left: -7px;
margin-right: 5px;
img {
max-width: 24px;
max-height: 24px;
opacity: 1;
}
}
& > img {
opacity: 0.7;
}
}
.activitysubject.commentAuthor {
margin-left: 26px;
margin-right: 0;
margin-top: 10px;
}
.activityTabView {
.activity {
margin-bottom: 20px;
}
.activitytime {
margin: 0 !important;
}
}
.activitysubject .app-popover-menu-utils {
display: inline-block;
position: relative;
a {
font-weight: normal;
}
button {
opacity: .5;
padding: 7px;
margin-left: 10px;
}
}
#commentsTabView {
.newCommentRow .avatardiv-container {
left: -7px;
}
.comment {
position: relative;
padding: 0 0 15px;
.avatardiv {
width: 24px;
height: 24px;
line-height: 24px;
}
}
.newCommentForm {
margin-left: 26px;
}
}
.card-attachments {
.error {
padding-left: 38px;
@@ -919,16 +1057,6 @@ input.input-inline {
}
}
#app-content {
overflow: hidden;
display: flex;
flex-direction: column;
&.details-visible {
margin-right: 500px;
}
}
.labels {
display: block;
overflow: hidden;
@@ -973,8 +1101,8 @@ input.input-inline {
}
}
.colorselect-label {
background-image: url('../img/color_picker.svg');
.colorselect-label, .colorselect-label-white {
background-image: url('../img/color_picker-dark.svg');
background-position: center center;
background-repeat: no-repeat;
opacity: 1;
@@ -985,6 +1113,9 @@ input.input-inline {
width: 40px;
}
}
.colorselect-label-white {
background-image: url('../img/color_picker.svg');
}
}
.labels {
@@ -1135,6 +1266,7 @@ input.input-inline {
display: inline-block;
overflow: hidden;
vertical-align: middle;
flex-grow: 1;
}
.icon-delete {
@@ -1160,7 +1292,7 @@ input.input-inline {
width: 32px;
height: 32px;
.icon-group {
.icon-group, .icon {
padding: 16px;
opacity: 0.5;
}
@@ -1174,6 +1306,22 @@ input.input-inline {
position: relative;
}
.board-detail__deleted-list__item {
display: flex;
flex-direction: row;
* {
flex-basis: 44px;
}
.title {
flex-grow: 2;
}
.live-relative-timestamp {
flex-grow: 1;
}
}
#board-detail-labels {
ul li {
input {
@@ -1219,12 +1367,23 @@ input.input-inline {
.tabHeaders {
clear: both;
overflow: hidden;
overflow: initial;
margin-bottom: 0;
.icon {
display: inline-block;
background-size: contain;
margin-right: 5px;
opacity: 0.5;
}
}
.tabsContainer {
margin-top: 15px;
height: 100%;
.tab {
height: 100%;
}
}
.ui-select-offscreen {
@@ -1235,7 +1394,7 @@ input.input-inline {
padding: 0;
float: left !important;
display: block;
border-radius: 0px 0px 5px 5px !important;
border-radius: 3px !important;
.select-label {
color: $color-primary-text;
@@ -1266,6 +1425,10 @@ input.input-inline {
}
.select2-search-field {
margin-right: -10px;
flex-grow: 1;
input {
width: 100% !important;
}
}
}
@@ -1303,6 +1466,8 @@ input.input-inline {
*/
#markdown {
width: 100% !important;
min-height: 40px;
cursor: text;
p {
margin-bottom: 15px;
@@ -1356,7 +1521,7 @@ input.input-inline {
}
pre {
background-color: $color-lightgrey;
background-color: var(--color-background-dark, $color-lightgrey);
padding: 3px;
overflow: auto;
@@ -1379,11 +1544,50 @@ input.input-inline {
display: inline-block;
min-height: 12px;
}
li input[type=checkbox] {
margin: 0px 10px 0px -20px;
li input[type="checkbox"].checkbox + label::before {
margin-left: -15px;
}
input[type="checkbox"].checkbox + label::before {
position: relative;
z-index: 100;
margin-right: 10px;
margin-top: 0;
}
li input[type="checkbox"].checkbox:not(:checked) + label::before {
background-color: $color-main-background;
}
table {
margin-bottom: 10px;
border-collapse: collapse;
thead {
background-color: var(--color-background-dark, $color-lightgrey);
}
td, th {
border: 1px solid var(--color-background-darker, $color-darkgrey);
padding: 3px;
}
}
}
.section-wrapper {
display: flex;
max-width: 100%;
margin-top: 10px;
}
.section-label {
background-position: 0px center;
width:28px;
flex-shrink: 0;
}
.section-details {
flex-grow: 1;
}
/**
* Mobile optimizations
*/
@@ -1428,3 +1632,27 @@ input.input-inline {
.ui-select-dropdown.select2-drop-active {
opacity: 1 !important;
}
/**
* Custom app sidebar handling
*/
body:not(.snapjs-left) {
.app-navigation-hide {
#app-content {
margin-left: 0 !important; /* overwrite margin since we want the translateX to handle it*/
}
#app-navigation {
transform: translateX(-300px);
}
}
}
@media only screen and (max-width: 768px) {
#app-navigation-toggle-custom {
display: none;
}
}
/**
* Print settings, better leave them at the eof
*/
@import 'print.scss';
+42
View File
@@ -0,0 +1,42 @@
# Nextcloud APIs
## Available sharees
When sharing a board to a user, group or circle, the possible sharees can be obtained though the files_sharing API.
API endpoint: https://nextcloud.local/index.php/apps/files_sharing/api/v1/sharees
### Parameters
- format: **The response format**
- perPage: **Limit response number**
- itemType: **List of types. Currently supported are**
- 0 user
- 1 group
- 7 circle
## Comments
Comments are stored using the Nextcloud Comments API. You can use the WebDAV endpoint of Nextcloud to fetch, update and delete comments.
### List comments
PROPFIND`remote.php/dav/comments/deckCard/{cardId}`
### Create comment
POST `remote.php/dav/comments/deckCard/{cardId}`
### Update comment
PROPPATCH `remote.php/dav/comments/deckCard/{cardId}/{commentId}`
### Delete comment
DELETE `remote.php/dav/comments/deckCard/{cardId}/{commentId}`
## Activity
The Nextcloud activity app provides an API to fetch activities filtered for deck: [Activity app API documentation](https://github.com/nextcloud/activity/blob/master/docs/endpoint-v2.md)
The deck app offers a filter `deck` to only request activity events that are relevant.
+897
View File
@@ -0,0 +1,897 @@
The REST API provides access for authenticated users to their data inside the Deck app. To get a better understand of Decks data models and their relations, please have a look at the [data structure](structure.md) documentation.
# Prequisited
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`.
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
## Naming
- Board is the the project like grouping of tasks that can be shared to different users and groups
- Stack is the grouping of cards which is rendered in vertical columns in the UI
- Card is the representation of a single task
- Labels are defined on a board level and can be assigned to any number of cards
## Global responses
### 400 Bad request
In case the request is invalid, e.g. because a parameter is missing, a 400 error will be returned:
```json
{
"status": 400,
"message": "title must be provided"
}
```
### 403 Permission denied
In any case a user doesn't have access to a requested entity, a 403 error will be returned:
```json
{
"status": 403,
"message": "Permission denied"
}
```
## Headers
### If-Modified-Since
Some index endpoints support limiting the result set to entries that have been changed since the given time.
Example curl request:
```bash
curl -u admin:admin -X GET \
'http://localhost:8000/index.php/apps/deck/api/v1.0/boards/2/stacks' \
-H "OCS-APIRequest: true" \
-H "If-Modified-Since: Mon, 5 Nov 2018 09:28:00 GMT"
```
# Endpoints
## Boards
### GET /boards - Get a list of boards
#### Headers
The board list endpoint supports setting an `If-Modified-Since` header to limit the results to entities that are changed after the provided time.
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| options | Bool | **Optional** Enhance boards with details about labels, stacks and users |
#### Response
##### 200 Success
Returns an array of board items
```json
[
{
"title": "Board title",
"owner": {
"primaryKey": "admin",
"uid": "admin",
"displayname": "Administrator"
},
"color": "ff0000",
"archived": false,
"labels": [],
"acl": [],
"permissions": {
"PERMISSION_READ": true,
"PERMISSION_EDIT": true,
"PERMISSION_MANAGE": true,
"PERMISSION_SHARE": true
},
"users": [],
"shared": 0,
"deletedAt": 0,
"id": 10
}
]
```
### POST /boards - Create a new board
#### Request body
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| title | String | The title of the new board |
| color | String | The hexadecimal color of the new board (e.g. FF0000) |
```json
{
"title": "Board title",
"color": "ff0000"
}
```
#### Response
##### 200 Success
```json
{
"title": "Board title",
"owner": {
"primaryKey": "admin",
"uid": "admin",
"displayname": "Administrator"
},
"color": "ff0000",
"archived": false,
"labels": [
{
"title": "Finished",
"color": "31CC7C",
"boardId": 10,
"cardId": null,
"id": 37
},
{
"title": "To review",
"color": "317CCC",
"boardId": 10,
"cardId": null,
"id": 38
},
{
"title": "Action needed",
"color": "FF7A66",
"boardId": 10,
"cardId": null,
"id": 39
},
{
"title": "Later",
"color": "F1DB50",
"boardId": 10,
"cardId": null,
"id": 40
}
],
"acl": [],
"permissions": {
"PERMISSION_READ": true,
"PERMISSION_EDIT": true,
"PERMISSION_MANAGE": true,
"PERMISSION_SHARE": true
},
"users": [],
"deletedAt": 0,
"id": 10
}
```
### GET /boards/{boardId} - Get board details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
##### 200 Success
```json
{
"title": "Board title",
"owner": {
"primaryKey": "admin",
"uid": "admin",
"displayname": "Administrator"
},
"color": "ff0000",
"archived": false,
"labels": [
{
"title": "Finished",
"color": "31CC7C",
"boardId": "10",
"cardId": null,
"id": 37
},
{
"title": "To review",
"color": "317CCC",
"boardId": "10",
"cardId": null,
"id": 38
},
{
"title": "Action needed",
"color": "FF7A66",
"boardId": "10",
"cardId": null,
"id": 39
},
{
"title": "Later",
"color": "F1DB50",
"boardId": "10",
"cardId": null,
"id": 40
}
],
"acl": [],
"permissions": {
"PERMISSION_READ": true,
"PERMISSION_EDIT": true,
"PERMISSION_MANAGE": true,
"PERMISSION_SHARE": true
},
"users": [
{
"primaryKey": "admin",
"uid": "admin",
"displayname": "Administrator"
}
],
"deletedAt": 0,
"id": 10
}
```
### PUT /boards/{boardId} - Update board details
#### Request body
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| title | String | The title of the new board |
| color | String | The hexadecimal color of the new board (e.g. FF0000) |
| archived | Bool | The hexadecimal color of the new board (e.g. FF0000) |
```json
{
"title": "Board title",
"color": "ff0000",
"archived": false
}
```
#### Response
##### 200 Success
### DELETE /boards/{boardId} - Delete a board
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
##### 200 Success
### POST /boards/{boardId}/undo_delete - Restore a deleted board
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
##### 200 Success
### POST /boards/{boardId}/acl - Add new acl rule
#### Request body
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| type | Integer | Type of the participant |
| participant | String | The uid of the participant |
| permissionEdit | Bool | Setting if the participant has edit permissions |
| permissionShare | Bool | Setting if the participant has sharing permissions |
| permissionManage | Bool | Setting if the participant has management permissions |
##### Supported participant types:
- 0 User
- 1 Group
- 7 Circle
#### Response
##### 200 Success
```json
[{
"participant": {
"primaryKey": "userid",
"uid": "userid",
"displayname": "User Name"
},
"type": 0,
"boardId": 1,
"permissionEdit": true,
"permissionShare": false,
"permissionManage": true,
"owner": false,
"id": 1
}]
```
### PUT /boards/{boardId}/acl/{aclId} - Update an acl rule
#### Request parameters
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| permissionEdit | Bool | Setting if the participant has edit permissions |
| permissionShare | Bool | Setting if the participant has sharing permissions |
| permissionManage | Bool | Setting if the participant has management permissions |
#### Response
##### 200 Success
### DELETE /boards/{boardId}/acl/{aclId} - Delete an acl rule
#### Response
##### 200 Success
## Stacks
### GET /board/{boardId}/stacks - Get stacks
#### Headers
The board list endpoint supports setting an `If-Modified-Since` header to limit the results to entities that are changed after the provided time.
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
```json
[
{
"title": "ToDo",
"boardId": 2,
"deletedAt": 0,
"lastModified": 1541426139,
"cards": [...],
"order": 999,
"id": 4
}
]
```
##### 200 Success
### GET /board/{boardId}/stacks/archived - Get list of archived stacks
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
```json
[
{
"title": "ToDo",
"boardId": 2,
"deletedAt": 0,
"lastModified": 1541426139,
"cards": [...],
"order": 999,
"id": 4
}
]
```
##### 200 Success
### GET /board/{boardId}/stacks/{stackId} - Get stack details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the stack belongs to |
| stackId | Integer | The id of the stack |
#### Response
##### 200 Success
### POST /board/{boardId}/stacks - Create a new stack
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| boardId | Integer | The id of the board to fetch |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId} - Update stack details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the stack belongs to |
| stackId | Integer | The id of the stack |
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| title | String | The title of the new stack |
| order | Integer | Order for sorting the stacks |
#### Response
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId} - Delete a stack
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the stack belongs to |
| stackId | Integer | The id of the stack |
#### Response
##### 200 Success
## Cards
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId} - Get card details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Response
##### 200 Success
### POST /board/{boardId}/stacks/{stackId}/cards - Create a new card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| title | String | The title of the new stack |
| type | String | Type of the card (for later use) use 'plain' for now |
| order | Integer | Order for sorting the stacks |
#### Response
```json
{
"title":"Test",
"description":null,
"stackId":6,
"type":"plain",
"lastModified":1541528026,
"createdAt":1541528026,
"labels":null,
"assignedUsers":null,
"attachments":null,
"attachmentCount":null,
"owner":"admin",
"order":999,
"archived":false,
"duedate":null,
"deletedAt":0,
"commentsUnread":0,
"id":10,
"overdue":0
}
```
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId} - Update card details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
|-------------|-----------|------------------------------------------------------|
| title | String | The card title |
| description | String | The markdown description of the card |
| type | String | Type of the card (for later use) use 'plain' for now |
| order | Integer | Order for sorting the stacks |
| duedate | timestamp | The duedate of the card or null |
```
{
"title": "Test card",
"description": "A card description",
"type": "plain",
"order": 999,
"duedate": null,
}
```
#### Response
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId}/cards/{cardId} - Delete a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel - Assign a label to a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| labelId | Integer | The label id to assign to the card |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel - Remove a label to a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| labelId | Integer | The label id to remove to the card |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser - Assign a user to a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| userId | String | The user id to assign to the card |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser - Assign a user to a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| userId | String | The user id to assign to the card |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/reorder - Change the sorting order of a card
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | ----------------------------------------------------------- |
| order | Integer | The position in the stack where the card should be moved to |
| stackId | Integer | The id of the stack where the card should be moved to |
#### Response
##### 200 Success
## Labels
### GET /board/{boardId}/labels/{labelId} - Get label details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the label belongs to |
| labelId | Integer | The id of the label |
#### Response
##### 200 Success
```json
{
"title": "Abgeschlossen",
"color": "31CC7C",
"boardId": "2",
"cardId": null,
"id": 5
}
```
### POST /board/{boardId}/labels - Create a new label
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the label belongs to |
#### Request data
```json
{
"title": "Finished",
"color": "31CC7C"
}
```
#### Response
##### 200 Success
### PUT /board/{boardId}/labels/{labelId} - Update label details
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the label belongs to |
| labelId | Integer | The id of the label |
#### Request data
```json
{
"title": "Finished",
"color": "31CC7C"
}
```
#### Response
##### 200 Success
### DELETE /board/{boardId}/labels/{labelId} - Delete a label
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------- |
| boardId | Integer | The id of the board the label belongs to |
| labelId | Integer | The id of the label |
#### Response
##### 200 Success
## Attachments
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Get a list of attachments
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| boardId | Integer | The id of the board the card belongs to |
| stackId | Integer | The id of the stack the card belongs to |
| cardId | Integer | The id of the card |
#### Response
##### 200 Success
```json
[
{
"cardId": 5,
"type": "deck_file",
"data": "6DADC2C69F4.eml",
"lastModified": 1541529048,
"createdAt": 1541529048,
"createdBy": "admin",
"deletedAt": 0,
"extendedData": {
"filesize": 922258,
"mimetype": "application/octet-stream",
"info": {
"dirname": ".",
"basename": "6DADC2C69F4.eml",
"extension": "eml",
"filename": "6DADC2C69F4"
}
},
"id": 6
}
]
```
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Get the attachment file
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| boardId | Integer | The id of the board the attachment belongs to |
| stackId | Integer | The id of the stack the attachment belongs to |
| cardId | Integer | The id of the card the attachment belongs to |
| attachmentId | Integer | The id of the attachment |
#### Response
##### 200 Success
### POST /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Upload an attachment
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------------- |
| boardId | Integer | The id of the board the attachment belongs to |
| stackId | Integer | The id of the stack the attachment belongs to |
| cardId | Integer | The id of the card the attachment belongs to |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------------- |
| type | String | The type of the attachement |
| file | Binary | File data to add as an attachment |
For now only `deck_file` is supported as an attachment type.
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Update an attachment
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| boardId | Integer | The id of the board the attachment belongs to |
| stackId | Integer | The id of the stack the attachment belongs to |
| cardId | Integer | The id of the card the attachment belongs to |
| attachmentId | Integer | The id of the attachment |
#### Request data
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------------- |
| type | String | The type of the attachement |
| file | Binary | File data to add as an attachment |
For now only `deck_file` is supported as an attachment type.
#### Response
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Delete an attachment
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| boardId | Integer | The id of the board the attachment belongs to |
| stackId | Integer | The id of the stack the attachment belongs to |
| cardId | Integer | The id of the card the attachment belongs to |
| attachmentId | Integer | The id of the attachment |
#### Response
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore - Resore a deleted attachment
#### Request parameters
| Parameter | Type | Description |
| ------------ | ------- | --------------------------------------------- |
| boardId | Integer | The id of the board the attachment belongs to |
| stackId | Integer | The id of the stack the attachment belongs to |
| cardId | Integer | The id of the card the attachment belongs to |
| attachmentId | Integer | The id of the attachment |
#### Response
##### 200 Success
+27
View File
@@ -0,0 +1,27 @@
## What is Markdown
The [wikipedia markdown entry](https://en.wikipedia.org/wiki/Markdown) introduced markdown as :
> Markdown is a lightweight markup language with plain text formatting syntax. It is designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor. As the initial description of Markdown contained ambiguities and unanswered questions, many implementations and extensions of Markdown appeared over the years to answer these issues.
## Markdown in Deck
The Deck application plugin uses the [markdown-it](https://github.com/markdown-it/markdown-it) script to offer support for markdown in the cards description field.
## Supported Markdown
Markdown comes in may flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
That same link offers also a comprehensive list of what is supported, and what is not - rendering it unnecessary to duplicate that content in here.
[CommonMark Markdown Reference](http://commonmark.org/help/)
## Known Issues
As per [issue #127](https://github.com/nextcloud/deck/issues/127) Due to a known limitation of the current script to support markdown, Links that contain the `")"` character will not display well, or will break.
The recommended solution is to use `"<"` and `">"` to wrap those links. It should assure their integrity.
If you come by another case of broken link, or broken display of links, please report it by opening a new issue.
+55
View File
@@ -0,0 +1,55 @@
Releasing a new version works quite easy with [krankerl](https://github.com/ChristophWurst/krankerl) and [github-release](https://github.com/aktau/github-release) installed:
1. Run krankerl to build the package
```
krankerl package
```
2. Tag the release on GitHub
```
# For a prerelease
github-release release -u nextcloud -r deck -t v0.3.1 -p
# For a regular release
github-release release -u nextcloud -r deck -t v0.3.1
```
3. Upload the release package to GitHub
```
github-release upload -u nextcloud -r deck -t v0.3.1 -n deck.tar.gz -f build/artifacts/deck.tar.gz
```
4. Run krankerl to release the package to the app store (add `--nightly` for prerelease packages)
```
krankerl publish https://github.com/nextcloud/deck/releases/download/v0.3.1/deck.tar.gz
```
## Release PR template
```
## Backports
- [ ] ...
## Translations
- [ ] ...
## Release
- [ ] Set proper Nextcloud versions in info.xml
- [ ] Update changelog
- [ ] Build test release
- [ ] Tested on
- [ ] Nextcloud 13
- [ ] Nextcloud 14
- [ ] Nextcloud 15
- [ ] Merge
- [ ] Build final release
- [ ] Publish release
- [ ] Upload to the app store
```
+69
View File
@@ -0,0 +1,69 @@
## Introduction
### What about Deck ?
You may know Kanban website like Trello ? Deck is about the same thing but secured and respectful of your privacy !
Integrated in Nextcloud, you can easily manage your projects while having your data secured.
### Use cases
Project management, time management or ideation, Deck makes it easier for you to manage your work.
## Using Deck
Overall, Deck is easy to use. You can create boards, add users, share the Deck, work collaboratively and in real time.
1. [Create my first board](#1-create-my-first-board)
2. [Create stacks and cards](#2-create-stacks-and-cards)
3. [Handle cards options](#3-handle-cards-options)
4. [Archive old tasks](#4-archive-old-tasks)
5. [Manage your board](#5-manage-your-board)
### 1. Create my first board
In this example, we're going to create a board and share it with an other nextcloud user.
![Gif for creating boards](resources/gifs/EN_create_board.gif)
### 2. Create stacks and cards
Stacks are simply columns with list of cards. It can represent a category of tasks or an y step in your projects for example.
**Check this out :**
![Gif for creating columns](resources/gifs/EN_create_columns.gif)
What about the cards? Cards are tasks, objects or ideas that fit into a stack. You can put a lot of cards in a stack! An infinity? Who knows! Who knows!
And all the magic of this software consists on moving your cards from a stack to an other.
**Check this out :**
![Gif for creating tasks](resources/gifs/EN_create_task.gif)
### 3. Handle cards options
Once you have created your cards, you can modify them or add options by clicking on them. So, what are the options? Well, there are several of them:
- Tag Management
- Assign a card to a user (s·he will receive a notification)
- Render date, or deadline
![Gif for puting infos on tasks](resources/gifs/EN_put_infos.gif)
And even :
- Description in markdown language
- Attachment - *you can leave a document, a picture or some other bonus like that.*
![Gif for puting infos on tasks 2](resources/gifs/EN_put_infos_2.gif)
### 4. Archive old tasks
Once finished or obsolete, a task could be archived. The tasks is not deleted, it's just archived, and you can retrieve it later
![Gif for puting infos on tasks 2](resources/gifs/EN_archive.gif)
### 5. Manage your board
You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right.
Once in this menu, you have access to several things:
- Sharing
- Tags
- Deleted objects
- Timeline
The **sharing tab** allows you to add users or even groups to your boards.
**Tags** allows you to modify the tags available for the cards.
**Deleted objects** allows you to return previously deleted stacks or cards.
The **Timeline** allows you to see everything that happened in your boards. Everything!
+3
View File
@@ -0,0 +1,3 @@
.subnav ul {
padding-left: 20px;
}
+1
View File
@@ -0,0 +1 @@
../README.md
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

+6
View File
@@ -0,0 +1,6 @@
## Database structure
Deck stores most of its data inside of the database. The structure and relationships between entities is documented in the following ER diagram:
![Screenshot](resources/er-diagram.jpg)
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" version="1.1" height="32" viewbox="0 0 32 32"><path fill="#000" d="m8 2c-1.108 0-2 0.892-2 2v4c0 1.108 0.892 2 2 2s2-0.892 2-2v-4c0-1.108-0.892-2-2-2zm16 0c-1.108 0-2 0.892-2 2v4c0 1.108 0.892 2 2 2s2-0.892 2-2v-4c0-1.108-0.892-2-2-2zm-13 4v2c0 1.662-1.338 3-3 3s-3-1.338-3-3v-1.875a3.993 3.993 0 0 0 -3 3.875v16c0 2.216 1.784 4 4 4h20c2.216 0 4-1.784 4-4v-16a3.993 3.993 0 0 0 -3 -3.875v1.875c0 1.662-1.338 3-3 3s-3-1.338-3-3v-2zm-4.906 10h19.812a0.09 0.09 0 0 1 0.094 0.094v9.812a0.09 0.09 0 0 1 -0.094 0.094h-19.812a0.09 0.09 0 0 1 -0.094 -0.094v-9.812a0.09 0.09 0 0 1 0.094 -0.094z"/></svg>

After

Width:  |  Height:  |  Size: 646 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58" width="512" height="512"><g fill="#000"><path d="M54.319 37.839C54.762 35.918 55 33.96 55 32c0-9.095-4.631-17.377-12.389-22.153a1 1 0 1 0-1.049 1.703C48.724 15.96 53 23.604 53 32c0 1.726-.2 3.451-.573 5.147A6.992 6.992 0 0 0 51 37c-3.86 0-7 3.141-7 7s3.14 7 7 7 7-3.141 7-7a7.006 7.006 0 0 0-3.681-6.161zM38.171 54.182A23.867 23.867 0 0 1 29 56a24.047 24.047 0 0 1-17.017-7.092A6.974 6.974 0 0 0 14 44c0-3.859-3.14-7-7-7s-7 3.141-7 7 3.14 7 7 7a6.952 6.952 0 0 0 3.381-.875C15.26 55.136 21.994 58 29 58c3.435 0 6.778-.663 9.936-1.971.51-.211.753-.796.542-1.307a1.001 1.001 0 0 0-1.307-.54zM4 31.213a1 1 0 0 0 1.068-.927c.712-10.089 7.586-18.52 17.22-21.314C23.142 11.874 25.825 14 29 14c3.86 0 7-3.141 7-7s-3.14-7-7-7c-3.851 0-6.985 3.127-6.999 6.975C11.42 9.922 3.851 19.12 3.073 30.146A.999.999 0 0 0 4 31.213z"/></g></svg>

After

Width:  |  Height:  |  Size: 885 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 100 100"><path d="M91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727a5.015 5.015 0 1 0-7.093 7.093l3.727 3.727-41.51 41.508a11.411 11.411 0 0 0-3.329 7.324c-.073 1.087-.347 3.105-.675 5.292a1.748 1.748 0 0 1-.487.983l-3.105 3.106a2.546 2.546 0 0 0 0 3.6l3.493 3.493a2.546 2.546 0 0 0 3.6 0l3.106-3.105c.277-.275.622-.433.981-.486 2.187-.329 4.205-.602 5.293-.675a11.412 11.412 0 0 0 7.325-3.33l41.508-41.508 3.727 3.727a5.015 5.015 0 1 0 7.093-7.093L69.507 29.419l9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726.001-16.2zM65.051 42.749l-20.53 20.53a2.546 2.546 0 0 1-3.6 0l-3.27-3.27a2.545 2.545 0 0 0-3.599.001l-.616.616-.002-.002-14.728 14.727c-.337.337-.819.401-1.076.143s-.194-.74.143-1.076l23.841-23.841.004.004 15.633-15.633a2.546 2.546 0 0 1 3.6 0l4.2 4.201a2.546 2.546 0 0 1 0 3.6z"/></svg>

After

Width:  |  Height:  |  Size: 897 B

+1 -5
View File
@@ -1,5 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg id="Layer_1" width="15" height="15" enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<path d="m91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727c-1.959-1.959-5.134-1.959-7.093 0s-1.959 5.134 0 7.093l3.727 3.727-41.51 41.508c-2.039 2.039-3.149 4.656-3.329 7.324-0.073 1.087-0.347 3.105-0.675 5.292-0.053 0.359-0.212 0.706-0.487 0.983l-3.105 3.106c-0.994 0.994-0.994 2.606 0 3.6l3.493 3.493c0.994 0.994 2.606 0.994 3.6 0l3.106-3.105c0.277-0.275 0.622-0.433 0.981-0.486 2.187-0.329 4.205-0.602 5.293-0.675 2.668-0.18 5.285-1.29 7.325-3.33l41.508-41.508 3.727 3.727c1.959 1.959 5.134 1.959 7.093 0s1.959-5.134 0-7.093l-12.365-12.366 9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726 1e-3 -16.2zm-26.594 34.394l-20.53 20.53c-0.994 0.994-2.606 0.994-3.6 0l-3.27-3.27c-0.994-0.993-2.605-0.993-3.599 1e-3l-0.616 0.616-2e-3 -2e-3 -14.728 14.727c-0.337 0.337-0.819 0.401-1.076 0.143s-0.194-0.74 0.143-1.076l23.841-23.841 4e-3 4e-3 15.633-15.633c0.994-0.994 2.606-0.994 3.6 0l4.2 4.201c0.994 0.994 0.994 2.606 0 3.6z" fill="#fff"/>
<metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>
<svg width="15" height="15" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="M91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727a5.015 5.015 0 1 0-7.093 7.093l3.727 3.727-41.51 41.508a11.411 11.411 0 0 0-3.329 7.324c-.073 1.087-.347 3.105-.675 5.292a1.748 1.748 0 0 1-.487.983l-3.105 3.106a2.546 2.546 0 0 0 0 3.6l3.493 3.493a2.546 2.546 0 0 0 3.6 0l3.106-3.105c.277-.275.622-.433.981-.486 2.187-.329 4.205-.602 5.293-.675a11.412 11.412 0 0 0 7.325-3.33l41.508-41.508 3.727 3.727a5.015 5.015 0 1 0 7.093-7.093L69.507 29.419l9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726.001-16.2zM65.051 42.749l-20.53 20.53a2.546 2.546 0 0 1-3.6 0l-3.27-3.27a2.545 2.545 0 0 0-3.599.001l-.616.616-.002-.002-14.728 14.727c-.337.337-.819.401-1.076.143s-.194-.74.143-1.076l23.841-23.841.004.004 15.633-15.633a2.546 2.546 0 0 1 3.6 0l4.2 4.201a2.546 2.546 0 0 1 0 3.6z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 910 B

+1
View File
@@ -0,0 +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>

After

Width:  |  Height:  |  Size: 292 B

+1
View File
@@ -0,0 +1 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 4.2333 4.2333" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -292.77)" display="none" stroke-width=".23666"><rect x=".28112" y="293.43" width="3.7042" height="1.1906" ry=".20225"/><rect x=".26458" y="295.15" width="3.7042" height="1.1906" ry=".20225"/></g><g transform="translate(0 -292.77)"><g transform="matrix(.040404 0 0 .040404 -3.0978 290.01)"><rect x="83.629" y="114.13" width="91.678" height="13.097" stroke-width="3.9049"/><path d="m155.25 81.388-26.194 26.194-26.194-26.154z" stroke-width="6.5484"/><path d="m155.25 159.97-26.194-26.194-26.194 26.154z" stroke-width="6.5484"/></g></g></svg>

After

Width:  |  Height:  |  Size: 671 B

+1
View File
@@ -0,0 +1 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 4.2333 4.2333" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -292.77)" display="none" stroke-width=".23666"><rect x=".28112" y="293.43" width="3.7042" height="1.1906" ry=".20225"/><rect x=".26458" y="295.15" width="3.7042" height="1.1906" ry=".20225"/></g><g transform="translate(0 -292.77)"><g transform="matrix(.040404 0 0 .040404 -3.0978 290.01)"><rect x="83.629" y="114.13" width="91.678" height="13.097" stroke-width="3.9049"/><path d="m155.25 107.58-26.194-26.194-26.194 26.154z" stroke-width="6.5484"/><path d="m155.25 133.78-26.194 26.194-26.194-26.154z" stroke-width="6.5484"/></g></g></svg>

After

Width:  |  Height:  |  Size: 671 B

+12
View File
@@ -0,0 +1,12 @@
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
browsers: ['last 2 versions', 'ie >= 11']
}
}
]
]
}
+2 -2
View File
@@ -1,4 +1,6 @@
{
"esversion": 6,
"globals": {
"jasmine" : false,
"spyOn" : false,
@@ -21,7 +23,6 @@
"devel" : true,
"eqeqeq" : true,
"eqnull" : false,
"es5" : true,
"evil" : false,
"forin" : true,
"immed" : true,
@@ -39,7 +40,6 @@
"plusplus" : false,
"quotmark" : "single",
"regexp" : false,
"strict" : true,
"sub" : true,
"trailing" : true,
"undef" : true,
+9 -5
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
/* global angular */
@@ -48,13 +48,17 @@ import ngsortable from 'ng-sortable';
import md from 'angular-markdown-it';
import nganimate from 'angular-animate';
import 'angular-file-upload';
import ngInfiniteScroll from 'ng-infinite-scroll';
import '../legacy/jquery.atwho.min';
import '../legacy/jquery.caret.min';
var app = angular.module('Deck', [
ngsanitize,
uirouter,
angularuiselect,
ngsortable, md, nganimate,
'angularFileUpload'
'angularFileUpload',
ngInfiniteScroll
]);
export default app;
+10 -5
View File
@@ -33,12 +33,16 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
$compileProvider.debugInfoEnabled(true);
// This should fix adding "unsafe:" prefix to ui-select href links containing javascript
// inline JS is blocked by CSP anyway and filtered out by our markdown renderer as well
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|javascript):/);
markdownItConverterProvider.use(markdownitLinkTarget, {
markdownItConverterProvider.config({
breaks: true,
linkify: true,
xhtmlOut: true
}).use(markdownitCheckbox);
});
markdownItConverterProvider.use(markdownitLinkTarget).use(markdownitCheckbox);
$urlRouterProvider.otherwise('/');
@@ -67,8 +71,9 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
tab: {value: 0, dynamic: true},
},
views: {
'sidebarView': {
templateUrl: '/board.sidebarView.html'
'sidebarView@': {
templateUrl: '/board.sidebarView.html',
controller: 'BoardController'
}
}
})
@@ -78,7 +83,7 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
tab: {value: 0, dynamic: true},
},
views: {
'sidebarView': {
'sidebarView@': {
templateUrl: '/card.sidebarView.html',
controller: 'CardController'
}
+4 -24
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from './App.js';
@@ -56,26 +56,6 @@ app.run(function ($document, $rootScope, $transitions, BoardService) {
OC.filePath('deck', 'img', 'app-512.png')
);
$('#app-navigation-toggle').off('click');
// App sidebar on mobile
var snapper = new Snap({
element: document.getElementById('app-content'),
disable: 'right',
maxPosition: 250,
touchToDrag: false
});
$('#app-navigation-toggle').click(function () {
if ($(window).width() > 768) {
$('#app-navigation').toggle('hidden');
} else {
if (snapper.state().state === 'left') {
snapper.close();
} else {
snapper.open('left');
}
}
});
// Select all elements with data-toggle="tooltips" in the document
$('body').tooltip({
selector: '[data-toggle="tooltip"]'
+349
View File
@@ -0,0 +1,349 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
/* global OC OCA OCP t escapeHTML Handlebars moment */
import CommentCollection from '../legacy/commentcollection';
import CommentModel from '../legacy/commentmodel';
class ActivityController {
constructor ($scope, CardService, ActivityService, BoardService) {
'ngInject';
this.cardservice = CardService;
this.boardservice = BoardService;
this.activityservice = ActivityService;
this.$scope = $scope;
this.type = '';
this.loading = false;
this.status = {
commentCreateLoading: false
};
this.$scope.newComment = '';
this.$scope.newCommentString = 'New comment…';
this.currentUser = OC.getCurrentUser();
const self = this;
this.$scope.$watch(function () {
return self.element.id;
}, function (params) {
if (self.getData(self.element.id).length === 0) {
if (self.type === 'deck_card') {
self.activityservice.loadComments(self.element.id);
}
self.loading = true;
self.fetchUntilResults();
}
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
if (self.type === 'deck_card') {
self.cardservice.getCurrent().commentsUnread = 0;
}
}, true);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
this.activityservice.subscribe(this.$scope, function() {
self.$scope.$apply();
});
if (typeof OCA.Activity.Templates !== 'undefined') {
OCA.Activity.Templates.userLocal = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var helper;
// Compiled handlesbars template
// '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
return "<span class=\"avatar-name-wrapper\"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user=\""
+ container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"id","hash":{},"data":data}) : helper)))
+ "\" ng-attr-displayname=\""
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "\" ng-attr-size=\"16\"></avatar> "
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "</span>";
},"useData":true});
} else {
OCA.Activity.RichObjectStringParser._userLocalTemplate = '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
}
}
applyAtWho($target) {
const self = this;
if (!$target) {
return;
}
$target.atwho({
at: '@',
callbacks: {
remoteFilter: function(query, callback) {
let uids = self.boardservice.getUsers();
uids = uids.filter((x) => x.uid.toLowerCase().includes(query.toLowerCase()) || x.displayname.toLowerCase().includes(query.toLowerCase()));
callback(uids);
},
highlighter: function (li) {
// misuse the highlighter callback to instead of
// highlighting loads the avatars.
var $li = $(li);
$li.find('.avatar').avatar(undefined, 32);
return $li;
},
sorter: function (q, items) { return items; }
},
displayTpl: function (item) {
return '<li>' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span></li>';
},
insertTpl: function (item) {
return '' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span>';
},
searchKey: 'displayname'
});
$target.on('inserted.atwho', function (je, $el) {
$(je.target).find(
'span[data-username="' + $el.find('[data-username]').data('username') + '"]'
).avatar(undefined, 16);
});
$target.on('shown.atwho', function (je) {
$target.find('.avatar').avatar(undefined, 16);
});
}
commentBodyToPlain(content) {
let $comment = $('<div/>').html(content);
$comment.find('.avatar-name-wrapper').each(function () {
var $this = $(this);
var $inserted = $this.parent();
$inserted.html('@' + $this.find('.avatar').data('username'));
});
$comment.html(OCP.Comments.richToPlain($comment.html()));
$comment.html($comment.html().replace(/<br\s*[\/]?>/gi, '\n'));
return $comment.text();
}
static _composeHTMLMention(uid, displayName) {
var avatar = '' +
'<span class="avatar" data-username="' + escapeHTML(uid) + '" data-user="' + escapeHTML(uid) + '" ng-attr-size="16" ' +
'ng-attr-user="' + escapeHTML(uid) + '" ' +
'ng-attr-displayname="' + escapeHTML(displayName) + '" ng-attr-contactsmenu="true">' +
'</span>';
var isCurrentUser = (uid === OC.getCurrentUser().uid);
return '' +
'<span class="atwho-inserted" contenteditable="false">' +
'<span class="avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '">' +
avatar +
'<strong>' + escapeHTML(displayName) + '</strong>' +
'</span>' +
'</span>';
}
formatMessage(activity) {
let message = activity.message;
let mentions = activity.commentModel.get('mentions');
const editMode = false;
message = escapeHTML(message).replace(/\n/g, '<br/>');
for(var i in mentions) {
if(!mentions.hasOwnProperty(i)) {
return;
}
var mention = '@' + mentions[i].mentionId;
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const displayName = ActivityController._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
message = message.replace(new RegExp('(^|\\s)(' + mention + ')\\b', 'g'),
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1+displayName;
}
);
}
if(editMode !== true) {
message = OCP.Comments.plainToRich(message);
}
return message;
}
postComment() {
const self = this;
this.status.commentCreateLoading = true;
let content = this.commentBodyToPlain(self.$scope.newComment);
if (content.length < 1) {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
var model = this.activityservice.commentCollection.create({
actorId: OC.getCurrentUser().uid,
actorDisplayName: OC.getCurrentUser().displayName,
actorType: 'users',
verb: 'comment',
message: content,
creationDateTime: (new Date()).toUTCString()
}, {
at: 0,
// wait for real creation before adding
wait: true,
success: function() {
self.$scope.newComment = '';
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
self.status.commentCreateLoading = false;
},
error: function() {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Posting the comment failed.'));
}
});
}
updateComment(item) {
item.commentEdit = this.formatMessage(item);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
/** Workaround to trigger avatar rendering after the view has been updated */
window.setTimeout(function () {
$target.find('.avatar').avatar(undefined, 16);
}, 0);
}
editComment(item) {
const self = this;
let content = this.commentBodyToPlain(item.commentEdit);
if (content.length < 1) {
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
/** We need to save the model and afterwards run a fetch to update the mentions
* and call apply to propagate the changes to angular
*/
item.commentModel.on('sync', function() {
item.commentModel.off('sync');
item.commentModel.fetch({
success: function() {
self.$scope.$apply();
}
});
});
item.commentModel.save({
message: content,
});
item.message = content;
item.commentEdit = undefined;
}
deleteComment(item) {
item.commentModel.destroy();
item.deleted = true;
item.commentModel = undefined;
item.message = t('deck', 'The comment has been deleted');
}
getData(id) {
return this.activityservice.getData(this.type, id);
}
parseMessage(activity) {
let subject = activity.subject_rich[0];
let parameters = activity.subject_rich[1];
if (parameters.after && parameters.after.id && parameters.after.id.startsWith('dt:')) {
let dateTime = parameters.after.id.substr(3);
parameters.after.name = moment(dateTime).format('L LTS');
}
return OCA.Activity.RichObjectStringParser.parseMessage(subject, parameters);
}
fetchUntilResults () {
const self = this;
let dataLengthBefore = self.getData(self.element.id).length;
let _executeFetch = function() {
let promise = self.activityservice.fetchMoreActivities(self.type, self.element.id);
promise.then(function (data) {
let dataLengthAfter = self.getData(self.element.id).length;
if (data !== null && (dataLengthAfter <= dataLengthBefore || dataLengthAfter < self.activityservice.RESULT_PER_PAGE)) {
_executeFetch();
} else {
self.loading = false;
}
}, function () {
self.loading = false;
self.$scope.$apply();
});
};
_executeFetch();
}
getComments() {
return this.activityservice.comments;
}
getActivityStream() {
let activities = this.activityservice.getData(this.type, this.element.id);
return activities;
}
page() {
if (!this.activityservice.since[this.type][this.element.id].finished) {
this.loading = true;
this.fetchUntilResults();
} else {
this.loading = false;
}
}
loadingNewer() {
return this.activityservice.runningNewer;
}
t(text) {
return t('deck', text);
}
}
let activityComponent = {
templateUrl: OC.linkTo('deck', 'templates/part.card.activity.html'),
controller: ActivityController,
bindings: {
type: '@',
element: '='
}
};
export default activityComponent;
+18 -6
View File
@@ -4,29 +4,41 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
/** global: OC */
app.controller('AppController', function ($scope, $location, $http, $log, $rootScope) {
/* globals oc_current_user: false */
app.controller('AppController', function ($scope, $location, $http, $log, $rootScope, $attrs) {
$rootScope.sidebar = {
show: false
};
$scope.sidebar = $rootScope.sidebar;
$scope.user = oc_current_user;
$rootScope.config = JSON.parse($attrs.config);
$rootScope.compactMode = localStorage.getItem('deck.compactMode') === 'true';
$scope.appNavigationHide = localStorage.getItem('deck.appNavigationHide') === 'true';
$scope.toggleSidebar = function() {
if ($(window).width() > 768) {
$log.debug($scope.appNavigationHide);
$scope.appNavigationHide = !$scope.appNavigationHide;
localStorage.setItem('deck.appNavigationHide', JSON.stringify($scope.appNavigationHide));
}
};
});
+227 -28
View File
@@ -4,25 +4,28 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
/* global oc_defaults OC */
app.controller('BoardController', function ($rootScope, $scope, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions, $filter, FileService) {
import Vue from 'vue';
import CollaborationView from '../views/CollaborationView';
/* global oc_defaults oc_config OC OCP OCA */
app.controller('BoardController', function ($rootScope, $scope, $element, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions, $filter, FileService) {
$scope.sidebar = $rootScope.sidebar;
@@ -41,6 +44,48 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.defaultColors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD'];
$scope.board = BoardService.getCurrent();
$scope.uploader = FileService.uploader;
$scope.searchText = '';
$scope.startTitleEdit = function(card) {
card.renameTitle = card.title;
card.status = card.status || {};
card.status.editCard = true;
};
$scope.finishTitleEdit = function(card) {
var newTitle;
if (!card.renameTitle || !card.renameTitle.trim()) {
newTitle = '';
} else {
newTitle = card.renameTitle.trim();
}
if (newTitle === card.title) {
// title unchanged
card.status.editCard = false;
delete card.renameTitle;
} else if (newTitle !== '') {
// title changed
card.title = newTitle;
CardService.update(card).then(function (data) {
card.status.editCard = false;
delete card.renameTitle;
});
} else {
// empty title
card.status.editCard = false;
delete card.renameTitle;
}
};
$scope.$watch(function() {
return $scope.params.tab;
}, function (newTab, oldTab) {
if (newTab === 2 && oldTab !== 2) {
CardService.fetchDeleted($scope.id);
StackService.fetchDeleted($scope.id);
}
});
// workaround for $stateParams changes not being propagated
$scope.$watch(function() {
@@ -59,8 +104,8 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
* @returns array of [finished, total] checkboxes
*/
$scope.getCheckboxes = function(text) {
const regTotal = /\[(X|\s|\_|\-)\]\s(.*)/ig;
const regFinished = /\[(X|\_|\-)\]\s(.*)/ig;
const regTotal = /\[(X|\s|\_|\-)\]/igm;
const regFinished = /\[(X|\_|\-)\]/igm;
return [
((text || '').match(regFinished) || []).length,
((text || '').match(regTotal) || []).length
@@ -106,6 +151,36 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
}
});
if (parseInt(oc_config.version.split('.')[0]) >= 16) {
const ComponentVM = new Vue({
render: h => h(CollaborationView),
data: {
model: BoardService.getCurrent()
},
});
$scope.mountCollections = function () {
const MountingPoint = document.getElementById('collaborationResources');
if (MountingPoint) {
ComponentVM.model = BoardService.getCurrent();
ComponentVM.$mount(MountingPoint);
}
};
$scope.$$postDigest($scope.mountCollections);
$scope.$watch(function () {
return BoardService.getCurrent();
}, function () {
ComponentVM.model = BoardService.getCurrent();
if ($scope.sidebar.show) {
$scope.$$postDigest($scope.mountCollections);
}
});
}
$scope.toggleCompactMode = function() {
$rootScope.compactMode = !$rootScope.compactMode;
localStorage.setItem('deck.compactMode', JSON.stringify($rootScope.compactMode));
};
$scope.stacksData = StackService;
$scope.stacks = [];
$scope.$watch('stacksData', function () {
@@ -175,31 +250,97 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
};
$scope.createCard = function (stack, title) {
var newCard = {
'title': title,
'stackId': stack,
'type': 'plain'
};
CardService.create(newCard).then(function (data) {
$scope.stackservice.addCard(data);
$scope.newCard.title = '';
});
if (this['addCardForm' + stack].$valid) {
var newCard = {
'title': title,
'stackId': stack,
'type': 'plain'
};
CardService.create(newCard).then(function (data) {
$scope.stackservice.addCard(data);
$scope.newCard.title = '';
});
}
};
$scope.stackDelete = function (stack) {
$scope.stackservice.delete(stack.id);
};
$scope.stackUndoDelete = function (deletedStack) {
return StackService.undoDelete(deletedStack);
};
$scope.cardDelete = function (card) {
OC.dialogs.confirm(t('deck', 'Are you sure you want to delete this card with all of its data?'), t('deck', 'Delete'), function(state) {
if (!state) {
return;
}
CardService.delete(card.id).then(function () {
StackService.removeCard(card);
});
CardService.delete(card.id).then(function () {
StackService.removeCard(card);
$scope.sidebar.show = false;
});
};
$scope.cardOrCardAndStackUndoDelete = function (deletedCard) {
var associatedDeletedStack = $scope.stackservice.deleted[deletedCard.stackId];
if(associatedDeletedStack !== undefined) {
$scope.cardAndStackUndoDeleteAskForConfirmation(deletedCard, associatedDeletedStack);
} else {
$scope.cardUndoDelete(deletedCard);
}
};
$scope.cardAndStackUndoDeleteAskForConfirmation = function(deletedCard, associatedDeletedStack) {
OC.dialogs.confirm(
t('deck', 'The associated stack is deleted as well, it will be restored as well.'),
t('deck', 'Restore associated stack'),
function(state) {
if (state) {
$scope.cardAndStackUndoDelete(deletedCard, associatedDeletedStack);
}
}
);
};
$scope.cardAndStackUndoDelete = function(deletedCard, associatedDeletedStack) {
$scope.stackUndoDelete(associatedDeletedStack).then(function() {
$scope.cardUndoDelete(deletedCard);
});
};
$scope.cardUndoDelete = function(deletedCard) {
CardService.undoDelete(deletedCard).then(function() {
StackService.addCard(deletedCard);
});
};
$scope.cardArchive = function (card) {
CardService.archive(card);
StackService.removeCard(card);
};
$scope.isCurrentUserAssigned = function (card) {
if (! CardService.get(card.id).assignedUsers) {
return false;
}
var userList = CardService.get(card.id).assignedUsers.filter(function (obj) {
return obj.participant.uid === OC.getCurrentUser().uid;
});
return userList.length === 1;
};
$scope.cardAssignToMe = function (card) {
CardService.assignUser(card, OC.getCurrentUser().uid)
.then(
function() {StackService.updateCard(card);}
);
// TODO: remove this jquery call. Fix and use appPopoverMenuUtils instead
$('.popovermenu').addClass('hidden');
};
$scope.cardUnassignFromMe = function (card) {
CardService.unassignUser(card, OC.getCurrentUser().uid);
StackService.updateCard(card);
// TODO: remove this jquery call.Fix and use appPopoverMenuUtils instead
$('.popovermenu').addClass('hidden');
};
$scope.cardUnarchive = function (card) {
CardService.unarchive(card);
StackService.removeCard(card);
@@ -210,8 +351,22 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
// remove from board data
var i = BoardService.getCurrent().labels.indexOf(label);
BoardService.getCurrent().labels.splice(i, 1);
// TODO: remove from cards
// remove from cards
var cards = CardService.data;
for (var card in cards) {
if (Object.prototype.hasOwnProperty.call(cards, card)) {
var labelsFromCard = cards[card].labels;
labelsFromCard.forEach(function (labelFromCard, index) {
if (labelFromCard.id === label.id) {
cards[card].labels.splice(index, 1);
}
});
}
}
};
$scope.labelCreate = function (label) {
label.boardId = $scope.id;
LabelService.create(label).then(function (data) {
@@ -219,11 +374,35 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
BoardService.getCurrent().labels.push(data);
$scope.status.createLabel = false;
$scope.newLabel = {};
}).catch((err) => {
OC.Notification.showTemporary(err);
});
};
$scope.labelUpdateBefore = function (label) {
label.renameTitle = label.title;
};
$scope.labelUpdate = function (label) {
label.edit = false;
LabelService.update(label);
LabelService.update(label).catch((err) => {
label.title = label.renameTitle;
OC.Notification.showTemporary(err);
});
// update labels in UI
var cards = CardService.data;
for (var card in cards) {
if (Object.prototype.hasOwnProperty.call(cards, card)) {
var labelsFromCard = cards[card].labels;
labelsFromCard.forEach(function (labelFromCard, index) {
if (labelFromCard.id === label.id) {
cards[card].labels[index] = label;
}
});
}
}
};
$scope.aclAdd = function (sharee) {
@@ -231,12 +410,14 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
BoardService.addAcl(sharee);
$scope.status.addSharee = null;
};
$scope.aclDelete = function (acl) {
BoardService.deleteAcl(acl).then(function(data) {
$scope.loadDefault();
$scope.refreshData();
});
};
$scope.aclUpdate = function (acl) {
BoardService.updateAcl(acl);
};
@@ -250,6 +431,8 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
return 'user';
case OC.Share.SHARE_TYPE_GROUP:
return 'group';
case OC.Share.SHARE_TYPE_CIRCLE:
return 'circles';
default:
return '';
}
@@ -261,7 +444,7 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
itemMoved: function (event) {
event.source.itemScope.modelValue.status = event.dest.sortableScope.$parent.column;
var order = event.dest.index;
var card = event.source.itemScope.c;
var card = $scope.cardservice.get(event.source.itemScope.c.id);
var newStack = event.dest.sortableScope.$parent.s.id;
var oldStack = card.stackId;
card.stackId = newStack;
@@ -277,7 +460,7 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
},
orderChanged: function (event) {
var order = event.dest.index;
var card = event.source.itemScope.c;
var card = $scope.cardservice.get(event.source.itemScope.c.id);
var stack = event.dest.sortableScope.$parent.s.id;
CardService.reorder(card, order).then(function (data) {
StackService.reorderCard(card, order);
@@ -354,6 +537,14 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
};
};
$scope.colorValue = function(color) {
const re = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/;
if (re.test(color)) {
return color;
}
return '';
};
$scope.attachmentCount = function(card) {
if (Array.isArray(card.attachments)) {
return card.attachments.filter((obj) => obj.deletedAt === 0).length;
@@ -361,4 +552,12 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
return card.attachmentCount;
};
$scope.unreadCommentCount = function(card) {
return card.commentsUnread;
};
$scope.isTimelineEnabled = function() {
return OCP.Comments && OCA.Activity;
};
});
+46 -20
View File
@@ -4,28 +4,29 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
/* global app moment angular OC */
/* global app moment angular OC OCP OCA */
import app from '../app/App.js';
app.controller('CardController', function ($scope, $rootScope, $sce, $location, $stateParams, $state, $interval, $timeout, $filter, BoardService, CardService, StackService, StatusService, markdownItConverter, FileService) {
$scope.sidebar = $rootScope.sidebar;
$scope.status = {
renameTitle: '',
lastEdit: 0,
lastSave: Date.now()
};
@@ -43,6 +44,7 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
return $state.params;
}, function (params) {
$scope.params = params;
$scope.fileservice.reset();
}, true);
$scope.params = $state.params;
@@ -88,9 +90,10 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
});
$scope.cardRenameShow = function () {
if ($scope.archived || !BoardService.canEdit())
{return false;}
else {
if ($scope.archived || !BoardService.canEdit()) {
return false;
} else {
$scope.status.renameTitle = CardService.getCurrent().title;
$scope.status.cardRename = true;
}
};
@@ -98,11 +101,11 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
$scope.toggleCheckbox = function (id) {
$('#markdown input[type=checkbox]').attr('disabled', true);
$scope.status.edit = angular.copy(CardService.getCurrent());
var reg = /\[(X|\s|\_|\-)\]\s(.*)/ig;
var reg = /\[(X|\s|\_|\-)\]/ig;
var nth = 0;
$scope.status.edit.description = $scope.status.edit.description.replace(reg, function (match, i, original) {
var result = match;
if (nth++ === id) {
if ('' + nth++ === '' + id) {
if (match.match(/^\[\s\]/i)) {
result = match.replace(/\[\s\]/i, '[x]');
}
@@ -114,7 +117,7 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
return match;
});
CardService.update($scope.status.edit).then(function (data) {
var header = $('.section-header-tabbed .tabDetails');
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000);
});
@@ -125,10 +128,11 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
var checkboxId = $($event.target).data('id');
if ($event.target.tagName === 'LABEL') {
$scope.toggleCheckbox(checkboxId);
return;
$event.stopPropagation();
return false;
}
if ($event.target.tagName === 'INPUT') {
$scope.toggleCheckbox(checkboxId);
$event.stopPropagation();
return;
}
if (BoardService.isArchived() || CardService.getCurrent().archived) {
@@ -143,7 +147,7 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
};
$scope.cardEditDescriptionChanged = function ($event) {
$scope.status.lastEdit = Date.now();
var header = $('.section-header-tabbed .tabDetails');
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').show();
header.find('.save-indicator.saved').hide();
};
@@ -153,10 +157,10 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
if (timeSinceEdit > 1000 && $scope.status.lastEdit > $scope.status.lastSave && !$scope.status.saving) {
$scope.status.lastSave = currentTime;
$scope.status.saving = true;
var header = $('.section-header-tabbed .tabDetails');
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').fadeIn(500);
CardService.update($scope.status.edit).then(function (data) {
var header = $('.section-header-tabbed .tabDetails');
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000);
$scope.status.saving = false;
@@ -166,15 +170,33 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
// handle rename to update information on the board as well
$scope.cardRename = function (card) {
CardService.rename(card).then(function (data) {
var newTitle;
if (!$scope.status.renameTitle || !$scope.status.renameTitle.trim()) {
newTitle = '';
} else {
newTitle = $scope.status.renameTitle.trim();
}
if (newTitle === card.title) {
// title unchanged
$scope.status.renameCard = false;
});
} else if (newTitle !== '') {
// title changed
card.title = newTitle;
CardService.rename(card).then(function (data) {
$scope.status.renameCard = false;
});
} else {
// empty title
$scope.status.renameTitle = card.title;
$scope.status.renameCard = false;
}
};
$scope.cardUpdate = function (card) {
CardService.update(card).then(function (data) {
$scope.status.cardEditDescription = false;
$scope.updateMarkdown($scope.status.edit.description);
var header = $('.section-header-tabbed .tabDetails');
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(500).fadeOut(1000);
});
@@ -219,7 +241,7 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
element.duedate = null;
CardService.update(element);
};
/**
* Show ui-select field when clicking the add button
*/
@@ -257,4 +279,8 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
};
};
$scope.isTimelineEnabled = function() {
return OCP.Comments && OCA.Activity;
};
});
+63 -6
View File
@@ -4,25 +4,25 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
/* global app angular */
/* global app angular oc_isadmin */
var ListController = function ($scope, $location, $filter, BoardService, $element, $timeout, $stateParams, $state, StatusService) {
var ListController = function ($scope, $location, $filter, BoardService, $element, $timeout, $stateParams, $state, StatusService, $http, $q, $rootScope) {
function calculateNewColor() {
var boards = BoardService.getAll();
@@ -55,6 +55,63 @@ var ListController = function ($scope, $location, $filter, BoardService, $elemen
$scope.colors = ['0082c9', '00c9c6','00c906', 'c92b00', 'F1DB50', '7C31CC', '3A3B3D', 'CACBCD'];
$scope.boardservice = BoardService;
$scope.updatingBoard = null;
$scope.isAdmin = oc_isadmin;
$scope.canCreate = $rootScope.config.canCreate;
if ($scope.isAdmin) {
OC.Apps.enableDynamicSlideToggle();
$scope.groups = [];
$scope.groupLimit = [];
$scope.groupLimitDisabled = true;
let fetchGroups = function () {
var deferred = $q.defer();
// TODO: move to groups/details once 15 is min version
$http.get(OC.linkToOCS('cloud', 2) + 'groups').then(function (response) {
$scope.groups = response.data.ocs.data.groups.reduce((obj, item) => {
obj.push({
id: item,
displayname: item,
});
return obj;
}, []);
deferred.resolve($scope.groups);
}, function (error) {
deferred.reject('Error while loading groups');
});
$http.get(OC.generateUrl('apps/deck/config')).then(function (response) {
$scope.groupLimit = response.data.groupLimit;
$scope.groupLimitDisabled = false;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while loading groupLimit');
});
return deferred.promise;
};
let updateConfig = function() {
$scope.groupLimitDisabled = true;
var deferred = $q.defer();
$http.post(OC.generateUrl('apps/deck/config/groupLimit'), {value: $scope.groupLimit}).then(function (response) {
$scope.groupLimitDisabled = false;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while saving groupLimit');
});
return deferred.promise;
};
$scope.groupLimitAdd = function (element, model) {
$scope.groupLimit.push(element);
updateConfig();
};
$scope.groupLimitRemove = function (element, model) {
$scope.groupLimit = $scope.groupLimit.filter((el) => {
return el.id !== element.id;
});
updateConfig();
};
fetchGroups();
}
var filterData = function () {
if($element.attr('id') === 'app-navigation') {
+10 -6
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
@@ -32,6 +32,10 @@ app.directive('avatar', function() {
link: function(scope, element, attr){
scope.uid = attr.displayname;
scope.displayname = attr.displayname;
scope.size = attr.size;
if (typeof scope.size === 'undefined') {
scope.size = 32;
}
var value = attr.user;
var avatardiv = $(element).find('.avatardiv');
if(typeof attr.contactsmenu !== 'undefined' && attr.contactsmenu !== 'false') {
@@ -44,8 +48,8 @@ app.directive('avatar', function() {
placement: 'top'
});
}
avatardiv.avatar(value, 32, false, false, false, attr.displayname);
avatardiv.avatar(value, scope.size, false, false, false, attr.displayname);
},
controller: function () {}
};
});
});
+38
View File
@@ -0,0 +1,38 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
import app from '../app/App.js';
app.directive('bindHtmlCompile', function ($compile) {
'use strict';
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(function () {
return scope.$eval(attrs.bindHtmlCompile);
}, function (value) {
element.html(value);
$compile(element.contents())(scope);
});
}
};
});
+59
View File
@@ -0,0 +1,59 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
import app from '../app/App';
app.directive('ngContenteditable', function($compile) {
return {
require: 'ngModel',
restrict: 'A',
scope: {
submit: '&ngSubmit'
},
link: function(scope, element, attrs, ngModel) {
//read the text typed in the div (syncing model with the view)
function read() {
ngModel.$setViewValue(element.html());
}
//render the data now in your model into your view
//$render is invoked when the modelvalue differs from the viewvalue
//see documentation: https://docs.angularjs.org/api/ng/type/ngModel.NgModelController#
ngModel.$render = function() {
element.html(ngModel.$viewValue || '');
};
//do this whenever someone starts typing
element.bind('blur keyup change', function(event) {
scope.$apply(read);
});
element.bind('keydown', function(event) {
if(event.which === 13 && event.shiftKey) {
scope.submit();
}
});
}
};
});
+3 -2
View File
@@ -30,9 +30,10 @@ app.directive('datepicker', function () {
return {
link: function (scope, elm, attr) {
return elm.datepicker({
dateFormat: 'yy-mm-dd',
dateFormat: moment.localeData().longDateFormat('L').replace('YYYY', 'YY').toLowerCase(),
onSelect: function(date, inst) {
scope.setDuedate(moment(date));
var selectedDate = $(this).datepicker('getDate');
scope.setDuedate(moment(selectedDate));
scope.$apply();
},
beforeShow: function(input, inst) {
+27 -17
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
@@ -30,22 +30,32 @@ app.directive('search', function ($document, $location) {
'onSearch': '='
},
link: function (scope) {
var box = $('#searchbox');
box.val($location.search().search);
var doSearch = function() {
var value = box.val();
scope.$apply(function () {
scope.onSearch(value);
if (OCA.Search && OCA.Search.Core) {
// eslint-disable-next-line no-unused-vars
const search = new OCA.Search((term) => {
scope.$apply(function () {
scope.onSearch(term);
});
}, () => {
scope.$apply(function () {
scope.onSearch('');
});
});
};
} else {
const box = $('#searchbox');
box.val($location.search().search);
box.on('search keyup', function (event) {
if (event.type === 'search' || event.keyCode === 13 ) {
var doSearch = function () {
var value = box.val();
scope.$apply(function () {
scope.onSearch(value);
});
};
box.on('search keyup', function (event) {
doSearch();
}
});
});
}
}
};
});
+2 -1
View File
@@ -46,7 +46,8 @@ app.filter('dateToTimestamp', function() {
app.filter('parseDate', function() {
return function (date) {
if(moment(date).isValid()) {
return moment(date).format('YYYY-MM-DD');
var dateFormat = moment.localeData().longDateFormat('L');
return moment(date).format(dateFormat);
}
return '';
};
+69
View File
@@ -0,0 +1,69 @@
/*
* @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
'use strict';
/* global __webpack_nonce__ __webpack_public_path__ OC t n */
// eslint-disable-next-line
__webpack_nonce__ = btoa(OC.requestToken);
// eslint-disable-next-line
__webpack_public_path__ = OC.linkTo('deck', 'js/build/');
import Vue from 'vue';
import BoardSelector from './views/BoardSelector';
import './../css/collections.css';
((function(OCP) {
Vue.prototype.$ = $
Vue.prototype.t = t
Vue.prototype.n = n
Vue.prototype.OC = OC
OCP.Collaboration.registerType('deck', {
action: () => {
return new Promise((resolve, reject) => {
const container = document.createElement('div');
container.id = 'deck-board-select';
const body = document.getElementById('body-user');
body.append(container);
const ComponentVM = new Vue({
render: h => h(BoardSelector),
});
ComponentVM.$mount(container);
ComponentVM.$root.$on('close', () => {
ComponentVM.$el.remove();
ComponentVM.$destroy();
reject();
});
ComponentVM.$root.$on('select', (id) => {
resolve(id);
ComponentVM.$el.remove();
ComponentVM.$destroy();
});
});
},
typeString: t('deck', 'board'),
typeIconClass: 'icon-deck'
});
})(window.OCP));
+8
View File
@@ -1,5 +1,11 @@
'use strict';
/* global __webpack_nonce__ __webpack_public_path__ OC t n */
// eslint-disable-next-line
__webpack_nonce__ = btoa(OC.requestToken);
// eslint-disable-next-line
__webpack_public_path__ = OC.linkTo('deck', 'js/build/');
// used for building a vendor stylesheet
import 'ng-sortable/dist/ng-sortable.css';
@@ -14,9 +20,11 @@ import './app/Run.js';
import ListController from 'controller/ListController.js';
import attachmentListComponent from './controller/AttachmentController.js';
import activityComponent from './controller/ActivityController.js';
app.controller('ListController', ListController);
app.component('attachmentListComponent', attachmentListComponent);
app.component('activityComponent', activityComponent);
// require all the js files from subdirectories
+161
View File
@@ -0,0 +1,161 @@
/**
* @licence
*/
import CommentModel from './commentmodel.js';
import CommentSummaryModel from './commentsummarymodel.js';
/**
* @class CommentCollection
* @classdesc
*
* Collection of comments assigned to a file
*
*/
var CommentCollection = OC.Backbone.Collection.extend(
/** @lends OCA.AnnouncementCenter.Comments.CommentCollection.prototype */ {
sync: OC.Backbone.davSync,
model: CommentModel,
/**
* Object type
*
* @type string
*/
_objectType: 'deckCard',
/**
* Object id
*
* @type string
*/
_objectId: null,
/**
* True if there are no more page results left to fetch
*
* @type bool
*/
_endReached: false,
/**
* Number of comments to fetch per page
*
* @type int
*/
_limit : 5,
/**
* Initializes the collection
*
* @param {string} [options.objectType] object type
* @param {string} [options.objectId] object id
*/
initialize: function(models, options) {
options = options || {};
if (options.objectType) {
this._objectType = options.objectType;
}
if (options.objectId) {
this._objectId = options.objectId;
}
},
url: function() {
return OC.linkToRemote('dav') + '/comments/' +
encodeURIComponent(this._objectType) + '/' +
encodeURIComponent(this._objectId) + '/';
},
setObjectId: function(objectId) {
this._objectId = objectId;
},
hasMoreResults: function() {
return !this._endReached;
},
reset: function() {
this._endReached = false;
this._summaryModel = null;
return OC.Backbone.Collection.prototype.reset.apply(this, arguments);
},
/**
* Fetch the next set of results
*/
fetchNext: function(options) {
var self = this;
if (!this.hasMoreResults()) {
return null;
}
var body = '<?xml version="1.0" encoding="utf-8" ?>\n' +
'<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n' +
// load one more so we know there is more
' <oc:limit>' + (this._limit + 1) + '</oc:limit>\n' +
' <oc:offset>' + this.length + '</oc:offset>\n' +
'</oc:filter-comments>\n';
options = options || {};
var success = options.success;
options = _.extend({
remove: false,
parse: true,
data: body,
davProperties: CommentCollection.prototype.model.prototype.davProperties,
success: function(resp) {
if (resp.length <= self._limit) {
// no new entries, end reached
self._endReached = true;
} else {
// remove last entry, for next page load
resp = _.initial(resp);
}
if (!self.set(resp, options)) {
return false;
}
if (success) {
success.apply(null, arguments);
}
self.trigger('sync', 'REPORT', self, options);
}
}, options);
return this.sync('REPORT', this, options);
},
/**
* Returns the matching summary model
*
* @return {OCA.AnnouncementCenter.Comments.CommentSummaryModel} summary model
*/
getSummaryModel: function() {
if (!this._summaryModel) {
this._summaryModel = new CommentSummaryModel({
id: this._objectId,
objectType: this._objectType
});
}
return this._summaryModel;
},
/**
* Updates the read marker for this comment thread
*
* @param {Date} [date] optional date, defaults to now
* @param {Object} [options] backbone options
*/
updateReadMarker: function(date, options) {
options = options || {};
return this.getSummaryModel().save({
readMarker: (date || new Date()).toUTCString()
}, options);
}
});
export default CommentCollection;
+119
View File
@@ -0,0 +1,119 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
var NS_OWNCLOUD = 'http://owncloud.org/ns';
/**
* @class CommentModel
* @classdesc
*
* Comment
*
*/
var CommentModel = OC.Backbone.Model.extend(
/** @lends OCA.Comments.CommentModel.prototype */ {
sync: OC.Backbone.davSync,
/**
* Object type
*
* @type string
*/
_objectType: 'deckCard',
/**
* Object id
*
* @type string
*/
_objectId: null,
initialize: function(model, options) {
options = options || {};
if (options.objectType) {
this._objectType = options.objectType;
}
if (options.objectId) {
this._objectId = options.objectId;
}
},
defaults: {
actorType: 'users',
objectType: 'deckCard'
},
davProperties: {
'id': '{' + NS_OWNCLOUD + '}id',
'message': '{' + NS_OWNCLOUD + '}message',
'actorType': '{' + NS_OWNCLOUD + '}actorType',
'actorId': '{' + NS_OWNCLOUD + '}actorId',
'actorDisplayName': '{' + NS_OWNCLOUD + '}actorDisplayName',
'creationDateTime': '{' + NS_OWNCLOUD + '}creationDateTime',
'objectType': '{' + NS_OWNCLOUD + '}objectType',
'objectId': '{' + NS_OWNCLOUD + '}objectId',
'isUnread': '{' + NS_OWNCLOUD + '}isUnread',
'mentions': '{' + NS_OWNCLOUD + '}mentions'
},
parse: function(data) {
return {
id: data.id,
message: data.message,
actorType: data.actorType,
actorId: data.actorId,
actorDisplayName: data.actorDisplayName,
creationDateTime: data.creationDateTime,
objectType: data.objectType,
objectId: data.objectId,
isUnread: (data.isUnread === 'true'),
mentions: this._parseMentions(data.mentions)
};
},
_parseMentions: function(mentions) {
if(_.isUndefined(mentions)) {
return {};
}
var result = {};
for(var i in mentions) {
var mention = mentions[i];
if(_.isUndefined(mention.localName) || mention.localName !== 'mention') {
continue;
}
result[i] = {};
for (var child = mention.firstChild; child; child = child.nextSibling) {
if(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {
continue;
}
result[i][child.localName] = child.textContent;
}
}
return result;
},
url: function() {
let baseUrl;
if (typeof this.collection === 'undefined') {
baseUrl = OC.linkToRemote('dav') + '/comments/' +
encodeURIComponent(this.get('objectType')) + '/' +
encodeURIComponent(this.get('objectId')) + '/';
} else {
baseUrl = this.collection.url();
}
if (typeof this.get('id') !== 'undefined') {
return baseUrl + this.get('id');
} else {
return baseUrl;
}
}
});
export default CommentModel;
+54
View File
@@ -0,0 +1,54 @@
var NS_OWNCLOUD = 'http://owncloud.org/ns';
/**
* @class OCA.AnnouncementCenter.Comments.CommentSummaryModel
* @classdesc
*
* Model containing summary information related to comments
* like the read marker.
*
*/
var CommentSummaryModel = OC.Backbone.Model.extend(
/** @lends OCA.AnnouncementCenter.Comments.CommentSummaryModel.prototype */ {
sync: OC.Backbone.davSync,
/**
* Object type
*
* @type string
*/
_objectType: 'deckCard',
/**
* Object id
*
* @type string
*/
_objectId: null,
davProperties: {
'readMarker': '{' + NS_OWNCLOUD + '}readMarker'
},
/**
* Initializes the summary model
*
* @param {string} [options.objectType] object type
* @param {string} [options.objectId] object id
*/
initialize: function(attrs, options) {
options = options || {};
if (options.objectType) {
this._objectType = options.objectType;
}
},
url: function() {
return OC.linkToRemote('dav') + '/comments/' +
encodeURIComponent(this._objectType) + '/' +
encodeURIComponent(this.id) + '/';
}
});
export default CommentSummaryModel;
+1
View File
File diff suppressed because one or more lines are too long
+561
View File
@@ -0,0 +1,561 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
(function($, undefined) {
var _input = document.createElement('input');
var _support = {
setSelectionRange: ('setSelectionRange' in _input) || ('selectionStart' in _input),
createTextRange: ('createTextRange' in _input) || ('selection' in document)
};
var _rNewlineIE = /\r\n/g,
_rCarriageReturn = /\r/g;
var _getValue = function(input) {
if (typeof(input.value) !== 'undefined') {
return input.value;
}
return $(input).text();
};
var _setValue = function(input, value) {
if (typeof(input.value) !== 'undefined') {
input.value = value;
} else {
$(input).text(value);
}
};
var _getIndex = function(input, pos) {
var norm = _getValue(input).replace(_rCarriageReturn, '');
var len = norm.length;
if (typeof(pos) === 'undefined') {
pos = len;
}
pos = Math.floor(pos);
// Negative index counts backward from the end of the input/textarea's value
if (pos < 0) {
pos = len + pos;
}
// Enforce boundaries
if (pos < 0) { pos = 0; }
if (pos > len) { pos = len; }
return pos;
};
var _hasAttr = function(input, attrName) {
return input.hasAttribute ? input.hasAttribute(attrName) : (typeof(input[attrName]) !== 'undefined');
};
/**
* @class
* @constructor
*/
var Range = function(start, end, length, text) {
this.start = start || 0;
this.end = end || 0;
this.length = length || 0;
this.text = text || '';
};
Range.prototype.toString = function() {
return JSON.stringify(this, null, ' ');
};
var _getCaretW3 = function(input) {
return input.selectionStart;
};
/**
* @see http://stackoverflow.com/q/6943000/467582
*/
var _getCaretIE = function(input) {
var caret, range, textInputRange, rawValue, len, endRange;
// Yeah, you have to focus twice for IE 7 and 8. *cries*
input.focus();
input.focus();
range = document.selection.createRange();
if (range && range.parentElement() === input) {
rawValue = _getValue(input);
len = rawValue.length;
// Create a working TextRange that lives only in the input
textInputRange = input.createTextRange();
textInputRange.moveToBookmark(range.getBookmark());
// Check if the start and end of the selection are at the very end
// of the input, since moveStart/moveEnd doesn't return what we want
// in those cases
endRange = input.createTextRange();
endRange.collapse(false);
if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
caret = rawValue.replace(_rNewlineIE, '\n').length;
} else {
caret = -textInputRange.moveStart("character", -len);
}
return caret;
}
// NOTE: This occurs when you highlight part of a textarea and then click in the middle of the highlighted portion in IE 6-10.
// There doesn't appear to be anything we can do about it.
// alert("Your browser is incredibly stupid. I don't know what else to say.");
// alert(range + '\n\n' + range.parentElement().tagName + '#' + range.parentElement().id);
return 0;
};
/**
* Gets the position of the caret in the given input.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @returns {Number}
* @see http://stackoverflow.com/questions/263743/how-to-get-cursor-position-in-textarea/263796#263796
*/
var _getCaret = function(input) {
if (!input) {
return undefined;
}
// Mozilla, et al.
if (_support.setSelectionRange) {
return _getCaretW3(input);
}
// IE
else if (_support.createTextRange) {
return _getCaretIE(input);
}
return undefined;
};
var _setCaretW3 = function(input, pos) {
input.setSelectionRange(pos, pos);
};
var _setCaretIE = function(input, pos) {
var range = input.createTextRange();
range.move('character', pos);
range.select();
};
/**
* Sets the position of the caret in the given input.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @param {Number} pos
* @see http://parentnode.org/javascript/working-with-the-cursor-position/
*/
var _setCaret = function(input, pos) {
input.focus();
pos = _getIndex(input, pos);
// Mozilla, et al.
if (_support.setSelectionRange) {
_setCaretW3(input, pos);
}
// IE
else if (_support.createTextRange) {
_setCaretIE(input, pos);
}
};
/**
* Inserts the specified text at the current caret position in the given input.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @param {String} text
* @see http://parentnode.org/javascript/working-with-the-cursor-position/
*/
var _insertAtCaret = function(input, text) {
var curPos = _getCaret(input);
var oldValueNorm = _getValue(input).replace(_rCarriageReturn, '');
var newLength = +(curPos + text.length + (oldValueNorm.length - curPos));
var maxLength = +input.getAttribute('maxlength');
if(_hasAttr(input, 'maxlength') && newLength > maxLength) {
var delta = text.length - (newLength - maxLength);
text = text.substr(0, delta);
}
_setValue(input, oldValueNorm.substr(0, curPos) + text + oldValueNorm.substr(curPos));
_setCaret(input, curPos + text.length);
};
var _getInputRangeW3 = function(input) {
var range = new Range();
range.start = input.selectionStart;
range.end = input.selectionEnd;
var min = Math.min(range.start, range.end);
var max = Math.max(range.start, range.end);
range.length = max - min;
range.text = _getValue(input).substring(min, max);
return range;
};
/** @see http://stackoverflow.com/a/3648244/467582 */
var _getInputRangeIE = function(input) {
var range = new Range();
input.focus();
var selection = document.selection.createRange();
if (selection && selection.parentElement() === input) {
var len, normalizedValue, textInputRange, endRange, start = 0, end = 0;
var rawValue = _getValue(input);
len = rawValue.length;
normalizedValue = rawValue.replace(/\r\n/g, "\n");
// Create a working TextRange that lives only in the input
textInputRange = input.createTextRange();
textInputRange.moveToBookmark(selection.getBookmark());
// Check if the start and end of the selection are at the very end
// of the input, since moveStart/moveEnd doesn't return what we want
// in those cases
endRange = input.createTextRange();
endRange.collapse(false);
if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
start = end = len;
} else {
start = -textInputRange.moveStart("character", -len);
start += normalizedValue.slice(0, start).split("\n").length - 1;
if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
end = len;
} else {
end = -textInputRange.moveEnd("character", -len);
end += normalizedValue.slice(0, end).split("\n").length - 1;
}
}
/// normalize newlines
start -= (rawValue.substring(0, start).split('\r\n').length - 1);
end -= (rawValue.substring(0, end).split('\r\n').length - 1);
/// normalize newlines
range.start = start;
range.end = end;
range.length = range.end - range.start;
range.text = normalizedValue.substr(range.start, range.length);
}
return range;
};
/**
* Gets the selected text range of the given input.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @returns {Range}
* @see http://stackoverflow.com/a/263796/467582
* @see http://stackoverflow.com/a/2966703/467582
*/
var _getInputRange = function(input) {
if (!input) {
return undefined;
}
// Mozilla, et al.
if (_support.setSelectionRange) {
return _getInputRangeW3(input);
}
// IE
else if (_support.createTextRange) {
return _getInputRangeIE(input);
}
return undefined;
};
var _setInputRangeW3 = function(input, startPos, endPos) {
input.setSelectionRange(startPos, endPos);
};
var _setInputRangeIE = function(input, startPos, endPos) {
var tr = input.createTextRange();
tr.moveEnd('textedit', -1);
tr.moveStart('character', startPos);
tr.moveEnd('character', endPos - startPos);
tr.select();
};
/**
* Sets the selected text range of (i.e., highlights text in) the given input.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @param {Number} startPos Zero-based index
* @param {Number} endPos Zero-based index
* @see http://parentnode.org/javascript/working-with-the-cursor-position/
* @see http://stackoverflow.com/a/2966703/467582
*/
var _setInputRange = function(input, startPos, endPos) {
startPos = _getIndex(input, startPos);
endPos = _getIndex(input, endPos);
// Mozilla, et al.
if (_support.setSelectionRange) {
_setInputRangeW3(input, startPos, endPos);
}
// IE
else if (_support.createTextRange) {
_setInputRangeIE(input, startPos, endPos);
}
};
/**
* Replaces the currently selected text with the given string.
* @param {HTMLInputElement|HTMLTextAreaElement} input input or textarea element
* @param {String} text New text that will replace the currently selected text.
* @see http://parentnode.org/javascript/working-with-the-cursor-position/
*/
var _replaceInputRange = function(input, text) {
var $input = $(input);
var oldValue = $input.val();
var selection = _getInputRange(input);
var newLength = +(selection.start + text.length + (oldValue.length - selection.end));
var maxLength = +$input.attr('maxlength');
if($input.is('[maxlength]') && newLength > maxLength) {
var delta = text.length - (newLength - maxLength);
text = text.substr(0, delta);
}
// Now that we know what the user selected, we can replace it
var startText = oldValue.substr(0, selection.start);
var endText = oldValue.substr(selection.end);
$input.val(startText + text + endText);
// Reset the selection
var startPos = selection.start;
var endPos = startPos + text.length;
_setInputRange(input, selection.length ? startPos : endPos, endPos);
};
var _selectAllW3 = function(elem) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(elem);
selection.removeAllRanges();
selection.addRange(range);
};
var _selectAllIE = function(elem) {
var range = document.body.createTextRange();
range.moveToElementText(elem);
range.select();
};
/**
* Select all text in the given element.
* @param {HTMLElement} elem Any block or inline element other than a form element.
*/
var _selectAll = function(elem) {
var $elem = $(elem);
if ($elem.is('input, textarea') || elem.select) {
$elem.select();
return;
}
// Mozilla, et al.
if (_support.setSelectionRange) {
_selectAllW3(elem);
}
// IE
else if (_support.createTextRange) {
_selectAllIE(elem);
}
};
var _deselectAll = function() {
if (document.selection) {
document.selection.empty();
}
else if (window.getSelection) {
window.getSelection().removeAllRanges();
}
};
$.extend($.fn, {
/**
* Gets or sets the position of the caret or inserts text at the current caret position in an input or textarea element.
* @returns {Number|jQuery} The current caret position if invoked as a getter (with no arguments)
* or this jQuery object if invoked as a setter or inserter.
* @see http://web.archive.org/web/20080704185920/http://parentnode.org/javascript/working-with-the-cursor-position/
* @since 1.0.0
* @example
* <pre>
* // Get position
* var pos = $('input:first').caret();
* </pre>
* @example
* <pre>
* // Set position
* $('input:first').caret(15);
* $('input:first').caret(-3);
* </pre>
* @example
* <pre>
* // Insert text at current position
* $('input:first').caret('Some text');
* </pre>
*/
caret: function() {
var $inputs = this.filter('input, textarea');
// getCaret()
if (arguments.length === 0) {
var input = $inputs.get(0);
return _getCaret(input);
}
// setCaret(position)
else if (typeof arguments[0] === 'number') {
var pos = arguments[0];
$inputs.each(function(_i, input) {
_setCaret(input, pos);
});
}
// insertAtCaret(text)
else {
var text = arguments[0];
$inputs.each(function(_i, input) {
_insertAtCaret(input, text);
});
}
return this;
},
/**
* Gets or sets the selection range or replaces the currently selected text in an input or textarea element.
* @returns {Range|jQuery} The current selection range if invoked as a getter (with no arguments)
* or this jQuery object if invoked as a setter or replacer.
* @see http://stackoverflow.com/a/2966703/467582
* @since 1.0.0
* @example
* <pre>
* // Get selection range
* var range = $('input:first').range();
* </pre>
* @example
* <pre>
* // Set selection range
* $('input:first').range(15);
* $('input:first').range(15, 20);
* $('input:first').range(-3);
* $('input:first').range(-8, -3);
* </pre>
* @example
* <pre>
* // Replace the currently selected text
* $('input:first').range('Replacement text');
* </pre>
*/
range: function() {
var $inputs = this.filter('input, textarea');
// getRange() = { start: pos, end: pos }
if (arguments.length === 0) {
var input = $inputs.get(0);
return _getInputRange(input);
}
// setRange(startPos, endPos)
else if (typeof arguments[0] === 'number') {
var startPos = arguments[0];
var endPos = arguments[1];
$inputs.each(function(_i, input) {
_setInputRange(input, startPos, endPos);
});
}
// replaceRange(text)
else {
var text = arguments[0];
$inputs.each(function(_i, input) {
_replaceInputRange(input, text);
});
}
return this;
},
/**
* Selects all text in each element of this jQuery object.
* @returns {jQuery} This jQuery object
* @see http://stackoverflow.com/a/11128179/467582
* @since 1.5.0
* @example
* <pre>
* // Select the contents of span elements when clicked
* $('span').on('click', function() { $(this).highlight(); });
* </pre>
*/
selectAll: function() {
return this.each(function(_i, elem) {
_selectAll(elem);
});
}
});
$.extend($, {
/**
* Deselects all text on the page.
* @returns {jQuery} The jQuery function
* @since 1.5.0
* @example
* <pre>
* // Select some text
* $('span').selectAll();
*
* // Deselect the text
* $.deselectAll();
* </pre>
*/
deselectAll: function() {
_deselectAll();
return this;
}
});
}(window.jQuery || window.Zepto || window.$));
+16 -10
View File
@@ -17,11 +17,15 @@ checkboxReplace = function(md, options, Token) {
idPrefix: 'checkbox'
};
options = Object.assign(defaults, options);
pattern = /\[(X|\s|\_|\-)\]\s(.*)/i;
createTokens = function(checked, label, Token) {
pattern = /(.*?)(\[(X|\s|\_|\-)\])(.*)/igm;
createTokens = function(checked, label, Token, before) {
var id, idNumeric, nodes, token;
nodes = [];
token = new Token("text", "", 0);
token.content = before;
nodes.push(token);
/**
* <div class="checkbox">
*/
@@ -42,6 +46,7 @@ checkboxReplace = function(md, options, Token) {
if (checked === true) {
token.attrs.push(["checked", "true"]);
}
token.attrs.push(["class", "checkbox"]);
nodes.push(token);
/**
@@ -68,19 +73,20 @@ checkboxReplace = function(md, options, Token) {
return nodes;
};
splitTextToken = function(original, Token) {
var checked, label, matches, text, value;
var checked, label, matches, text, value, before;
text = original.content;
matches = text.match(pattern);
matches = pattern.exec(text);
if (matches === null) {
return original;
}
checked = false;
value = matches[1];
label = matches[2];
before = matches[1];
value = matches[3];
label = matches[4];
if (value === "X" || value === "x") {
checked = true;
}
return createTokens(checked, label, Token);
return createTokens(checked, label, Token, before);
};
return function(state) {
lastId = 0;
@@ -94,11 +100,11 @@ checkboxReplace = function(md, options, Token) {
continue;
}
tokens = blockTokens[j].children;
i = tokens.length - 1;
while (i >= 0) {
i = 0;
while (i < tokens.length) {
token = tokens[i];
blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, splitTextToken(token, state.Token));
i--;
i++;
}
j++;
}
+2932 -5476
View File
File diff suppressed because it is too large Load Diff
+30 -18
View File
@@ -3,37 +3,49 @@
"description": "Frontend for the Nextcloud Deck app",
"repository": "https://github.com/nextcloud/deck",
"version": "1.0.0",
"main": "Gruntfile.js",
"directories": {
"test": "tests"
},
"dependencies": {
"@uirouter/angularjs": "^1.0.18",
"angular": "^1.7.2",
"angular-animate": "^1.7.2",
"@uirouter/angularjs": "^1.0.22",
"angular": "^1.7.8",
"angular-animate": "^1.7.8",
"angular-file-upload": "^2.5.0",
"angular-markdown-it": "^0.6.1",
"angular-sanitize": "^1.7.2",
"angular-sanitize": "^1.7.8",
"babel-polyfill": "^6.26.0",
"markdown-it": "^8.4.1",
"markdown-it": "^8.4.2",
"markdown-it-link-target": "^1.0.2",
"nextcloud-axios": "^0.1.3",
"nextcloud-vue": "^0.9.5",
"nextcloud-vue-collections": "^0.2.2",
"ng-infinite-scroll": "^1.3.0",
"ng-sortable": "^1.3.8",
"ui-select": "^0.19.8"
"ui-select": "^0.19.8",
"vue": "^2.6.10",
"vuex": "^3.1.0"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.7.0",
"css-loader": "^0.28.9",
"karma": "^2.0.3",
"mini-css-extract-plugin": "^0.4.0",
"node-sass": "^4.5.3",
"webpack": "^4.12.0",
"webpack-cli": "^3.0.8",
"webpack-merge": "^4.1.3"
"@babel/core": "^7.4.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/polyfill": "^7.4.0",
"@babel/preset-env": "^7.4.2",
"babel-loader": "^8.0.5",
"css-loader": "^2.1.1",
"karma": "^4.0.1",
"mini-css-extract-plugin": "^0.5.0",
"style-loader": "^0.23.1",
"uglifyjs-webpack-plugin": "^2.1.2",
"url-loader": "^1.1.2",
"vue-loader": "^15.7.0",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.10",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0",
"webpack-merge": "^4.2.1"
},
"scripts": {
"build": "./node_modules/webpack-cli/bin/cli.js --mode production --config webpack.prod.config.js",
"build": "NODE_ENV=production ./node_modules/webpack-cli/bin/cli.js --mode production --config webpack.prod.config.js",
"dev": "./node_modules/webpack-cli/bin/cli.js --mode development --config webpack.dev.config.js",
"watch": "./node_modules/webpack-cli/bin/cli.js --mode development --config webpack.dev.config.js --watch",
"test": "echo \"Warning: no test specified\" && exit 0"
+256
View File
@@ -0,0 +1,256 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*/
import app from '../app/App.js';
import CommentCollection from '../legacy/commentcollection';
import CommentModel from '../legacy/commentmodel';
const DECK_ACTIVITY_TYPE_BOARD = 'deck_board';
const DECK_ACTIVITY_TYPE_CARD = 'deck_card';
/* global OC oc_requesttoken */
class ActivityService {
static get RESULT_PER_PAGE() { return 50; }
constructor ($rootScope, $filter, $http, $q) {
this.running = false;
this.runningNewer = false;
this.$filter = $filter;
this.$http = $http;
this.$q = $q;
this.$rootScope = $rootScope;
this.data = {};
this.data[DECK_ACTIVITY_TYPE_BOARD] = {};
this.data[DECK_ACTIVITY_TYPE_CARD] = {};
this.toEnhanceWithComments = [];
this.commentCollection = new CommentCollection();
this.commentCollection._limit = ActivityService.RESULT_PER_PAGE;
this.commentCollection.on('request', function() {
}, this);
this.commentCollection.on('sync', function(a) {
for (let index in this.toEnhanceWithComments) {
if (this.toEnhanceWithComments.hasOwnProperty(index)) {
let item = this.toEnhanceWithComments[index];
let commentId = Array.isArray(item.subject_rich[1].comment) ? item.subject_rich[1].comment.id : item.subject_rich[1].comment;
item.commentModel = this.commentCollection.get(commentId);
if (typeof item.commentModel !== 'undefined') {
this.toEnhanceWithComments = this.toEnhanceWithComments.filter((entry) => entry.activity_id !== item.activity_id);
}
}
}
var firstUnread = this.commentCollection.findWhere({isUnread: true});
if (typeof firstUnread !== 'undefined') {
this.commentCollection.updateReadMarker();
}
this.notify();
}, this);
this.commentCollection.on('add', function(model, collection, options) {
// we need to update the model, because it consists of client data
// only, but the server might add meta data, e.g. about mentions
model.fetch();
}, this);
this.since = {
deck_card: {
},
deck_board: {
},
};
}
/**
* We need a event here to properly update scope once the external data from
* the comments backbone js code has changed
*/
subscribe(scope, callback) {
let handler = this.$rootScope.$on('notify-comment-update', callback);
scope.$on('$destroy', handler);
}
notify() {
this.$rootScope.$emit('notify-comment-update');
}
static getUrl(type, id, since) {
if (type === DECK_ACTIVITY_TYPE_CARD) {
return OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'filter?format=json&object_type=deck_card&object_id=' + id + '&limit=' + this.RESULT_PER_PAGE + '&since=' + since;
}
if (type === DECK_ACTIVITY_TYPE_BOARD) {
return OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'deck?format=json&limit=' + this.RESULT_PER_PAGE + '&since=' + since;
}
}
fetchCardActivities(type, id, since) {
this.running = true;
this.checkData(type, id);
const self = this;
return this.$http.get(ActivityService.getUrl(type, id, since)).then(function (response) {
const objects = response.data.ocs.data;
for (let index in objects) {
if (objects.hasOwnProperty(index)) {
let item = objects[index];
self.addItem(type, id, item);
if (item.activity_id > self.since[type][id].latest) {
self.since[type][id].latest = item.activity_id;
}
}
}
self.data[type][id].sort(function(a, b) {
return b.activity_id - a.activity_id;
});
self.since[type][id].oldest = response.headers('X-Activity-Last-Given');
self.running = false;
return response;
}, function (error) {
if (error.status === 304 || error.status === 404) {
self.since[type][id].finished = true;
}
self.running = false;
});
}
fetchMoreActivities(type, id, success) {
const self = this;
this.checkData(type, id);
if (this.running === true) {
return this.runningPromise;
}
if (!this.since[type][id].finished) {
this.runningPromise = this.fetchCardActivities(type, id, this.since[type][id].oldest);
this.runningPromise.then(function() {
if (type === 'deck_card') {
self.commentCollection.fetchNext();
}
});
return this.runningPromise;
}
return Promise.reject();
}
checkData(type, id) {
if (!Array.isArray(this.data[type][id])) {
this.data[type][id] = [];
}
if (typeof this.since[type][id] === 'undefined') {
this.since[type][id] = {
latest: -1,
oldestCatchedUp: false,
oldest: '0',
finished: false,
};
}
}
addItem(type, id, item) {
const self = this;
const existingEntry = this.data[type][id].findIndex((entry) => { return entry.activity_id === item.activity_id; });
if (existingEntry !== -1) {
return;
}
/** check if the fetched item from all deck activities is actually related */
const isUnrelatedBoard = (item.object_type === DECK_ACTIVITY_TYPE_BOARD && item.object_id !== id);
const isUnrelatedCard = (item.object_type === DECK_ACTIVITY_TYPE_CARD && (
(item.subject_rich[1].board && item.subject_rich[1].board.id !== id) || (typeof item.subject_rich[1].board === 'undefined'))
);
if (type === DECK_ACTIVITY_TYPE_BOARD && (isUnrelatedBoard || isUnrelatedCard)) {
return;
}
item.timestamp = new Date(item.datetime).getTime();
item.type = 'activity';
if (item.subject_rich[1].comment) {
item.type = 'comment';
item.commentModel = this.commentCollection.get(item.subject_rich[1].comment);
if (typeof item.commentModel === 'undefined') {
this.toEnhanceWithComments.push(item);
}
}
this.data[type][id].push(item);
}
/**
* Fetch newer activities starting from the latest ones that are in cache
*
* @param type
* @param id
*/
fetchNewerActivities(type, id) {
if (this.since[type][id].latest === 0) {
return Promise.resolve();
}
let self = this;
return this.fetchNewer(type, id).then(function() {
return self.fetchNewerActivities(type, id);
});
}
fetchNewer(type, id) {
const deferred = this.$q.defer();
this.running = true;
this.runningNewer = true;
const self = this;
this.$http.get(ActivityService.getUrl(type, id, this.since[type][id].latest) + '&sort=asc').then(function (response) {
let objects = response.data.ocs.data;
let data = [];
for (let index in objects) {
if (objects.hasOwnProperty(index)) {
let item = objects[index];
self.addItem(type, id, item);
}
}
self.data[type][id].sort(function(a, b) {
return b.activity_id - a.activity_id;
});
self.since[type][id].latest = response.headers('X-Activity-Last-Given');
self.data[type][id] = data.concat(self.data[type][id]);
self.running = false;
self.runningNewer = false;
deferred.resolve(objects);
}, function (error) {
self.runningNewer = false;
self.running = false;
});
return deferred.promise;
}
getData(type, id) {
if (!Array.isArray(this.data[type][id])) {
return [];
}
return this.data[type][id];
}
loadComments(id) {
this.commentCollection.reset();
this.commentCollection.setObjectId(id);
}
}
app.service('ActivityService', ActivityService);
export default ActivityService;
export {DECK_ACTIVITY_TYPE_BOARD, DECK_ACTIVITY_TYPE_CARD};
+69 -15
View File
@@ -4,35 +4,48 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
/** global: oc_defaults */
app.factory('ApiService', function ($http, $q) {
var ApiService = function (http, endpoint) {
// Consider renaming endpoint to resource
this.endpoint = endpoint;
this.baseUrl = OC.generateUrl('/apps/deck/' + endpoint);
this.baseUrl = this.generateUrl(this.endpoint);
this.http = http;
this.q = $q;
this.data = {};
this.deleted = {};
this.id = null;
this.sorted = [];
};
ApiService.prototype.generateUrl = function(path) {
return OC.generateUrl('/apps/deck/' + path);
};
ApiService.prototype.tryAllThenDeleted = function(id) {
let object = this.data[id];
if (object === undefined) {
object = this.deleted[id];
}
return object;
};
ApiService.prototype.fetchAll = function () {
var deferred = $q.defer();
var self = this;
@@ -48,6 +61,31 @@ app.factory('ApiService', function ($http, $q) {
return deferred.promise;
};
ApiService.prototype.fetchDeleted = function (scopeId) {
var deferred = $q.defer();
var self = this;
self.deleted = {};
$http.get(this.generateUrl(scopeId + '/' + this.endpoint + '/deleted')).then(function (response) {
var objects = response.data;
objects.forEach(function (obj) {
if(self.deleted[obj.id] !== undefined) {
return;
}
self.deleted[obj.id] = obj;
if(self.afterFetch !== undefined) {
self.afterFetch(obj);
}
});
deferred.resolve(objects);
}, function (error) {
deferred.reject('Fetching ' + self.endpoint + ' failed');
});
return deferred.promise;
};
ApiService.prototype.fetchOne = function (id) {
this.id = id;
@@ -81,7 +119,7 @@ app.factory('ApiService', function ($http, $q) {
self.add(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Fetching' + self.endpoint + ' failed');
deferred.reject(error.data.message);
});
return deferred.promise;
};
@@ -93,7 +131,7 @@ app.factory('ApiService', function ($http, $q) {
self.add(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Updating ' + self.endpoint + ' failed');
deferred.reject(error.data.message);
});
return deferred.promise;
@@ -104,21 +142,41 @@ app.factory('ApiService', function ($http, $q) {
var self = this;
$http.delete(this.baseUrl + '/' + id).then(function (response) {
self.remove(id);
self.deleted[id] = self.data[id];
delete self.data[id];
let deletedAt = response.data.deletedAt;
if (deletedAt !== undefined) {
self.deleted[id].deletedAt = deletedAt;
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
ApiService.prototype.undoDelete = function(entity) {
var self = this;
entity.deletedAt = 0;
var promise = this.update(entity);
promise.then(() => {
self.data[entity.id] = entity;
delete this.deleted[entity.id];
});
return promise;
};
// methods for managing data
ApiService.prototype.clear = function () {
this.data = {};
};
ApiService.prototype.add = function (entity) {
var element = this.data[entity.id];
if (element === undefined) {
@@ -132,11 +190,7 @@ app.factory('ApiService', function ($http, $q) {
element.status = {};
}
};
ApiService.prototype.remove = function (id) {
if (this.data[id] !== undefined) {
delete this.data[id];
}
};
ApiService.prototype.addAll = function (entities) {
var self = this;
angular.forEach(entities, function (entity) {
+17 -4
View File
@@ -20,7 +20,7 @@
*
*/
import app from '../app/App.js';
/* global app OC */
/* global app OC angular */
app.factory('BoardService', function (ApiService, $http, $q) {
var BoardService = function ($http, ep, $q) {
ApiService.call(this, $http, ep, $q);
@@ -59,7 +59,7 @@ app.factory('BoardService', function (ApiService, $http, $q) {
var searchData = {
format: 'json',
perPage: 4,
itemType: [0, 1]
itemType: [0, 1, 7]
};
if (search !== "") {
searchData.search = search;
@@ -79,6 +79,7 @@ app.factory('BoardService', function (ApiService, $http, $q) {
var users = response.ocs.data.exact.users.concat(response.ocs.data.users.slice(0, 4));
var groups = response.ocs.data.exact.groups.concat(response.ocs.data.groups.slice(0, 4));
var circles = response.ocs.data.exact.groups.concat(response.ocs.data.circles.slice(0, 4));
// filter out everyone who is already in the share list
angular.forEach(users, function (item) {
@@ -105,6 +106,18 @@ app.factory('BoardService', function (ApiService, $http, $q) {
self.sharees.push(acl);
}
});
angular.forEach(circles, function (item) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_CIRCLE, item);
var exists = false;
angular.forEach(self.getCurrent().acl, function (acl) {
if (acl.participant.primaryKey === item.value.shareWith) {
exists = true;
}
});
if (!exists) {
self.sharees.push(acl);
}
});
deferred.resolve(self.sharees);
}, function () {
@@ -125,8 +138,8 @@ app.factory('BoardService', function (ApiService, $http, $q) {
displayname: ocsItem.label
},
permissionEdit: true,
permissionManage: true,
permissionShare: true,
permissionManage: false,
permissionShare: false,
type: type
};
};
+9 -9
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
@@ -106,11 +106,11 @@ app.factory('CardService', function (ApiService, $http, $q) {
CardService.prototype.assignUser = function (card, user) {
var deferred = $q.defer();
var self = this;
if (self.getCurrent().assignedUsers === null) {
self.getCurrent().assignedUsers = [];
if (self.get(card.id).assignedUsers === null) {
self.get(card.id).assignedUsers = [];
}
$http.post(this.baseUrl + '/' + card.id + '/assign', {'userId': user}).then(function (response) {
self.getCurrent().assignedUsers.push(response.data);
self.get(card.id).assignedUsers.push(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
@@ -123,7 +123,7 @@ app.factory('CardService', function (ApiService, $http, $q) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + card.id + '/assign/' + user, {}).then(function (response) {
self.getCurrent().assignedUsers = self.getCurrent().assignedUsers.filter(function (obj) {
self.get(card.id).assignedUsers = self.get(card.id).assignedUsers.filter(function (obj) {
return obj.participant.uid !== user;
});
deferred.resolve(response.data);
@@ -174,4 +174,4 @@ app.factory('CardService', function (ApiService, $http, $q) {
var service = new CardService($http, 'cards', $q);
return service;
});
});
+30 -4
View File
@@ -1,5 +1,5 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
@@ -25,16 +25,23 @@ import app from '../app/App.js';
/* global OC oc_requesttoken */
export default class FileService {
constructor ($http, FileUploader, CardService) {
constructor (FileUploader, CardService, $rootScope, $filter) {
this.$filter = $filter;
this.uploader = new FileUploader();
this.cardservice = CardService;
this.uploader.onAfterAddingFile = this.onAfterAddingFile.bind(this);
this.uploader.onSuccessItem = this.onSuccessItem.bind(this);
this.uploader.onErrorItem = this.onErrorItem.bind(this);
this.uploader.onCancelItem = this.onCancelItem.bind(this);
this.maxUploadSize = $rootScope.config.maxUploadSize;
this.progress = [];
this.status = null;
}
reset () {
this.status = null;
}
runUpload (fileItem, attachmentId) {
this.status = null;
@@ -55,8 +62,17 @@ export default class FileService {
}
onAfterAddingFile (fileItem) {
if (this.maxUploadSize > 0 && fileItem.file.size > this.maxUploadSize) {
this.status = {
error: t('deck', `Failed to upload {name}`, {name: fileItem.file.name}),
message: t('deck', 'Maximum file size of {size} exceeded', {size: this.$filter('bytes')(this.maxUploadSize)})
};
return;
}
// Fetch card details before trying to upload so we can detect filename collisions properly
let self = this;
this.progress.push(fileItem);
this.cardservice.fetchOne(fileItem.cardId).then(function (data) {
let attachments = self.cardservice.get(fileItem.cardId).attachments;
let existingFile = attachments.find((attachment) => {
@@ -85,7 +101,7 @@ export default class FileService {
self.runUpload(fileItem);
}
}, function (error) {
this.progress = this.progress.filter((item) => (fileItem.file.name !== item.file.name));
});
}
@@ -97,15 +113,25 @@ export default class FileService {
attachments = attachments.splice(index, 1);
}
this.cardservice.get(item.cardId).attachments.push(response);
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
onErrorItem (item, response) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
this.status = {
error: t('deck', `Failed to upload:`) + ' ' + item.file.name,
message: response.message
};
}
onCancelItem (item) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
getProgressItemsForCard (cardId) {
return this.progress.filter((fileItem) => (fileItem.cardId === cardId));
}
}
app.service('FileService', FileService);
app.service('FileService', FileService);
+9 -25
View File
@@ -4,20 +4,20 @@
* @author Julius Härtl <jus@bitgrid.net>
*
* @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/>.
*
*
*/
import app from '../app/App.js';
@@ -27,6 +27,11 @@ app.factory('StackService', function (ApiService, CardService, $http, $q) {
ApiService.call(this, $http, ep, $q);
};
StackService.prototype = angular.copy(ApiService.prototype);
StackService.prototype.afterFetch = function(stack) {
CardService.addAll(stack.cards);
};
StackService.prototype.fetchAll = function (boardId) {
var deferred = $q.defer();
var self = this;
@@ -129,27 +134,6 @@ app.factory('StackService', function (ApiService, CardService, $http, $q) {
}
};
// FIXME: Should not show popup but proper undo mechanism
StackService.prototype.delete = function (id) {
var deferred = $q.defer();
var self = this;
OC.dialogs.confirm(t('deck', 'Are you sure you want to delete the stack with all of its data?'), t('deck', 'Delete'), function(state) {
if (!state) {
return;
}
$http.delete(self.baseUrl + '/' + id).then(function (response) {
self.remove(id);
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
});
return deferred.promise;
};
var service = new StackService($http, 'stacks', $q);
return service;
});
+112
View File
@@ -0,0 +1,112 @@
<!--
- @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
-
- @author Julius Härtl <jus@bitgrid.net>
-
- @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>
<Modal @close="close">
<div id="modal-inner" :class="{ 'icon-loading': loading }">
<h1>Select a board to add to the collection</h1>
<ul v-if="!loading">
<li v-for="board in boards" @click="selectedBoard=board.id" :class="{'selected': (selectedBoard === board.id) }">
<span class="board-bullet" :style="{ 'backgroundColor': '#' + board.color }"></span>
<span>{{ board.title }}</span>
</li>
</ul>
<button v-if="!loading" @click="select" class="primary">Select board</button>
</div>
</Modal>
</template>
<style scoped>
#modal-inner {
width: 90vw;
max-width: 400px;
padding: 20px;
}
ul {
min-height: 100px;
}
li {
padding: 6px;
border: 1px solid transparent;
}
li:hover, li:focus {
background-color: var(--color-background-dark);
}
li.selected {
border: 1px solid var(--color-primary);
}
.board-bullet {
display: inline-block;
width: 12px;
height: 12px;
border: none;
border-radius: 50%;
cursor: pointer;
}
li > span,
.avatar {
vertical-align: middle;
}
</style>
<script>
/* global OC */
import { Modal } from 'nextcloud-vue/dist/Components/Modal'
import { Avatar } from 'nextcloud-vue/dist/Components/Avatar'
import axios from 'nextcloud-axios'
export default {
name: 'CollaborationView',
components: {
Modal, Avatar
},
data() {
return {
boards: [],
selectedBoard: null,
loading: true,
}
},
beforeMount() {
this.fetchBoards();
},
methods: {
fetchBoards() {
axios.get(OC.generateUrl('/apps/deck/boards')).then((response) => {
this.boards = response.data
this.loading = false
})
},
close() {
this.$root.$emit('close');
},
select() {
this.$root.$emit('select', this.selectedBoard)
}
},
computed: {
},
}
</script>
+56
View File
@@ -0,0 +1,56 @@
<!--
- @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
-
- @author Julius Härtl <jus@bitgrid.net>
-
- @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>
<collection-list v-if="boardId" type="deck" :id="boardId" :name="boardTitle"></collection-list>
</div>
</template>
<script>
import { CollectionList } from 'nextcloud-vue-collections';
import Vue from 'vue';
import PopoverMenu from 'nextcloud-vue/dist/Components/PopoverMenu'
Vue.component('popover-menu', PopoverMenu);
export default {
name: 'CollaborationView',
computed: {
boardId() {
if (this.$root.model && this.$root.model.id) {
return '' + this.$root.model.id;
}
return null;
},
boardTitle() {
if (this.$root.model && this.$root.model.title) {
return '' + this.$root.model.title;
}
return '';
}
},
components: {
CollectionList: CollectionList
}
}
</script>
+70 -62
View File
@@ -1,68 +1,76 @@
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
require('babel-polyfill');
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
node: {
fs: 'empty',
},
entry: {
deck: ['babel-polyfill', './init.js'],
},
output: {
filename: '[name].js',
path: __dirname + '/build'
},
resolve: {
modules: [path.resolve(__dirname), 'node_modules'],
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['env'],
}
},
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader'
]
}
]
},
optimization: {
splitChunks: {
cacheGroups: {
/* separate vendor chunk for node_modules and legacy scripts */
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendor',
chunks: 'all'
},
legacy: {
test: /[\\/]legacy[\\/]/,
name: 'vendor',
chunks: 'all'
}
}
}
},
/* use external jQuery from server */
externals: {
'jquery': 'jQuery'
},
plugins: [
new MiniCssExtractPlugin('[name].css'),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
node: {
fs: 'empty',
},
entry: {
deck: ['./init.js'],
collections: ['./init-collections.js']
},
output: {
filename: '[name].js',
path: __dirname + '/build'
},
module: {
rules: [
{
test: /\.css$/,
use: ['vue-style-loader', 'style-loader', 'css-loader']
},
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-syntax-dynamic-import']
}
},
{
test: /\.scss$/,
use: [
'vue-style-loader',
'css-loader',
'sass-loader'
]
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader',
options: {
name: '[name].[ext]?[hash]'
}
},
]
},
/* use external jQuery from server */
externals: {
'jquery': 'jQuery'
},
resolve: {
alias: {
vue$: 'vue/dist/vue.esm.js'
},
extensions: ['*', '.js', '.vue', '.json'],
modules: [
path.resolve(__dirname),
path.join(__dirname, 'node_modules'),
'node_modules'
]
},
plugins: [
new VueLoaderPlugin(),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
};
+2 -1
View File
@@ -2,5 +2,6 @@ const merge = require('webpack-merge');
const baseConfig = require('./webpack.config.js');
module.exports = merge(baseConfig, {
mode: 'development'
mode: 'development',
devtool: 'source-map',
});
+2
View File
@@ -15,6 +15,7 @@ exclude = [
"js/Gruntfile.js",
"js/package.json",
"js/package-lock.json",
"docs/",
"tests",
".codecov.yml",
"composer.json",
@@ -28,6 +29,7 @@ exclude = [
"issue_template.md",
"krankerl.toml",
"Makefile",
"mkdocs.yml",
"run-eslint.sh"
]
-30
View File
@@ -1,30 +0,0 @@
OC.L10N.register(
"deck",
{
"Delete" : "Desaniciar",
"Hours" : "Hores",
"Minutes" : "Minutos",
"Finished" : "Finó",
"Action needed" : "Precísase aición",
"Later" : "Más sero",
"Deck" : "Deck",
"Submit" : "Unviar",
"Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Share" : "Compartir",
"Edit" : "Editar",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"by" : "por",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Saved" : "Guardóse"
},
"nplurals=2; plural=(n != 1);");
-28
View File
@@ -1,28 +0,0 @@
{ "translations": {
"Delete" : "Desaniciar",
"Hours" : "Hores",
"Minutes" : "Minutos",
"Finished" : "Finó",
"Action needed" : "Precísase aición",
"Later" : "Más sero",
"Deck" : "Deck",
"Submit" : "Unviar",
"Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Share" : "Compartir",
"Edit" : "Editar",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"by" : "por",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Saved" : "Guardóse"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+36 -8
View File
@@ -1,34 +1,56 @@
OC.L10N.register(
"deck",
{
"Delete" : "Esborra",
"Please provide a content for your comment." : "Si us plau, proporciona un comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha esborrat el comentari",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Esborra usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Maximum file size of {size} exceeded" : "Mida màxima per fitxer de {size} superada",
"You have created a new board {board}" : "Has creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Has esborrat el taulell {board}",
"{user} has deleted the board {board}" : "{user} ha esborrat el taulell {board}",
"You have restored the board {board}" : "Has restaurat el taulell {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el taulell {board}",
"You have shared the board {board} with {acl}" : "Has compartit el taulell {board} amb {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} ha compartit el taulell {board} amb {sharee}",
"You have removed {acl} from the board {board}" : "Has tret {acl} del taulell {board}",
"You have archived the board {board}" : "Has arxivat el taulell {board}",
"You have renamed the card {before} to {card}" : "Has canviat el nom de la targeta de {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha canviat el nom de la targeta de {before} a {card}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha assignat a {assigneduser} la targeta {card} del taulell {board}",
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de carta</strong> de l'aplicació Tauler",
"Deck" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"Personal" : "Personal",
"Finished" : "Acabat",
"To review" : "Per revisar",
"Action needed" : "Acció necessaria",
"Later" : "Més tard",
"Deck" : "Coberta",
"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 cartes i poseu-les en ordre\n- 📄 Apunteu notes adicionals 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- 💬 Debatiu amb el vostre equip usant comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Add a new stack" : "Afegeix una nova pila",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"Board details" : "Detalls de la junta",
"All Boards" : "Totes les juntes",
"Archived boards" : "Taulers arxivats",
"Archive" : "Arxiu",
"Unarchive" : "Desbloquejar",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Enter a card title" : "Introduïu un títol de la targeta",
"Close" : "Tanca",
"Sharing" : "Compartir",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Seleccioneu usuaris o grups per compartir",
"No matching user or group found." : "No s'ha trobat cap usuari o grup coincident.",
"Share" : "Comparteix",
"Edit" : "Edita",
"Share" : "Comparteix",
"Manage" : "Gestor",
"Discard share" : "Descarta la compartició",
"Create a new tag" : "Crea una nova etiqueta",
"Title" : "Title",
"Title" : "Títol",
"Members" : "Membres",
"More actions" : "Més accions",
"Edit board" : "Edita el tauler",
@@ -40,6 +62,9 @@ OC.L10N.register(
"by" : "per",
"Modified:" : "Modificat:",
"Created:" : "Creat:",
"Assign users" : "Assigna usuaris",
"Choose a user to assign" : "Escull un usuari per assignar",
"Assign this card to a user" : "Assigna aquesta targeta a un usuari",
"Due date" : "Per la data",
"Click to set" : "Feu clic per configurar",
"Remove due date" : "Elimina la data de venciment",
@@ -49,6 +74,9 @@ OC.L10N.register(
"Add a card description…" : "Afegeix una descripció de la targeta ...",
"Shared boards" : "Taulers compartits",
"Move board to archive" : "Mou la placa a l'arxiu",
"Create a new board" : "Crear nova"
"Create a new board" : "Crear nova",
"Settings" : "Paràmetres",
"Limit deck to groups" : "Limita el tauler per grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podràn seguir treballant en els taulers que hagin estat compartits amb ells."
},
"nplurals=2; plural=(n != 1);");
+36 -8
View File
@@ -1,32 +1,54 @@
{ "translations": {
"Delete" : "Esborra",
"Please provide a content for your comment." : "Si us plau, proporciona un comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha esborrat el comentari",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Esborra usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Maximum file size of {size} exceeded" : "Mida màxima per fitxer de {size} superada",
"You have created a new board {board}" : "Has creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Has esborrat el taulell {board}",
"{user} has deleted the board {board}" : "{user} ha esborrat el taulell {board}",
"You have restored the board {board}" : "Has restaurat el taulell {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el taulell {board}",
"You have shared the board {board} with {acl}" : "Has compartit el taulell {board} amb {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} ha compartit el taulell {board} amb {sharee}",
"You have removed {acl} from the board {board}" : "Has tret {acl} del taulell {board}",
"You have archived the board {board}" : "Has arxivat el taulell {board}",
"You have renamed the card {before} to {card}" : "Has canviat el nom de la targeta de {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha canviat el nom de la targeta de {before} a {card}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha assignat a {assigneduser} la targeta {card} del taulell {board}",
"You have commented on card {card}" : "Heu comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de carta</strong> de l'aplicació Tauler",
"Deck" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"Personal" : "Personal",
"Finished" : "Acabat",
"To review" : "Per revisar",
"Action needed" : "Acció necessaria",
"Later" : "Més tard",
"Deck" : "Coberta",
"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 cartes i poseu-les en ordre\n- 📄 Apunteu notes adicionals 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- 💬 Debatiu amb el vostre equip usant comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Add a new stack" : "Afegeix una nova pila",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"Board details" : "Detalls de la junta",
"All Boards" : "Totes les juntes",
"Archived boards" : "Taulers arxivats",
"Archive" : "Arxiu",
"Unarchive" : "Desbloquejar",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Enter a card title" : "Introduïu un títol de la targeta",
"Close" : "Tanca",
"Sharing" : "Compartir",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Seleccioneu usuaris o grups per compartir",
"No matching user or group found." : "No s'ha trobat cap usuari o grup coincident.",
"Share" : "Comparteix",
"Edit" : "Edita",
"Share" : "Comparteix",
"Manage" : "Gestor",
"Discard share" : "Descarta la compartició",
"Create a new tag" : "Crea una nova etiqueta",
"Title" : "Title",
"Title" : "Títol",
"Members" : "Membres",
"More actions" : "Més accions",
"Edit board" : "Edita el tauler",
@@ -38,6 +60,9 @@
"by" : "per",
"Modified:" : "Modificat:",
"Created:" : "Creat:",
"Assign users" : "Assigna usuaris",
"Choose a user to assign" : "Escull un usuari per assignar",
"Assign this card to a user" : "Assigna aquesta targeta a un usuari",
"Due date" : "Per la data",
"Click to set" : "Feu clic per configurar",
"Remove due date" : "Elimina la data de venciment",
@@ -47,6 +72,9 @@
"Add a card description…" : "Afegeix una descripció de la targeta ...",
"Shared boards" : "Taulers compartits",
"Move board to archive" : "Mou la placa a l'arxiu",
"Create a new board" : "Crear nova"
"Create a new board" : "Crear nova",
"Settings" : "Paràmetres",
"Limit deck to groups" : "Limita el tauler per grups",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitar el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podràn seguir treballant en els taulers que hagin estat compartits amb ells."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+137 -15
View File
@@ -1,46 +1,155 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Opravdu chcete smazat tuto kartu a všechna její data?",
"Delete" : "Smazat",
"Please provide a content for your comment." : "Zadejte obsah svého komentáře.",
"Posting the comment failed." : "Odeslání komentáře se nezdařilo.",
"The comment has been deleted" : "Komentář byl smazán",
"The associated stack is deleted as well, it will be restored as well." : "Související stack je také smazaný a bude také obnoven.",
"Restore associated stack" : "Obnovit související stack",
"Remove user from card" : "Odebrat uživatele z karty",
"Hours" : "Hodiny",
"Minutes" : "Minuty",
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
"board" : "nástěnka",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}",
"{user} has deleted the board {board}" : "{user} smazal(a) nástěnku {board}",
"You have restored the board {board}" : "Obnovili jste nástěnku {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} nasdílel(a) nástěnku {board} pro {sharee}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}",
"{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) desku {before} na {board}",
"You have archived the board {board}" : "Zaarchivovali jste nástěnku {board}",
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový balíček {stack} na desce {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste hromádku {before} na {stack} na desce {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) hromádku {before} na {stack} na desce {board}",
"You have deleted stack {stack} on board {board}" : "Smazali jste balíček {stack} na desce {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) balíček {stack} na desce {board}",
"You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} v balíčku {stack} na kartě {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} na hromádce {stack} na desce {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} na hromádce {stack} na desce {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} v balíčku {board} na desce {board}",
"You have renamed the card {before} to {card}" : "Přejmenovali jste kartu {before} na {card}",
"{user} has renamed the card {before} to {card}" : "{user} přejmenoval(a) {before} na {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} v hromádce {stack} na desce {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} v hromádce {stack} na desce {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} v hromádce {stack} na desce {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} na hromádce {stack} na nástěnce {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} v balíčku {stack} na desce {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} na hromádce {stack} na desce {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} na hromádce {stack} na desce {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}",
"You have updated the due date of card {card} to {after}" : "Změnili jste termín na kartě {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} v hromádce {stack} na nástěnce {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} přidal(a) štítek {label} ke kartě {card} v hromádce {stack} na nástěnce {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} v hromádce {stack} na desce {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} na hromádce {stack} na desce {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {assigneduser} ke kartě {card} na desce {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na nástěnce {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na desce {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} z balíčku {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} přidal(a) přílohu {attachment} ke kartě {card}",
"You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} na kartě {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} smazal(a) přílohu {attachment} u karty {card}",
"You have restored the attachment {attachment} to card {card}" : "Obnovili jste přílohu {attachment} ke kartě {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis mapy</strong> v Deck-aplikace byl změněn",
"Deck" : "Balík",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>",
"Personal" : "Osobní",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kartu „%s“ na „%s“ vám přiřadil(a) %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vám přiřadil(a) kartu „%s“ na „%s“.",
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
"%s has mentioned you in a comment on \"%s\"." : "%s vás zmínil(a) v komentáři k „%s“.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} vás zmínil(a) v komentáři v „%s“.",
"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",
"Deck" : "Balík",
"To do" : "Udělat",
"Doing" : "Provádí se",
"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" : "Nahrávaný soubor přesáhl svou velikostí hodnotu direktivy MAX_FILE_SIZE, určenou v HTML formuláři",
"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í složka pro dočasné soubory",
"Could not write file to disk" : "Soubor se nedaří se zapsat na úložiště",
"A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.",
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní řízení 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- 📎 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" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
"Show archived cards" : "Zobrazit archivované karty",
"Hide archived cards" : "Skrýt archivované karty",
"Board details" : "Detaily desky",
"Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Show board details" : "Zobrazit podrobnosti o desce",
"All Boards" : "Všechny desky",
"Archived boards" : "Archivované desky",
"Archive" : "Archiv",
"Unarchive" : "Zrušit archivování",
"Share board" : "Sdílet nástěnku",
"Archived cards" : "Archivované karty",
"Actions" : "Akce",
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
"Assign card to me" : "Přiřadit kartu mě",
"Unassign card from me" : "Zrušit přiřazení karty mě",
"Archive card" : "Archivovat kartu",
"Unarchive card" : "Zrušit archivaci karty",
"Delete card" : "Smazat kartu",
"Enter a card title" : "Zadejte nadpis karty",
"Add card" : "Přidat kartu",
"Close" : "Zavřít",
"Sharing" : "Sdílení",
"Tags" : "Značky",
"Deleted items" : "Smazané položky",
"Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení",
"Access for" : "Přístup pro",
"Group" : "Skupina",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Share" : "Sdílet",
"Edit" : "Upravit",
"Share" : "Sdílet",
"Manage" : "Spravovat",
"Discard share" : "Zrušit sdílení",
"Update" : "Aktualizovat",
"Sharing has been disabled for your account." : "Sdílení bylo zakázáno pro váš konto.",
"Update tag" : "Aktualizovat štítek",
"Edit tag" : "Upravit štítek",
"Delete tag" : "Smazat štítek",
"Create" : "Vytvořit",
"Create a new tag" : "Vytvořit nový štítek",
"Deleted stacks" : "Smazané zásobníky",
"Deleted cards" : "Smazané karty",
"Status" : "Stav",
"No archived boards to display" : "Žádné archivované nástěnky k zobrazení",
"No shared boards to display" : "Žádné sdílené nástěnky k zobrazení",
"Title" : "Název",
"Members" : "Členové",
"More actions" : "Více akcí",
@@ -48,11 +157,19 @@ OC.L10N.register(
"Archive board" : "Archivovaná deska",
"Unarchive board" : "Odarchivovat desku",
"Delete board" : "Smazat desku",
"Reset" : "Obnovit",
"Update board" : "Aktualizovat desku",
"Reset board" : "Resetovat nástěnku",
"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",
"Create board" : "Vytvořit nástěnku",
"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.",
"Delete attachment" : "Smazat přílohu",
"Modified:" : "Upraveno:",
"Created:" : "Vytvořeno:",
"Choose a tag" : "Vyberte štítek",
@@ -65,13 +182,18 @@ OC.L10N.register(
"Click to set" : "Klikněte pro výběr",
"Remove due date" : "Odstranit termín",
"Description" : "Popis",
"Attachments" : "Přílohy",
"Saved" : "Uloženo",
"Unsaved changes" : "Neuložené změny",
"Insert attachment" : "Vložit přílohu",
"Formatting help" : "Nápověda k formátování",
"Add a card description…" : "Přidat popis karty...",
"Upload attachment" : "Nahrát přílohu",
"Add a card description…" : "Přidat popis karty…",
"Shared boards" : "Sdílené desky",
"View more" : "Ukázat více",
"Move board to archive" : "Přesunout desku do archivu",
"Create a new board" : "Vytvořit novou desku"
"Create a new board" : "Vytvořit novou desku",
"Settings" : "Nastavení",
"Limit deck to groups" : "Omezte Deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení Decků brání uživatelům, kteří nejsou součástí těchto skupin, při vytváření vlastních desek. Uživatelé mohou stále pracovat na deskách, které jsou s nimi sdíleny."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+137 -15
View File
@@ -1,44 +1,153 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Opravdu chcete smazat tuto kartu a všechna její data?",
"Delete" : "Smazat",
"Please provide a content for your comment." : "Zadejte obsah svého komentáře.",
"Posting the comment failed." : "Odeslání komentáře se nezdařilo.",
"The comment has been deleted" : "Komentář byl smazán",
"The associated stack is deleted as well, it will be restored as well." : "Související stack je také smazaný a bude také obnoven.",
"Restore associated stack" : "Obnovit související stack",
"Remove user from card" : "Odebrat uživatele z karty",
"Hours" : "Hodiny",
"Minutes" : "Minuty",
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
"board" : "nástěnka",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}",
"{user} has deleted the board {board}" : "{user} smazal(a) nástěnku {board}",
"You have restored the board {board}" : "Obnovili jste nástěnku {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} nasdílel(a) nástěnku {board} pro {sharee}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}",
"{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) desku {before} na {board}",
"You have archived the board {board}" : "Zaarchivovali jste nástěnku {board}",
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový balíček {stack} na desce {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste hromádku {before} na {stack} na desce {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) hromádku {before} na {stack} na desce {board}",
"You have deleted stack {stack} on board {board}" : "Smazali jste balíček {stack} na desce {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) balíček {stack} na desce {board}",
"You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} v balíčku {stack} na kartě {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} na hromádce {stack} na desce {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} na hromádce {stack} na desce {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} v balíčku {board} na desce {board}",
"You have renamed the card {before} to {card}" : "Přejmenovali jste kartu {before} na {card}",
"{user} has renamed the card {before} to {card}" : "{user} přejmenoval(a) {before} na {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} v hromádce {stack} na desce {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} v hromádce {stack} na desce {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} v hromádce {stack} na desce {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} na hromádce {stack} na nástěnce {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} v balíčku {stack} na desce {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} na hromádce {stack} na desce {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} na hromádce {stack} na desce {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}",
"You have updated the due date of card {card} to {after}" : "Změnili jste termín na kartě {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} v hromádce {stack} na nástěnce {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} přidal(a) štítek {label} ke kartě {card} v hromádce {stack} na nástěnce {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} v hromádce {stack} na desce {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} na hromádce {stack} na desce {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {assigneduser} ke kartě {card} na desce {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na nástěnce {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na desce {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} z balíčku {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} přidal(a) přílohu {attachment} ke kartě {card}",
"You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} na kartě {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} smazal(a) přílohu {attachment} u karty {card}",
"You have restored the attachment {attachment} to card {card}" : "Obnovili jste přílohu {attachment} ke kartě {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis mapy</strong> v Deck-aplikace byl změněn",
"Deck" : "Balík",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>",
"Personal" : "Osobní",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kartu „%s“ na „%s“ vám přiřadil(a) %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} vám přiřadil(a) kartu „%s“ na „%s“.",
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
"%s has mentioned you in a comment on \"%s\"." : "%s vás zmínil(a) v komentáři k „%s“.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} vás zmínil(a) v komentáři v „%s“.",
"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",
"Deck" : "Balík",
"To do" : "Udělat",
"Doing" : "Provádí se",
"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" : "Nahrávaný soubor přesáhl svou velikostí hodnotu direktivy MAX_FILE_SIZE, určenou v HTML formuláři",
"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í složka pro dočasné soubory",
"Could not write file to disk" : "Soubor se nedaří se zapsat na úložiště",
"A PHP extension stopped the file upload" : "PHP rozšíření zastavilo nahrávání souboru.",
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní řízení 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- 📎 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" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
"Show archived cards" : "Zobrazit archivované karty",
"Hide archived cards" : "Skrýt archivované karty",
"Board details" : "Detaily desky",
"Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Show board details" : "Zobrazit podrobnosti o desce",
"All Boards" : "Všechny desky",
"Archived boards" : "Archivované desky",
"Archive" : "Archiv",
"Unarchive" : "Zrušit archivování",
"Share board" : "Sdílet nástěnku",
"Archived cards" : "Archivované karty",
"Actions" : "Akce",
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
"Assign card to me" : "Přiřadit kartu mě",
"Unassign card from me" : "Zrušit přiřazení karty mě",
"Archive card" : "Archivovat kartu",
"Unarchive card" : "Zrušit archivaci karty",
"Delete card" : "Smazat kartu",
"Enter a card title" : "Zadejte nadpis karty",
"Add card" : "Přidat kartu",
"Close" : "Zavřít",
"Sharing" : "Sdílení",
"Tags" : "Značky",
"Deleted items" : "Smazané položky",
"Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení",
"Access for" : "Přístup pro",
"Group" : "Skupina",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Share" : "Sdílet",
"Edit" : "Upravit",
"Share" : "Sdílet",
"Manage" : "Spravovat",
"Discard share" : "Zrušit sdílení",
"Update" : "Aktualizovat",
"Sharing has been disabled for your account." : "Sdílení bylo zakázáno pro váš konto.",
"Update tag" : "Aktualizovat štítek",
"Edit tag" : "Upravit štítek",
"Delete tag" : "Smazat štítek",
"Create" : "Vytvořit",
"Create a new tag" : "Vytvořit nový štítek",
"Deleted stacks" : "Smazané zásobníky",
"Deleted cards" : "Smazané karty",
"Status" : "Stav",
"No archived boards to display" : "Žádné archivované nástěnky k zobrazení",
"No shared boards to display" : "Žádné sdílené nástěnky k zobrazení",
"Title" : "Název",
"Members" : "Členové",
"More actions" : "Více akcí",
@@ -46,11 +155,19 @@
"Archive board" : "Archivovaná deska",
"Unarchive board" : "Odarchivovat desku",
"Delete board" : "Smazat desku",
"Reset" : "Obnovit",
"Update board" : "Aktualizovat desku",
"Reset board" : "Resetovat nástěnku",
"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",
"Create board" : "Vytvořit nástěnku",
"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.",
"Delete attachment" : "Smazat přílohu",
"Modified:" : "Upraveno:",
"Created:" : "Vytvořeno:",
"Choose a tag" : "Vyberte štítek",
@@ -63,13 +180,18 @@
"Click to set" : "Klikněte pro výběr",
"Remove due date" : "Odstranit termín",
"Description" : "Popis",
"Attachments" : "Přílohy",
"Saved" : "Uloženo",
"Unsaved changes" : "Neuložené změny",
"Insert attachment" : "Vložit přílohu",
"Formatting help" : "Nápověda k formátování",
"Add a card description…" : "Přidat popis karty...",
"Upload attachment" : "Nahrát přílohu",
"Add a card description…" : "Přidat popis karty…",
"Shared boards" : "Sdílené desky",
"View more" : "Ukázat více",
"Move board to archive" : "Přesunout desku do archivu",
"Create a new board" : "Vytvořit novou desku"
"Create a new board" : "Vytvořit novou desku",
"Settings" : "Nastavení",
"Limit deck to groups" : "Omezte Deck na skupiny",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Omezení Decků brání uživatelům, kteří nejsou součástí těchto skupin, při vytváření vlastních desek. Uživatelé mohou stále pracovat na deskách, které jsou s nimi sdíleny."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
+4 -14
View File
@@ -1,12 +1,10 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Er du sikker på, at du vil slette dette kort med alle dets data?",
"Delete" : "Slet",
"Remove user from card" : "Fjern bruger fra kort",
"Hours" : "Timer",
"Minutes" : "Minutter",
"Are you sure you want to delete the stack with all of its data?" : "Er du sikker på, at du ønsker at slette denne stak med alle data?",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin udløbsdato.",
"The board \"%s\" has been shared with you by %s." : "Brættet \"%s\" er blevet delt med dig af %s.",
"{user} has shared the board %s with you." : "{user} har delt brættet %s med dig.",
@@ -14,32 +12,25 @@ OC.L10N.register(
"To review" : "Gennemse",
"Action needed" : "Handling påkrævet",
"Later" : "Senere",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Et Kanban-inspireret projekt- og styringsværktøj til Nextcloud",
"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" : "Deck er et Kanban-inspireret organisationsværktøj beregnet til personlig planlægning og projektstyring for teams - integreret med Nextcloud.\n\n\n- 📥 Tilføj dine opgaver til kort og organiser dem\n- 📄 Skriv yderligere noter i Markdown\n- 🔖 Marker opgaver med tags for bedre organisering\n- 👥 Del med team, venner eller familie\n- 🚀 Organiser dit projekt",
"Add a new stack" : "Tilføj en ny stak",
"Submit" : "Tilføj",
"Show archived cards" : "Vis arkiverede kort",
"Hide archived cards" : "Skjul arkiverede kort",
"Board details" : "Liste detaljer",
"All Boards" : "Alle lister",
"Archived boards" : "Arkiverede lister",
"Archive" : "Arkivér",
"Unarchive" : "Annuller arkivering",
"Enter a card title" : "Angiv titel på kort",
"Add card" : "Tilføj kort",
"Close" : "Luk",
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Select users or groups to share with" : "Vælg brugere eller grupper og dele med",
"Access for" : "Adgang for",
"No matching user or group found." : "Ingen bruger eller gruppe fundet",
"Loading" : "Loader",
"Share" : "Del",
"Edit" : "Redigér",
"Share" : "Del",
"Manage" : "Administrer ",
"Discard share" : "Kasser deling",
"Update" : "Opdatér",
"Create" : "Opret",
"Create a new tag" : "Opret et nyt mærkat",
"Status" : "Status",
@@ -50,7 +41,6 @@ OC.L10N.register(
"Archive board" : "Arkivér liste",
"Unarchive board" : "Annuller arkivering af liste",
"Delete board" : "Slet liste",
"Reset" : "Nulstil",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Fortryd sletning af board - Ellers vil boardet blive slettet ved næste cronjob kørsel.",
"Create new board" : "Opret ny liste",
"New board title" : "Ny titel på liste",
@@ -72,8 +62,8 @@ OC.L10N.register(
"Formatting help" : "Hjælp til formatering",
"Add a card description…" : "Tilføj en beskrivelse...",
"Shared boards" : "Delte lister",
"View more" : "Vis mere",
"Move board to archive" : "Flyt liste til arkiv",
"Create a new board" : "Opret ny liste"
"Create a new board" : "Opret ny liste",
"Settings" : "Indstillinger"
},
"nplurals=2; plural=(n != 1);");
+4 -14
View File
@@ -1,10 +1,8 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Er du sikker på, at du vil slette dette kort med alle dets data?",
"Delete" : "Slet",
"Remove user from card" : "Fjern bruger fra kort",
"Hours" : "Timer",
"Minutes" : "Minutter",
"Are you sure you want to delete the stack with all of its data?" : "Er du sikker på, at du ønsker at slette denne stak med alle data?",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin udløbsdato.",
"The board \"%s\" has been shared with you by %s." : "Brættet \"%s\" er blevet delt med dig af %s.",
"{user} has shared the board %s with you." : "{user} har delt brættet %s med dig.",
@@ -12,32 +10,25 @@
"To review" : "Gennemse",
"Action needed" : "Handling påkrævet",
"Later" : "Senere",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Et Kanban-inspireret projekt- og styringsværktøj til Nextcloud",
"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" : "Deck er et Kanban-inspireret organisationsværktøj beregnet til personlig planlægning og projektstyring for teams - integreret med Nextcloud.\n\n\n- 📥 Tilføj dine opgaver til kort og organiser dem\n- 📄 Skriv yderligere noter i Markdown\n- 🔖 Marker opgaver med tags for bedre organisering\n- 👥 Del med team, venner eller familie\n- 🚀 Organiser dit projekt",
"Add a new stack" : "Tilføj en ny stak",
"Submit" : "Tilføj",
"Show archived cards" : "Vis arkiverede kort",
"Hide archived cards" : "Skjul arkiverede kort",
"Board details" : "Liste detaljer",
"All Boards" : "Alle lister",
"Archived boards" : "Arkiverede lister",
"Archive" : "Arkivér",
"Unarchive" : "Annuller arkivering",
"Enter a card title" : "Angiv titel på kort",
"Add card" : "Tilføj kort",
"Close" : "Luk",
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Select users or groups to share with" : "Vælg brugere eller grupper og dele med",
"Access for" : "Adgang for",
"No matching user or group found." : "Ingen bruger eller gruppe fundet",
"Loading" : "Loader",
"Share" : "Del",
"Edit" : "Redigér",
"Share" : "Del",
"Manage" : "Administrer ",
"Discard share" : "Kasser deling",
"Update" : "Opdatér",
"Create" : "Opret",
"Create a new tag" : "Opret et nyt mærkat",
"Status" : "Status",
@@ -48,7 +39,6 @@
"Archive board" : "Arkivér liste",
"Unarchive board" : "Annuller arkivering af liste",
"Delete board" : "Slet liste",
"Reset" : "Nulstil",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Fortryd sletning af board - Ellers vil boardet blive slettet ved næste cronjob kørsel.",
"Create new board" : "Opret ny liste",
"New board title" : "Ny titel på liste",
@@ -70,8 +60,8 @@
"Formatting help" : "Hjælp til formatering",
"Add a card description…" : "Tilføj en beskrivelse...",
"Shared boards" : "Delte lister",
"View more" : "Vis mere",
"Move board to archive" : "Flyt liste til arkiv",
"Create a new board" : "Opret ny liste"
"Create a new board" : "Opret ny liste",
"Settings" : "Indstillinger"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+129 -26
View File
@@ -1,19 +1,100 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Möchtest Du wirklich diese Karte mit all ihren Daten löschen?",
"Delete" : "Löschen",
"Please provide a content for your comment." : "Bitte gib einen Inhalt für Deinen Kommentar an.",
"Posting the comment failed." : "Absenden des Kommentars ist fehlgeschlagen.",
"The comment has been deleted" : "Der Kommentar wurde gelöscht",
"The associated stack is deleted as well, it will be restored as well." : "Der dazugehörige Stapel wurde auch gelöscht, er wird ebenfalls wiederhergestellt.",
"Restore associated stack" : "Dazugehörigen Stapel wiederherstellen",
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Are you sure you want to delete the stack with all of its data?" : "Möchtest du diesen Stapel mit allen Daten wirklich löschen?",
"board" : "Board",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"You have created a new board {board}" : "Du hast das neue Board {board} erstellt",
"{user} has created a new board {board}" : "{user} hat das neue Board {board} erstellt",
"You have deleted the board {board}" : "Du hast das Board {board} gelöscht",
"{user} has deleted the board {board}" : "{user} hat das Board {board} gelöscht",
"You have restored the board {board}" : "Du hast das Board {board} wiederhergestellt",
"{user} has restored the board {board}" : "{user} hat das Board {board} wiederhergestellt",
"You have shared the board {board} with {acl}" : "Du hast das Board {board} mit {acl} geteilt",
"{user} has shared the board {board} with {sharee}" : "{user} hat das Board {board} mit {sharee} geteilt",
"You have removed {acl} from the board {board}" : "Du hast {acl} vom Board {board} entfernt",
"{user} has removed {acl} from the board {board}" : "{user} hat {acl} vom Board {board} entfernt",
"You have renamed the board {before} to {board}" : "Du hast das Board {before} in {board} umbenannt",
"{user} has renamed the board {before} to {board}" : "{user} hat das Board {before} in {board} umbenannt",
"You have archived the board {board}" : "Du hast das Board {board} archiviert",
"{user} has archived the board {before}" : "{user} hat das Board {before} archiviert",
"You have unarchived the board {board}" : "Du hast das Board {board} dearchiviert",
"{user} has unarchived the board {before}" : "{user} hat das Board {before} dearchiviert",
"You have created a new stack {stack} on board {board}" : "Du hast den neuen Stapel {stack} auf dem Board {board} erstellt",
"{user} has created a new stack {stack} on board {board}" : "{user} hat den neuen Stapel {stack} auf dem Board {board} erstellt",
"You have renamed stack {before} to {stack} on board {board}" : "Du hast den Stapel {before} auf dem Board {board} in {stack} umbenannt",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} hat den Stapel {before} in {stack} auf dem Board {board} umbenannt",
"You have deleted stack {stack} on board {board}" : "Du hast den Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted stack {stack} on board {board}" : "{user} hat den Stapel {stack} auf dem Board {board} gelöscht",
"You have created card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"You have deleted card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"You have renamed the card {before} to {card}" : "Du hast die Karte {before} in {card} umbenannt",
"{user} has renamed the card {before} to {card}" : "{user} hat die Karte {before} in {card} umbenannt",
"You have added a description to card {card} in stack {stack} on board {board}" : "Du hast der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Du hast die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} hat die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"You have archived card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"You have removed the due date of card {card}" : "Du hast das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"{user} has set the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"You have updated the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"{user} has updated the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Du hast der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Du hast von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} hat von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"You have assigned {assigneduser} to card {card} on board {board}" : "Du hast {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} hat {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Du hast die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} hat die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Du hast die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} hat die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"You have added the attachment {attachment} to card {card}" : "Du hast den Anhang {attachment} zur Karte {card} hinzugefügt",
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
"You have updated the attachment {attachment} on card {card}" : "Du hast den Anhang {attachment} der Karte {card} aktualisiert",
"{user} has updated the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
"You have deleted the attachment {attachment} from card {card}" : "Du hast den Anhang {attachment} von der Karte {card} entfernt",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
"You have restored the attachment {attachment} to card {card}" : "Du hast den Anhang {attachment} der Karte {card} wiederhergestellt",
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Du hast die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"Personal" : "Persönlich",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Die Karte \"%s\" auf \"%s\" wurde Dir von %s zugewiesen.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} hat Dir die Karte \"%s\" auf \"%s\" zugewiesen.",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"%s has mentioned you in a comment on \"%s\"." : " %s hat Dich in einem Kommentar zu \"%s\" erwähnt.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} hat Dich in einem Kommentar zu “%s” erwähnt.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Dir geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Dir geteilt.",
"No data was provided to create an attachment." : "Es wurden keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
"Later" : "Später",
"To do" : "Offen",
"Doing" : "In Arbeit",
"Done" : "Erledigt",
"Example Task 3" : "Beispielaufgabe 3",
"Example Task 2" : "Beispielaufgabe 2",
"Example Task 1" : "Beispielaufgabe 1",
"The file was uploaded" : "Die Datei wurde hochgeladen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe, die im HTML-Formular angegeben ist.",
@@ -22,37 +103,53 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"Deck" : "Deck",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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" : "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- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 🚀 Organisiere Dein Projekt",
"Add a new stack" : "Stapel hinzufügen",
"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- 🔖 Vergabe von Labels 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",
"Add a new stack" : "Neuer Stapel",
"Submit" : "Übermitteln",
"Show archived cards" : "Archivierte Karten anzeigen",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Board details" : "Board-Details",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Show board details" : "Board-Details anzeigen",
"All Boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Share board" : "Board freigeben",
"Archived cards" : "Archivierte Karten",
"Actions" : "Aktionen",
"Drop your files here to upload it to the card" : "Lege Deine Dateien hier ab, um sie auf die Karte hochzuladen",
"Archive" : "Archivieren",
"Unarchive" : "Dearchivieren",
"Assign card to me" : "Karte mir zuweisen",
"Unassign card from me" : "Karte nicht mir zuweisen",
"Archive card" : "Karte archivieren",
"Unarchive card" : "Karte dearchivieren",
"Delete card" : "Karte löschen",
"Enter a card title" : "Kartentitel eingeben",
"Add card" : "Karte hinzufügen",
"Close" : "Schließen",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Select users or groups to share with" : "Benutzer oder Gruppen auswählen, mit denen das Board geteilt werden soll",
"Access for" : "Zugriff für",
"Deleted items" : "Gelöschte Objekte",
"Timeline" : "Zeitachse",
"Select users or groups to share with" : "Benutzer oder Gruppen zum Teilen auswählen",
"Group" : "Gruppe",
"Circle" : "Kreis",
"No matching user or group found." : "Keine passenden Benutzer oder Gruppen gefunden.",
"Loading" : "Lade",
"Share" : "Teilen",
"Edit" : "Bearbeiten",
"Share" : "Teilen",
"Manage" : "Verwalten",
"Discard share" : "Teilen beenden",
"Update" : "Aktualisieren",
"Sharing has been disabled for your account." : "Teilen wurde für Dein Konto deaktiviert.",
"Update tag" : "Schlagwort aktualisieren",
"Edit tag" : "Schlagwort bearbeiten",
"Delete tag" : "Schlagwort löschen",
"Create" : "Erstellen",
"Create a new tag" : "Neues Etikett erstellen",
"Create a new tag" : "Neues Schlagwort",
"Deleted stacks" : "Gelöschte Stapel",
"Deleted cards" : "Gelöschte Karten",
"Status" : "Status",
"No archived boards to display" : "Keine archivierten Boards zum Anzeigen",
"No shared boards to display" : "Keine geteilten Boards zum Anzeigen",
"Title" : "Titel",
"Members" : "Mitglieder",
"More actions" : "Weitere Aktionen",
@@ -60,37 +157,43 @@ OC.L10N.register(
"Archive board" : "Board archivieren",
"Unarchive board" : "Board dearchivieren",
"Delete board" : "Board löschen",
"Reset" : "Zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - Andernfalls wird das Board beim nächsten CronJob-Lauf gelöscht.",
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Update board" : "Board aktualisieren",
"Reset board" : "Board zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - andernfalls wird das Board beim nächsten Cron-Job-Lauf gelöscht.",
"Create new board" : "Neues Board",
"New board title" : "Board-Titel",
"Create board" : "Neues Board",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - andernfalls wird die Datei beim nächsten Cron-Job-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",
"Insert the file into the description" : "Füge die Datei in die Beschreibung ein",
"Delete attachment" : "Anhang löschen",
"Modified:" : "Geändert:",
"Created:" : "Erstellt:",
"Choose a tag" : "Schlagwort auswählen",
"Add a tag" : "Schlagwort hinzufügen",
"Select tags" : "Schlagworte auswählen",
"Assign users" : "Nutzer zuweisen",
"Assign users" : "Benutzer zuweisen",
"Choose a user to assign" : "Wähle einen Benutzer für die Zuweisung aus",
"Assign this card to a user" : "Diese Karte einem Benutzer zuweisen",
"Due date" : "Fälligkeitsdatum",
"Click to set" : "Klicken zum Übernehmen",
"Remove due date" : "Ablaufdatum löschen",
"Click to set" : "Auswählen",
"Remove due date" : "Fälligkeitsdatum löschen",
"Description" : "Beschreibung",
"Attachments" : "Anhänge",
"Saved" : "Gespeichert",
"Unsaved changes" : "Ungesicherte Änderungen",
"Insert attachment" : "Anhang einfügen",
"Formatting help" : "Formatierungshilfe",
"Upload attachment" : "Anhang hochladen",
"Insert attachment" : "Anhang einfügen",
"Add a card description…" : "Eine Kartenbeschreibung hinzufügen…",
"Shared boards" : "Geteilte Boards",
"View more" : "Mehr anzeigen",
"Move board to archive" : "Board ins Archiv verschieben",
"Create a new board" : "Neues Board erstellen"
"Create a new board" : "Neues Board",
"Settings" : "Einstellungen",
"Limit deck to groups" : "Deck auf Gruppen beschrä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."
},
"nplurals=2; plural=(n != 1);");
+129 -26
View File
@@ -1,17 +1,98 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Möchtest Du wirklich diese Karte mit all ihren Daten löschen?",
"Delete" : "Löschen",
"Please provide a content for your comment." : "Bitte gib einen Inhalt für Deinen Kommentar an.",
"Posting the comment failed." : "Absenden des Kommentars ist fehlgeschlagen.",
"The comment has been deleted" : "Der Kommentar wurde gelöscht",
"The associated stack is deleted as well, it will be restored as well." : "Der dazugehörige Stapel wurde auch gelöscht, er wird ebenfalls wiederhergestellt.",
"Restore associated stack" : "Dazugehörigen Stapel wiederherstellen",
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Are you sure you want to delete the stack with all of its data?" : "Möchtest du diesen Stapel mit allen Daten wirklich löschen?",
"board" : "Board",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"You have created a new board {board}" : "Du hast das neue Board {board} erstellt",
"{user} has created a new board {board}" : "{user} hat das neue Board {board} erstellt",
"You have deleted the board {board}" : "Du hast das Board {board} gelöscht",
"{user} has deleted the board {board}" : "{user} hat das Board {board} gelöscht",
"You have restored the board {board}" : "Du hast das Board {board} wiederhergestellt",
"{user} has restored the board {board}" : "{user} hat das Board {board} wiederhergestellt",
"You have shared the board {board} with {acl}" : "Du hast das Board {board} mit {acl} geteilt",
"{user} has shared the board {board} with {sharee}" : "{user} hat das Board {board} mit {sharee} geteilt",
"You have removed {acl} from the board {board}" : "Du hast {acl} vom Board {board} entfernt",
"{user} has removed {acl} from the board {board}" : "{user} hat {acl} vom Board {board} entfernt",
"You have renamed the board {before} to {board}" : "Du hast das Board {before} in {board} umbenannt",
"{user} has renamed the board {before} to {board}" : "{user} hat das Board {before} in {board} umbenannt",
"You have archived the board {board}" : "Du hast das Board {board} archiviert",
"{user} has archived the board {before}" : "{user} hat das Board {before} archiviert",
"You have unarchived the board {board}" : "Du hast das Board {board} dearchiviert",
"{user} has unarchived the board {before}" : "{user} hat das Board {before} dearchiviert",
"You have created a new stack {stack} on board {board}" : "Du hast den neuen Stapel {stack} auf dem Board {board} erstellt",
"{user} has created a new stack {stack} on board {board}" : "{user} hat den neuen Stapel {stack} auf dem Board {board} erstellt",
"You have renamed stack {before} to {stack} on board {board}" : "Du hast den Stapel {before} auf dem Board {board} in {stack} umbenannt",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} hat den Stapel {before} in {stack} auf dem Board {board} umbenannt",
"You have deleted stack {stack} on board {board}" : "Du hast den Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted stack {stack} on board {board}" : "{user} hat den Stapel {stack} auf dem Board {board} gelöscht",
"You have created card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"You have deleted card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"You have renamed the card {before} to {card}" : "Du hast die Karte {before} in {card} umbenannt",
"{user} has renamed the card {before} to {card}" : "{user} hat die Karte {before} in {card} umbenannt",
"You have added a description to card {card} in stack {stack} on board {board}" : "Du hast der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Du hast die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} hat die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"You have archived card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in stack {stack} on board {board}" : "Du hast die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"You have removed the due date of card {card}" : "Du hast das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"{user} has set the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"You have updated the due date of card {card} to {after}" : "Du hast das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"{user} has updated the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Du hast der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Du hast von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} hat von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"You have assigned {assigneduser} to card {card} on board {board}" : "Du hast {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} hat {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Du hast die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} hat die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Du hast die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} hat die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"You have added the attachment {attachment} to card {card}" : "Du hast den Anhang {attachment} zur Karte {card} hinzugefügt",
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
"You have updated the attachment {attachment} on card {card}" : "Du hast den Anhang {attachment} der Karte {card} aktualisiert",
"{user} has updated the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
"You have deleted the attachment {attachment} from card {card}" : "Du hast den Anhang {attachment} von der Karte {card} entfernt",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
"You have restored the attachment {attachment} to card {card}" : "Du hast den Anhang {attachment} der Karte {card} wiederhergestellt",
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Du hast die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"Personal" : "Persönlich",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Die Karte \"%s\" auf \"%s\" wurde Dir von %s zugewiesen.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} hat Dir die Karte \"%s\" auf \"%s\" zugewiesen.",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"%s has mentioned you in a comment on \"%s\"." : " %s hat Dich in einem Kommentar zu \"%s\" erwähnt.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} hat Dich in einem Kommentar zu “%s” erwähnt.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Dir geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Dir geteilt.",
"No data was provided to create an attachment." : "Es wurden keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
"Later" : "Später",
"To do" : "Offen",
"Doing" : "In Arbeit",
"Done" : "Erledigt",
"Example Task 3" : "Beispielaufgabe 3",
"Example Task 2" : "Beispielaufgabe 2",
"Example Task 1" : "Beispielaufgabe 1",
"The file was uploaded" : "Die Datei wurde hochgeladen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe, die im HTML-Formular angegeben ist.",
@@ -20,37 +101,53 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"Deck" : "Deck",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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" : "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- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 🚀 Organisiere Dein Projekt",
"Add a new stack" : "Stapel hinzufügen",
"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- 🔖 Vergabe von Labels 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",
"Add a new stack" : "Neuer Stapel",
"Submit" : "Übermitteln",
"Show archived cards" : "Archivierte Karten anzeigen",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Board details" : "Board-Details",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Show board details" : "Board-Details anzeigen",
"All Boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Share board" : "Board freigeben",
"Archived cards" : "Archivierte Karten",
"Actions" : "Aktionen",
"Drop your files here to upload it to the card" : "Lege Deine Dateien hier ab, um sie auf die Karte hochzuladen",
"Archive" : "Archivieren",
"Unarchive" : "Dearchivieren",
"Assign card to me" : "Karte mir zuweisen",
"Unassign card from me" : "Karte nicht mir zuweisen",
"Archive card" : "Karte archivieren",
"Unarchive card" : "Karte dearchivieren",
"Delete card" : "Karte löschen",
"Enter a card title" : "Kartentitel eingeben",
"Add card" : "Karte hinzufügen",
"Close" : "Schließen",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Select users or groups to share with" : "Benutzer oder Gruppen auswählen, mit denen das Board geteilt werden soll",
"Access for" : "Zugriff für",
"Deleted items" : "Gelöschte Objekte",
"Timeline" : "Zeitachse",
"Select users or groups to share with" : "Benutzer oder Gruppen zum Teilen auswählen",
"Group" : "Gruppe",
"Circle" : "Kreis",
"No matching user or group found." : "Keine passenden Benutzer oder Gruppen gefunden.",
"Loading" : "Lade",
"Share" : "Teilen",
"Edit" : "Bearbeiten",
"Share" : "Teilen",
"Manage" : "Verwalten",
"Discard share" : "Teilen beenden",
"Update" : "Aktualisieren",
"Sharing has been disabled for your account." : "Teilen wurde für Dein Konto deaktiviert.",
"Update tag" : "Schlagwort aktualisieren",
"Edit tag" : "Schlagwort bearbeiten",
"Delete tag" : "Schlagwort löschen",
"Create" : "Erstellen",
"Create a new tag" : "Neues Etikett erstellen",
"Create a new tag" : "Neues Schlagwort",
"Deleted stacks" : "Gelöschte Stapel",
"Deleted cards" : "Gelöschte Karten",
"Status" : "Status",
"No archived boards to display" : "Keine archivierten Boards zum Anzeigen",
"No shared boards to display" : "Keine geteilten Boards zum Anzeigen",
"Title" : "Titel",
"Members" : "Mitglieder",
"More actions" : "Weitere Aktionen",
@@ -58,37 +155,43 @@
"Archive board" : "Board archivieren",
"Unarchive board" : "Board dearchivieren",
"Delete board" : "Board löschen",
"Reset" : "Zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - Andernfalls wird das Board beim nächsten CronJob-Lauf gelöscht.",
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Update board" : "Board aktualisieren",
"Reset board" : "Board zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - andernfalls wird das Board beim nächsten Cron-Job-Lauf gelöscht.",
"Create new board" : "Neues Board",
"New board title" : "Board-Titel",
"Create board" : "Neues Board",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - andernfalls wird die Datei beim nächsten Cron-Job-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",
"Insert the file into the description" : "Füge die Datei in die Beschreibung ein",
"Delete attachment" : "Anhang löschen",
"Modified:" : "Geändert:",
"Created:" : "Erstellt:",
"Choose a tag" : "Schlagwort auswählen",
"Add a tag" : "Schlagwort hinzufügen",
"Select tags" : "Schlagworte auswählen",
"Assign users" : "Nutzer zuweisen",
"Assign users" : "Benutzer zuweisen",
"Choose a user to assign" : "Wähle einen Benutzer für die Zuweisung aus",
"Assign this card to a user" : "Diese Karte einem Benutzer zuweisen",
"Due date" : "Fälligkeitsdatum",
"Click to set" : "Klicken zum Übernehmen",
"Remove due date" : "Ablaufdatum löschen",
"Click to set" : "Auswählen",
"Remove due date" : "Fälligkeitsdatum löschen",
"Description" : "Beschreibung",
"Attachments" : "Anhänge",
"Saved" : "Gespeichert",
"Unsaved changes" : "Ungesicherte Änderungen",
"Insert attachment" : "Anhang einfügen",
"Formatting help" : "Formatierungshilfe",
"Upload attachment" : "Anhang hochladen",
"Insert attachment" : "Anhang einfügen",
"Add a card description…" : "Eine Kartenbeschreibung hinzufügen…",
"Shared boards" : "Geteilte Boards",
"View more" : "Mehr anzeigen",
"Move board to archive" : "Board ins Archiv verschieben",
"Create a new board" : "Neues Board erstellen"
"Create a new board" : "Neues Board",
"Settings" : "Einstellungen",
"Limit deck to groups" : "Deck auf Gruppen beschrä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."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+132 -29
View File
@@ -1,19 +1,100 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Möchten Sie wirklich diese Karte mit all ihren Daten löschen?",
"Delete" : "Löschen",
"Please provide a content for your comment." : "Bitte geben Sie einen Inhalt für Ihren Kommentar an.",
"Posting the comment failed." : "Absenden des Kommentars ist fehlgeschlagen.",
"The comment has been deleted" : "Der Kommentar wurde gelöscht",
"The associated stack is deleted as well, it will be restored as well." : "Der dazugehörige Stapel wurde auch gelöscht, er wird ebenfalls wiederhergestellt.",
"Restore associated stack" : "Dazugehörigen Stapel wiederherstellen",
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Are you sure you want to delete the stack with all of its data?" : "Möchten Sie diesen Stapel mit allen Daten wirklich löschen?",
"board" : "Board",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"You have created a new board {board}" : "Sie haben das neue Board {board} erstellt",
"{user} has created a new board {board}" : "{user} hat das neue Board {board} erstellt",
"You have deleted the board {board}" : "Sie haben das Board {board} gelöscht",
"{user} has deleted the board {board}" : "{user} hat das Board {board} gelöscht",
"You have restored the board {board}" : "Sie haben das Board {board} wiederhergestellt",
"{user} has restored the board {board}" : "{user} hat das Board {board} wiederhergestellt",
"You have shared the board {board} with {acl}" : "Sie haben das Board {board} mit {acl} geteilt",
"{user} has shared the board {board} with {sharee}" : "{user} hat das Board {board} mit {sharee} geteilt",
"You have removed {acl} from the board {board}" : "Sie haben {acl} vom Board {board} entfernt",
"{user} has removed {acl} from the board {board}" : "{user} hat {acl} vom Board {board} entfernt",
"You have renamed the board {before} to {board}" : "Sie haben das Board {before} in {board} umbenannt",
"{user} has renamed the board {before} to {board}" : "{user} hat das Board {before} in {board} umbenannt",
"You have archived the board {board}" : "Sie haben das Board {board} archiviert",
"{user} has archived the board {before}" : "{user} hat das Board {before} archiviert",
"You have unarchived the board {board}" : "Sie haben das Board {board} dearchiviert",
"{user} has unarchived the board {before}" : "{user} hat das Board {before} dearchiviert",
"You have created a new stack {stack} on board {board}" : "Sie haben den neuen Stapel {stack} auf dem Board {board} erstellt",
"{user} has created a new stack {stack} on board {board}" : "{user} hat den neuen Stapel {stack} auf dem Board {board} erstellt",
"You have renamed stack {before} to {stack} on board {board}" : "Sie haben den Stapel {before} auf dem Board {board} in {stack} umbenannt",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} hat den Stapel {before} in {stack} auf dem Board {board} umbenannt",
"You have deleted stack {stack} on board {board}" : "Sie haben den Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted stack {stack} on board {board}" : "{user} hat den Stapel {stack} auf dem Board {board} gelöscht",
"You have created card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"You have deleted card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"You have renamed the card {before} to {card}" : "Sie haben die Karte {before} in {card} umbenannt",
"{user} has renamed the card {before} to {card}" : "{user} hat die Karte {before} in {card} umbenannt",
"You have added a description to card {card} in stack {stack} on board {board}" : "Sie haben der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Sie haben die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} hat die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"You have archived card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"{user} has set the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"You have updated the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"{user} has updated the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Sie haben der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Sie haben von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} hat von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"You have assigned {assigneduser} to card {card} on board {board}" : "Sie haben {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} hat {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Sie haben die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} hat die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Sie haben die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} hat die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"You have added the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} zur Karte {card} hinzugefügt",
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
"{user} has updated the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"Personal" : "Persönlich",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Die Karte \"%s\" auf \"%s\" wurde Ihnen von %s zugewiesen.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} hat Ihnen die Karte \"%s\" auf \"%s\" zugewiesen.",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"%s has mentioned you in a comment on \"%s\"." : "%s hat Sie in einem Kommentar zu \"%s\" erwähnt.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} hat Sie in einem Kommentar zu \"%s\" erwähnt.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Ihnen geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Ihnen geteilt.",
"No data was provided to create an attachment." : "Es wurden keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
"Later" : "Später",
"To do" : "Offen",
"Doing" : "In Arbeit",
"Done" : "Erledigt",
"Example Task 3" : "Beispielaufgabe 3",
"Example Task 2" : "Beispielaufgabe 2",
"Example Task 1" : "Beispielaufgabe 1",
"The file was uploaded" : "Die Datei wurde hochgeladen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe, die im HTML-Formular angegeben ist.",
@@ -22,37 +103,53 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werzeug für Nextcloud",
"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" : "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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 🚀 Organisieren Sie Ihr Projekt",
"Add a new stack" : "Neuen Stapel hinzufügen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisung von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 📎 Fügen Sie Dateien hinzu und verwende diese in Ihren Markdown-Beschreibungen\n- 💬 Diskutieren Sie mit Ihrem Team mit Kommentaren\n- ⚡ Behalten Sie Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisieren Sie Ihr Projekt",
"Add a new stack" : "Neuer Stapel",
"Submit" : "Übermitteln",
"Show archived cards" : "Archivierte Karten anzeigen",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Board details" : "Board-Details",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Show board details" : "Board-Details anzeigen",
"All Boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Share board" : "Board freigeben",
"Archived cards" : "Archivierte Karten",
"Actions" : "Aktionen",
"Drop your files here to upload it to the card" : "Legen Sie Ihre Dateien hier ab, um sie auf die Karte hochzuladen",
"Archive" : "Archivieren",
"Unarchive" : "Dearchivieren",
"Assign card to me" : "Karte mir zuweisen",
"Unassign card from me" : "Karte nicht mir zuweisen",
"Archive card" : "Karte archivieren",
"Unarchive card" : "Karte dearchivieren",
"Delete card" : "Karte löschen",
"Enter a card title" : "Kartentitel eingeben",
"Add card" : "Karte hinzufügen",
"Close" : "Schließen",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Select users or groups to share with" : "Benutzer oder Gruppen auswählen, mit denen das Board geteilt werden soll",
"Access for" : "Zugriff für",
"Deleted items" : "Gelöschte Objekte",
"Timeline" : "Zeitachse",
"Select users or groups to share with" : "Benutzer oder Gruppen zum Teilen auswählen",
"Group" : "Gruppe",
"Circle" : "Kreis",
"No matching user or group found." : "Keine passenden Benutzer oder Gruppen gefunden.",
"Loading" : "Lade",
"Share" : "Teilen",
"Edit" : "Bearbeiten",
"Share" : "Teilen",
"Manage" : "Verwalten",
"Discard share" : "Teilen beenden",
"Update" : "Aktualisieren",
"Sharing has been disabled for your account." : "Teilen wurde für Ihr Konto deaktiviert.",
"Update tag" : "Schlagwort aktualisieren",
"Edit tag" : "Schlagwort bearbeiten",
"Delete tag" : "Schlagwort löschen",
"Create" : "Erstellen",
"Create a new tag" : "Tag erstellen",
"Create a new tag" : "Neues Schlagwort",
"Deleted stacks" : "Gelöschte Stapel",
"Deleted cards" : "Gelöschte Karten",
"Status" : "Status",
"No archived boards to display" : "Keine archivierten Boards zum Anzeigen",
"No shared boards to display" : "Keine geteilten Boards zum Anzeigen",
"Title" : "Titel",
"Members" : "Mitglieder",
"More actions" : "Weitere Aktionen",
@@ -60,37 +157,43 @@ OC.L10N.register(
"Archive board" : "Board archivieren",
"Unarchive board" : "Board dearchivieren",
"Delete board" : "Board löschen",
"Reset" : "Zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - Andernfalls wird das Board beim nächsten CronJob-Lauf gelöscht.",
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Wählen Sie einen Anhang",
"Update board" : "Board aktualisieren",
"Reset board" : "Board zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - andernfalls wird das Board beim nächsten Cron-Job-Lauf gelöscht.",
"Create new board" : "Neues Board",
"New board title" : "Board-Titel",
"Create board" : "Neues Board",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - andernfalls wird die Datei beim nächsten Cron-Job-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",
"Insert the file into the description" : "Füge die Datei in die Beschreibung ein",
"Delete attachment" : "Anhang löschen",
"Modified:" : "Geändert:",
"Created:" : "Erstellt:",
"Choose a tag" : "Schlagwort auswählen",
"Add a tag" : "Schlagwort hinzufügen",
"Select tags" : "Schlagworte auswählen",
"Assign users" : "Benutzer zuordnen",
"Assign users" : "Benutzer zuweisen",
"Choose a user to assign" : "Wähle einen Benutzer für die Zuweisung aus",
"Assign this card to a user" : "Diese Karte einem Benutzer zuordnen",
"Due date" : "Zieltermin",
"Assign this card to a user" : "Diese Karte einem Benutzer zuweisen",
"Due date" : "Fälligkeitsdatum",
"Click to set" : "Setzen",
"Remove due date" : "Zieltermin entfernen",
"Remove due date" : "Fälligkeitsdatum entfernen",
"Description" : "Beschreibung",
"Attachments" : "Anhänge",
"Saved" : "Gespeichert",
"Unsaved changes" : "Ungesicherte Änderungen",
"Insert attachment" : "Anhang einfügen",
"Formatting help" : "Formatierungshilfe",
"Upload attachment" : "Anhang hochladen",
"Insert attachment" : "Anhang einfügen",
"Add a card description…" : "Beschreibung hinzufügen…",
"Shared boards" : "Geteilte Boards",
"View more" : "Mehr anzeigen",
"Move board to archive" : "Board ins Archiv verschieben",
"Create a new board" : "Neues Board erstellen"
"Create a new board" : "Neues Board",
"Settings" : "Einstellungen",
"Limit deck to groups" : "Deck auf Gruppen beschrä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."
},
"nplurals=2; plural=(n != 1);");
+132 -29
View File
@@ -1,17 +1,98 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Möchten Sie wirklich diese Karte mit all ihren Daten löschen?",
"Delete" : "Löschen",
"Please provide a content for your comment." : "Bitte geben Sie einen Inhalt für Ihren Kommentar an.",
"Posting the comment failed." : "Absenden des Kommentars ist fehlgeschlagen.",
"The comment has been deleted" : "Der Kommentar wurde gelöscht",
"The associated stack is deleted as well, it will be restored as well." : "Der dazugehörige Stapel wurde auch gelöscht, er wird ebenfalls wiederhergestellt.",
"Restore associated stack" : "Dazugehörigen Stapel wiederherstellen",
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Are you sure you want to delete the stack with all of its data?" : "Möchten Sie diesen Stapel mit allen Daten wirklich löschen?",
"board" : "Board",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"You have created a new board {board}" : "Sie haben das neue Board {board} erstellt",
"{user} has created a new board {board}" : "{user} hat das neue Board {board} erstellt",
"You have deleted the board {board}" : "Sie haben das Board {board} gelöscht",
"{user} has deleted the board {board}" : "{user} hat das Board {board} gelöscht",
"You have restored the board {board}" : "Sie haben das Board {board} wiederhergestellt",
"{user} has restored the board {board}" : "{user} hat das Board {board} wiederhergestellt",
"You have shared the board {board} with {acl}" : "Sie haben das Board {board} mit {acl} geteilt",
"{user} has shared the board {board} with {sharee}" : "{user} hat das Board {board} mit {sharee} geteilt",
"You have removed {acl} from the board {board}" : "Sie haben {acl} vom Board {board} entfernt",
"{user} has removed {acl} from the board {board}" : "{user} hat {acl} vom Board {board} entfernt",
"You have renamed the board {before} to {board}" : "Sie haben das Board {before} in {board} umbenannt",
"{user} has renamed the board {before} to {board}" : "{user} hat das Board {before} in {board} umbenannt",
"You have archived the board {board}" : "Sie haben das Board {board} archiviert",
"{user} has archived the board {before}" : "{user} hat das Board {before} archiviert",
"You have unarchived the board {board}" : "Sie haben das Board {board} dearchiviert",
"{user} has unarchived the board {before}" : "{user} hat das Board {before} dearchiviert",
"You have created a new stack {stack} on board {board}" : "Sie haben den neuen Stapel {stack} auf dem Board {board} erstellt",
"{user} has created a new stack {stack} on board {board}" : "{user} hat den neuen Stapel {stack} auf dem Board {board} erstellt",
"You have renamed stack {before} to {stack} on board {board}" : "Sie haben den Stapel {before} auf dem Board {board} in {stack} umbenannt",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} hat den Stapel {before} in {stack} auf dem Board {board} umbenannt",
"You have deleted stack {stack} on board {board}" : "Sie haben den Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted stack {stack} on board {board}" : "{user} hat den Stapel {stack} auf dem Board {board} gelöscht",
"You have created card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} erstellt",
"You have deleted card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} gelöscht",
"You have renamed the card {before} to {card}" : "Sie haben die Karte {before} in {card} umbenannt",
"{user} has renamed the card {before} to {card}" : "{user} hat die Karte {before} in {card} umbenannt",
"You have added a description to card {card} in stack {stack} on board {board}" : "Sie haben der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} eine Beschreibung hinzugefügt",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Sie haben die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} hat die Beschreibung der Karte {card} im Stapel {stack} auf dem Board {board} aktualisiert",
"You have archived card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} archiviert",
"You have unarchived card {card} in stack {stack} on board {board}" : "Sie haben die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} hat die Karte {card} im Stapel {stack} auf dem Board {board} dearchiviert",
"You have removed the due date of card {card}" : "Sie haben das Fälligkeitsdatum der Karte {card} entfernt",
"{user} has removed the due date of card {card}" : "{user} hat das Fälligkeitsdatum der Karte {card} entfernt",
"You have set the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"{user} has set the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} gesetzt",
"You have updated the due date of card {card} to {after}" : "Sie haben das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"{user} has updated the due date of card {card} to {after}" : "{user} hat das Fälligkeitsdatum der Karte {card} auf {after} aktualisiert",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Sie haben der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} hat der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} hinzugefügt",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Sie haben von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} hat von der Karte {card} im Stapel {stack} auf dem Board {board} das Schlagwort {label} entfernt",
"You have assigned {assigneduser} to card {card} on board {board}" : "Sie haben {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} hat {assigneduser} der Karte {card} auf dem Board {board} zugewiesen",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Sie haben die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} hat die Zuweisung von {assigneduser} zur Karte {card} auf dem Board {board} aufgehoben",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Sie haben die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} hat die Karte {card} vom Stapel {stackBefore} nach {stack} verschoben",
"You have added the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} zur Karte {card} hinzugefügt",
"{user} has added the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} zur Karte {card} hinzugefügt",
"You have updated the attachment {attachment} on card {card}" : "Sie haben den Anhang {attachment} der Karte {card} aktualisiert",
"{user} has updated the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} aktualisiert",
"You have deleted the attachment {attachment} from card {card}" : "Sie haben den Anhang {attachment} von der Karte {card} entfernt",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} von Karte {card} entfernt",
"You have restored the attachment {attachment} to card {card}" : "Sie haben den Anhang {attachment} der Karte {card} wiederhergestellt",
"{user} has restored the attachment {attachment} to card {card}" : "{user} hat den Anhang {attachment} der Karte {card} wiederhergestellt",
"You have commented on card {card}" : "Sie haben die Karte {card} kommentiert",
"{user} has commented on card {card}" : "{user} hat die Karte {card} kommentiert",
"A <strong>card description</strong> inside the Deck app has been changed" : "Eine <strong>Kartenbeschreibung</strong> wurde innerhalb der Deck-App geändert",
"Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Änderungen in der <strong>Deck-App</strong>",
"Personal" : "Persönlich",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Die Karte \"%s\" auf \"%s\" wurde Ihnen von %s zugewiesen.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} hat Ihnen die Karte \"%s\" auf \"%s\" zugewiesen.",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"%s has mentioned you in a comment on \"%s\"." : "%s hat Sie in einem Kommentar zu \"%s\" erwähnt.",
"{user} has mentioned you in a comment on \"%s\"." : "{user} hat Sie in einem Kommentar zu \"%s\" erwähnt.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Ihnen geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Ihnen geteilt.",
"No data was provided to create an attachment." : "Es wurden keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
"Later" : "Später",
"To do" : "Offen",
"Doing" : "In Arbeit",
"Done" : "Erledigt",
"Example Task 3" : "Beispielaufgabe 3",
"Example Task 2" : "Beispielaufgabe 2",
"Example Task 1" : "Beispielaufgabe 1",
"The file was uploaded" : "Die Datei wurde hochgeladen",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe, die im HTML-Formular angegeben ist.",
@@ -20,37 +101,53 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werzeug für Nextcloud",
"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" : "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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 🚀 Organisieren Sie Ihr Projekt",
"Add a new stack" : "Neuen Stapel hinzufügen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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ügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Zuweisung von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 📎 Fügen Sie Dateien hinzu und verwende diese in Ihren Markdown-Beschreibungen\n- 💬 Diskutieren Sie mit Ihrem Team mit Kommentaren\n- ⚡ Behalten Sie Überblick über Änderungen mit dem Aktivitäten-Stream\n- 🚀 Organisieren Sie Ihr Projekt",
"Add a new stack" : "Neuer Stapel",
"Submit" : "Übermitteln",
"Show archived cards" : "Archivierte Karten anzeigen",
"Hide archived cards" : "Archivierte Karten ausblenden",
"Board details" : "Board-Details",
"Toggle compact mode" : "Kompaktmodus umschalten",
"Show board details" : "Board-Details anzeigen",
"All Boards" : "Alle Boards",
"Archived boards" : "Archivierte Boards",
"Share board" : "Board freigeben",
"Archived cards" : "Archivierte Karten",
"Actions" : "Aktionen",
"Drop your files here to upload it to the card" : "Legen Sie Ihre Dateien hier ab, um sie auf die Karte hochzuladen",
"Archive" : "Archivieren",
"Unarchive" : "Dearchivieren",
"Assign card to me" : "Karte mir zuweisen",
"Unassign card from me" : "Karte nicht mir zuweisen",
"Archive card" : "Karte archivieren",
"Unarchive card" : "Karte dearchivieren",
"Delete card" : "Karte löschen",
"Enter a card title" : "Kartentitel eingeben",
"Add card" : "Karte hinzufügen",
"Close" : "Schließen",
"Sharing" : "Teilen",
"Tags" : "Schlagworte",
"Select users or groups to share with" : "Benutzer oder Gruppen auswählen, mit denen das Board geteilt werden soll",
"Access for" : "Zugriff für",
"Deleted items" : "Gelöschte Objekte",
"Timeline" : "Zeitachse",
"Select users or groups to share with" : "Benutzer oder Gruppen zum Teilen auswählen",
"Group" : "Gruppe",
"Circle" : "Kreis",
"No matching user or group found." : "Keine passenden Benutzer oder Gruppen gefunden.",
"Loading" : "Lade",
"Share" : "Teilen",
"Edit" : "Bearbeiten",
"Share" : "Teilen",
"Manage" : "Verwalten",
"Discard share" : "Teilen beenden",
"Update" : "Aktualisieren",
"Sharing has been disabled for your account." : "Teilen wurde für Ihr Konto deaktiviert.",
"Update tag" : "Schlagwort aktualisieren",
"Edit tag" : "Schlagwort bearbeiten",
"Delete tag" : "Schlagwort löschen",
"Create" : "Erstellen",
"Create a new tag" : "Tag erstellen",
"Create a new tag" : "Neues Schlagwort",
"Deleted stacks" : "Gelöschte Stapel",
"Deleted cards" : "Gelöschte Karten",
"Status" : "Status",
"No archived boards to display" : "Keine archivierten Boards zum Anzeigen",
"No shared boards to display" : "Keine geteilten Boards zum Anzeigen",
"Title" : "Titel",
"Members" : "Mitglieder",
"More actions" : "Weitere Aktionen",
@@ -58,37 +155,43 @@
"Archive board" : "Board archivieren",
"Unarchive board" : "Board dearchivieren",
"Delete board" : "Board löschen",
"Reset" : "Zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - Andernfalls wird das Board beim nächsten CronJob-Lauf gelöscht.",
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Wählen Sie einen Anhang",
"Update board" : "Board aktualisieren",
"Reset board" : "Board zurücksetzen",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Löschen des Boards rückgängig machen - andernfalls wird das Board beim nächsten Cron-Job-Lauf gelöscht.",
"Create new board" : "Neues Board",
"New board title" : "Board-Titel",
"Create board" : "Neues Board",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - andernfalls wird die Datei beim nächsten Cron-Job-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",
"Insert the file into the description" : "Füge die Datei in die Beschreibung ein",
"Delete attachment" : "Anhang löschen",
"Modified:" : "Geändert:",
"Created:" : "Erstellt:",
"Choose a tag" : "Schlagwort auswählen",
"Add a tag" : "Schlagwort hinzufügen",
"Select tags" : "Schlagworte auswählen",
"Assign users" : "Benutzer zuordnen",
"Assign users" : "Benutzer zuweisen",
"Choose a user to assign" : "Wähle einen Benutzer für die Zuweisung aus",
"Assign this card to a user" : "Diese Karte einem Benutzer zuordnen",
"Due date" : "Zieltermin",
"Assign this card to a user" : "Diese Karte einem Benutzer zuweisen",
"Due date" : "Fälligkeitsdatum",
"Click to set" : "Setzen",
"Remove due date" : "Zieltermin entfernen",
"Remove due date" : "Fälligkeitsdatum entfernen",
"Description" : "Beschreibung",
"Attachments" : "Anhänge",
"Saved" : "Gespeichert",
"Unsaved changes" : "Ungesicherte Änderungen",
"Insert attachment" : "Anhang einfügen",
"Formatting help" : "Formatierungshilfe",
"Upload attachment" : "Anhang hochladen",
"Insert attachment" : "Anhang einfügen",
"Add a card description…" : "Beschreibung hinzufügen…",
"Shared boards" : "Geteilte Boards",
"View more" : "Mehr anzeigen",
"Move board to archive" : "Board ins Archiv verschieben",
"Create a new board" : "Neues Board erstellen"
"Create a new board" : "Neues Board",
"Settings" : "Einstellungen",
"Limit deck to groups" : "Deck auf Gruppen beschrä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."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+9 -9
View File
@@ -1,39 +1,39 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την κάρτα με όλα τα δεδομένα της;",
"Delete" : "Διαγραφή",
"Remove user from card" : "Αφαίρεση χρήστη από την κάρτα",
"Hours" : "Ώρες",
"Minutes" : "Λεπτά",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "Η κάρτα \"1%s\" στο \"1%s\" έχει λήξει.",
"Finished" : "Ολοκληρώθηκε",
"To review" : "Προς επισκόπηση",
"Action needed" : "Απαιτείται ενέργεια",
"Later" : "Αργότερα",
"Deck" : "Deck",
"Done" : "Ολοκληρώθηκε",
"Add a new stack" : "Πρόσθεσε νέα συστοιχία",
"Submit" : "Υποβολή",
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
"Board details" : "Λεπτομέριες πίνακα",
"All Boards" : "Όλοι οι πίνακες",
"Archived boards" : "Αρχειοθέτηση πινάκων ",
"Archive" : "Αρχειοθέτηση",
"Unarchive" : "Αναίρεση αρχειοθέτησης",
"Delete card" : "Διαγραφή κάρτας",
"Enter a card title" : "Καταχωρίστε έναν τίτλο κάρτας",
"Add card" : "Προσθήκη κάρτας",
"Close" : "Κλείσιμο",
"Sharing" : "Διαμοιρασμός",
"Tags" : "Ετικέτες",
"Deleted items" : "Διαγραμμένα αντικείμενα",
"Timeline" : "Χρονοδιάγραμμα",
"Select users or groups to share with" : "Επιλέξτε χρήστες ή ομάδες με τις οποίες θα μοιραστείτε",
"No matching user or group found." : "Δεν βρέθηκε χρήστης ή ομάδα να ταιριάζει.",
"Loading" : "Γίνεται φόρτωση",
"Share" : "Διαμοιρασμός",
"Edit" : "Επεξεργασία",
"Share" : "Διαμοιρασμός",
"Manage" : "Διαχείριση",
"Discard share" : "Απόρριψη διαμοιρασμού",
"Update" : "Ενημέρωση",
"Edit tag" : "Επεξεργασία ετικέτας",
"Delete tag" : "Διαγραφή ετικέτας",
"Create" : "Δημιουργία",
"Create a new tag" : "Δημιούργησε νέα ετικέτα",
"Title" : "Τίτλος",
@@ -46,6 +46,7 @@ OC.L10N.register(
"Create new board" : "Δημιουργία νέου πίνακα",
"New board title" : "Νέος τίτλος πίνακα",
"by" : "από",
"Delete attachment" : "Διαγραφή συνημμένου",
"Modified:" : "Τροποποιήθηκε:",
"Created:" : "Δημιουργήθηκε:",
"Due date" : "Ημερομηνία λήξης",
@@ -56,7 +57,6 @@ OC.L10N.register(
"Formatting help" : "Βοήθεια μορφοποίησης",
"Add a card description…" : "Προσθήκη περιγραφής κάρτας...",
"Shared boards" : "Διαμοιρασμένοι πίνακες",
"View more" : "Προβολή περισσοτέρων",
"Move board to archive" : "Μετακίνηση πίνακα στην αρχειοθήκη",
"Create a new board" : "Δημιουργία νέου πίνακα"
},
+9 -9
View File
@@ -1,37 +1,37 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την κάρτα με όλα τα δεδομένα της;",
"Delete" : "Διαγραφή",
"Remove user from card" : "Αφαίρεση χρήστη από την κάρτα",
"Hours" : "Ώρες",
"Minutes" : "Λεπτά",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "Η κάρτα \"1%s\" στο \"1%s\" έχει λήξει.",
"Finished" : "Ολοκληρώθηκε",
"To review" : "Προς επισκόπηση",
"Action needed" : "Απαιτείται ενέργεια",
"Later" : "Αργότερα",
"Deck" : "Deck",
"Done" : "Ολοκληρώθηκε",
"Add a new stack" : "Πρόσθεσε νέα συστοιχία",
"Submit" : "Υποβολή",
"Show archived cards" : "Εμφάνιση καρτελών που αρχειοθετήθηκαν",
"Hide archived cards" : "Απόκρυψη καρτελών που αρχειοθετήθηκαν",
"Board details" : "Λεπτομέριες πίνακα",
"All Boards" : "Όλοι οι πίνακες",
"Archived boards" : "Αρχειοθέτηση πινάκων ",
"Archive" : "Αρχειοθέτηση",
"Unarchive" : "Αναίρεση αρχειοθέτησης",
"Delete card" : "Διαγραφή κάρτας",
"Enter a card title" : "Καταχωρίστε έναν τίτλο κάρτας",
"Add card" : "Προσθήκη κάρτας",
"Close" : "Κλείσιμο",
"Sharing" : "Διαμοιρασμός",
"Tags" : "Ετικέτες",
"Deleted items" : "Διαγραμμένα αντικείμενα",
"Timeline" : "Χρονοδιάγραμμα",
"Select users or groups to share with" : "Επιλέξτε χρήστες ή ομάδες με τις οποίες θα μοιραστείτε",
"No matching user or group found." : "Δεν βρέθηκε χρήστης ή ομάδα να ταιριάζει.",
"Loading" : "Γίνεται φόρτωση",
"Share" : "Διαμοιρασμός",
"Edit" : "Επεξεργασία",
"Share" : "Διαμοιρασμός",
"Manage" : "Διαχείριση",
"Discard share" : "Απόρριψη διαμοιρασμού",
"Update" : "Ενημέρωση",
"Edit tag" : "Επεξεργασία ετικέτας",
"Delete tag" : "Διαγραφή ετικέτας",
"Create" : "Δημιουργία",
"Create a new tag" : "Δημιούργησε νέα ετικέτα",
"Title" : "Τίτλος",
@@ -44,6 +44,7 @@
"Create new board" : "Δημιουργία νέου πίνακα",
"New board title" : "Νέος τίτλος πίνακα",
"by" : "από",
"Delete attachment" : "Διαγραφή συνημμένου",
"Modified:" : "Τροποποιήθηκε:",
"Created:" : "Δημιουργήθηκε:",
"Due date" : "Ημερομηνία λήξης",
@@ -54,7 +55,6 @@
"Formatting help" : "Βοήθεια μορφοποίησης",
"Add a card description…" : "Προσθήκη περιγραφής κάρτας...",
"Shared boards" : "Διαμοιρασμένοι πίνακες",
"View more" : "Προβολή περισσοτέρων",
"Move board to archive" : "Μετακίνηση πίνακα στην αρχειοθήκη",
"Create a new board" : "Δημιουργία νέου πίνακα"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
+4 -13
View File
@@ -1,12 +1,12 @@
OC.L10N.register(
"deck",
{
"Are you sure you want to delete this card with all of its data?" : "Are you sure you want to delete this card with all of its data?",
"Delete" : "Delete",
"Please provide a content for your comment." : "Please provide a content for your comment.",
"Posting the comment failed." : "Posting the comment failed.",
"Remove user from card" : "Remove user from card",
"Hours" : "Hours",
"Minutes" : "Minutes",
"Are you sure you want to delete the stack with all of its data?" : "Are you sure you want to delete the stack with all of its data?",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.",
"The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.",
"{user} has shared the board %s with you." : "{user} has shared the board %s with you.",
@@ -14,32 +14,25 @@ OC.L10N.register(
"To review" : "To review",
"Action needed" : "Action needed",
"Later" : "Later",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "A kanban style project and personal management tool for Nextcloud",
"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" : "Deck is a kanban style organization tool aimed at personal planning and project organisation 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 organised",
"Add a new stack" : "Add a new stack",
"Submit" : "Submit",
"Show archived cards" : "Show archived cards",
"Hide archived cards" : "Hide archived cards",
"Board details" : "Board details",
"All Boards" : "All Boards",
"Archived boards" : "Archived boards",
"Archive" : "Archive",
"Unarchive" : "Unarchive",
"Enter a card title" : "Enter a card title",
"Add card" : "Add card",
"Close" : "Close",
"Sharing" : "Sharing",
"Tags" : "Tags",
"Select users or groups to share with" : "Select users or groups to share with",
"Access for" : "Access for",
"No matching user or group found." : "No matching user or group found.",
"Loading" : "Loading",
"Share" : "Share",
"Edit" : "Edit",
"Share" : "Share",
"Manage" : "Manage",
"Discard share" : "Discard share",
"Update" : "Update",
"Create" : "Create",
"Create a new tag" : "Create a new tag",
"Status" : "Status",
@@ -50,7 +43,6 @@ OC.L10N.register(
"Archive board" : "Archive board",
"Unarchive board" : "Unarchive board",
"Delete board" : "Delete board",
"Reset" : "Reset",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Undo board deletion - Otherwise the board will be deleted during the next cronjob run.",
"Create new board" : "Create new board",
"New board title" : "New board title",
@@ -72,7 +64,6 @@ OC.L10N.register(
"Formatting help" : "Formatting help",
"Add a card description…" : "Add a card description…",
"Shared boards" : "Shared boards",
"View more" : "View more",
"Move board to archive" : "Move board to archive",
"Create a new board" : "Create a new board"
},
+4 -13
View File
@@ -1,10 +1,10 @@
{ "translations": {
"Are you sure you want to delete this card with all of its data?" : "Are you sure you want to delete this card with all of its data?",
"Delete" : "Delete",
"Please provide a content for your comment." : "Please provide a content for your comment.",
"Posting the comment failed." : "Posting the comment failed.",
"Remove user from card" : "Remove user from card",
"Hours" : "Hours",
"Minutes" : "Minutes",
"Are you sure you want to delete the stack with all of its data?" : "Are you sure you want to delete the stack with all of its data?",
"Deck" : "Deck",
"The card \"%s\" on \"%s\" has reached its due date." : "The card \"%s\" on \"%s\" has reached its due date.",
"The board \"%s\" has been shared with you by %s." : "The board \"%s\" has been shared with you by %s.",
"{user} has shared the board %s with you." : "{user} has shared the board %s with you.",
@@ -12,32 +12,25 @@
"To review" : "To review",
"Action needed" : "Action needed",
"Later" : "Later",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "A kanban style project and personal management tool for Nextcloud",
"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" : "Deck is a kanban style organization tool aimed at personal planning and project organisation 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 organised",
"Add a new stack" : "Add a new stack",
"Submit" : "Submit",
"Show archived cards" : "Show archived cards",
"Hide archived cards" : "Hide archived cards",
"Board details" : "Board details",
"All Boards" : "All Boards",
"Archived boards" : "Archived boards",
"Archive" : "Archive",
"Unarchive" : "Unarchive",
"Enter a card title" : "Enter a card title",
"Add card" : "Add card",
"Close" : "Close",
"Sharing" : "Sharing",
"Tags" : "Tags",
"Select users or groups to share with" : "Select users or groups to share with",
"Access for" : "Access for",
"No matching user or group found." : "No matching user or group found.",
"Loading" : "Loading",
"Share" : "Share",
"Edit" : "Edit",
"Share" : "Share",
"Manage" : "Manage",
"Discard share" : "Discard share",
"Update" : "Update",
"Create" : "Create",
"Create a new tag" : "Create a new tag",
"Status" : "Status",
@@ -48,7 +41,6 @@
"Archive board" : "Archive board",
"Unarchive board" : "Unarchive board",
"Delete board" : "Delete board",
"Reset" : "Reset",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Undo board deletion - Otherwise the board will be deleted during the next cronjob run.",
"Create new board" : "Create new board",
"New board title" : "New board title",
@@ -70,7 +62,6 @@
"Formatting help" : "Formatting help",
"Add a card description…" : "Add a card description…",
"Shared boards" : "Shared boards",
"View more" : "View more",
"Move board to archive" : "Move board to archive",
"Create a new board" : "Create a new board"
},"pluralForm" :"nplurals=2; plural=(n != 1);"

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