Compare commits

...
742 Commits
Author SHA1 Message Date
Jakob Röhrl 8d58e6b584 add calendar link
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-30 14:19:56 +01:00
Nextcloud bot b0e3520969 [tx-robot] updated from transifex 2020-01-30 02:29:17 +00:00
Julius HärtlandGitHub a3320571b8 Merge pull request #1505 from nextcloud/new-color-picker
use color picker from nextcloud vue
2020-01-29 13:26:49 +01:00
Julius Härtl 36dadfe25d Fix styling in label color picker and pick random default colors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 13:18:45 +01:00
Jakob RöhrlandJulius Härtl 167448dde1 added new color picker
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-29 13:18:45 +01:00
Julius Härtl 1ef22524ec Fix color picker positioning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 13:18:45 +01:00
Jakob RöhrlandJulius Härtl a15a00ab6b new color picker
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-29 13:18:45 +01:00
Nextcloud bot b07bf861bd [tx-robot] updated from transifex 2020-01-29 02:29:27 +00:00
JakobandGitHub 1d7ccaae6e Merge pull request #1503 from nextcloud/nightly
Run nightly build on github actions
2020-01-28 13:35:43 +01:00
Julius Härtl 8fe9b2b0fa Update nightly build url in the readme
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-28 12:45:48 +01:00
Julius Härtl 5903002e54 Run nightly build on github actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>

Tag nightly build

Signed-off-by: Julius Härtl <jus@bitgrid.net>

Test release

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-28 12:43:57 +01:00
Julius HärtlandGitHub 39d9f24084 Bump version and fix wording (fixes #1088) (#1482)
Bump version and fix wording (fixes #1088)
2020-01-28 11:32:52 +01:00
Julius HärtlandGitHub 9e0d242ff8 Bump stylelint-scss from 3.13.0 to 3.14.0 (#1501)
Bump stylelint-scss from 3.13.0 to 3.14.0
2020-01-28 11:28:26 +01:00
dependabot-preview[bot]andGitHub 10931ce06a Bump stylelint-scss from 3.13.0 to 3.14.0
Bumps [stylelint-scss](https://github.com/kristerkari/stylelint-scss) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/kristerkari/stylelint-scss/releases)
- [Changelog](https://github.com/kristerkari/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kristerkari/stylelint-scss/compare/3.13.0...3.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-28 10:05:27 +00:00
Julius HärtlandGitHub c3633d5642 Merge pull request #1492 from nextcloud/enh/application-cleanup
Move default board creation to Application and cleanup code
2020-01-28 11:03:13 +01:00
Julius Härtl f115ae4648 Bump version and fix wording (fixes #1088)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-28 10:50:56 +01:00
Julius HärtlandGitHub 8a6dbe67ec added translations (#1504)
added translations
2020-01-28 10:48:28 +01:00
dependabot-preview[bot]andGitHub 7941a55431 Merge pull request #1500 from nextcloud/dependabot/npm_and_yarn/tiptap-1.26.6 2020-01-28 09:41:51 +00:00
dependabot-preview[bot]andGitHub dbe4213d23 Bump tiptap from 1.26.4 to 1.26.6
Bumps [tiptap](https://github.com/scrumpy/tiptap) from 1.26.4 to 1.26.6.
- [Release notes](https://github.com/scrumpy/tiptap/releases)
- [Commits](https://github.com/scrumpy/tiptap/compare/tiptap@1.26.4...tiptap@1.26.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-28 09:27:16 +00:00
dependabot-preview[bot]andGitHub 0adc7207f0 Merge pull request #1502 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-1.2.8 2020-01-28 09:25:13 +00:00
JakobandGitHub 16dbf94af0 Merge branch 'master' into enh/application-cleanup 2020-01-28 10:23:48 +01:00
Jakob Röhrl 67fdc738d2 added translations
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-28 10:19:20 +01:00
dependabot-preview[bot]andGitHub 83ded95525 Bump @nextcloud/vue from 1.2.7 to 1.2.8
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.2.7 to 1.2.8.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.2.7...v1.2.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-28 09:18:31 +00:00
dependabot-preview[bot]andGitHub 73c0fe75a9 Merge pull request #1499 from nextcloud/dependabot/npm_and_yarn/fuse.js-3.4.6 2020-01-28 09:16:22 +00:00
dependabot-preview[bot]andGitHub 5fe7fd5fdb Bump fuse.js from 3.4.5 to 3.4.6
Bumps [fuse.js](https://github.com/krisk/Fuse) from 3.4.5 to 3.4.6.
- [Release notes](https://github.com/krisk/Fuse/releases)
- [Changelog](https://github.com/krisk/Fuse/blob/master/CHANGELOG.md)
- [Commits](https://github.com/krisk/Fuse/compare/v3.4.5...v3.4.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-28 09:02:31 +00:00
dependabot-preview[bot]andGitHub 6bf813b79d Merge pull request #1498 from nextcloud/dependabot/npm_and_yarn/tiptap-extensions-1.28.6 2020-01-28 09:00:30 +00:00
dependabot-preview[bot]andGitHub 51ae2eb87c Bump tiptap-extensions from 1.28.4 to 1.28.6
Bumps [tiptap-extensions](https://github.com/scrumpy/tiptap) from 1.28.4 to 1.28.6.
- [Release notes](https://github.com/scrumpy/tiptap/releases)
- [Commits](https://github.com/scrumpy/tiptap/compare/tiptap-extensions@1.28.4...tiptap-extensions@1.28.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-28 08:45:39 +00:00
JakobandGitHub d178a113e2 Merge pull request #1481 from nextcloud/bugfix/dark-theme
Fix dark mode shadow and markdown docs link (fix #1136)
2020-01-28 09:39:10 +01:00
JakobandGitHub 4495cf86c6 Merge branch 'master' into bugfix/dark-theme 2020-01-28 09:26:22 +01:00
Nextcloud bot a4bf3afddf [tx-robot] updated from transifex 2020-01-28 02:29:36 +00:00
Nextcloud bot bcc7bf3396 [tx-robot] updated from transifex 2020-01-27 02:29:09 +00:00
Julius Härtl 257665c27a Move to middleware
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-26 12:41:24 +01:00
Julius Härtl bdc149aa6b Move default board creation to Application and cleanup code
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-26 12:14:51 +01:00
Nextcloud bot 63014d6bc6 [tx-robot] updated from transifex 2020-01-26 02:28:25 +00:00
Julius Härtl 6ea05e1cb2 Fix dark mode shadow and markdown docs link (fix #1136)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 13:50:15 +01:00
Julius HärtlandGitHub ef986842a5 Merge pull request #1483 from nextcloud/cleanup
Cleanup
2020-01-25 13:49:06 +01:00
Julius Härtl 1a874ba79b Make sure to respect board acls in the frontend all over the place
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 13:37:17 +01:00
Julius Härtl 7fd8419fa9 Use @nextcloud/axios
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 12:28:52 +01:00
Julius Härtl 6d33ffe881 Cleanup node modules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 12:25:37 +01:00
Julius Härtl b040ea203e Update makefile
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 12:19:04 +01:00
Julius Härtl 52d287ab0e Remove unused templates
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 12:13:08 +01:00
Julius HärtlandGitHub 5fe315a6c4 Merge pull request #1480 from nextcloud/master-merge-vue
Vue is now master
2020-01-25 10:48:51 +01:00
Julius Härtl 61e4d807b7 Merge remote-tracking branch 'origin/vue' into master-merge-vue 2020-01-25 10:42:05 +01:00
Julius HärtlandGitHub 1a84e99fba Merge pull request #1459 from nextcloud/dependabot/npm_and_yarn/js/babel/plugin-syntax-dynamic-import-7.8.3
Bump @babel/plugin-syntax-dynamic-import from 7.7.4 to 7.8.3 in /js
2020-01-25 10:38:08 +01:00
Julius HärtlandGitHub 081e791d37 Merge pull request #1476 from nextcloud/dependabot/npm_and_yarn/vue/jest-25.1.0
Bump jest from 24.9.0 to 25.1.0
2020-01-25 10:37:54 +01:00
dependabot-preview[bot]andGitHub 428deed7cf Bump jest from 24.9.0 to 25.1.0
Bumps [jest](https://github.com/facebook/jest) from 24.9.0 to 25.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.9.0...v25.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-25 09:35:29 +00:00
dependabot-preview[bot]andGitHub 8011820e4e Merge pull request #1477 from nextcloud/dependabot/npm_and_yarn/vue/vue/test-utils-1.0.0-beta.31 2020-01-25 09:33:23 +00:00
dependabot-preview[bot]andGitHub e49a846b74 Bump @vue/test-utils from 1.0.0-beta.30 to 1.0.0-beta.31
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.0-beta.30 to 1.0.0-beta.31.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/packages/test-utils/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.0.0-beta.31/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-25 09:29:27 +00:00
dependabot-preview[bot]andGitHub f29b4fd1d2 Bump @babel/plugin-syntax-dynamic-import from 7.7.4 to 7.8.3 in /js
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.7.4 to 7.8.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.7.4...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-25 09:28:27 +00:00
Julius HärtlandGitHub 3e14483cb3 Merge pull request #1478 from nextcloud/dependabot/npm_and_yarn/vue/babel-jest-25.1.0
Bump babel-jest from 24.9.0 to 25.1.0
2020-01-25 10:27:20 +01:00
Julius HärtlandGitHub 420272f0a6 Merge pull request #1235 from nextcloud/comments
Comments
2020-01-25 10:26:53 +01:00
Julius Härtl 574c8927bf Add github actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 10:25:13 +01:00
Julius Härtl cf67c2e323 Move sidebar tabs to individual components
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 10:20:58 +01:00
Julius Härtl ad069e5e14 Some comments code cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 09:52:30 +01:00
JakobandJulius Härtl 739a92e9a3 first step
Signed-off-by: Jakob <jakob.roehrl@web.de>

1. try

Signed-off-by: Jakob <jakob.roehrl@web.de>

remote calls are working

Signed-off-by: Jakob <jakob.roehrl@web.de>

litte changes

Signed-off-by: Jakob <jakob.roehrl@web.de>

small fixes

Signed-off-by: Jakob <jakob.roehrl@web.de>

incremental fetching

Signed-off-by: Jakob <jakob.roehrl@web.de>

integrated tiptap suggestions for test

Signed-off-by: Jakob <jakob.roehrl@web.de>

Update package-lock after rebase

Signed-off-by: Julius Härtl <jus@bitgrid.net>

Fix various errors

Signed-off-by: Julius Härtl <jus@bitgrid.net>

Cleanup mention plugin use

Signed-off-by: Julius Härtl <jus@bitgrid.net>

Downgrade tippy

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 08:52:13 +01:00
Julius Härtl 3adadc23d0 General design enhancements and scroll area changes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-25 08:42:30 +01:00
Nextcloud bot be62eafe2b [tx-robot] updated from transifex 2020-01-25 02:27:38 +00:00
dependabot-preview[bot]andGitHub 904da9697a Bump babel-jest from 24.9.0 to 25.1.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 24.9.0 to 25.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v25.1.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 17:55:29 +00:00
Julius HärtlandGitHub b77dc10812 Merge pull request #1457 from nextcloud/dependabot/npm_and_yarn/js/babel/core-7.8.3
Bump @babel/core from 7.7.7 to 7.8.3 in /js
2020-01-24 18:49:50 +01:00
Nextcloud bot eb5a8a0655 [tx-robot] updated from transifex 2020-01-24 02:27:49 +00:00
dependabot-preview[bot]andGitHub 562aad3aa3 Bump @babel/core from 7.7.7 to 7.8.3 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.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.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-23 20:29:13 +00:00
Nextcloud bot 19a64a71c3 [tx-robot] updated from transifex 2020-01-23 02:30:19 +00:00
Julius Härtl a0a0d66ebf Bump max-version to 19
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-22 13:39:18 +01:00
Julius HärtlandGitHub 4735a2ea0c Merge pull request #1462 from nextcloud/dependabot/npm_and_yarn/js/style-loader-1.1.3
Bump style-loader from 1.1.2 to 1.1.3 in /js
2020-01-22 13:26:13 +01:00
Nextcloud bot f282d7bd20 [tx-robot] updated from transifex 2020-01-22 02:29:37 +00:00
Nextcloud bot e2ec15b7df [tx-robot] updated from transifex 2020-01-20 02:28:03 +00:00
dependabot-preview[bot]andGitHub b42ce6219c Merge pull request #1468 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.8.3 2020-01-19 09:31:36 +00:00
dependabot-preview[bot]andGitHub c600cc5f3d Merge pull request #1470 from nextcloud/dependabot/npm_and_yarn/vue/babel/runtime-7.8.3 2020-01-19 09:14:22 +00:00
dependabot-preview[bot]andGitHub 3218a5ffa5 Bump @babel/core from 7.8.0 to 7.8.3
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.0 to 7.8.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.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 08:29:03 +00:00
dependabot-preview[bot]andGitHub 94a54381b3 Merge pull request #1469 from nextcloud/dependabot/npm_and_yarn/vue/babel/plugin-syntax-dynamic-import-7.8.3 2020-01-19 08:26:47 +00:00
dependabot-preview[bot]andGitHub 8463d3db56 Merge pull request #1467 from nextcloud/dependabot/npm_and_yarn/vue/node-sass-4.13.1 2020-01-19 08:09:02 +00:00
dependabot-preview[bot]andGitHub 07a6d76995 Bump @babel/runtime from 7.8.0 to 7.8.3
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.0 to 7.8.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/commits/v7.8.3/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 04:41:51 +00:00
dependabot-preview[bot]andGitHub 58b4e4042a Merge pull request #1466 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/vue-1.2.7 2020-01-19 04:39:48 +00:00
dependabot-preview[bot]andGitHub d698febfba Bump @babel/plugin-syntax-dynamic-import from 7.8.0 to 7.8.3
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.8.0 to 7.8.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.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 04:13:38 +00:00
dependabot-preview[bot]andGitHub ddde4c0196 Merge pull request #1465 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.8.3 2020-01-19 04:11:26 +00:00
dependabot-preview[bot]andGitHub 533cda55ac Bump node-sass from 4.13.0 to 4.13.1
Bumps [node-sass](https://github.com/sass/node-sass) from 4.13.0 to 4.13.1.
- [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.13.0...v4.13.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 03:28:38 +00:00
dependabot-preview[bot]andGitHub dcf62faecb Merge pull request #1464 from nextcloud/dependabot/npm_and_yarn/vue/sass-loader-8.0.2 2020-01-19 03:26:19 +00:00
dependabot-preview[bot]andGitHub 3f11652c65 Bump style-loader from 1.1.2 to 1.1.3 in /js
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v1.1.2...v1.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:53:59 +00:00
dependabot-preview[bot]andGitHub 3b145e4412 Merge pull request #1463 from nextcloud/dependabot/npm_and_yarn/vue/vue-router-3.1.5 2020-01-19 02:52:21 +00:00
Nextcloud bot 0720e6acbe [tx-robot] updated from transifex 2020-01-19 02:28:16 +00:00
dependabot-preview[bot]andGitHub a3b01ae674 Bump @nextcloud/vue from 1.2.5 to 1.2.7
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.2.5 to 1.2.7.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.2.5...V1.2.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:16:18 +00:00
dependabot-preview[bot]andGitHub f07da5c42f Bump @babel/preset-env from 7.8.0 to 7.8.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.0 to 7.8.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.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:15:33 +00:00
dependabot-preview[bot]andGitHub bd3fe44882 Bump sass-loader from 8.0.1 to 8.0.2
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v8.0.1...v8.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:14:43 +00:00
dependabot-preview[bot]andGitHub 561db4f542 Bump vue-router from 3.1.3 to 3.1.5
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.1.3 to 3.1.5.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.1.3...v3.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:13:44 +00:00
Julius HärtlandGitHub f77e0ad5d1 Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js (#1458)
Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js
2020-01-18 17:06:38 +01:00
dependabot-preview[bot]andGitHub fa4e7d61cd Merge pull request #1461 from nextcloud/dependabot/npm_and_yarn/vue/babel/polyfill-7.8.3 2020-01-18 14:13:30 +00:00
dependabot-preview[bot]andGitHub f0873d1c75 Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.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.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 14:00:43 +00:00
dependabot-preview[bot]andGitHub 7d2b509f6b Merge pull request #1440 from nextcloud/dependabot/npm_and_yarn/js/css-loader-3.4.2 2020-01-18 13:59:08 +00:00
dependabot-preview[bot]andGitHub b5a734c801 Bump @babel/polyfill from 7.7.0 to 7.8.3
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.7.0 to 7.8.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.7.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 13:53:35 +00:00
dependabot-preview[bot]andGitHub b91ddd3068 Bump css-loader from 3.4.1 to 3.4.2 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.1 to 3.4.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/v3.4.1...v3.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 13:52:38 +00:00
dependabot-preview[bot]andGitHub 3c05f6dabf Merge pull request #1449 from nextcloud/dependabot/npm_and_yarn/vue/sass-loader-8.0.1 2020-01-18 13:51:46 +00:00
dependabot-preview[bot]andGitHub 977d07ecca Merge pull request #1446 from nextcloud/dependabot/npm_and_yarn/vue/babel/runtime-7.8.0 2020-01-18 13:51:29 +00:00
Julius HärtlandGitHub 2bf8e41ac2 Bump @babel/polyfill from 7.7.0 to 7.8.3 in /js (#1460)
Bump @babel/polyfill from 7.7.0 to 7.8.3 in /js
2020-01-18 14:50:56 +01:00
Nextcloud bot 713bfcfd79 [tx-robot] updated from transifex 2020-01-18 02:29:44 +00:00
dependabot-preview[bot]andGitHub 9b257c431f Bump @babel/polyfill from 7.7.0 to 7.8.3 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.7.0 to 7.8.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.7.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-17 21:51:49 +00:00
Julius HärtlandGitHub 4f5433374f Merge pull request #1454 from nextcloud/release/0.8.0
Bump version to 0.8.0
2020-01-17 22:49:57 +01:00
Julius HärtlandGitHub 20e085f379 Limit card assignment to users who are participants of the board (#1395)
Limit card assignment to users who are participants of the board
2020-01-16 23:10:51 +01:00
Julius Härtl 722f3a185d Bump version to 0.8.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-16 23:07:12 +01:00
Nextcloud bot 4a34df1e64 [tx-robot] updated from transifex 2020-01-16 02:29:41 +00:00
Nextcloud bot 6f6142d192 [tx-robot] updated from transifex 2020-01-15 02:29:26 +00:00
Nextcloud bot ad1bca88a9 [tx-robot] updated from transifex 2020-01-14 02:29:12 +00:00
Julius HärtlandGitHub e21de3dc40 Merge pull request #1434 from 4workers/insensitive-search
Case insensitive searching
2020-01-13 10:04:20 +01:00
Sergey Shliakhov bc6b97e3ba Disable eslint rule
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2020-01-13 05:36:30 +01:00
dependabot-preview[bot]andGitHub 7e733810fe Merge pull request #1447 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.8.0 2020-01-12 10:33:25 +00:00
dependabot-preview[bot]andGitHub 750d7e6494 Bump @babel/preset-env from 7.7.7 to 7.8.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.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.7.7...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 09:58:24 +00:00
dependabot-preview[bot]andGitHub 7c8aa023f6 Bump @babel/runtime from 7.7.7 to 7.8.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.7.7 to 7.8.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/commits/v7.8.0/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 09:58:23 +00:00
dependabot-preview[bot]andGitHub 7c5e105afb Merge pull request #1445 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/vue-1.2.5 2020-01-12 09:56:15 +00:00
dependabot-preview[bot]andGitHub b899cb87cb Merge pull request #1448 from nextcloud/dependabot/npm_and_yarn/vue/babel/plugin-syntax-dynamic-import-7.8.0 2020-01-12 09:41:50 +00:00
dependabot-preview[bot]andGitHub f859508431 Merge pull request #1444 from nextcloud/dependabot/npm_and_yarn/vue/css-loader-3.4.2 2020-01-12 07:51:46 +00:00
dependabot-preview[bot]andGitHub 0db2afd8e2 Bump @babel/plugin-syntax-dynamic-import from 7.7.4 to 7.8.0
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.7.4 to 7.8.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.7.4...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 07:25:28 +00:00
dependabot-preview[bot]andGitHub 387c7ff7bd Merge pull request #1443 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.8.0 2020-01-12 07:23:18 +00:00
dependabot-preview[bot]andGitHub b9c714ba67 Bump @nextcloud/vue from 1.2.3 to 1.2.5
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.2.3...v1.2.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 07:10:35 +00:00
dependabot-preview[bot]andGitHub 99b6c11688 Merge pull request #1442 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/l10n-1.0.1 2020-01-12 07:08:24 +00:00
dependabot-preview[bot]andGitHub cdab961bc0 Merge pull request #1441 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-import-2.20.0 2020-01-12 07:07:29 +00:00
dependabot-preview[bot]andGitHub e4157c1ba1 Bump sass-loader from 7.3.1 to 8.0.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.3.1 to 8.0.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.3.1...v8.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 03:26:29 +00:00
dependabot-preview[bot]andGitHub 832b63cadd Bump css-loader from 3.4.1 to 3.4.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.1 to 3.4.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/v3.4.1...v3.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:37:07 +00:00
dependabot-preview[bot]andGitHub 3cf0e84b85 Bump @babel/core from 7.7.7 to 7.8.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.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.7.7...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:36:26 +00:00
dependabot-preview[bot]andGitHub 862a4541f8 Bump @nextcloud/l10n from 1.0.0 to 1.0.1
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:35:38 +00:00
dependabot-preview[bot]andGitHub dedb2f2ca6 Bump eslint-plugin-import from 2.19.1 to 2.20.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.19.1 to 2.20.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.19.1...v2.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:34:09 +00:00
Nextcloud bot e7fd7aa86e [tx-robot] updated from transifex 2020-01-11 02:29:24 +00:00
Sergey Shliakhov 6d0e2baad8 Fix code style
https://github.com/nextcloud/deck/issues/1233
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2020-01-10 13:33:49 +01:00
Sergey Shliakhov fee76b296e Case insensitive searching
https://github.com/nextcloud/deck/issues/1233
Signed-off-by: Sergey Shliakhov <husband.sergey@gmail.com>
2020-01-10 11:51:53 +01:00
Nextcloud bot 408ffb7b10 [tx-robot] updated from transifex 2020-01-10 02:29:18 +00:00
Julius Härtl e5edd96b74 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-08 21:50:17 +01:00
Julius Härtl 6fa7295b42 Limit card assignment to users who are participants of the board
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-08 21:23:44 +01:00
Julius HärtlandGitHub 6adae96d51 Merge pull request #1418 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-node-11.0.0
Bump eslint-plugin-node from 8.0.1 to 11.0.0
2020-01-05 19:04:32 +01:00
Julius Härtl 6bbfe00474 Update eslint config
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-05 18:58:02 +01:00
dependabot-preview[bot]andGitHub 87835c923f Merge pull request #1425 from nextcloud/dependabot/npm_and_yarn/js/uirouter/angularjs-1.0.24 2020-01-05 15:40:16 +00:00
dependabot-preview[bot]andGitHub e4e587e11b Bump @uirouter/angularjs from 1.0.23 to 1.0.24 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.23 to 1.0.24.
- [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.23...1.0.24)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 15:30:59 +00:00
dependabot-preview[bot]andGitHub 85cd09d04e Merge pull request #1426 from nextcloud/dependabot/npm_and_yarn/js/css-loader-3.4.1 2020-01-05 15:29:23 +00:00
dependabot-preview[bot]andGitHub 1d8190aff9 Merge pull request #1428 from nextcloud/dependabot/npm_and_yarn/vue/css-loader-3.4.1 2020-01-05 03:15:45 +00:00
dependabot-preview[bot]andGitHub 900afbbb6b Bump eslint-plugin-node from 8.0.1 to 11.0.0
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 8.0.1 to 11.0.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v8.0.1...v11.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 03:10:39 +00:00
dependabot-preview[bot]andGitHub 45abfceeb6 Bump css-loader from 3.4.0 to 3.4.1 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.0 to 3.4.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/v3.4.0...v3.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 03:10:21 +00:00
dependabot-preview[bot]andGitHub f5e7c738df Merge pull request #1427 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-vue-6.1.2 2020-01-05 03:08:41 +00:00
Nextcloud bot 00a6fa56b3 [tx-robot] updated from transifex 2020-01-05 02:50:23 +00:00
dependabot-preview[bot]andGitHub c35d482525 Bump css-loader from 3.4.0 to 3.4.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.0 to 3.4.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/v3.4.0...v3.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 02:17:20 +00:00
dependabot-preview[bot]andGitHub 75ffbd1e42 Bump eslint-plugin-vue from 6.1.1 to 6.1.2
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v6.1.1...v6.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 02:16:14 +00:00
Nextcloud bot 6cb6881887 [tx-robot] updated from transifex 2020-01-04 02:45:35 +00:00
Nextcloud bot eb380adad7 [tx-robot] updated from transifex 2020-01-03 02:45:14 +00:00
Nextcloud bot c98beb7dec [tx-robot] updated from transifex 2020-01-01 02:45:05 +00:00
Julius HärtlandGitHub 7388bffa70 Bump style-loader from 1.1.1 to 1.1.2 in /js (#1415)
Bump style-loader from 1.1.1 to 1.1.2 in /js
2019-12-30 09:34:44 +01:00
Julius HärtlandGitHub 88eb014b23 Merge pull request #1382 from nextcloud/enh/new-way-to-register-resource-provider
Use IProviderManager to register resource provider
2019-12-29 10:08:54 +01:00
Julius HärtlandGitHub 4c16645a35 Merge pull request #1397 from nextcloud/bugfix/1303/export
Make user id from occ command available in the service
2019-12-29 10:08:07 +01:00
dependabot-preview[bot]andGitHub 04239b1209 Bump style-loader from 1.1.1 to 1.1.2 in /js
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v1.1.1...v1.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-29 09:06:33 +00:00
Julius HärtlandGitHub abdf01da0b Merge pull request #1394 from nextcloud/bugfix/1372/cron-exception
Catch exception during cron execution and log to debug
2019-12-29 10:05:53 +01:00
dependabot-preview[bot]andGitHub f9f4a96194 Merge pull request #1416 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.41.5 2019-12-29 09:04:55 +00:00
dependabot-preview[bot]andGitHub a6208bac64 Merge pull request #1419 from nextcloud/dependabot/npm_and_yarn/vue/eslint-config-standard-12.0.0 2019-12-29 09:04:20 +00:00
dependabot-preview[bot]andGitHub 32cde04d38 Merge pull request #1420 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.5 2019-12-29 05:22:18 +00:00
dependabot-preview[bot]andGitHub 6e872ac9b3 Bump webpack from 4.41.4 to 4.41.5
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.4 to 4.41.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.4...v4.41.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-29 02:41:41 +00:00
dependabot-preview[bot]andGitHub 9f9591c624 Merge pull request #1417 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-vue-6.1.1 2019-12-29 02:39:25 +00:00
dependabot-preview[bot]andGitHub ca6536b3a5 Bump eslint-config-standard from 11.0.0 to 12.0.0
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 11.0.0 to 12.0.0.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v11.0.0...v12.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-29 02:15:05 +00:00
dependabot-preview[bot]andGitHub 0b1644e635 Bump eslint-plugin-vue from 6.0.1 to 6.1.1
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 6.0.1 to 6.1.1.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v6.0.1...v6.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-29 02:13:28 +00:00
dependabot-preview[bot]andGitHub 97cc4f9c25 Bump webpack from 4.41.4 to 4.41.5 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.4 to 4.41.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.4...v4.41.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-29 02:13:25 +00:00
Nextcloud bot 35d4dbafbc [tx-robot] updated from transifex 2019-12-28 02:45:14 +00:00
Nextcloud bot a559602083 [tx-robot] updated from transifex 2019-12-24 02:45:09 +00:00
Nextcloud bot 7ec4c837aa [tx-robot] updated from transifex 2019-12-23 02:45:36 +00:00
dependabot-preview[bot]andGitHub 629cdcbe2f Merge pull request #1405 from nextcloud/dependabot/npm_and_yarn/js/babel/preset-env-7.7.7 2019-12-22 15:29:36 +00:00
dependabot-preview[bot]andGitHub 85bcdfdd45 Bump @babel/preset-env from 7.7.6 to 7.7.7 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.6 to 7.7.7.
- [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.7.6...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 10:53:24 +00:00
dependabot-preview[bot]andGitHub 2abeb7efa0 Merge pull request #1399 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.8 2019-12-22 10:51:47 +00:00
dependabot-preview[bot]andGitHub ab778f2860 Bump nextcloud-vue from 0.12.7 to 0.12.8 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.7 to 0.12.8.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.7...v0.12.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 10:45:19 +00:00
dependabot-preview[bot]andGitHub d0316291a2 Merge pull request #1402 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.9.0 2019-12-22 10:43:42 +00:00
dependabot-preview[bot]andGitHub f3f4249333 Bump mini-css-extract-plugin from 0.8.0 to 0.9.0 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.8.0 to 0.9.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.8.0...v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 10:35:25 +00:00
dependabot-preview[bot]andGitHub 58bb722556 Merge pull request #1401 from nextcloud/dependabot/npm_and_yarn/js/babel/core-7.7.7 2019-12-22 10:33:46 +00:00
dependabot-preview[bot]andGitHub 1a5f3bb7e7 Merge pull request #1406 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/l10n-1.0.0 2019-12-22 10:30:30 +00:00
dependabot-preview[bot]andGitHub 76a00c3d72 Bump @babel/core from 7.7.5 to 7.7.7 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.5 to 7.7.7.
- [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.7.5...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 10:29:03 +00:00
dependabot-preview[bot]andGitHub cd04e75ea3 Merge pull request #1404 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.41.4 2019-12-22 10:27:28 +00:00
dependabot-preview[bot]andGitHub f968daf891 Merge pull request #1410 from nextcloud/dependabot/npm_and_yarn/vue/eslint-loader-3.0.3 2019-12-22 10:22:06 +00:00
Julius HärtlandGitHub 3257c59a4c Merge pull request #1411 from nextcloud/dependabot/npm_and_yarn/vue/mini-css-extract-plugin-0.9.0
Bump mini-css-extract-plugin from 0.8.2 to 0.9.0
2019-12-22 10:55:07 +01:00
dependabot-preview[bot]andGitHub a354f4bdee Bump @nextcloud/l10n from 0.2.1 to 1.0.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 0.2.1 to 1.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v0.2.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 09:53:32 +00:00
dependabot-preview[bot]andGitHub 78f993113a Bump webpack from 4.41.3 to 4.41.4 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.3 to 4.41.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.3...v4.41.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 09:52:33 +00:00
Julius HärtlandGitHub c6674e137c Merge pull request #1407 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-standard-4.0.1
Bump eslint-plugin-standard from 3.1.0 to 4.0.1
2019-12-22 10:52:28 +01:00
dependabot-preview[bot]andGitHub 9a045e85ac Merge pull request #1409 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/router-1.0.0 2019-12-22 09:51:24 +00:00
Julius HärtlandGitHub 5f9dde25d1 Merge pull request #1400 from nextcloud/dependabot/npm_and_yarn/js/style-loader-1.1.1
Bump style-loader from 1.0.2 to 1.1.1 in /js
2019-12-22 10:50:55 +01:00
dependabot-preview[bot]andGitHub 0f93d484f5 Bump eslint-loader from 2.2.1 to 3.0.3
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 2.2.1 to 3.0.3.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/v2.2.1...v3.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 07:10:58 +00:00
dependabot-preview[bot]andGitHub 8969c6ce5f Merge pull request #1412 from nextcloud/dependabot/npm_and_yarn/vue/eslint-6.8.0 2019-12-22 07:08:49 +00:00
dependabot-preview[bot]andGitHub 6479985cab Bump style-loader from 1.0.2 to 1.1.1 in /js
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 1.0.2 to 1.1.1.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v1.0.2...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 06:57:46 +00:00
dependabot-preview[bot]andGitHub 6551defd38 Merge pull request #1408 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.4 2019-12-22 06:56:06 +00:00
Nextcloud bot f0058978c4 [tx-robot] updated from transifex 2019-12-22 02:47:12 +00:00
dependabot-preview[bot]andGitHub 19587366c0 Bump eslint from 6.7.2 to 6.8.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.7.2 to 6.8.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.7.2...v6.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:30:42 +00:00
dependabot-preview[bot]andGitHub 8e1b83bbd0 Bump mini-css-extract-plugin from 0.8.2 to 0.9.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.8.2 to 0.9.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.8.2...v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:29:45 +00:00
dependabot-preview[bot]andGitHub 40f988ee81 Bump @nextcloud/router from 0.1.0 to 1.0.0
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 0.1.0 to 1.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-router/releases)
- [Commits](https://github.com/nextcloud/nextcloud-router/compare/v0.1.0...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:28:13 +00:00
dependabot-preview[bot]andGitHub 928563ab6b Bump webpack from 4.41.3 to 4.41.4
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.3 to 4.41.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.3...v4.41.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:27:29 +00:00
dependabot-preview[bot]andGitHub 01a130bbf4 Bump eslint-plugin-standard from 3.1.0 to 4.0.1
Bumps [eslint-plugin-standard](https://github.com/standard/eslint-plugin-standard) from 3.1.0 to 4.0.1.
- [Release notes](https://github.com/standard/eslint-plugin-standard/releases)
- [Commits](https://github.com/standard/eslint-plugin-standard/compare/v3.1.0...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:25:56 +00:00
Nextcloud bot 42a4d6b9ae [tx-robot] updated from transifex 2019-12-21 02:41:46 +00:00
Julius Härtl c3c48b84ed Make user id from occ command available in the service
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 21:54:53 +01:00
Julius Härtl 2d7a43b93f Actually show can edit checkbox
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 21:46:12 +01:00
Julius Härtl 152e1b7b8c Bump dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 20:56:14 +01:00
Julius Härtl 31cfc35a50 Catch exception during cron execution and log to debug
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 20:10:32 +01:00
Daniel KesselbergandJulius Härtl b95f00f9d0 Use IProviderManager to register resource provider
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2019-12-19 20:00:36 +01:00
dependabot-preview[bot]andGitHub 30312da058 Merge pull request #1369 from nextcloud/dependabot/npm_and_yarn/vue/eslint-and-eslint-plugin-vue-6.7.2 2019-12-17 21:59:20 +00:00
Julius Härtl 6bc9d0a49b Use the same node version over all frontend jobs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 22:55:50 +01:00
Julius Härtl 76fbe7a0ea Fix eslint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 22:47:45 +01:00
dependabot-preview[bot]andJulius Härtl a7bc10277e Bump eslint and eslint-plugin-vue
Bumps [eslint](https://github.com/eslint/eslint) and [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue). These dependencies needed to be updated together.

Updates `eslint` from 4.19.1 to 6.7.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v4.19.1...v6.7.2)

Updates `eslint-plugin-vue` from 4.7.1 to 6.0.1
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v4.7.1...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 22:47:44 +01:00
Julius HärtlandGitHub f26137f254 Bump nextcloud-vue-collections from 0.6.0 to 0.7.1 (#1379)
Bump nextcloud-vue-collections from 0.6.0 to 0.7.1
2019-12-17 22:25:09 +01:00
Julius HärtlandGitHub 3050477280 Bump file-loader from 4.3.0 to 5.0.2 (#1366)
Bump file-loader from 4.3.0 to 5.0.2
2019-12-17 21:46:46 +01:00
Julius HärtlandGitHub a34f13c464 Bump css-loader from 3.2.0 to 3.4.0 in /js (#1391)
Bump css-loader from 3.2.0 to 3.4.0 in /js
2019-12-17 21:41:01 +01:00
dependabot-preview[bot]andGitHub 5dfb7a45aa Merge pull request #1390 from nextcloud/dependabot/npm_and_yarn/js/style-loader-1.0.2 2019-12-17 20:40:45 +00:00
dependabot-preview[bot]andGitHub ecca9c2755 Merge pull request #1380 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.7.6 2019-12-17 19:57:40 +00:00
dependabot-preview[bot]andGitHub a825f63135 Merge pull request #1393 from nextcloud/dependabot/npm_and_yarn/vue/vue-loader-15.8.3 2019-12-17 19:56:45 +00:00
dependabot-preview[bot]andGitHub ec83470b49 Bump @babel/preset-env from 7.7.4 to 7.7.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.7.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.7.4...v7.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:44:30 +00:00
dependabot-preview[bot]andGitHub ba59bf09ed Bump vue-loader from 15.7.2 to 15.8.3
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.7.2 to 15.8.3.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.7.2...v15.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:44:05 +00:00
Julius HärtlandGitHub 529acb1a4c Bump css-loader from 3.3.2 to 3.4.0 (#1392)
Bump css-loader from 3.3.2 to 3.4.0
2019-12-17 20:43:21 +01:00
Julius HärtlandGitHub 3543381ebb Bump @babel/core from 7.7.4 to 7.7.5 (#1378)
Bump @babel/core from 7.7.4 to 7.7.5
2019-12-17 20:42:16 +01:00
Julius HärtlandGitHub 82ed3a2c9a Bump url-loader from 2.3.0 to 3.0.0 (#1365)
Bump url-loader from 2.3.0 to 3.0.0
2019-12-17 20:41:53 +01:00
dependabot-preview[bot]andGitHub 124e8e28ed Bump style-loader from 1.0.0 to 1.0.2 in /js
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 1.0.0 to 1.0.2.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v1.0.0...v1.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:41:44 +00:00
dependabot-preview[bot]andGitHub 8062be2a44 Bump css-loader from 3.2.0 to 3.4.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.2.0 to 3.4.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/v3.2.0...v3.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:41:38 +00:00
Julius HärtlandGitHub 495cd18c06 Merge pull request #1388 from nextcloud/deps/bump
Bump stable dependencies
2019-12-17 20:39:44 +01:00
dependabot-preview[bot]andGitHub 27e95f647c Bump css-loader from 3.3.2 to 3.4.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.3.2 to 3.4.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/v3.3.2...v3.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:38:58 +00:00
dependabot-preview[bot]andGitHub cd2ec1c890 Bump file-loader from 4.3.0 to 5.0.2
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.3.0 to 5.0.2.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.3.0...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:37:06 +00:00
dependabot-preview[bot]andGitHub d7ce09dfa6 Bump nextcloud-vue-collections from 0.6.0 to 0.7.1
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.6.0 to 0.7.1.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:36:58 +00:00
Julius Härtl 2089f5df73 Merge remote-tracking branch 'origin/master' into vue 2019-12-17 20:36:16 +01:00
Julius Härtl 9087be9c94 Bump dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 20:34:42 +01:00
Julius Härtl 0278aaab43 Bump stable dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 20:32:58 +01:00
Julius HärtlandGitHub 2838a78491 Bump CI packages (#1389)
Bump CI packages
2019-12-17 20:32:46 +01:00
Julius Härtl 4c0512f0b7 Bump phpunit and fix CI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 20:25:57 +01:00
Julius HärtlandGitHub 05dae27309 Bump css-loader from 3.2.0 to 3.3.2 (#1387)
Bump css-loader from 3.2.0 to 3.3.2
2019-12-17 20:25:21 +01:00
Julius HärtlandGitHub 7776f75896 Bump url-search-params-polyfill from 7.0.0 to 7.0.1 (#1386)
Bump url-search-params-polyfill from 7.0.0 to 7.0.1
2019-12-17 20:24:56 +01:00
Nextcloud bot f575202a8a [tx-robot] updated from transifex 2019-12-15 02:41:28 +00:00
dependabot-preview[bot]andGitHub 329faf79d5 Bump css-loader from 3.2.0 to 3.3.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.2.0 to 3.3.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/v3.2.0...v3.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 02:17:24 +00:00
dependabot-preview[bot]andGitHub ee03abc7a3 Bump url-search-params-polyfill from 7.0.0 to 7.0.1
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/compare/v7.0.0...v7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 02:15:26 +00:00
Nextcloud bot 3b5eade0a7 [tx-robot] updated from transifex 2019-12-11 02:26:20 +00:00
Nextcloud bot 168799214f [tx-robot] updated from transifex 2019-12-10 02:26:28 +00:00
Nextcloud bot 8c4ece99cb [tx-robot] updated from transifex 2019-12-08 02:27:02 +00:00
dependabot-preview[bot]andGitHub 6a4871f7d5 Bump @babel/core from 7.7.4 to 7.7.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.4 to 7.7.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.7.4...v7.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-08 02:14:57 +00:00
Nextcloud bot b0022cb6b3 [tx-robot] updated from transifex 2019-12-07 02:26:24 +00:00
Nextcloud bot 86781d8420 [tx-robot] updated from transifex 2019-12-06 02:26:50 +00:00
Nextcloud bot 97fa6cc774 [tx-robot] updated from transifex 2019-12-05 02:26:31 +00:00
Julius HärtlandGitHub 4f12418834 Bump @babel/plugin-syntax-dynamic-import from 7.2.0 to 7.7.4 in… (#1350)
Bump @babel/plugin-syntax-dynamic-import from 7.2.0 to 7.7.4 in /js
2019-12-01 12:57:51 +01:00
Julius HärtlandGitHub 45d3941e7d Bump url-loader from 2.1.0 to 3.0.0 in /js (#1361)
Bump url-loader from 2.1.0 to 3.0.0 in /js
2019-12-01 12:57:39 +01:00
dependabot-preview[bot]andGitHub 9da7fe01da Bump @babel/plugin-syntax-dynamic-import from 7.2.0 to 7.7.4 in /js
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.2.0 to 7.7.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.2.0...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 11:55:08 +00:00
dependabot-preview[bot]andGitHub e361fc7137 Bump url-loader from 2.1.0 to 3.0.0 in /js
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.1.0 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.1.0...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 11:55:01 +00:00
Julius HärtlandGitHub c681a3d0a0 Bump raw-loader from 3.1.0 to 4.0.0 (#1368)
Bump raw-loader from 3.1.0 to 4.0.0
2019-12-01 12:54:38 +01:00
Julius HärtlandGitHub b52178dfeb Bump @babel/runtime from 7.6.3 to 7.7.4 (#1370)
Bump @babel/runtime from 7.6.3 to 7.7.4
2019-12-01 12:53:32 +01:00
Julius HärtlandGitHub ebd74e2d74 Bump @nextcloud/vue from 1.1.0 to 1.2.2 (#1371)
Bump @nextcloud/vue from 1.1.0 to 1.2.2
2019-12-01 12:53:18 +01:00
dependabot-preview[bot]andGitHub 111511ca55 Bump @nextcloud/vue from 1.1.0 to 1.2.2
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.1.0 to 1.2.2.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.1.0...v1.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:21:34 +00:00
dependabot-preview[bot]andGitHub a768dc9bbd Bump @babel/runtime from 7.6.3 to 7.7.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.6.3 to 7.7.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/commits/v7.7.4/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:20:00 +00:00
dependabot-preview[bot]andGitHub 159b7f296f Bump raw-loader from 3.1.0 to 4.0.0
Bumps [raw-loader](https://github.com/webpack-contrib/raw-loader) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/webpack-contrib/raw-loader/releases)
- [Changelog](https://github.com/webpack-contrib/raw-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/raw-loader/compare/v3.1.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:18:01 +00:00
dependabot-preview[bot]andGitHub 4294761115 Bump url-loader from 2.3.0 to 3.0.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.3.0 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.3.0...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:16:16 +00:00
Nextcloud bot c51a6b6a80 [tx-robot] updated from transifex 2019-11-30 02:26:22 +00:00
Nextcloud bot 727f59792a [tx-robot] updated from transifex 2019-11-29 02:26:24 +00:00
Nextcloud bot 394c0d187f [tx-robot] updated from transifex 2019-11-28 02:26:58 +00:00
Julius HärtlandGitHub b99ae0a97b Added request body for the creation of stacks in API docs (#1345)
Added request body for the creation of stacks in API docs
2019-11-27 21:40:46 +01:00
Julius HärtlandGitHub d42d390ab3 Vue move nextcloud vue (#1307)
Vue move nextcloud vue
2019-11-27 21:32:42 +01:00
Julius Härtl 35d6522598 Quer Application class
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 20:57:15 +01:00
Julius Härtl cb3a80eea3 Resolve apps node_modules first
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 20:42:35 +01:00
Julius HärtlandGitHub 02ad682926 l10n: Fixed some grammar (#1360)
l10n: Fixed some grammar
2019-11-27 19:58:21 +01:00
rakeknivenandGitHub af607f69b8 l10n: Fixed some grammar
Reported at Transifex.

Signed-off-by: rakekniven <mark.ziegler@rakekniven.de>
2019-11-27 19:25:26 +01:00
Julius Härtl 4ccc590f24 Move to indivitual imports
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl 334d88aec6 Add URLSearchParams polyfill
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl f68a94e920 Use proper import from vue-easymde
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl 2c7e306289 move to @nextcloud/vue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:18 +01:00
Julius Härtl 0d98d02b76 Move to @nextcloud/vue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:27:53 +01:00
Nextcloud bot acb91b500e [tx-robot] updated from transifex 2019-11-25 02:25:15 +00:00
dependabot-preview[bot]andGitHub 4b96f1892d Merge pull request #1354 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.7.4 2019-11-24 09:44:39 +00:00
dependabot-preview[bot]andGitHub bbf6297f67 Bump @babel/preset-env from 7.7.1 to 7.7.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.1 to 7.7.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.7.1...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 08:51:56 +00:00
dependabot-preview[bot]andGitHub ed6e2a3381 Merge pull request #1356 from nextcloud/dependabot/npm_and_yarn/vue/babel/plugin-syntax-dynamic-import-7.7.4 2019-11-24 08:49:41 +00:00
dependabot-preview[bot]andGitHub 7d36947642 Merge pull request #1358 from nextcloud/dependabot/npm_and_yarn/vue/url-loader-2.3.0 2019-11-24 07:56:00 +00:00
dependabot-preview[bot]andGitHub 15a4cd7348 Merge pull request #1357 from nextcloud/dependabot/npm_and_yarn/vue/file-loader-4.3.0 2019-11-24 07:21:39 +00:00
dependabot-preview[bot]andGitHub 0bb4697bdf Merge pull request #1355 from nextcloud/dependabot/npm_and_yarn/vue/prettier-eslint-9.0.1 2019-11-24 06:28:18 +00:00
dependabot-preview[bot]andGitHub 148cb38dfd Bump @babel/plugin-syntax-dynamic-import from 7.2.0 to 7.7.4
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.2.0 to 7.7.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.2.0...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 03:49:53 +00:00
dependabot-preview[bot]andGitHub 73e81d83b5 Merge pull request #1349 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.7.4 2019-11-24 03:47:41 +00:00
dependabot-preview[bot]andGitHub 0252a1799e Bump url-loader from 2.2.0 to 2.3.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/webpack-contrib/url-loader/releases)
- [Changelog](https://github.com/webpack-contrib/url-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/url-loader/compare/v2.2.0...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 02:20:22 +00:00
dependabot-preview[bot]andGitHub dc4f009b71 Bump file-loader from 4.2.0 to 4.3.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v4.2.0...v4.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 02:19:36 +00:00
dependabot-preview[bot]andGitHub edb541d5f0 Bump prettier-eslint from 9.0.0 to 9.0.1
Bumps [prettier-eslint](https://github.com/prettier/prettier-eslint) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/prettier/prettier-eslint/releases)
- [Changelog](https://github.com/prettier/prettier-eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier-eslint/compare/v9.0.0...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 02:16:56 +00:00
dependabot-preview[bot]andGitHub 96f08e5f38 Bump @babel/core from 7.7.2 to 7.7.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.2 to 7.7.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.7.2...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 02:13:57 +00:00
Thomas Cassaert d3e61ead57 Added request body for the creation of stacks in API docs
Signed-off-by: Thomas Cassaert <tcassaert@inuits.eu>
2019-11-23 15:24:13 +01:00
Nextcloud bot 096ff5f89f [tx-robot] updated from transifex 2019-11-23 02:25:38 +00:00
Nextcloud bot 58cb0a61b1 [tx-robot] updated from transifex 2019-11-22 02:25:42 +00:00
Nextcloud bot 3af7bdc5d9 [tx-robot] updated from transifex 2019-11-21 02:25:36 +00:00
dependabot-preview[bot]andGitHub aaefc7ca4f Merge pull request #1342 from nextcloud/dependabot/npm_and_yarn/js/angular-1.7.9 2019-11-20 17:22:08 +00:00
dependabot-preview[bot]andGitHub 78f900b48a [Security] Bump angular from 1.7.8 to 1.7.9 in /js
Bumps [angular](https://github.com/angular/angular.js) from 1.7.8 to 1.7.9. **This update includes a security fix.**
- [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.8...v1.7.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-20 15:32:49 +00:00
Nextcloud bot cc05ba6b1c [tx-robot] updated from transifex 2019-11-20 02:25:49 +00:00
Julius HärtlandGitHub f47b6fc24d Bump vue-loader from 15.7.1 to 15.7.2 in /js (#1327)
Bump vue-loader from 15.7.1 to 15.7.2 in /js
2019-11-15 14:57:35 +01:00
dependabot-preview[bot]andGitHub 1d04d86539 Merge pull request #1338 from nextcloud/dependabot/npm_and_yarn/js/vuex-3.1.2 2019-11-15 13:57:10 +00:00
dependabot-preview[bot]andGitHub 8112a63e0a Bump vue-loader from 15.7.1 to 15.7.2 in /js
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.7.1 to 15.7.2.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.7.1...v15.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 08:56:05 +00:00
dependabot-preview[bot]andGitHub 94010df616 Merge pull request #1339 from nextcloud/dependabot/npm_and_yarn/vue/vuex-3.1.2 2019-11-15 08:54:24 +00:00
dependabot-preview[bot]andGitHub a5f2c9e70f Bump vuex from 3.1.1 to 3.1.2
Bumps [vuex](https://github.com/vuejs/vuex) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Commits](https://github.com/vuejs/vuex/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 07:48:58 +00:00
dependabot-preview[bot]andGitHub 4db0bdaafb Bump vuex from 3.1.1 to 3.1.2 in /js
Bumps [vuex](https://github.com/vuejs/vuex) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Commits](https://github.com/vuejs/vuex/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 07:47:50 +00:00
Nextcloud bot 36c3ae5635 [tx-robot] updated from transifex 2019-11-14 02:25:19 +00:00
Julius HärtlandGitHub 601ac3688b Bump @babel/polyfill from 7.6.0 to 7.7.0 in /js (#1328)
Bump @babel/polyfill from 7.6.0 to 7.7.0 in /js
2019-11-11 13:30:39 +01:00
dependabot-preview[bot]andGitHub 770718286d Bump @babel/polyfill from 7.6.0 to 7.7.0 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.6.0 to 7.7.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.6.0...v7.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 20:28:55 +00:00
dependabot-preview[bot]andGitHub 938e81c197 Merge pull request #1325 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.3.10 2019-11-10 20:26:39 +00:00
dependabot-preview[bot]andGitHub a9c8e9bf4b Merge pull request #1331 from nextcloud/dependabot/npm_and_yarn/vue/babel/polyfill-7.7.0 2019-11-10 20:25:33 +00:00
dependabot-preview[bot]andGitHub 97c4f3d7c5 Merge pull request #1333 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.7.2 2019-11-10 09:29:24 +00:00
dependabot-preview[bot]andGitHub f85c3c25ce Merge pull request #1332 from nextcloud/dependabot/npm_and_yarn/vue/webpack-cli-3.3.10 2019-11-10 07:56:32 +00:00
dependabot-preview[bot]andGitHub e4716cd3ed Merge pull request #1330 from nextcloud/dependabot/npm_and_yarn/vue/vue-loader-15.7.2 2019-11-10 06:46:56 +00:00
dependabot-preview[bot]andGitHub 6bc6804c8e Merge pull request #1326 from nextcloud/dependabot/npm_and_yarn/vue/vue-easymde-1.0.1 2019-11-10 03:35:44 +00:00
dependabot-preview[bot]andGitHub b850cf8b4f Bump @babel/core from 7.6.4 to 7.7.2
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.4 to 7.7.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.6.4...v7.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 03:10:29 +00:00
dependabot-preview[bot]andGitHub 9d84753322 Bump @babel/polyfill from 7.6.0 to 7.7.0
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.6.0 to 7.7.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.6.0...v7.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 03:10:22 +00:00
dependabot-preview[bot]andGitHub 606ad1c6ab Merge pull request #1323 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.7.1 2019-11-10 03:08:15 +00:00
dependabot-preview[bot]andGitHub 22566ed576 Bump webpack-cli from 3.3.9 to 3.3.10
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.9 to 3.3.10.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.10/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.9...v3.3.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:18:56 +00:00
dependabot-preview[bot]andGitHub 93126aa44c Bump vue-loader from 15.7.1 to 15.7.2
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.7.1 to 15.7.2.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.7.1...v15.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:16:34 +00:00
dependabot-preview[bot]andGitHub 9f57066c5a Bump vue-easymde from 1.0.0 to 1.0.1
Bumps [vue-easymde](https://github.com/NikulinIlya/vue-easymde) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/NikulinIlya/vue-easymde/releases)
- [Commits](https://github.com/NikulinIlya/vue-easymde/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:13:51 +00:00
dependabot-preview[bot]andGitHub 7b4a81a716 Bump webpack-cli from 3.3.9 to 3.3.10 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.9 to 3.3.10.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.10/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.9...v3.3.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:13:38 +00:00
dependabot-preview[bot]andGitHub 2eac30f709 Bump @babel/preset-env from 7.6.3 to 7.7.1
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.3 to 7.7.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.6.3...v7.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:13:04 +00:00
Julius HärtlandGitHub ab6bc9ac12 Bump nextcloud-vue from 0.12.6 to 0.12.7 in /js (#1308)
Bump nextcloud-vue from 0.12.6 to 0.12.7 in /js
2019-11-07 23:31:04 +01:00
Julius HärtlandGitHub c32bb1600f Fix reversed permissions for reordering stacks (#1301) (#1318)
Fix reversed permissions for reordering stacks (#1301)
2019-11-04 10:06:57 +01:00
Julius HärtlandGitHub 4a90f73308 Merge branch 'master' into fix-nextcloud-deck-issue-1301-reversed-permissions-for-stack-reordering 2019-11-04 10:06:32 +01:00
Julius HärtlandGitHub f13927768c Fix reversed visibility of 'add stack' field (#1300) (#1317)
Fix reversed visibility of 'add stack' field (#1300)
2019-11-04 09:59:58 +01:00
Nextcloud bot dc0a79f045 [tx-robot] updated from transifex 2019-11-04 02:24:23 +00:00
dependabot-preview[bot]andGitHub 99e04162ee Merge pull request #1311 from nextcloud/dependabot/npm_and_yarn/vue/vue-smooth-dnd-0.8.1 2019-11-02 12:02:03 +00:00
dependabot-preview[bot]andGitHub a09f7b7912 Merge pull request #1309 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-0.12.7 2019-11-02 12:01:53 +00:00
Jaco Lüken c9e3239e31 Fix reversed permissions for reordering stacks (#1301)
Signed-off-by: Jaco Lüken <j.lueken@mhq-services.com>
2019-11-01 21:23:21 +01:00
Jaco Lüken 611231dbb4 Fix reversed visibility of 'add stack' field (#1300)
Signed-off-by: Jaco Lüken <j.lueken@mhq-services.com>
2019-11-01 21:15:52 +01:00
dependabot-preview[bot]andGitHub 090e788c0c Merge pull request #1310 from nextcloud/dependabot/npm_and_yarn/vue/node-sass-4.13.0 2019-10-27 05:47:24 +00:00
dependabot-preview[bot]andGitHub de269fa278 Bump vue-smooth-dnd from 0.8.0 to 0.8.1
Bumps [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:18:26 +00:00
dependabot-preview[bot]andGitHub 0e6b79fe9b Bump node-sass from 4.12.0 to 4.13.0
Bumps [node-sass](https://github.com/sass/node-sass) from 4.12.0 to 4.13.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.12.0...v4.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:17:18 +00:00
dependabot-preview[bot]andGitHub 3ca6cda2cc Bump nextcloud-vue from 0.12.6 to 0.12.7
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.6 to 0.12.7.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.6...v0.12.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:16:11 +00:00
dependabot-preview[bot]andGitHub bbbfc92571 Bump nextcloud-vue from 0.12.6 to 0.12.7 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.6 to 0.12.7.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.6...v0.12.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:13:53 +00:00
Nextcloud bot c3329fd33c [tx-robot] updated from transifex 2019-10-25 02:24:37 +00:00
Julius HärtlandGitHub ab3a42fc11 Collections (#1294)
Collections
2019-10-24 17:20:54 +02:00
Julius Härtl 56bee425b9 Fix angular dependency in board selector
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-24 16:04:18 +02:00
Julius HärtlandGitHub 6e192db79b clip icon instead of folder icon (#1305)
clip icon instead of folder icon
2019-10-24 14:50:24 +02:00
Jakob c29aed239c new icon
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-24 14:35:33 +02:00
Julius Härtl 9c8f5d5f63 Fetch board properly
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-23 15:31:34 +02:00
Julius Härtl 1fcb667a3c Fetch proper data for card resource provider
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-22 21:28:36 +02:00
Julius HärtlandGitHub 7390acae26 Improvements to Card Heading Editing (#1255)
Improvements to Card Heading Editing
2019-10-22 12:10:50 +02:00
Jakob 677123a8f7 added card project selection
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-22 11:42:09 +02:00
Gary Kim 067ec5e057 Fix overflowing card heading
If the heading of a card is too long,
it will push interface elements off the
card.

This change will ensure that text that
does not have spaces and thus cannot be
wrapped will simply be cut off with an
ellipsis instead.

Signed-off-by: Gary Kim <gary@garykim.dev>
2019-10-22 17:08:03 +08:00
Gary Kim fd406a0adb Prevent wrapping text being visible while editing card header
Also: address errors thrown by linter

Signed-off-by: Gary Kim <gary@garykim.dev>
2019-10-22 17:08:03 +08:00
Gary Kim 1d4fe31155 Cancel editing card header when escape is pressed
Signed-off-by: Gary Kim <gary@garykim.dev>
2019-10-22 17:08:03 +08:00
Gary Kim c2b8408cd2 Update Card Name on Form Submit
When editing a card's heading, pressing
"enter" or otherwise submitting the form
will save your edits.

Signed-off-by: Gary Kim <gary@garykim.dev>
2019-10-22 17:08:03 +08:00
Gary Kim b50e295e27 Cancel Card Heading Edit on Click Outside
Clicking away while editing a card name
will now cancel the edit.

Signed-off-by: Gary Kim <gary@garykim.dev>
2019-10-22 17:08:03 +08:00
Julius Härtl 97864ac1ff Properly register tooltip directive
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-22 10:45:26 +02:00
dependabot-preview[bot]andGitHub c718bcabd3 Merge pull request #1299 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-collections-0.6.0 2019-10-22 08:09:52 +00:00
Julius HärtlandGitHub f940d23968 Share boards and assign cards (#1293)
Share boards and assign cards
2019-10-22 10:09:21 +02:00
Julius Härtl ce31e02d6a Use groups icon from the server
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-22 10:08:38 +02:00
dependabot-preview[bot]andGitHub f660fe6356 Bump nextcloud-vue-collections from 0.5.6 to 0.6.0 in /js
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.5.6 to 0.6.0.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.5.6...v0.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-22 07:54:04 +00:00
Julius Härtl c2189683c7 Fix npm audit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-22 09:52:06 +02:00
Julius Härtl 9b2903b4d5 Move to @nextcloud packages
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-22 09:51:13 +02:00
Jakob 2875e23b96 update assignabl
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-22 07:58:45 +02:00
Julius HärtlandGitHub 21007286d2 Merge pull request #1297 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.41.2
Bump webpack from 4.41.1 to 4.41.2 in /js
2019-10-20 11:38:59 +02:00
dependabot-preview[bot]andGitHub e3b3366ebe Merge pull request #1298 from nextcloud/dependabot/npm_and_yarn/js/karma-4.4.1 2019-10-20 09:37:37 +00:00
dependabot-preview[bot]andGitHub db8c3b0aa8 Bump karma from 4.3.0 to 4.4.1 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 4.3.0 to 4.4.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.3.0...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-20 01:14:16 +00:00
dependabot-preview[bot]andGitHub 9f2d883dbe Bump webpack from 4.41.1 to 4.41.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.1 to 4.41.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.1...v4.41.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-20 01:13:43 +00:00
Jakob 1d54fc3ae8 tried to move loadBoard to store
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-19 14:27:00 +02:00
Jakob 23e88a7e15 typos, css
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-18 11:18:29 +02:00
Jakob 08ef55c950 fix share users
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-17 13:50:32 +02:00
Jakob 4d10b5fd59 UI done
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-17 12:49:00 +02:00
Jakob 4a3ba6540c duplicate files
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-17 07:49:28 +02:00
dependabot-preview[bot]andGitHub 9c6d80d5d3 Merge pull request #1296 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-collections-0.6.0 2019-10-16 15:06:57 +00:00
dependabot-preview[bot]andGitHub 2d3ef29041 Merge pull request #1295 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.2 2019-10-16 14:36:56 +00:00
dependabot-preview[bot]andGitHub 4d9e26a6ce Bump nextcloud-vue-collections from 0.5.6 to 0.6.0
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.5.6 to 0.6.0.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.5.6...v0.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-16 14:30:38 +00:00
dependabot-preview[bot]andGitHub 1a2c950b61 Bump webpack from 4.41.1 to 4.41.2
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.1 to 4.41.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.1...v4.41.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-16 14:28:18 +00:00
Julius Härtl 029accfe49 Use nextcloud-vue tooltip
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-16 14:48:15 +02:00
Julius Härtl 7716fb6738 Use url-loader to embed icons
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-16 14:40:12 +02:00
Julius Härtl da87973b85 Fix path for collection entrypoint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-16 14:27:46 +02:00
Julius Härtl 91aa14c7c2 Remove old js directory
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-16 14:26:39 +02:00
Julius Härtl f3da8f80a7 Adjust path to load for collections
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-10-16 14:11:44 +02:00
Jakob 5021e475c7 start
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-16 13:48:29 +02:00
Julius HärtlandGitHub 7924ba8176 Bump @babel/core from 7.6.2 to 7.6.4 in /js (#1286)
Bump @babel/core from 7.6.2 to 7.6.4 in /js
2019-10-16 10:20:05 +02:00
Julius HärtlandGitHub f51a4a58c5 Bump @babel/preset-env from 7.6.2 to 7.6.3 in /js (#1288)
Bump @babel/preset-env from 7.6.2 to 7.6.3 in /js
2019-10-16 10:19:55 +02:00
Jakob 7628eb425c little changes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-16 10:09:25 +02:00
Jakob d33725303a start
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-16 09:39:38 +02:00
Jakob e0808273ec get circle users
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-15 13:56:12 +02:00
Jakob 84dc4ce1dd circles
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-15 11:39:15 +02:00
Jakob e7fcef3e3a circle sharing
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-15 08:30:25 +02:00
dependabot-preview[bot]andGitHub 52ed13e306 Bump @babel/core from 7.6.2 to 7.6.4 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.2 to 7.6.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.6.2...v7.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-14 08:00:55 +00:00
dependabot-preview[bot]andGitHub 60887e0145 Bump @babel/preset-env from 7.6.2 to 7.6.3 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.2 to 7.6.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.6.2...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-14 08:00:53 +00:00
dependabot-preview[bot]andGitHub 49b88e1a49 Merge pull request #1285 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.41.1 2019-10-14 07:57:46 +00:00
dependabot-preview[bot]andGitHub c45e960da5 Bump webpack from 4.41.0 to 4.41.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.0 to 4.41.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.0...v4.41.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-14 07:17:48 +00:00
dependabot-preview[bot]andGitHub fb40320063 Merge pull request #1290 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.6 2019-10-14 07:15:45 +00:00
dependabot-preview[bot]andGitHub 99591eae0e Merge pull request #1287 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.6.3 2019-10-14 06:58:12 +00:00
dependabot-preview[bot]andGitHub a88ea8f4b3 Merge pull request #1289 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-0.12.6 2019-10-14 06:49:58 +00:00
Julius HärtlandGitHub 5772a7025d move card to another board (#1242)
move card to another board
2019-10-14 08:49:20 +02:00
dependabot-preview[bot]andGitHub abd82db9af Bump @babel/preset-env from 7.6.2 to 7.6.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.2 to 7.6.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.6.2...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-14 06:48:55 +00:00
dependabot-preview[bot]andGitHub 91ab2b0197 Bump nextcloud-vue from 0.12.4 to 0.12.6 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.4 to 0.12.6.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.4...v0.12.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-14 06:47:48 +00:00
dependabot-preview[bot]andGitHub 6efcf374d3 Merge pull request #1291 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.6.4 2019-10-14 06:46:14 +00:00
dependabot-preview[bot]andGitHub 335d9a3a42 Merge pull request #1292 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.1 2019-10-14 06:46:09 +00:00
Nextcloud bot a93c5541d9 [tx-robot] updated from transifex 2019-10-13 02:24:56 +00:00
dependabot-preview[bot]andGitHub 040e248962 Bump webpack from 4.41.0 to 4.41.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.0 to 4.41.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.0...v4.41.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-13 01:26:01 +00:00
dependabot-preview[bot]andGitHub 87c0bc819a Bump @babel/core from 7.6.2 to 7.6.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.2 to 7.6.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.6.2...v7.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-13 01:19:13 +00:00
dependabot-preview[bot]andGitHub d902f88258 Bump nextcloud-vue from 0.12.4 to 0.12.6
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.4 to 0.12.6.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.4...v0.12.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-13 01:17:22 +00:00
Jakob a6bdf077ff some css changes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-11 11:04:25 +02:00
Jakob 0f2e735a20 some UI changes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-10 11:06:51 +02:00
Julius HärtlandGitHub bb2eb7221a Clone boards with stacks, labels (#1221)
Clone boards with stacks, labels
2019-10-10 09:03:34 +02:00
Jakob e69b5465bd done
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-09 21:56:24 +02:00
Jakob 7d393292f3 stacks are not shown
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-09 13:40:12 +02:00
Jakob 1c2c700593 use try/catch
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-09 12:45:33 +02:00
Jakob 71e7c98fd6 change route after board duplication
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-09 09:36:25 +02:00
Nextcloud bot 9f5acf8940 [tx-robot] updated from transifex 2019-10-09 02:23:52 +00:00
Nextcloud bot e849dd3a1e [tx-robot] updated from transifex 2019-10-08 02:23:26 +00:00
dependabot-preview[bot]andGitHub 2cc9e5b224 Merge pull request #1278 from nextcloud/dependabot/npm_and_yarn/js/uirouter/angularjs-1.0.23 2019-10-06 08:06:24 +00:00
dependabot-preview[bot]andGitHub da650bb356 Merge pull request #1279 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-0.12.4 2019-10-06 08:02:03 +00:00
dependabot-preview[bot]andGitHub 311bb1f8a9 Bump @uirouter/angularjs from 1.0.22 to 1.0.23 in /js
Bumps [@uirouter/angularjs](https://github.com/angular-ui/ui-router) from 1.0.22 to 1.0.23.
- [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.22...1.0.23)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-06 07:59:16 +00:00
dependabot-preview[bot]andGitHub 7973b53209 Merge pull request #1277 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.4 2019-10-06 07:57:25 +00:00
dependabot-preview[bot]andGitHub ddc903cc03 Bump nextcloud-vue from 0.12.3 to 0.12.4
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.3 to 0.12.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.3...v0.12.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-06 01:14:47 +00:00
dependabot-preview[bot]andGitHub 295b166997 Bump nextcloud-vue from 0.12.3 to 0.12.4 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.3 to 0.12.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.3...v0.12.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-06 01:13:06 +00:00
dependabot-preview[bot]andGitHub fb4594825a Merge pull request #1268 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.41.0 2019-10-04 20:13:06 +00:00
dependabot-preview[bot]andGitHub d24011b338 Bump webpack from 4.40.2 to 4.41.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.40.2 to 4.41.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.40.2...v4.41.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-04 19:16:47 +00:00
Julius HärtlandGitHub 1ecb41bc95 Bump @babel/core from 7.6.0 to 7.6.2 in /js (#1267)
Bump @babel/core from 7.6.0 to 7.6.2 in /js
2019-10-04 20:14:02 +02:00
Julius HärtlandGitHub 9e3e8281d6 Bump webpack-cli from 3.3.8 to 3.3.9 in /js (#1259)
Bump webpack-cli from 3.3.8 to 3.3.9 in /js
2019-10-04 20:13:54 +02:00
Julius HärtlandGitHub e1fa4f9487 Bump @babel/preset-env from 7.6.0 to 7.6.2 in /js (#1269)
Bump @babel/preset-env from 7.6.0 to 7.6.2 in /js
2019-10-04 20:13:22 +02:00
Julius HärtlandGitHub e70340e267 Bump @babel/core from 7.6.0 to 7.6.2 (#1270)
Bump @babel/core from 7.6.0 to 7.6.2
2019-10-04 20:13:11 +02:00
dependabot-preview[bot]andGitHub c140e2f946 Merge pull request #1271 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.0 2019-10-04 18:12:46 +00:00
dependabot-preview[bot]andGitHub 7cffc7cdff Merge pull request #1272 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.6.2 2019-10-04 18:12:27 +00:00
Julius HärtlandGitHub 53380173b9 Unify reorder results to always be an array (#1257)
Unify reorder results to always be an array
2019-10-04 18:22:40 +02:00
Nextcloud bot b036ce922c [tx-robot] updated from transifex 2019-10-03 02:22:56 +00:00
Nextcloud bot 1d26dba25a [tx-robot] updated from transifex 2019-10-01 02:35:04 +00:00
dependabot-preview[bot]andGitHub c5ffde0469 Bump @babel/preset-env from 7.6.0 to 7.6.2
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.0 to 7.6.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.6.0...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-29 01:17:17 +00:00
dependabot-preview[bot]andGitHub f561dc77e6 Bump webpack from 4.40.2 to 4.41.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.40.2 to 4.41.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.40.2...v4.41.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-29 01:16:11 +00:00
dependabot-preview[bot]andGitHub b9f37c6c36 Bump @babel/core from 7.6.0 to 7.6.2
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.0 to 7.6.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.6.0...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-29 01:15:17 +00:00
dependabot-preview[bot]andGitHub 946cb65a98 Bump @babel/preset-env from 7.6.0 to 7.6.2 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.0 to 7.6.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.6.0...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-29 01:14:15 +00:00
dependabot-preview[bot]andGitHub cca307661a Bump @babel/core from 7.6.0 to 7.6.2 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.0 to 7.6.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.6.0...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-29 01:13:16 +00:00
Nextcloud bot 8509d1b90d [tx-robot] updated from transifex 2019-09-28 02:23:26 +00:00
dependabot-preview[bot]andGitHub 7d7b093ea3 Bump webpack-cli from 3.3.8 to 3.3.9 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.8 to 3.3.9.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.9/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.8...v3.3.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-27 04:00:05 +00:00
dependabot-preview[bot]andGitHub 60e6ac0f10 Merge pull request #1260 from nextcloud/dependabot/npm_and_yarn/vue/webpack-cli-3.3.9 2019-09-27 03:58:05 +00:00
Nextcloud bot 3f27076541 [tx-robot] updated from transifex 2019-09-25 02:23:04 +00:00
Nextcloud bot ca41c1fa6a [tx-robot] updated from transifex 2019-09-24 02:23:42 +00:00
dependabot-preview[bot]andGitHub 9fbd85a67a Bump webpack-cli from 3.3.8 to 3.3.9
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.8 to 3.3.9.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.9/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.8...v3.3.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-22 01:13:17 +00:00
Nextcloud bot 3c6c576f4e [tx-robot] updated from transifex 2019-09-21 02:23:14 +00:00
Julius Härtl f4248c06ee Unify output of reorder results
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-18 11:26:15 +02:00
Jakob 27b8c79bca stack api call
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-17 14:26:46 +02:00
Jakob 31ae00708d loading indicator
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-17 12:37:43 +02:00
Nextcloud bot 27bf117105 [tx-robot] updated from transifex 2019-09-14 02:14:44 +00:00
Julius HärtlandGitHub 3b8ee46bdd Bump webpack from 4.39.3 to 4.40.2 (#1249)
Bump webpack from 4.39.3 to 4.40.2
2019-09-13 23:14:16 +02:00
dependabot-preview[bot]andGitHub 999010aec2 Bump webpack from 4.39.3 to 4.40.2
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.3 to 4.40.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.3...v4.40.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 20:59:29 +00:00
dependabot-preview[bot]andGitHub a734d99a2d Merge pull request #1248 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.40.2 2019-09-13 20:56:49 +00:00
Julius HärtlandGitHub b577a79915 Add circles and groups to cards (#1243)
Add circles and groups to cards
2019-09-13 22:48:26 +02:00
dependabot-preview[bot]andGitHub cf0d74c706 Bump webpack from 4.39.3 to 4.40.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.3 to 4.40.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.3...v4.40.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 20:37:00 +00:00
Julius HärtlandGitHub d6373226db Bump webpack from 4.39.3 to 4.40.1 (#1245)
Bump webpack from 4.39.3 to 4.40.1
2019-09-13 22:35:18 +02:00
dependabot-preview[bot]andGitHub 9f0a2d2512 Merge pull request #1246 from nextcloud/dependabot/npm_and_yarn/js/markdown-it-10.0.0 2019-09-13 20:35:01 +00:00
dependabot-preview[bot]andGitHub 436ca348e4 Merge pull request #1247 from nextcloud/dependabot/npm_and_yarn/vue/vue-jest-3.0.5 2019-09-13 20:34:30 +00:00
dependabot-preview[bot]andGitHub 1f56372aa0 Bump vue-jest from 3.0.4 to 3.0.5
Bumps [vue-jest](https://github.com/vuejs/vue-jest) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 09:03:51 +00:00
dependabot-preview[bot]andGitHub 2bdef961cb Bump markdown-it from 9.1.0 to 10.0.0 in /js
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/9.1.0...10.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 09:03:19 +00:00
dependabot-preview[bot]andGitHub 5028b48777 Bump webpack from 4.39.3 to 4.40.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.3 to 4.40.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.3...v4.40.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 09:02:57 +00:00
Jakob e968b6f680 possibility to add circles and groups to a board
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-13 10:14:40 +02:00
Jakob 452f49c17c boards are shown in model
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-13 09:51:16 +02:00
Jakob df0a8515a3 added icon
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-11 08:33:07 +02:00
Julius HärtlandGitHub 7b1dea3e56 Bump @babel/polyfill from 7.4.4 to 7.6.0 (#1229)
Bump @babel/polyfill from 7.4.4 to 7.6.0
2019-09-10 18:15:43 +02:00
Julius HärtlandGitHub 6862b1c07e Bump @babel/core from 7.5.5 to 7.6.0 (#1230)
Bump @babel/core from 7.5.5 to 7.6.0
2019-09-10 18:15:25 +02:00
Julius HärtlandGitHub d05694c2ce Bump @babel/preset-env from 7.5.5 to 7.6.0 (#1228)
Bump @babel/preset-env from 7.5.5 to 7.6.0
2019-09-10 18:15:19 +02:00
Julius HärtlandGitHub d156a6ae80 Bump nextcloud-vue from 0.12.2 to 0.12.3 (#1231)
Bump nextcloud-vue from 0.12.2 to 0.12.3
2019-09-10 18:15:10 +02:00
dependabot-preview[bot]andGitHub 511f17f13f Merge pull request #1232 from nextcloud/dependabot/npm_and_yarn/vue/webpack-cli-3.3.8 2019-09-10 16:04:07 +00:00
dependabot-preview[bot]andGitHub 8073ae9c0e Bump webpack-cli from 3.3.7 to 3.3.8
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.8/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.7...v3.3.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-10 14:33:51 +00:00
Julius Härtl 6eb8c117a3 Fix tests after reordering has changed
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-10 16:30:01 +02:00
Julius HärtlandGitHub f74a3d6724 Merge pull request #1222 from nextcloud/changeDefaultBoardColor
default board color is now blue
2019-09-10 13:51:13 +02:00
Jakob d3efff0ce7 default board color is now blue
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-10 12:33:19 +02:00
dependabot-preview[bot]andGitHub 1e3bd5a19e Merge pull request #1227 from nextcloud/dependabot/npm_and_yarn/js/webpack-cli-3.3.8 2019-09-09 09:54:53 +00:00
dependabot-preview[bot]andGitHub 7d3b210d8d Bump webpack-cli from 3.3.7 to 3.3.8 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.8/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.7...v3.3.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 09:48:20 +00:00
dependabot-preview[bot]andGitHub 4e08804d8c Merge pull request #1226 from nextcloud/dependabot/npm_and_yarn/js/babel/preset-env-7.6.0 2019-09-09 09:45:59 +00:00
dependabot-preview[bot]andGitHub 6d537ebaa3 Bump @babel/preset-env from 7.5.5 to 7.6.0 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.5 to 7.6.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.5.5...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 09:14:16 +00:00
dependabot-preview[bot]andGitHub 444a0cfec2 Merge pull request #1224 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.3 2019-09-09 09:12:05 +00:00
dependabot-preview[bot]andGitHub d16c2c2e30 Bump nextcloud-vue from 0.12.2 to 0.12.3 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.2 to 0.12.3.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.2...v0.12.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 08:06:52 +00:00
dependabot-preview[bot]andGitHub b4a627f1bb Merge pull request #1223 from nextcloud/dependabot/npm_and_yarn/js/babel/core-7.6.0 2019-09-09 08:02:38 +00:00
dependabot-preview[bot]andGitHub b0e65e7c9e Bump @babel/core from 7.5.5 to 7.6.0 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.5 to 7.6.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.5.5...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 07:32:32 +00:00
Julius HärtlandGitHub cf40a9b4df Bump @babel/polyfill from 7.4.4 to 7.6.0 in /js (#1225)
Bump @babel/polyfill from 7.4.4 to 7.6.0 in /js
2019-09-09 09:30:15 +02:00
Nextcloud bot a6d4d1f93e [tx-robot] updated from transifex 2019-09-08 02:26:36 +00:00
dependabot-preview[bot]andGitHub 44fd63ef7e Bump nextcloud-vue from 0.12.2 to 0.12.3
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.2 to 0.12.3.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.2...v0.12.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-08 01:19:13 +00:00
dependabot-preview[bot]andGitHub 19f5063068 Bump @babel/core from 7.5.5 to 7.6.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.5 to 7.6.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.5.5...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-08 01:17:45 +00:00
dependabot-preview[bot]andGitHub 8bc497b4b2 Bump @babel/polyfill from 7.4.4 to 7.6.0
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.4.4 to 7.6.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.4.4...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-08 01:16:57 +00:00
dependabot-preview[bot]andGitHub fba60673c5 Bump @babel/preset-env from 7.5.5 to 7.6.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.5 to 7.6.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.5.5...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-08 01:16:09 +00:00
dependabot-preview[bot]andGitHub 62b6115af0 Bump @babel/polyfill from 7.4.4 to 7.6.0 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.4.4 to 7.6.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.4.4...v7.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-08 01:14:30 +00:00
Nextcloud bot d6645a0feb [tx-robot] updated from transifex 2019-09-07 02:24:29 +00:00
Jakob 36afac9eff clone board func with labels and stacks
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-06 09:45:25 +02:00
Julius Härtl 014f708752 Fix spacing on badges
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-05 22:50:26 +02:00
Julius HärtlandGitHub 2139a82e9d Merge pull request #1217 from nextcloud/avatarFix
avatars now in a good looking way
2019-09-05 22:48:03 +02:00
Julius HärtlandGitHub 4e320ff1e9 tags are now in one line (#1219)
tags are now in one line
2019-09-05 22:47:55 +02:00
Julius Härtl d4c744b084 Unify card badges
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-05 22:47:34 +02:00
Julius Härtl 695042cdd0 Implement stack and card reordering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-05 22:37:47 +02:00
Julius HärtlandGitHub 0114056cc4 Merge pull request #1199 from a11exandru/issue1169
Solving timeline small bugs.
2019-09-04 18:38:33 +02:00
Julius Härtl 6c8ac1ed47 Fix tag style in card sidebar and remove flex basis on card labels
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-04 18:33:43 +02:00
Julius Härtl b75d1ef3fd Remove unused code and prevent click propagation on the avatar list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-09-04 18:15:27 +02:00
Jakob cba7525951 rename, position change
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-04 11:21:55 +02:00
Jakob 1db20878a9 changed back to ul,li
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-04 11:12:38 +02:00
Jakob 12037679e5 tags are now in one line
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-04 07:42:40 +02:00
Nextcloud bot 9b1b62b812 [tx-robot] updated from transifex 2019-09-04 02:25:35 +00:00
Jakob 80b025fafe avatars now in a good looking way
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-09-03 15:03:25 +02:00
dependabot-preview[bot]andGitHub f71d491fd0 Merge pull request #1214 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-axios-0.2.1 2019-09-02 18:14:47 +00:00
Julius HärtlandGitHub 91f9b8ee72 Merge pull request #1213 from nextcloud/highlightActiveCard
active is highlighted
2019-09-02 16:21:37 +02:00
dependabot-preview[bot]andGitHub ce8ccc9b9a Bump nextcloud-axios from 0.2.0 to 0.2.1 in /js
Bumps [nextcloud-axios](https://github.com/ChristophWurst/nextcloud-axios) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/ChristophWurst/nextcloud-axios/releases)
- [Commits](https://github.com/ChristophWurst/nextcloud-axios/compare/v0.2.0...v0.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-02 13:35:53 +00:00
dependabot-preview[bot]andGitHub 80520f2403 Merge pull request #1215 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.2 2019-09-02 13:33:47 +00:00
dependabot-preview[bot]andGitHub ab1c765ff6 Merge pull request #1216 from nextcloud/dependabot/npm_and_yarn/vue/vue-router-3.1.3 2019-09-02 13:33:42 +00:00
dependabot-preview[bot]andGitHub 8661d51317 Bump vue-router from 3.1.2 to 3.1.3
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.1.2...v3.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-01 01:15:21 +00:00
dependabot-preview[bot]andGitHub 87d4235af4 Bump nextcloud-vue from 0.12.1 to 0.12.2 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.1 to 0.12.2.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.1...v0.12.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-01 01:13:48 +00:00
Nextcloud bot dc8f01d887 [tx-robot] updated from transifex 2019-08-31 02:23:28 +00:00
Julius HärtlandGitHub 625ebdc4c0 label multi shows color, sharing shows avatars (#1210)
label multi shows color, sharing shows avatars
2019-08-30 15:55:31 +02:00
JakobandJulius Härtl 283aa01fd4 fix reload problem
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-30 15:55:07 +02:00
Jakob 2ad66ca76e impl Julius review topics
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-30 09:20:45 +02:00
Jakob 1d8b4cd33d CSS, comparison
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 14:36:00 +02:00
dependabot-preview[bot]andGitHub ef5f892259 Merge pull request #1205 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.39.3 2019-08-29 11:29:51 +00:00
Julius HärtlandGitHub 469e687686 Bump nextcloud-axios from 0.2.0 to 0.2.1 (#1212)
Bump nextcloud-axios from 0.2.0 to 0.2.1
2019-08-29 12:08:51 +02:00
dependabot-preview[bot]andGitHub ee2ebbecf8 Merge pull request #1211 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-0.12.2 2019-08-29 10:08:11 +00:00
Jakob 90d6923fb6 added the avatarselectoption
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 11:56:56 +02:00
dependabot-preview[bot]andGitHub 192fd6a924 Bump webpack from 4.39.2 to 4.39.3 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.2 to 4.39.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.2...v4.39.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 09:21:45 +00:00
dependabot-preview[bot]andGitHub 745f3cef35 Merge pull request #1204 from nextcloud/dependabot/npm_and_yarn/js/webpack-merge-4.2.2 2019-08-29 09:19:56 +00:00
Jakob d08bd23578 active is highlighted
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 10:53:34 +02:00
dependabot-preview[bot]andGitHub f36a1614c2 Bump nextcloud-axios from 0.2.0 to 0.2.1
Bumps [nextcloud-axios](https://github.com/ChristophWurst/nextcloud-axios) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/ChristophWurst/nextcloud-axios/releases)
- [Commits](https://github.com/ChristophWurst/nextcloud-axios/compare/v0.2.0...v0.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 08:46:55 +00:00
dependabot-preview[bot]andGitHub 011470cfde Bump nextcloud-vue from 0.12.1 to 0.12.2
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.12.1 to 0.12.2.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.12.1...v0.12.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 08:44:43 +00:00
Julius HärtlandGitHub fecd59b511 Required (#1209)
Required
2019-08-29 10:33:51 +02:00
dependabot-preview[bot]andGitHub 925424968f Bump webpack-merge from 4.2.1 to 4.2.2 in /js
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.2.1 to 4.2.2.
- [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.2.1...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 08:29:21 +00:00
dependabot-preview[bot]andGitHub 7970338263 Merge pull request #1203 from nextcloud/dependabot/npm_and_yarn/js/karma-4.3.0 2019-08-29 08:27:41 +00:00
Alex PuiuandGitHub ac1698e250 Merge branch 'master' into issue1169 2019-08-29 11:12:23 +03:00
Jakob 59827e0f69 label multi shows color, sharing shows avatars
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 09:26:06 +02:00
Jakob 619f70b33b avoid empty names with required
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 08:39:52 +02:00
dependabot-preview[bot]andGitHub 25d06855dc Bump karma from 4.2.0 to 4.3.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 4.2.0 to 4.3.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/v4.2.0...v4.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-29 05:26:16 +00:00
dependabot-preview[bot]andGitHub bc904c44d4 Merge pull request #1207 from nextcloud/dependabot/npm_and_yarn/vue/babel-eslint-10.0.3 2019-08-29 05:26:09 +00:00
dependabot-preview[bot]andGitHub 6a43db39a3 Merge pull request #1206 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.39.3 2019-08-29 05:24:21 +00:00
Nextcloud bot b35ac4237c [tx-robot] updated from transifex 2019-08-29 02:23:33 +00:00
dependabot-preview[bot]andGitHub 57921c9e96 Bump webpack from 4.39.2 to 4.39.3
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.2 to 4.39.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.2...v4.39.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 21:27:21 +00:00
dependabot-preview[bot]andGitHub eb4b82060a Merge pull request #1208 from nextcloud/dependabot/npm_and_yarn/vue/webpack-merge-4.2.2 2019-08-28 21:24:45 +00:00
dependabot-preview[bot]andGitHub 60bf07d88b Bump webpack-merge from 4.2.1 to 4.2.2
Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 4.2.1 to 4.2.2.
- [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.2.1...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 18:40:36 +00:00
dependabot-preview[bot]andGitHub 71617d9d6b Bump babel-eslint from 10.0.2 to 10.0.3
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.2 to 10.0.3.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.2...v10.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-28 18:39:11 +00:00
Jakob 1c040d35be edit not possible in archive mode
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-28 11:17:31 +02:00
Jakob 329df8e856 card and stack names required, clear card field after creation
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-28 11:01:36 +02:00
Nextcloud bot a65f20c39c [tx-robot] updated from transifex 2019-08-28 02:24:53 +00:00
Julius HärtlandGitHub 493eee601b Merge pull request #1189 from nextcloud/boardTimeline
Board and Card Timeline
2019-08-27 12:40:44 +02:00
Julius Härtl e3405c915b Add activity entry component
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-27 12:12:58 +02:00
JakobandJulius Härtl 001aaa4dcd format entries, do not load on end, loading by click on another card/board
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:12:58 +02:00
JakobandJulius Härtl 9f62a24450 loading icon, parse msg in BoardSidebar
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:11:59 +02:00
JakobandJulius Härtl 6b8d42f176 timeline for board and cards and small other fixes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:11:59 +02:00
JakobandJulius Härtl bc7c5ea4b7 board timeline
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:11:59 +02:00
Julius HärtlandGitHub c3d925a172 Fix desc field (#1192)
Fix desc field
2019-08-27 10:08:26 +02:00
JakobandJulius Härtl 1b2fed9e86 improve desc in editor
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 10:07:43 +02:00
alexandru.puiu d6b0155e9d Probably a better method to solve the update card title issue.
Signed-off-by: alexandru.puiu <alexandrup@newro.co>
2019-08-27 10:43:14 +03:00
dependabot-preview[bot]andGitHub f4f7c05f9f Merge pull request #1200 from nextcloud/dependabot/npm_and_yarn/vue/eslint-utils-1.4.2 2019-08-27 05:14:21 +00:00
dependabot-preview[bot]andGitHub 610507f790 [Security] Bump eslint-utils from 1.3.1 to 1.4.2
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2. **This update includes a security fix.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 19:20:24 +00:00
KoenandJulius Härtl bf1a917e2b Add date format to If-Modified-Since documentation (#1196)
*  Fix If-Modified-Since example in API.md 

Fixes the example curl request date format. It didn't conform to the IMF-fix standard and was not accepted by the parseDate function.

Signed-off-by: Koen Tange <monokles@protonmail.ch>

* Add If-Modified-Since format description to API.md

Adds a short description elaborating on the different date formats supported by the If-Modified-Since header.

Signed-off-by: Koen Tange <monokles@protonmail.ch>

* Mark old time formats as obsolete in API.md

Clarified in the text that only the IMF-fixformat date format should be used in conjuction with the If-Modified-Since header.

Signed-off-by: Koen Tange <monokles@protonmail.ch>
2019-08-26 17:18:32 +02:00
alexandru.puiu d082e3f805 Solving timeline small bugs.
Signed-off-by: alexandru.puiu <alexandrup@newro.co>
2019-08-26 18:00:19 +03:00
dependabot-preview[bot]andJulius Härtl 7e4edf5d6c Bump webpack-cli from 3.3.6 to 3.3.7 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.6 to 3.3.7.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.7/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.6...v3.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-26 08:13:55 +02:00
dependabot-preview[bot]andGitHub edbeda81f6 Merge pull request #1194 from nextcloud/dependabot/npm_and_yarn/vue/sass-loader-7.3.1 2019-08-26 06:13:07 +00:00
dependabot-preview[bot]andGitHub 9accaa4987 Merge pull request #1195 from nextcloud/dependabot/npm_and_yarn/vue/webpack-cli-3.3.7 2019-08-26 06:13:02 +00:00
dependabot-preview[bot]andGitHub 0dbe106907 Bump webpack-cli from 3.3.6 to 3.3.7
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.6 to 3.3.7.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.7/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.6...v3.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-25 01:15:01 +00:00
dependabot-preview[bot]andGitHub 64e3af25f9 Bump sass-loader from 7.2.0 to 7.3.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.2.0 to 7.3.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.2.0...v7.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-25 01:13:28 +00:00
Julius Härtl 77a3563b89 Fix card design
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:29 +02:00
Julius Härtl ba3b5b59ff Some styling of the card details
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:29 +02:00
Julius Härtl 60d77e4d33 Make board title required
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:29 +02:00
Julius Härtl 6f595aebdc Fix tag list alignment
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:29 +02:00
Julius Härtl 0b5c7fb56a Fix color picker in navigation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:29 +02:00
Julius Härtl f14e9758a0 Fix board filter and limit acl list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-23 11:09:22 +02:00
JakobandJulius Härtl bd5f2c13b7 members are shown now
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-23 11:09:22 +02:00
JakobandJulius Härtl bdb9442671 sharing fix and updatedutime
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-22 09:55:23 +02:00
dependabot-preview[bot]andGitHub 8874b3df69 Merge pull request #1180 from nextcloud/dependabot/npm_and_yarn/vue/vue-easymde-1.0.0 2019-08-21 09:27:21 +00:00
Julius Härtl 74550b9953 Fix build
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-21 11:24:18 +02:00
Julius HärtlandGitHub a0af85abe4 Merge branch 'vue' into dependabot/npm_and_yarn/vue/vue-easymde-1.0.0 2019-08-21 10:00:02 +02:00
JakobandJulius Härtl 34316d84f0 Import change for version 1.0
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-21 09:56:45 +02:00
Julius HärtlandGitHub 84a9e72463 Update vue branch to master (#1183)
Update vue branch to master
2019-08-20 11:58:38 +02:00
Julius HärtlandGitHub da8b7774b4 Merge pull request #1175 from nextcloud/timeFix
changed time calculation
2019-08-20 11:58:13 +02:00
Jakob 0de1c581e8 watcher readded
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-20 11:23:43 +02:00
Julius Härtl 1eeaff7f29 Merge branch 'master' into vue-master 2019-08-20 10:57:41 +02:00
Julius Härtl c88b25c627 Bump versions on master
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-20 10:55:53 +02:00
Julius Härtl 14244f257e Update CHANGELOG
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-20 10:55:23 +02:00
Julius HärtlandGitHub bcc9f03942 Merge pull request #1182 from a11exandru/issue1138
Able to set description on creation card via API.
2019-08-20 10:40:58 +02:00
alexandru.puiu 002587523f Add empty default value to description parameter and remove the tabs from the empty lines
Signed-off-by: alexandru.puiu <alexandrup@newro.co>
2019-08-19 11:40:03 +03:00
alexandru.puiu 313ceb9a95 Able to set description on creation card via API.
Signed-off-by: alexandru.puiu <alexandrup@newro.co>
2019-08-19 11:00:56 +03:00
Nextcloud bot 36977564a2 [tx-robot] updated from transifex 2019-08-19 02:23:31 +00:00
dependabot-preview[bot]andGitHub 27ec348533 Bump vue-easymde from 0.1.6 to 1.0.0
Bumps [vue-easymde](https://github.com/NikulinIlya/vue-easymde) from 0.1.6 to 1.0.0.
- [Release notes](https://github.com/NikulinIlya/vue-easymde/releases)
- [Commits](https://github.com/NikulinIlya/vue-easymde/commits/v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 17:35:36 +00:00
Julius HärtlandGitHub a5ee26a592 Bump jest from 24.8.0 to 24.9.0 (#1181)
Bump jest from 24.8.0 to 24.9.0
2019-08-18 19:33:17 +02:00
dependabot-preview[bot]andGitHub 3496c09472 Bump jest from 24.8.0 to 24.9.0
Bumps [jest](https://github.com/facebook/jest) from 24.8.0 to 24.9.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.8.0...v24.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 17:32:06 +00:00
Julius HärtlandGitHub 17999595a5 Bump webpack from 4.39.1 to 4.39.2 in /js (#1176)
Bump webpack from 4.39.1 to 4.39.2 in /js
2019-08-18 19:31:45 +02:00
Julius HärtlandGitHub 96dac29870 Bump markdown-it from 9.0.1 to 9.1.0 in /js (#1178)
Bump markdown-it from 9.0.1 to 9.1.0 in /js
2019-08-18 19:31:34 +02:00
dependabot-preview[bot]andGitHub be752061ff Merge pull request #1177 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.39.2 2019-08-18 17:31:22 +00:00
dependabot-preview[bot]andGitHub 1652bb921a Merge pull request #1179 from nextcloud/dependabot/npm_and_yarn/vue/babel-jest-24.9.0 2019-08-18 17:29:39 +00:00
Nextcloud bot 1ab2ee1daa [tx-robot] updated from transifex 2019-08-18 02:25:09 +00:00
dependabot-preview[bot]andGitHub 7aa7574e26 Bump babel-jest from 24.8.0 to 24.9.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 24.8.0 to 24.9.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v24.9.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 01:13:52 +00:00
dependabot-preview[bot]andGitHub 138faf2de1 Bump markdown-it from 9.0.1 to 9.1.0 in /js
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 9.0.1 to 9.1.0.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/9.0.1...9.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 01:13:06 +00:00
dependabot-preview[bot]andGitHub 2887df270d Bump webpack from 4.39.1 to 4.39.2
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.1 to 4.39.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.1...v4.39.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 01:13:05 +00:00
dependabot-preview[bot]andGitHub 7e58486877 Bump webpack from 4.39.1 to 4.39.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.39.1 to 4.39.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.39.1...v4.39.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-18 01:12:32 +00:00
Nextcloud bot 3454127aee [tx-robot] updated from transifex 2019-08-17 02:23:48 +00:00
Jakob c0a9597877 time calc all 10 secs and checkbox icon
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-16 14:01:40 +02:00
Jakob f63eef36b7 time calc all 10 secs
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-16 12:23:17 +02:00
Jakob 35e7c7dbe7 changed time calculation
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-16 10:30:50 +02:00
Julius HärtlandGitHub 75189217b0 Merge pull request #1174 from nextcloud/tagsRepair
tags repair
2019-08-16 10:10:23 +02:00
Jakob 519336787c tags repair
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-16 10:01:30 +02:00
Julius HärtlandGitHub 9e792db7c0 Open card sidebar (#1173)
Open card sidebar
2019-08-14 18:36:02 +02:00
Jakob 23a218d9af duplicate methode deleted
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-14 11:04:58 +02:00
Jakob ec7eb72f05 open sidebar with router
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-14 09:32:14 +02:00
Jakob 4324fe9e2e now with form
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-14 09:28:22 +02:00
Julius HärtlandGitHub 0e3b54a5d4 Merge pull request #1171 from nextcloud/fixCreateCard
create card fix
2019-08-13 16:31:58 +02:00
Jakob 8dffaaa8c5 now with lint:fix
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-13 15:03:43 +02:00
Jakob 6d88ea7ef6 stack create without page reload
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-13 13:52:42 +02:00
Jakob 4ca406472d create card fix
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-13 13:21:59 +02:00
Julius HärtlandGitHub f8cd20a01a Vue board sidebar sharing (#1114)
Vue board sidebar sharing
2019-08-12 13:10:04 +02:00
Julius Härtl aa2b9adeec Fix eslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 11:47:57 +02:00
Julius Härtl 37de63434e Fix badge icons and markdown editor listing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 11:46:30 +02:00
Julius Härtl bb665fa56c Provide order for tabs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 11:46:26 +02:00
Julius Härtl a13e4b664d Fix styling of the share tab
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 11:43:51 +02:00
Julius Härtl e020c2631f Use server box-sizing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 11:43:23 +02:00
Julius Härtl 781e2b0bb2 Use router parameter to trigger card change
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 10:47:11 +02:00
Julius Härtl 2d35d90999 Fix click event target for opening the card
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 10:26:03 +02:00
Julius Härtl 65952acfdb Fix npm audit issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-12 08:48:30 +02:00
Julius Härtl 7ec4870999 Add package-lock to git
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 13:40:20 +02:00
Julius Härtl 015e2d9461 Use individual import
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 13:38:01 +02:00
Julius Härtl 623b55d348 General dependency bump
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 13:36:37 +02:00
Julius Härtl 0e37354a6e Fix styling of stack header/new card input
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 12:02:58 +02:00
Julius Härtl e16852ad17 Fix styling of share icon in navigation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 12:02:58 +02:00
Julius Härtl 8fc38a41d0 Fix color picker when creating boards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 12:02:58 +02:00
JakobandJulius Härtl 097bb21b45 small fixes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:58 +02:00
JakobandJulius Härtl 39ae9332e2 2 small fixes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:58 +02:00
JakobandJulius Härtl cc92937c6b last stand
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
JakobandJulius Härtl ac9fef5f05 last stand
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
JakobandJulius Härtl 4e67c3172b new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
JakobandJulius Härtl 4a45687a28 new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
JakobandJulius Härtl 38dc7945dd new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
JakobandJulius Härtl 70d3fba187 sharing to groups, shaing icon opens boarddetails, enter creates card or stack
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
JakobandJulius Härtl 10b7d8b335 deleted items
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
JakobandJulius Härtl fcabdbdc24 added new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:55 +02:00
JakobandJulius Härtl 408ea69272 it is working now
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:55 +02:00
Julius Härtl c6d16f4c16 Set default card type to plain
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-11 12:02:55 +02:00
JakobandJulius Härtl 770142232c sharing impl
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:55 +02:00
Jakob RöhrlandJulius Härtl 501545f2e5 some overall changes
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-08-11 12:02:54 +02:00
Jakob RöhrlandJulius Härtl f71f24c450 stack add and remove
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-08-11 12:02:54 +02:00
Jakob RöhrlandJulius Härtl b8cb364f00 sharing extensions
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-08-11 12:02:54 +02:00
Julius HärtlandGitHub 7a673efc4a Bump css-loader from 3.1.0 to 3.2.0 in /js (#1167)
Bump css-loader from 3.1.0 to 3.2.0 in /js
2019-08-11 10:49:51 +02:00
dependabot-preview[bot]andGitHub 36a5888faf Bump css-loader from 3.1.0 to 3.2.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.1.0 to 3.2.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/v3.1.0...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-11 08:33:32 +00:00
Julius HärtlandGitHub 6bfd9127ed Bump style-loader from 0.23.1 to 1.0.0 in /js (#1166)
Bump style-loader from 0.23.1 to 1.0.0 in /js
2019-08-11 10:31:42 +02:00
Julius HärtlandGitHub a5e155b6c7 Merge pull request #1165 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.12.1
Bump nextcloud-vue from 0.11.5 to 0.12.1 in /js
2019-08-11 09:35:15 +02:00
Julius HärtlandGitHub a0a0f9443d Merge pull request #1164 from nextcloud/dependabot/composer/christophwurst/nextcloud-tw-16.0
Update christophwurst/nextcloud requirement from ^15.0 to ^16.0
2019-08-11 09:33:57 +02:00
Julius HärtlandGitHub 3cb811bb79 Merge pull request #1168 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.12.1
Update nextcloud-vue requirement from ^0.11.4 to ^0.12.1
2019-08-11 09:32:46 +02:00
dependabot-preview[bot]andGitHub 910325a712 Update nextcloud-vue requirement from ^0.11.4 to ^0.12.1
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.4...v0.12.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-11 01:30:22 +00:00
dependabot-preview[bot]andGitHub 2a6385c68a Bump style-loader from 0.23.1 to 1.0.0 in /js
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 0.23.1 to 1.0.0.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-11 01:13:39 +00:00
dependabot-preview[bot]andGitHub 33cb61fe07 Bump nextcloud-vue from 0.11.5 to 0.12.1 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.11.5 to 0.12.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.5...v0.12.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-11 01:13:06 +00:00
dependabot-preview[bot]andGitHub f3fc9904d2 Update christophwurst/nextcloud requirement from ^15.0 to ^16.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/compare/v15.0.0...v16.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-11 01:12:35 +00:00
Nextcloud bot 3b7382f2d0 [tx-robot] updated from transifex 2019-08-09 02:22:51 +00:00
Julius HärtlandGitHub 2f14fa60e9 Update mini-css-extract-plugin requirement from ^0.7.0 to ^0.8.0 (#1147)
Update mini-css-extract-plugin requirement from ^0.7.0 to ^0.8.0
2019-07-24 08:52:52 +02:00
dependabot-preview[bot]andGitHub 5f9d039056 Update mini-css-extract-plugin requirement from ^0.7.0 to ^0.8.0
Updates the requirements on [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to permit the latest version.
- [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.7.0...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:15:21 +00:00
Julius HärtlandGitHub cc96da86c2 Update nextcloud-vue requirement from ^0.10.0 to ^0.11.4 (#1082)
Update nextcloud-vue requirement from ^0.10.0 to ^0.11.4
2019-06-30 13:21:51 +02:00
Julius HärtlandGitHub 7523792b9a Update prettier-eslint requirement from ^8.8.2 to ^9.0.0 (#1103)
Update prettier-eslint requirement from ^8.8.2 to ^9.0.0
2019-06-30 13:21:37 +02:00
dependabot-preview[bot]andGitHub c7b7f767e0 Update prettier-eslint requirement from ^8.8.2 to ^9.0.0
Updates the requirements on [prettier-eslint](https://github.com/prettier/prettier-eslint) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier-eslint/releases)
- [Changelog](https://github.com/prettier/prettier-eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier-eslint/compare/v8.8.2...v9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-23 01:17:16 +00:00
Julius HärtlandGitHub ead3608082 Update css-loader requirement from ^2.0.1 to ^3.0.0 (#1093)
Update css-loader requirement from ^2.0.1 to ^3.0.0
2019-06-21 09:24:59 +02:00
dependabot-preview[bot]andGitHub 21920b2380 Update css-loader requirement from ^2.0.1 to ^3.0.0
Updates the requirements on [css-loader](https://github.com/webpack-contrib/css-loader) to permit the latest version.
- [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...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-13 21:32:44 +00:00
dependabot-preview[bot]andJulius Härtl 4f1f9fd78d Update file-loader requirement from ^3.0.1 to ^4.0.0 (#1086)
Updates the requirements on [file-loader](https://github.com/webpack-contrib/file-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v3.0.1...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-11 18:33:35 +02:00
dependabot-preview[bot]andJulius Härtl 1155b85554 Update raw-loader requirement from ^2.0.0 to ^3.0.0 (#1087)
Updates the requirements on [raw-loader](https://github.com/webpack-contrib/raw-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/raw-loader/releases)
- [Changelog](https://github.com/webpack-contrib/raw-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/raw-loader/compare/v2.0.0...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-11 18:33:28 +02:00
Julius HärtlandGitHub 86515a7219 Update mini-css-extract-plugin requirement from ^0.6.0 to ^0.7.0 (#1076)
Update mini-css-extract-plugin requirement from ^0.6.0 to ^0.7.0
2019-06-05 11:34:25 +02:00
dependabot-preview[bot]andGitHub 159535a1f5 Update nextcloud-vue requirement from ^0.10.0 to ^0.11.4
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.10.0...v0.11.4)
2019-06-04 09:13:13 +00:00
Julius HärtlandGitHub e8c8d4c08d Update nextcloud-vue-collections requirement from ^0.4.0 to ^0.5.2 (#1068)
Update nextcloud-vue-collections requirement from ^0.4.0 to ^0.5.2
2019-06-04 11:07:22 +02:00
dependabot-preview[bot]andGitHub 56708643d5 Update nextcloud-vue-collections requirement from ^0.4.0 to ^0.5.2
Updates the requirements on [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) to permit the latest version.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.4.0...v0.5.2)
2019-05-31 08:22:31 +00:00
dependabot-preview[bot]andGitHub 39ca8e5255 Merge pull request #1077 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-axios-tw-0.2.0 2019-05-31 08:19:52 +00:00
dependabot-preview[bot]andGitHub 8402b80690 Update nextcloud-axios requirement from ^0.1.2 to ^0.2.0
Updates the requirements on [nextcloud-axios](https://github.com/ChristophWurst/nextcloud-axios) to permit the latest version.
- [Release notes](https://github.com/ChristophWurst/nextcloud-axios/releases)
- [Commits](https://github.com/ChristophWurst/nextcloud-axios/compare/v0.1.2...v0.2.0)
2019-05-31 07:33:57 +00:00
dependabot-preview[bot]andGitHub 49c21f7dc4 Update mini-css-extract-plugin requirement from ^0.6.0 to ^0.7.0
Updates the requirements on [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to permit the latest version.
- [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.6.0...v0.7.0)
2019-05-31 07:31:28 +00:00
Jakob Röhrl 362de5d411 board sharing sidebar
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-05-08 10:55:06 +02:00
Julius HärtlandGitHub d32da1017c Label editing in board sidebar (#935)
Label editing in board sidebar
2019-04-26 16:27:17 +02:00
Julius Härtl 643797daca Run initial install on drone
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 16:25:43 +02:00
Julius Härtl b854015e16 Use sidebar component for board sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 16:23:12 +02:00
Julius Härtl e7400fe1e5 Fix styling of label sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 16:15:41 +02:00
Jakob RöhrlandJulius Härtl 3f272b91c6 some small changes
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:18 +02:00
Julius Härtl 907bf57460 Add working example of vue-multiselect
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 15:39:18 +02:00
Jakob RöhrlandJulius Härtl 49e1d8e8ec added picker, button update and small changes
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:01 +02:00
Jakob RöhrlandJulius Härtl 1cd1684936 update, delete and create are working
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:01 +02:00
Jakob RöhrlandJulius Härtl b3cb618707 label update
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:01 +02:00
Michael WeimannandJulius Härtl 96ec6b812c Add label handling to the main store
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2019-04-26 15:39:00 +02:00
Jakob RöhrlandJulius Härtl ec01ab4f42 first try
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:00 +02:00
Julius Härtl f51d0b6716 Fix card styling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 15:35:06 +02:00
Julius Härtl e654fa0b4c Fix sidebar close
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 11:54:32 +02:00
Julius Härtl ea01804567 Move card styles to component and add compact mode
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 11:43:58 +02:00
Julius Härtl 93589d3eed Styles for board controls and remove old stylesheet
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 10:48:35 +02:00
Julius Härtl a7497aa590 Use AppSidebar component for card sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 10:22:26 +02:00
Julius Härtl 74eb579474 Add color picker to board edit mode
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 09:56:17 +02:00
Julius Härtl b2d844c013 Fix color picker in sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 09:39:43 +02:00
Julius Härtl dfb91a0e39 Add colorpicker component
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-26 08:56:54 +02:00
Julius Härtl 07cfa1abb8 Hide sections in navigation that are empty
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 21:51:51 +02:00
Julius Härtl 29c63288bf Add loading icon to group selector
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 21:51:39 +02:00
Julius Härtl 47f9b6cfc3 Add navigation to start screen board list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 21:50:40 +02:00
Julius Härtl f04225a33a Fix edit icon
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 21:41:06 +02:00
Julius Härtl a3b89f7da6 Add group settings to sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 21:40:52 +02:00
Julius Härtl 8f1dbd3576 Add board unarchiving and navigation to board sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 19:06:34 +02:00
Julius Härtl d92f4d9739 Make the vue branch work with 17
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 18:54:13 +02:00
Julius HärtlandGitHub 4c9b4ed24f Update nextcloud-vue requirement from ^0.9.0 to ^0.10.0 (#1002)
Update nextcloud-vue requirement from ^0.9.0 to ^0.10.0
2019-04-25 18:19:38 +02:00
dependabot[bot] 79c653152c Update nextcloud-vue requirement from ^0.9.0 to ^0.10.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.9.0...v0.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-25 16:16:39 +00:00
Julius Härtl 1a7d3ce00f Also build vue branch
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 18:13:43 +02:00
Julius Härtl 77fb6d54ea Merge branch 'master' into vue 2019-04-25 18:11:03 +02:00
Julius HärtlandGitHub f14e086c66 Update vue-smooth-dnd requirement from ^0.7.0 to ^0.8.0 (#1003)
Update vue-smooth-dnd requirement from ^0.7.0 to ^0.8.0
2019-04-25 18:02:39 +02:00
dependabot[bot] 0506c2454f Update vue-smooth-dnd requirement from ^0.7.0 to ^0.8.0
Updates the requirements on [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) to permit the latest version.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-21 01:24:27 +00:00
Julius HärtlandGitHub adf443902c Merge pull request #990 from nextcloud/dependabot/npm_and_yarn/vue/mini-css-extract-plugin-tw-0.6.0
Update mini-css-extract-plugin requirement from ^0.5.0 to ^0.6.0
2019-04-11 09:43:44 +02:00
dependabot[bot] 6c3239ea1f Update mini-css-extract-plugin requirement from ^0.5.0 to ^0.6.0
Updates the requirements on [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to permit the latest version.
- [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.5.0...v0.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-10 15:39:48 +00:00
Julius HärtlandGitHub c2b5ada462 Merge pull request #968 from nextcloud/dependabot/npm_and_yarn/vue/vue-smooth-dnd-tw-0.7.0
Update vue-smooth-dnd requirement from ^0.3.2 to ^0.7.0
2019-04-10 17:29:40 +02:00
dependabot[bot] 1f14b76caa Update vue-smooth-dnd requirement from ^0.3.2 to ^0.7.0
Updates the requirements on [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) to permit the latest version.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-01 19:24:21 +00:00
Julius HärtlandGitHub 026abd72f6 Merge pull request #945 from nextcloud/dependabot/npm_and_yarn/vue/raw-loader-tw-2.0.0
Update raw-loader requirement from ^1.0.0 to ^2.0.0
2019-03-19 12:21:29 +01:00
Julius HärtlandGitHub 18544f90c2 Merge pull request #944 from nextcloud/dependabot/npm_and_yarn/vue/vue-smooth-dnd-tw-0.3.2
Update vue-smooth-dnd requirement from ^0.2.8 to ^0.3.2
2019-03-19 12:18:47 +01:00
dependabot[bot] 0d7379366e Update raw-loader requirement from ^1.0.0 to ^2.0.0
Updates the requirements on [raw-loader](https://github.com/webpack-contrib/raw-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/raw-loader/releases)
- [Changelog](https://github.com/webpack-contrib/raw-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/raw-loader/compare/v1.0.0...v2.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-19 07:30:08 +00:00
dependabot[bot] 2c7ce4590a Update vue-smooth-dnd requirement from ^0.2.8 to ^0.3.2
Updates the requirements on [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) to permit the latest version.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-19 07:27:54 +00:00
Julius HärtlandGitHub 64f6a64f77 Merge pull request #924 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.9.0
Update nextcloud-vue requirement from ^0.8.0 to ^0.9.0
2019-03-12 08:46:39 +01:00
dependabot[bot] 8cec3f4b58 Update nextcloud-vue requirement from ^0.8.0 to ^0.9.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.8.0...v0.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-06 16:01:44 +00:00
Julius HärtlandGitHub 4c14cb74c1 Merge pull request #917 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.8.0
Update nextcloud-vue requirement from ^0.7.0 to ^0.8.0
2019-03-04 11:38:29 +01:00
dependabot[bot] 4729e1f85b Update nextcloud-vue requirement from ^0.7.0 to ^0.8.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.7.0...v0.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-02 02:17:50 +00:00
Julius HärtlandGitHub 297eb6b2c8 Merge pull request #905 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.7.0
Update nextcloud-vue requirement from ^0.6.3 to ^0.7.0
2019-02-23 13:52:38 +01:00
dependabot[bot] 65c83837a3 Update nextcloud-vue requirement from ^0.6.3 to ^0.7.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.6.3...v0.7.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-23 02:24:14 +00:00
Julius Härtl bd0aa664b8 Fix some eslint errors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-02-14 13:58:15 +01:00
Julius HärtlandGitHub b46e4c918a Merge pull request #895 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.6.3
Update nextcloud-vue requirement from ^0.5.0 to ^0.6.3
2019-02-14 13:47:19 +01:00
dependabot[bot] 1b4519f578 Update nextcloud-vue requirement from ^0.5.0 to ^0.6.3
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/commits/v0.6.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-14 02:25:12 +00:00
Julius HärtlandGitHub f00f03253b Merge pull request #861 from nextcloud/dependabot/npm_and_yarn/vue/babel-jest-tw-24.0.0
Update babel-jest requirement from ^23.6.0 to ^24.0.0
2019-01-28 18:12:19 +01:00
Julius HärtlandGitHub 65bfebb218 Merge pull request #862 from nextcloud/dependabot/npm_and_yarn/vue/jest-tw-24.0.0
Update jest requirement from ^23.6.0 to ^24.0.0
2019-01-28 18:11:57 +01:00
dependabot[bot] 96f328475d Update jest requirement from ^23.6.0 to ^24.0.0
Updates the requirements on [jest](https://github.com/facebook/jest) to permit the latest version.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v24.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-28 02:20:42 +00:00
dependabot[bot] 71cbf8894d Update babel-jest requirement from ^23.6.0 to ^24.0.0
Updates the requirements on [babel-jest](https://github.com/facebook/jest) to permit the latest version.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v24.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-28 02:18:49 +00:00
Julius HärtlandGitHub 1bcb07bcad Merge pull request #839 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-tw-0.5.0
Update nextcloud-vue requirement from ^0.4.2 to ^0.5.0
2019-01-08 15:50:47 +01:00
dependabot[bot] 6b5adbed02 Update nextcloud-vue requirement from ^0.4.2 to ^0.5.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/commits/v0.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-08 10:40:16 +00:00
Michael Weimann 47b08f0e52 Implement edit board name
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2019-01-06 23:06:35 +01:00
Michael Weimann c8b5b1efa5 Add the board api service to the app component
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2019-01-06 22:32:56 +01:00
Michael Weimann 8521cf4e0c Rename loading set methods to "load"
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2019-01-06 22:29:20 +01:00
Vadim Nicolai a63de8066e - setSharees action and mutation added
- Moved setBoards logic from App.vue to store.

Signed-off-by: Vadim Nicolai <nicolai.vadim@gmail.com>
2018-12-31 11:22:43 +02:00
Julius Härtl 35d9b48117 Implement stack drag-and-drop and use proper data from store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Julius Härtl 0f46b283b7 Add helper function for reordering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Julius Härtl c1580c765b Separate store to modules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Michael Weimann 1fc0d64925 Re implement the navigation
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 22:30:56 +01:00
Michael Weimann 45be999245 Add dummy delete
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 18:00:09 +01:00
Michael Weimann 03a3d29f1a Re use nav items
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 18:00:02 +01:00
Michael Weimann b1e434ef6b Fix use of nc vue
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 13:47:48 +01:00
Michael Weimann 1edb403c9a Merge branch 'vue' of https://github.com/nextcloud/deck into vue 2018-12-29 12:08:03 +01:00
Vadim Nicolai d2f78714a6 Added multiselect; adjusted acl.
Signed-off-by: Vadim Nicolai <nicolai.vadim@gmail.com>
2018-12-28 15:50:50 +02:00
Julius Härtl fb2ee56346 Add sidebar component
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:58:22 +01:00
Julius Härtl 950c6b9046 Fix drag-and-drop reordering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:58:03 +01:00
Julius Härtl acd85eb097 Rework routing to make sidebar dependent on child routes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:57:43 +01:00
Julius Härtl ef06f21d2a Add basic board view
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:56:13 +01:00
Vadim Nicolai 24af938058 Added current user avatar. 2018-12-22 23:17:27 +02:00
Julius HärtlandGitHub 2354a96624 Merge pull request #802 from nextcloud/dependabot/npm_and_yarn/vue/css-loader-tw-2.0.1
Update css-loader requirement from ^1.0.1 to ^2.0.1
2018-12-22 16:31:28 +01:00
Julius HärtlandGitHub 4a2c360de1 Merge pull request #791 from nextcloud/dependabot/npm_and_yarn/vue/raw-loader-tw-1.0.0
Update raw-loader requirement from ^0.5.1 to ^1.0.0
2018-12-22 16:31:05 +01:00
Julius HärtlandGitHub 89fc66df64 Merge pull request #819 from nextcloud/dependabot/npm_and_yarn/vue/file-loader-tw-3.0.1
Update file-loader requirement from ^2.0.0 to ^3.0.1
2018-12-22 16:29:55 +01:00
Michael Weimann d60ff00eec Remove archive action from archived boards
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-22 11:42:54 +01:00
Michael Weimann 756b4ddcc2 Use app nav children for categories
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-22 11:39:39 +01:00
Julius Härtl 41b917abfb Fix IE compatibility
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-21 19:28:32 +01:00
Vadim Nicolai 5ab601274c Added header tabs. 2018-12-21 17:19:50 +02:00
dependabot[bot] 1b0ea73318 Update file-loader requirement from ^2.0.0 to ^3.0.1
Updates the requirements on [file-loader](https://github.com/webpack-contrib/file-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/commits/v3.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-21 02:19:01 +00:00
Vadim Nicolai 32269d0483 BoardSidebar intendation fix. 2018-12-20 10:01:12 +02:00
Vadim Nicolai 021e3aa346 Added board sidebar close btn and adjusted title position. 2018-12-20 09:58:09 +02:00
dependabot[bot] 465a09f129 Update raw-loader requirement from ^0.5.1 to ^1.0.0
Updates the requirements on [raw-loader](https://github.com/webpack-contrib/raw-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/raw-loader/releases)
- [Changelog](https://github.com/webpack-contrib/raw-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/raw-loader/commits/v1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-18 19:40:47 +00:00
Julius HärtlandGitHub adc44622eb Merge pull request #785 from nextcloud/dependabot/npm_and_yarn/vue/mini-css-extract-plugin-tw-0.5.0
Update mini-css-extract-plugin requirement from ^0.4.4 to ^0.5.0
2018-12-18 20:38:40 +01:00
dependabot[bot] 0711149e41 Update css-loader requirement from ^1.0.1 to ^2.0.1
Updates the requirements on [css-loader](https://github.com/webpack-contrib/css-loader) to permit the latest version.
- [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/commits/v2.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-17 02:16:57 +00:00
Michael Weimann 69ad41bb58 Add archive board 2018-12-16 23:30:09 +01:00
Michael Weimann 22744ee39c Add add board functionality 2018-12-16 22:47:58 +01:00
Michael Weimann 6a3643384c State refactoring, adds a sidebar example, extends the breadcrumb navigation, introduces an API class 2018-12-11 19:46:36 +01:00
Michael Weimann 2649309e57 WiP implements the add board action 2018-12-11 16:58:42 +01:00
Michael Weimann 6b2873ab28 Moves boards into their own state 2018-12-11 15:42:25 +01:00
Michael Weimann 643d70e6f0 Removes filtering of the left side bar boards 2018-12-11 14:59:52 +01:00
dependabot[bot] 17fcf0cd61 Update mini-css-extract-plugin requirement from ^0.4.4 to ^0.5.0
Updates the requirements on [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to permit the latest version.
- [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/commits/v0.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-10 02:21:23 +00:00
Michael Weimann 922aaf31d8 Adds the boards list view 2018-12-05 04:57:01 +01:00
Michael Weimann 8c94da81f1 Implements the breadcrumbs home link 2018-12-05 04:56:03 +01:00
Michael Weimann a4dbb31b8c Adds the board route 2018-12-04 00:14:44 +01:00
Michael Weimann 5ea20e1268 Implements board filters 2018-12-04 00:10:58 +01:00
Michael Weimann bd349a677d Implements loading boards from the API 2018-12-03 23:31:47 +01:00
Michael Weimann 411cab1d45 Happifies eslint and adds an editorconfig 2018-12-03 22:40:39 +01:00
Michael Weimann 18b03550cc Restructures the app main, nav and sidebar 2018-12-02 12:24:55 +01:00
Michael Weimann 6ae42b1007 Extends the nextcloud version range 2018-12-02 11:02:52 +01:00
Michael Weimann 37ce80b085 Adds the package lock file to gitignore 2018-12-02 11:02:36 +01:00
Michael Weimann c121a936ef Adds sass style support for vue 2018-12-02 11:02:25 +01:00
Julius HärtlandGitHub a1edb667b9 Merge pull request #748 from nextcloud/dependabot/npm_and_yarn/vue/css-loader-tw-1.0.1
Update css-loader requirement from ^0.28.11 to ^1.0.1
2018-11-26 11:52:30 +01:00
dependabot[bot] 4ef6045ee5 Update css-loader requirement from ^0.28.11 to ^1.0.1
Updates the requirements on [css-loader](https://github.com/webpack-contrib/css-loader) to permit the latest version.
- [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/commits/v1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 02:29:41 +00:00
Julius Härtl 6783962cd8 Move template
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-25 13:31:55 +01:00
Julius Härtl 921cfdfc4a Bump dependencies 2018-11-25 13:30:41 +01:00
Julius Härtl c5179ac62f Build branch on CI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-25 13:30:40 +01:00
Julius Härtl 0a50467db0 Update drone for vue build
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-25 13:30:40 +01:00
Julius Härtl 7f6cde15d4 Use vue template
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-25 13:30:40 +01:00
Julius Härtl 1e4d663c11 Add basic vue structure
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-25 13:30:40 +01:00
376 changed files with 35141 additions and 27427 deletions
+17 -40
View File
@@ -2,7 +2,7 @@ kind: pipeline
name: checkers name: checkers
steps: steps:
- name: compatibility - name: compatibility
image: nextcloudci/php7.1:php7.1-16 image: nextcloudci/php7.2:php7.2-13
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
@@ -16,17 +16,8 @@ steps:
- ./occ app:check-code $APP_NAME -c strong-comparison - ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation - ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/ - cd apps/$APP_NAME/
- name: syntax-php7.1
image: nextcloudci/php7.1:php7.1-15
environment:
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
- name: syntax-php7.2 - name: syntax-php7.2
image: nextcloudci/php7.2:php7.2-9 image: nextcloudci/php7.2:php7.2-13
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
@@ -43,33 +34,15 @@ steps:
commands: commands:
- composer install - composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ . - ./vendor/bin/parallel-lint --exclude ./vendor/ .
trigger: - name: syntax-php7.4
branch: image: nextcloudci/php7.4:2
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: unit-php7.1
steps:
- name: php7.1
image: nextcloudci/php7.1:php7.1-16
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
DB: sqlite DB: sqlite
commands: 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 - composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml - ./vendor/bin/parallel-lint --exclude ./vendor/ .
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
trigger: trigger:
branch: branch:
- master - master
@@ -82,7 +55,7 @@ kind: pipeline
name: unit-php7.2 name: unit-php7.2
steps: steps:
- name: php7.2 - name: php7.2
image: nextcloudci/php7.2:php7.2-9 image: nextcloudci/php7.2:php7.2-13
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
@@ -109,7 +82,7 @@ kind: pipeline
name: unit-php7.3 name: unit-php7.3
steps: steps:
- name: php7.3 - name: php7.3
image: nextcloudci/php7.3:php7.3-2 image: nextcloudci/php7.3:php7.3-5
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
@@ -136,7 +109,7 @@ kind: pipeline
name: integration name: integration
steps: steps:
- name: integration - name: integration
image: nextcloudci/php7.1:php7.1-16 image: nextcloudci/php7.2:php7.2-13
environment: environment:
APP_NAME: deck APP_NAME: deck
CORE_BRANCH: master CORE_BRANCH: master
@@ -162,19 +135,23 @@ trigger:
kind: pipeline kind: pipeline
name: frontend name: frontend
steps: steps:
- name: install
image: node:lts-alpine
commands:
- npm install
- name: eslint - name: eslint
image: nextcloudci/eslint:eslint-1 image: node:lts-alpine
commands: commands:
- ./run-eslint.sh - npm run lint
- name: jsbuild - name: jsbuild
image: mhart/alpine-node:6.8.0 image: node:lts-alpine
commands: commands:
- apk add --no-cache make - npm run build
- make build-js
trigger: trigger:
branch: branch:
- master - master
- stable* - stable*
- vue
event: event:
- pull_request - pull_request
- push - push
+9
View File
@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.{js,vue}]
indent_style = tab
+8
View File
@@ -0,0 +1,8 @@
module.exports = {
extends: [
'nextcloud'
],
rules: {
'valid-jsdoc': ['warn'],
}
}
-43
View File
@@ -1,43 +0,0 @@
root: true
extends:
- eslint:recommended
env:
browser: true
amd: true
es6: true
globals:
global: false
app: false
angular: false
$: false
escapeHTML: false
OC: false
OCA: false
t: false
oc_current_user: false
oc_requesttoken: false
Clipboard: false
oc_defaults: false
parserOptions:
ecmaVersion: 6
sourceType: "module"
rules:
curly: error
eqeqeq: ["error", "smart"]
guard-for-in: error
no-console: off
no-fallthrough: error
no-mixed-spaces-and-tabs: error
no-unused-vars: warn
no-useless-escape: warn
no-use-before-define: error
semi: ["error", "always"]
indent:
- error
- tab
- SwitchCase: 1
+62
View File
@@ -0,0 +1,62 @@
name: Nightly build
on:
push:
branches:
- nightly
schedule:
- cron: '0 1 * * *' # run at 2 AM UTC
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Setup PHP
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
- name: package
run: |
uname -a
RUST_BACKTRACE=1 krankerl --version
RUST_BACKTRACE=1 krankerl package
- name: Set git config
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag -f nightly
- name: Push tag
uses: juliushaertl/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tags: true
force: true
- name: Create Release
id: create_release
uses: juliushaertl/action-release@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly
files: ./build/artifacts/deck.tar.gz
name: Nightly build
body: |
Nightly release of deck
draft: false
prerelease: true
overwrite: true
+31
View File
@@ -0,0 +1,31 @@
name: Node CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: install dependencies
run: |
npm ci
- name: build
run: |
npm run build --if-present
- name: eslint
run: |
npm run lint
env:
CI: true
+2 -4
View File
@@ -1,7 +1,5 @@
js/node_modules/* node_modules/*
js/vendor/ js/
js/public/
js/build/
build/ build/
css/style.css css/style.css
css/vendor.css css/vendor.css
+28
View File
@@ -0,0 +1,28 @@
build/
.git
.github
docs/
tests
babel.config.js
.editorconfig
.eslintrc.js
.nextcloudignore
webpack.*.js
.codecov.yml
composer.json
composer.lock
_config.yml
.drone.yml
.travis.yml
.eslintignore
.eslintrc.yml
.gitignore
issue_template.md
krankerl.toml
Makefile
mkdocs.yml
run-eslint.sh
package.json
package-lock.json
node_modules/
src/
+1 -6
View File
@@ -2,18 +2,13 @@ language: php
services: services:
- mysql - mysql
php: php:
- 7.1
- 7.2 - 7.2
- 7.3 - 7.3
env: env:
- CORE_BRANCH=master DB=mysql - CORE_BRANCH=master DB=mysql
before_install: before_install:
- wget https://phar.phpunit.de/phpunit-6.5.phar - export PATH="$PWD/vendor/bin:$PATH"
- chmod +x phpunit-6.5.phar
- mkdir bin
- mv phpunit-6.5.phar bin/phpunit
- export PATH="$PWD/bin:$PATH"
- phpunit --version - phpunit --version
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh - wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh deck $CORE_BRANCH $DB - bash ./before_install.sh deck $CORE_BRANCH $DB
+30
View File
@@ -1,6 +1,36 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## 0.8.0 - 2020-01-16
## Added
- Case insensitive search (@matchish)
## Fixed
- Fix reversed permissions for reordering stacks (@JLueke)
- Fix reversed visibility of 'add stack' field (@JLueke)
- Fix occ export command
- Fix error causing cron execution to fail
- Fix activity entry on moving cards
- Proper wording in activity timeline (@a11exandru)
## 0.7.0 - 2019-08-20
## Added
- Make deck compatible to Nextcloud 17
- Allow to set the description when creating cards though the REST API
## 0.6.6 - 2019-08-01
### Fixed
- Bump security related dependencies
## 0.6.5 - 2019-07-28
### Fixed
- Fix attachment upload/delete failures
- Bump dependencies
## 0.6.4 - 2019-06-30 ## 0.6.4 - 2019-06-30
### Fixed ### Fixed
+15 -56
View File
@@ -12,70 +12,32 @@ sign_dir=$(build_dir)/sign
cert_dir=$(HOME)/.nextcloud/certificates cert_dir=$(HOME)/.nextcloud/certificates
default: package default: build
clean-build:
rm -rf $(build_dir)
clean-dist: clean-dist:
rm -rf js/node_modules rm -rf node_modules/
install-deps: install-deps-js install-deps: install-deps-js
composer install composer install
install-deps-js: install-deps-nodev: install-deps-js
cd js && npm install composer install --no-dev
build: install-deps build-js install-deps-js:
npm ci
build: clean-dist install-deps build-js
release: clean-dist install-deps-nodev build-js
build-js: install-deps-js build-js: install-deps-js
cd js && npm run build npm run build
build-js-dev: install-deps build-js-dev: install-deps
cd js && npm run dev npm run dev
watch: watch:
cd js && npm run watch npm run watch
# appstore: clean install-deps
appstore: clean-build build
rm -rf $(appstore_build_directory)
mkdir -p $(appstore_build_directory)
tar cvzf $(appstore_package_name).tar.gz \
--exclude="../$(app_name)/build" \
--exclude="../$(app_name)/tests" \
--exclude="../$(app_name)/Makefile" \
--exclude="../$(app_name)/*.log" \
--exclude="../$(app_name)/phpunit*xml" \
--exclude="../$(app_name)/composer.*" \
--exclude="../$(app_name)/js/node_modules" \
--exclude="../$(app_name)/js/tests" \
--exclude="../$(app_name)/js/test" \
--exclude="../$(app_name)/js/*.log" \
--exclude="../$(app_name)/js/package-lock.json" \
--exclude="../$(app_name)/js/package.json" \
--exclude="../$(app_name)/js/bower.json" \
--exclude="../$(app_name)/js/karma.*" \
--exclude="../$(app_name)/js/protractor.*" \
--exclude="../$(app_name)/package.json" \
--exclude="../$(app_name)/bower.json" \
--exclude="../$(app_name)/karma.*" \
--exclude="../$(app_name)/protractor\.*" \
--exclude="../$(app_name)/.*" \
--exclude="../$(app_name)/*.lock" \
--exclude="../$(app_name)/run-eslint.sh" \
--exclude="../$(app_name)/js/.*" \
--exclude="../$(app_name)/vendor" \
--exclude-vcs \
../$(app_name)
@if [ -f $(cert_dir)/$(app_name).key ]; then \
echo "Signing package…"; \
openssl dgst -sha512 -sign $(cert_dir)/$(app_name).key $(build_dir)/$(app_name).tar.gz | openssl base64; \
fi
echo $(appstore_package_name).tar.gz
test: test-unit test-integration test: test-unit test-integration
@@ -84,7 +46,7 @@ test-unit:
ifeq (, $(shell which phpunit 2> /dev/null)) ifeq (, $(shell which phpunit 2> /dev/null))
@echo "No phpunit command available, downloading a copy from the web" @echo "No phpunit command available, downloading a copy from the web"
mkdir -p $(build_tools_directory) mkdir -p $(build_tools_directory)
curl -sSL https://phar.phpunit.de/phpunit-5.7.phar -o $(build_tools_directory)/phpunit.phar curl -sSL https://phar.phpunit.de/phpunit-8.2.phar -o $(build_tools_directory)/phpunit.phar
php $(build_tools_directory)/phpunit.phar -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml php $(build_tools_directory)/phpunit.phar -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
php $(build_tools_directory)/phpunit.phar -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml php $(build_tools_directory)/phpunit.phar -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
else else
@@ -96,7 +58,4 @@ test-integration:
cd tests/integration && ./run.sh cd tests/integration && ./run.sh
test-js: install-deps test-js: install-deps
cd js && run test npm run test
package:
krankerl package
+1 -1
View File
@@ -41,7 +41,7 @@ Please make sure you have installed the following dependencies: `make, which, ta
### Install the nightly builds ### Install the nightly builds
Instead of setting everything up manually, you can just [download the nightly builds](https://download.bitgrid.net/nextcloud/deck/nightly/) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies. Instead of setting everything up manually, you can just [download the nightly build](https://github.com/nextcloud/deck/releases/tag/nightly) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
## Developing ## Developing
+9 -5
View File
@@ -21,15 +21,19 @@
* *
*/ */
use OCA\Deck\AppInfo\Application;
use OCP\AppFramework\QueryException;
if ((@include_once __DIR__ . '/../vendor/autoload.php')=== false) { if ((@include_once __DIR__ . '/../vendor/autoload.php')=== false) {
throw new Exception('Cannot include autoload. Did you run install dependencies using composer?'); throw new Exception('Cannot include autoload. Did you run install dependencies using composer?');
} }
$app = new \OCA\Deck\AppInfo\Application(); try {
$app->registerNavigationEntry(); /** @var Application $app */
$app->registerNotifications(); $app = \OC::$server->query(Application::class);
$app->registerCommentsEntity(); $app->register();
$app->registerFullTextSearch(); } catch (QueryException $e) {
}
/** Load activity style global so it is availabile in the activity app as well */ /** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity'); \OC_Util::addStyle('deck', 'activity');
+3 -3
View File
@@ -3,7 +3,7 @@
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd"> xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>deck</id> <id>deck</id>
<name>Deck</name> <name>Deck</name>
<summary>A kanban style project and personal management tool for Nextcloud</summary> <summary>Personal planning and team project organization</summary>
<description>Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud. <description>Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
@@ -17,7 +17,7 @@
- 🚀 Get your project organized - 🚀 Get your project organized
</description> </description>
<version>0.7.0</version> <version>1.0.0-alpha1</version>
<licence>agpl</licence> <licence>agpl</licence>
<author>Julius Härtl</author> <author>Julius Härtl</author>
<namespace>Deck</namespace> <namespace>Deck</namespace>
@@ -36,7 +36,7 @@
<database min-version="9.4">pgsql</database> <database min-version="9.4">pgsql</database>
<database>sqlite</database> <database>sqlite</database>
<database min-version="5.5">mysql</database> <database min-version="5.5">mysql</database>
<nextcloud min-version="17" max-version="17" /> <nextcloud min-version="17" max-version="19" />
</dependencies> </dependencies>
<background-jobs> <background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job> <job>OCA\Deck\Cron\DeleteCron</job>
+2 -1
View File
@@ -38,8 +38,9 @@ return [
['name' => 'board#deleteUndo', 'url' => '/boards/{boardId}/deleteUndo', 'verb' => 'POST'], ['name' => 'board#deleteUndo', 'url' => '/boards/{boardId}/deleteUndo', 'verb' => 'POST'],
['name' => 'board#getUserPermissions', 'url' => '/boards/{boardId}/permissions', 'verb' => 'GET'], ['name' => 'board#getUserPermissions', 'url' => '/boards/{boardId}/permissions', 'verb' => 'GET'],
['name' => 'board#addAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'POST'], ['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'], ['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
// stacks // stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'], ['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
+2 -3
View File
@@ -1,11 +1,10 @@
module.exports = { module.exports = {
plugins: ['@babel/plugin-syntax-dynamic-import'],
presets: [ presets: [
[ [
'@babel/preset-env', '@babel/preset-env',
{ {
targets: { modules: false
browsers: ['last 2 versions', 'ie >= 11']
}
} }
] ]
] ]
+3 -2
View File
@@ -13,7 +13,8 @@
}, },
"require-dev": { "require-dev": {
"roave/security-advisories": "dev-master", "roave/security-advisories": "dev-master",
"christophwurst/nextcloud": "^15.0", "christophwurst/nextcloud": "^17",
"jakub-onderka/php-parallel-lint": "^1.0.0" "jakub-onderka/php-parallel-lint": "^1.0.0",
"phpunit/phpunit": "^8"
} }
} }
-43
View File
@@ -1,43 +0,0 @@
/*
* @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
@@ -1,77 +0,0 @@
/**
* 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;
}
-261
View File
@@ -1,261 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
#commentsTabView .emptycontent {
margin-top: 0;
}
#commentsTabView .newCommentForm {
margin-left: 36px;
position: relative;
}
#commentsTabView .newCommentForm .message {
width: 100%;
padding: 10px;
min-height: 44px;
margin: 0;
/* Prevent the text from overlapping with the submit button. */
padding-right: 30px;
}
#commentsTabView .newCommentForm {
.submit,
.submitLoading {
width: 44px;
height: 44px;
margin: 0;
padding: 13px;
background-color: transparent;
border: none;
opacity: .3;
position: absolute;
bottom: 0;
right: 0;
}
}
#commentsTabView .deleteLoading {
padding: 14px;
vertical-align: middle;
}
#commentsTabView .newCommentForm .submit:not(:disabled):hover,
#commentsTabView .newCommentForm .submit:not(:disabled):focus {
opacity: 1;
}
#commentsTabView .newCommentForm div.message {
resize: none;
}
#commentsTabView .newCommentForm div.message:empty:before {
content: attr(data-placeholder);
color: grey;
}
#commentsTabView .comment {
position: relative;
/** padding bottom is little more so that the top and bottom gap look uniform **/
padding: 10px 0 15px;
}
#commentsTabView .comments .comment {
border-top: 1px solid var(--color-border);
}
#commentsTabView .comment .avatar,
.atwho-view-ul * .avatar{
width: 32px;
height: 32px;
line-height: 32px;
margin-right: 5px;
}
#commentsTabView .comment .message .avatar,
.atwho-view-ul * .avatar
{
display: inline-block;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
white-space: pre-wrap;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
max-height: 70px;
overflow: hidden;
}
#activityTabView li.comment .message-overlay,
#commentsTabView .comment .message-overlay {
display: none;
}
#activityTabView li.comment.collapsed .message-overlay,
#commentsTabView .comment.collapsed .message-overlay {
display: block;
position: absolute;
z-index: 2;
height: 50px;
pointer-events: none;
left: 0;
right: 0;
bottom: 0;
background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background-repeat: no-repeat;
}
#commentsTabView .hidden {
display: none !important;
}
/** set min-height as 44px to ensure that it fits the button sizes. **/
#commentsTabView .comment .authorRow {
min-height: 44px;
}
#commentsTabView .comment .authorRow .tooltip {
/** because of the padding on the element, the tooltip appear too far up,
adding this brings them closer to the element**/
margin-top: 5px;
}
.atwho-view-ul * .avatar-name-wrapper,
#commentsTabView .comment .authorRow {
position: relative;
display: inline-flex;
align-items: center;
width: 100%;
}
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,
#commentsTabView .comment .authorRow .avatar:not(.currentUser),
#commentsTabView .comment .authorRow .author:not(.currentUser) {
cursor: pointer;
}
.atwho-view-ul .avatar-name-wrapper,
.atwho-view-ul .avatar-name-wrapper .avatar,
.atwho-view-ul .avatar-name-wrapper .avatar img {
cursor: pointer;
}
#commentsTabView .comments li .message .atwho-inserted,
#commentsTabView .newCommentForm .atwho-inserted {
.avatar-name-wrapper {
/* Make the wrapper the positioning context of its child contacts
* menu. */
position: relative;
display: inline;
vertical-align: top;
background-color: var(--color-background-dark);
border-radius: 50vh;
padding: 1px 7px 1px 1px;
/* Ensure that the avatar and the user name will be kept together. */
white-space: nowrap;
.avatar {
img {
vertical-align: top;
}
height: 16px;
width: 16px;
vertical-align: middle;
padding: 1px;
margin-top: -3px;
margin-left: 0;
margin-right: 2px;
}
strong {
/* Ensure that the user name is shown in bold, as different browsers
* use different font weights for strong elements. */
font-weight: bold;
}
}
.avatar-name-wrapper.currentUser {
background-color: var(--color-primary);
color: var(--color-primary-text);
}
}
.atwho-view-ul * .avatar-name-wrapper {
white-space: nowrap;
}
#commentsTabView .comment .author,
#commentsTabView .comment .date {
opacity: .5;
}
#commentsTabView .comment .author {
max-width: 210px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
#commentsTabView .comment .date {
margin-left: auto;
/** this is to fix the tooltip being too close due to the margin-top applied
to bring the tooltip closer for the action icons **/
padding: 10px 0px;
}
#commentsTabView .comments > li:not(.newCommentRow) .message {
padding-left: 40px;
word-wrap: break-word;
overflow-wrap: break-word;
}
#commentsTabView .comment .action {
opacity: 0.3;
padding: 14px;
display: block;
}
#commentsTabView .comment .action:hover,
#commentsTabView .comment .action:focus {
opacity: 1;
}
#commentsTabView .newCommentRow .action-container {
margin-left: auto;
}
#commentsTabView .comment.disabled .message {
opacity: 0.3;
}
#commentsTabView .comment.disabled .action {
display: none;
}
#commentsTabView .message.error {
color: #e9322d;
border-color: #e9322d;
box-shadow: 0 0 6px #f8b9b7;
}
.app-files .action-comment {
padding: 16px 14px;
}
#commentsTabView .comment .message .contactsmenu-popover {
left: -6px;
top: 24px;
}
-113
View File
@@ -1,113 +0,0 @@
/*
* @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net>
* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
*
* @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/>.
*
*/
/**
* Hotfix for support <NC13 with new app sidebar
*/
#app-navigation {
.app-navigation-entry-menu.open {
ul li a {
background-position: 10px center;
padding: 0 10px 0 36px !important;
}
}
.app-navigation-entry-edit {
display: none;
}
.editing {
.app-navigation-entry-edit {
display: block;
position: absolute;
background: $color-main-background;
height: auto;
z-index: 250;
}
}
}
/**
* copied styles from core/css/styles.scss
* to have the same breadcrumb styling in NC12
*/
.breadcrumb {
display: inline-flex;
}
div.crumb {
display: inline-flex;
background-repeat: no-repeat;
background-position: right center;
height: 44px;
background-size: auto 24px;
flex: 0 0 auto;
order: 1;
padding-right: 7px;
&.crumbmenu {
order: 2;
position: relative;
a {
opacity: 0.5
}
}
&.hidden {
display: none;
~ .crumb {
order: 3;
}
}
> a,
> span {
position: relative;
padding: 12px;
opacity: 0.5;
top: 0 !important;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
flex: 0 0 auto;
&.icon-home {
// Hide home text
text-indent: -9999px;
}
}
> a[class^='icon-'] {
padding: 0;
width: 44px;
}
&:not(:first-child) a {
}
&:last-child {
font-weight: 600;
margin-right: 10px;
// Allow multiple span next to the main 'a'
a ~ span {
padding-left: 0;
}
}
&:hover, &:focus, a:focus, &:active {
> a,
> span {
opacity: .7;
}
}
}
-43
View File
@@ -1,43 +0,0 @@
/*
* @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;
min-height: 43px;
height: 43px;
&:last-child {
margin: $compact-board-last-item-margin;
}
}
}
}
@@ -2,6 +2,10 @@
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
* *
* @author Julius Härtl <jus@bitgrid.net> * @author Julius Härtl <jus@bitgrid.net>
* @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 * @license GNU AGPL version 3 or any later version
* *
@@ -19,11 +23,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
import app from '../app/App.js';
app.directive('autofocusOnInsert', function () { @import 'icons';
'use strict'; @import 'print';
return function (scope, elm) {
elm.focus();
};
});
+10 -4
View File
@@ -5,10 +5,6 @@
background-image: url('../img/deck-dark.svg'); background-image: url('../img/deck-dark.svg');
} }
.icon-group {
background-image: url('../../../settings/img/users.svg');
}
.icon-help { .icon-help {
background-image: url('../../../settings/img/help.svg'); background-image: url('../../../settings/img/help.svg');
} }
@@ -17,6 +13,10 @@
background-image: url('../img/add-white.svg'); background-image: url('../img/add-white.svg');
} }
.icon-attach {
background-image: url('../img/attach.svg');
}
.icon-archive { .icon-archive {
background-image: url('../img/archive.svg'); background-image: url('../img/archive.svg');
} }
@@ -53,10 +53,13 @@
background-image: url('../img/toggle-view-collapse.svg'); background-image: url('../img/toggle-view-collapse.svg');
} }
@if mixin-exists('icon-black-white') { @if mixin-exists('icon-black-white') {
@include icon-black-white('deck', 'deck', 1); @include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', 'deck', 1); @include icon-black-white('archive', 'deck', 1);
@include icon-black-white('circles', 'deck', 1); @include icon-black-white('circles', 'deck', 1);
@include icon-black-white('clone', 'deck', 1);
@include icon-black-white('attach', 'deck', 1);
.icon-toggle-compact-collapsed { .icon-toggle-compact-collapsed {
@include icon-color('toggle-view-expand', 'deck', $color-black); @include icon-color('toggle-view-expand', 'deck', $color-black);
@@ -78,3 +81,6 @@
background-size: 20px; background-size: 20px;
background-position: center center; background-position: center center;
} }
.icon-colorpicker {
background-image: url('../img/color_picker.svg');
}
-1659
View File
File diff suppressed because it is too large Load Diff
+42 -1
View File
@@ -45,6 +45,13 @@ In any case a user doesn't have access to a requested entity, a 403 error will b
### If-Modified-Since ### If-Modified-Since
Some index endpoints support limiting the result set to entries that have been changed since the given time. Some index endpoints support limiting the result set to entries that have been changed since the given time.
The supported date formats are:
* IMF-fixdate: `Sun, 03 Aug 2019 10:34:12 GMT`
* (obsolete) RFC 850: `Sunday, 03-Aug-19 10:34:12 GMT`
* (obsolete) ANSI C asctime(): `Sun Aug 3 10:34:12 2019`
It is highly recommended to only use the IMF-fixdate format.
Example curl request: Example curl request:
@@ -52,7 +59,7 @@ Example curl request:
curl -u admin:admin -X GET \ curl -u admin:admin -X GET \
'http://localhost:8000/index.php/apps/deck/api/v1.0/boards/2/stacks' \ 'http://localhost:8000/index.php/apps/deck/api/v1.0/boards/2/stacks' \
-H "OCS-APIRequest: true" \ -H "OCS-APIRequest: true" \
-H "If-Modified-Since: Mon, 5 Nov 2018 09:28:00 GMT" -H "If-Modified-Since: Mon, 05 Nov 2018 09:28:00 GMT"
``` ```
# Endpoints # Endpoints
@@ -426,6 +433,13 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
### POST /boards/{boardId}/stacks - Create a new stack ### POST /boards/{boardId}/stacks - Create a new stack
#### Request body
| Parameter | Type | Description |
| --------- | ------- | ---------------------------------------------------- |
| title | String | The title of the new stack |
| order | Integer | Order for sorting the stacks |
#### Request parameters #### Request parameters
| Parameter | Type | Description | | Parameter | Type | Description |
@@ -637,6 +651,33 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success ##### 200 Success
```json
{
"id": 3,
"participant": {
"primaryKey": "admin",
"uid": "admin",
"displayname": "admin"
},
"cardId": 1
}
```
##### 400 Bad request
```json
{
"status": 400,
"message": "The user is already assigned to the card"
}
```
The request can fail with a bad request response for the following reasons:
- Missing or wrongly formatted request parameters
- The user is already assigned to the card
- The user is not part of the board
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser - Assign a user to a card ### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser - Assign a user to a card
#### Request parameters #### Request parameters
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

After

Width:  |  Height:  |  Size: 390 B

+1
View File
@@ -0,0 +1 @@
<svg width="16" height="16" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M11.8 13.8H2.2V4.2h9.6m1.2 0c0-.67-.53-1.2-1.2-1.2H2.2C1.53 3 1 3.53 1 4.2v9.6c0 .67.53 1.2 1.2 1.2h9.6c.67 0 1.2-.53 1.2-1.2"/><path d="m4.2 1c-0.67 0-1.2 0.54-1.2 1.2h10.8v10.8c0.67 0 1.2-0.53 1.2-1.2v-9.6c0-0.67-0.53-1.2-1.2-1.2z"/></svg>

After

Width:  |  Height:  |  Size: 327 B

-49
View File
@@ -1,49 +0,0 @@
{
"esversion": 6,
"globals": {
"jasmine" : false,
"spyOn" : false,
"it" : false,
"describe" : false,
"expect" : false,
"beforeEach" : false,
"waits" : false,
"waitsFor" : false,
"runs" : false,
"require" : false,
"module": true
},
"asi" : true,
"boss" : true,
"browser" : true,
"curly" : true,
"debug" : true,
"devel" : true,
"eqeqeq" : true,
"eqnull" : false,
"evil" : false,
"forin" : true,
"immed" : true,
"indent" : 4,
"jquery" : true,
"latedef" : true,
"laxbreak" : false,
"newcap" : true,
"noarg" : true,
"node" : false,
"noempty" : false,
"nomen" : false,
"nonew" : true,
"onevar" : true,
"plusplus" : false,
"quotmark" : "single",
"regexp" : false,
"sub" : true,
"trailing" : true,
"undef" : true,
"unused" : true,
"white" : false,
"scripturl" : true
}
-64
View File
@@ -1,64 +0,0 @@
/*
* @copyright Copyright (c) 2016 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 angular */
angular.module('markdown', [])
.provider('markdown', [function () {
var opts = {};
return {
config: function (newOpts) {
opts = newOpts;
},
$get: function () {
return new window.showdown.Converter(opts);
}
};
}])
.filter('markdown', ['markdown', function (markdown) {
return function (text) {
return markdown.makeHtml(text || '');
};
}]);
import uirouter from '@uirouter/angularjs';
import ngsanitize from 'angular-sanitize';
import angularuiselect from 'ui-select';
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',
ngInfiniteScroll
]);
export default app;
-117
View File
@@ -1,117 +0,0 @@
/*
* @copyright Copyright (c) 2016 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 app oc_requesttoken markdownitLinkTarget */
import app from './App.js';
import md from 'angular-markdown-it';
import markdownitLinkTarget from 'markdown-it-link-target';
import markdownitCheckbox from 'legacy/markdown-it-checkbox.js';
app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterProvider, $stateProvider, $compileProvider, markdownItConverterProvider) {
'use strict';
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
$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.config({
breaks: true,
linkify: true,
xhtmlOut: true
});
markdownItConverterProvider.use(markdownitLinkTarget).use(markdownitCheckbox);
$urlRouterProvider.otherwise('/');
$stateProvider
.state('list', {
url: '/:filter',
templateUrl: '/boardlist.mainView.html',
controller: 'ListController',
reloadOnSearch: false,
params: {
filter: {value: '', dynamic: true}
}
})
.state('board', {
url: '/board/:boardId/:filter',
templateUrl: '/board.html',
controller: 'BoardController',
params: {
filter: {value: '', dynamic: true}
}
})
.state('board.detail', {
url: '/detail/',
reloadOnSearch: false,
params: {
tab: {value: 0, dynamic: true},
},
views: {
'sidebarView@': {
templateUrl: '/board.sidebarView.html',
controller: 'BoardController'
}
}
})
.state('board.card', {
url: '/card/:cardId',
params: {
tab: {value: 0, dynamic: true},
},
views: {
'sidebarView@': {
templateUrl: '/card.sidebarView.html',
controller: 'CardController'
}
}
});
$provide.decorator('nvFileOverDirective', function ($delegate) {
var directive = $delegate[0],
link = directive.link;
directive.compile = function () {
return function (scope, element, attrs) {
var overClass = attrs.overClass || 'nv-file-over';
link.apply(this, arguments);
let counter = 0;
element.on('dragenter', function (event) {
counter++;
});
element.on('dragleave', function (event) {
counter--;
if (counter <= 0) {
$('.' + overClass).removeClass(overClass);
}
});
};
};
return $delegate;
});
});
-64
View File
@@ -1,64 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.js';
/* global Snap */
app.run(function ($document, $rootScope, $transitions, BoardService) {
'use strict';
$document.click(function (event) {
$rootScope.$broadcast('documentClicked', event);
});
$transitions.onEnter({from: 'list'}, function ($state, $transition$) {
BoardService.unsetCurrrent();
});
$transitions.onEnter({to: 'list'}, function ($state, $transition$) {
BoardService.unsetCurrrent();
document.title = "Deck - " + oc_defaults.name;
});
$transitions.onEnter({to: 'board.card'}, function ($state, $transition$) {
$rootScope.sidebar.show = true;
});
$transitions.onEnter({to: 'board.detail'}, function ($state, $transition$) {
$rootScope.sidebar.show = true;
});
$transitions.onEnter({to: 'board'}, function ($state) {
$rootScope.sidebar.show = false;
});
$transitions.onExit({from: 'board.card'}, function ($state) {
$rootScope.sidebar.show = false;
});
$transitions.onExit({from: 'board.detail'}, function ($state) {
$rootScope.sidebar.show = false;
});
$('link[rel="shortcut icon"]').attr(
'href',
OC.filePath('deck', 'img', 'app-512.png')
);
// Select all elements with data-toggle="tooltips" in the document
$('body').tooltip({
selector: '[data-toggle="tooltip"]'
});
});
-350
View File
@@ -1,350 +0,0 @@
/*
* @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.type === 'deck_card') {
self.activityservice.loadComments(self.element.id);
}
if (self.getData(self.element.id).length === 0) {
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 && typeof parameters.after.id === 'string' && 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;
-44
View File
@@ -1,44 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
/* 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));
}
};
});
-78
View File
@@ -1,78 +0,0 @@
/*
* @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 */
class AttachmentListController {
constructor ($scope, CardService, FileService) {
'ngInject';
this.cardservice = CardService;
this.fileservice = FileService;
this.attachments = CardService.getCurrent().attachments;
}
mimetypeForAttachment(attachment) {
let url = OC.MimeType.getIconUrl(attachment.extendedData.mimetype);
let styles = {
'background-image': `url("${url}")`,
};
return styles;
}
attachmentUrl(attachment) {
let cardId = this.cardservice.getCurrent().id;
let attachmentId = attachment.id;
return OC.generateUrl(`/apps/deck/cards/${cardId}/attachment/${attachmentId}`);
}
getAttachmentMarkdown(attachment) {
const inlineMimetypes = ['image/png', 'image/jpg', 'image/jpeg'];
let url = this.attachmentUrl(attachment);
let filename = attachment.data;
let insertText = `[📎 ${filename}](${url})`;
if (inlineMimetypes.indexOf(attachment.extendedData.mimetype) > -1) {
insertText = `![📎 ${filename}](${url})`;
}
return insertText;
}
select(attachment) {
this.onSelect({attachment: this.getAttachmentMarkdown(attachment)});
}
abort() {
this.onAbort();
}
}
let attachmentListComponent = {
templateUrl: '/card.attachments.html',
controller: AttachmentListController,
bindings: {
isFileSelector: '<',
attachments: '=',
onSelect: '&',
onAbort: '&'
}
};
export default attachmentListComponent;
-568
View File
@@ -1,568 +0,0 @@
/*
* @copyright Copyright (c) 2016 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_defaults oc_config OC OCP OCA t n */
import app from '../app/App.js';
import Vue from 'vue';
Vue.prototype.t = t;
Vue.prototype.n = n;
Vue.prototype.OC = OC;
import CollaborationView from '../views/CollaborationView';
app.controller('BoardController', function ($rootScope, $scope, $element, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions, $filter, FileService) {
$scope.sidebar = $rootScope.sidebar;
$scope.id = $stateParams.boardId;
$scope.status = {
addCard: [],
};
$scope.newLabel = {};
$scope.OC = OC;
$scope.stackservice = StackService;
$scope.boardservice = BoardService;
$scope.cardservice = CardService;
$scope.statusservice = StatusService.getInstance();
$scope.labelservice = LabelService;
$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() {
return $state.params;
}, function (params) {
$scope.params = params;
}, true);
$scope.params = $state.params;
/**
* Check for markdown checkboxes in description to render the counter
*
* This should probably be moved to the backend at some point
*
* @param text
* @returns array of [finished, total] checkboxes
*/
$scope.getCheckboxes = function(text) {
const regTotal = /\[(X|\s|\_|\-)\]/igm;
const regFinished = /\[(X|\_|\-)\]/igm;
return [
((text || '').match(regFinished) || []).length,
((text || '').match(regTotal) || []).length
];
};
$scope.search = function (searchText) {
$scope.searchText = searchText;
$scope.refreshData();
};
$scope.$watch(function () {
if (typeof BoardService.getCurrent() !== 'undefined') {
return BoardService.getCurrent().title;
} else {
return null;
}
}, function () {
$scope.setPageTitle();
});
$scope.setPageTitle = function () {
if (BoardService.getCurrent()) {
document.title = BoardService.getCurrent().title + ' | Deck - ' + oc_defaults.name;
} else {
document.title = 'Deck - ' + oc_defaults.name;
}
};
$scope.statusservice.retainWaiting();
$scope.statusservice.retainWaiting();
// handle filter parameter for switching between archived/unarchived cards
$scope.switchFilter = function (filter) {
$state.go('.', {filter: filter});
};
$scope.$watch(function() {
return $scope.params.filter;
}, function (filter) {
if (filter === 'archive') {
$scope.loadArchived();
} else {
$scope.loadDefault();
}
});
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 () {
$scope.refreshData();
}, true);
$scope.refreshData = function () {
if ($scope.params.filter === 'archive') {
$scope.filterData('-lastModified', $scope.searchText);
} else {
$scope.filterData('order', $scope.searchText);
}
};
$scope.checkCanEdit = function () {
return !BoardService.getCurrent().archived;
};
// filter cards here, as ng-sortable will not work nicely with html-inline filters
$scope.filterData = function (order, text) {
if ($scope.stacks === undefined) {
return;
}
angular.copy(StackService.getData(), $scope.stacks);
$scope.stacks = $filter('orderBy')($scope.stacks, 'order');
angular.forEach($scope.stacks, function (value, key) {
var cards = $filter('cardSearchFilter')(value.cards, text);
cards = $filter('orderBy')(cards, order);
$scope.stacks[key].cards = cards;
});
};
$scope.loadDefault = function () {
StackService.fetchAll($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
};
$scope.loadArchived = function () {
StackService.fetchArchived($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
};
// Handle initial Loading
BoardService.fetchOne($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
$scope.setPageTitle();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
$scope.searchForUser = function (search) {
BoardService.searchUsers(search);
};
$scope.newStack = {'boardId': $scope.id};
$scope.newCard = {};
// Create a new Stack
$scope.createStack = function () {
StackService.create($scope.newStack).then(function (data) {
$scope.newStack.title = '';
});
};
$scope.createCard = function (stack, 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) {
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);
};
$scope.labelDelete = function (label) {
LabelService.delete(label.id);
// remove from board data
var i = BoardService.getCurrent().labels.indexOf(label);
BoardService.getCurrent().labels.splice(i, 1);
// 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) {
$scope.newStack.title = '';
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).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) {
sharee.boardId = $scope.id;
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);
};
$scope.aclTypeString = function (acl) {
if (typeof acl === 'undefined') {
return '';
}
switch (acl.type) {
case OC.Share.SHARE_TYPE_USER:
return 'user';
case OC.Share.SHARE_TYPE_GROUP:
return 'group';
case OC.Share.SHARE_TYPE_CIRCLE:
return 'circles';
default:
return '';
}
};
// settings for card sorting
$scope.sortOptions = {
id: 'card',
itemMoved: function (event) {
event.source.itemScope.modelValue.status = event.dest.sortableScope.$parent.column;
var order = event.dest.index;
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;
CardService.update(card);
CardService.reorder(card, order).then(function (data) {
StackService.addCard(card);
StackService.reorderCard(card, order);
StackService.removeCard({
id: card.id,
stackId: oldStack
});
});
},
orderChanged: function (event) {
var order = event.dest.index;
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);
$scope.refreshData();
});
},
scrollableContainer: '#innerBoard',
containerPositioning: 'relative',
containment: '#innerBoard',
longTouch: true,
// auto scroll on drag
dragMove: function (itemPosition, containment, eventObj) {
if (eventObj) {
var container = $('#board');
var offset = container.offset();
var targetX = eventObj.pageX - (offset.left || container.scrollLeft());
var targetY = eventObj.pageY - (offset.top || container.scrollTop());
if (targetX < offset.left) {
container.scrollLeft(container.scrollLeft() - 25);
} else if (targetX > container.width()) {
container.scrollLeft(container.scrollLeft() + 25);
}
if (targetY < offset.top) {
container.scrollTop(container.scrollTop() - 25);
} else if (targetY > container.height()) {
container.scrollTop(container.scrollTop() + 25);
}
}
},
accept: function (sourceItemHandleScope, destSortableScope, destItemScope) {
return sourceItemHandleScope.sortableScope.options.id === 'card';
}
};
$scope.sortOptionsStack = {
id: 'stack',
orderChanged: function (event) {
var order = event.dest.index;
var stack = event.source.itemScope.s;
StackService.reorder(stack, order).then(function (data) {
$scope.refreshData();
});
},
scrollableContainer: '#board',
containerPositioning: 'relative',
containment: '#innerBoard',
dragMove: function (itemPosition, containment, eventObj) {
if (eventObj) {
var container = $('#board');
var offset = container.offset();
var targetX = eventObj.pageX - (offset.left || container.scrollLeft());
var targetY = eventObj.pageY - (offset.top || container.scrollTop());
if (targetX < offset.left) {
container.scrollLeft(container.scrollLeft() - 50);
} else if (targetX > container.width()) {
container.scrollLeft(container.scrollLeft() + 50);
}
if (targetY < offset.top) {
container.scrollTop(container.scrollTop() - 50);
} else if (targetY > container.height()) {
container.scrollTop(container.scrollTop() + 50);
}
}
},
accept: function (sourceItemHandleScope, destSortableScope, destItemScope) {
return sourceItemHandleScope.sortableScope.options.id === 'stack';
}
};
$scope.labelStyle = function (color) {
return {
'background-color': '#' + color,
'color': $filter('textColorFilter')(color)
};
};
$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;
}
return card.attachmentCount;
};
$scope.unreadCommentCount = function(card) {
return card.commentsUnread;
};
$scope.isTimelineEnabled = function() {
return OCP.Comments && OCA.Activity;
};
});
-286
View File
@@ -1,286 +0,0 @@
/*
* @copyright Copyright (c) 2016 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 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()
};
$scope.cardservice = CardService;
$scope.fileservice = FileService;
$scope.cardId = $stateParams.cardId;
$scope.statusservice = StatusService.getInstance();
$scope.boardservice = BoardService;
$scope.isArray = angular.isArray;
// workaround for $stateParams changes not being propagated
$scope.$watch(function() {
return $state.params;
}, function (params) {
$scope.params = params;
$scope.fileservice.reset();
}, true);
$scope.params = $state.params;
$scope.addAttachmentToDescription = function(insertText) {
let el = document.querySelectorAll('textarea')[0];
let start = el.selectionStart;
let end = el.selectionEnd;
let text = $scope.status.edit.description || '';
let before = text.substring(0, start);
let after = text.substring(end, text.length);
let newText = before + '\n' + insertText + '\n' + after;
$scope.status.edit.description = newText;
el.selectionStart = el.selectionEnd = start + newText.length;
el.focus();
$scope.status.continueEdit = false;
$scope.cardEditDescriptionChanged();
$scope.status.selectAttachment = false;
};
$scope.abortAttachmentSelection = function() {
$scope.status.continueEdit = false;
$scope.status.selectAttachment = false;
let el = document.querySelectorAll('textarea')[0];
el.focus();
};
$scope.statusservice.retainWaiting();
$scope.description = function() {
return $scope.rendered;
};
$scope.updateMarkdown = function(content) {
// only trust the html from markdown-it-checkbox
$scope.rendered = $sce.trustAsHtml(markdownItConverter.render(content || ''));
};
CardService.fetchOne($scope.cardId).then(function (data) {
$scope.statusservice.releaseWaiting();
$scope.archived = CardService.getCurrent().archived;
$scope.updateMarkdown(CardService.getCurrent().description);
}, function (error) {
});
$scope.cardRenameShow = function () {
if ($scope.archived || !BoardService.canEdit()) {
return false;
} else {
$scope.status.renameTitle = CardService.getCurrent().title;
$scope.status.cardRename = true;
}
};
$scope.toggleCheckbox = function (id) {
$('#markdown input[type=checkbox]').attr('disabled', true);
$scope.status.edit = angular.copy(CardService.getCurrent());
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 (match.match(/^\[\s\]/i)) {
result = match.replace(/\[\s\]/i, '[x]');
}
if (match.match(/^\[x\]/i)) {
result = match.replace(/\[x\]/i, '[ ]');
}
return result;
}
return match;
});
CardService.update($scope.status.edit).then(function (data) {
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000);
});
$('#markdown input[type=checkbox]').removeAttr('disabled');
};
$scope.clickCardDescription = function ($event) {
var checkboxId = $($event.target).data('id');
if ($event.target.tagName === 'LABEL') {
$scope.toggleCheckbox(checkboxId);
$event.stopPropagation();
return false;
}
if ($event.target.tagName === 'INPUT') {
$event.stopPropagation();
return;
}
if (BoardService.isArchived() || CardService.getCurrent().archived) {
return false;
}
if ($scope.card.archived || !$scope.boardservice.canEdit()) {
return false;
}
$scope.status.cardEditDescription = true;
$scope.status.edit = angular.copy(CardService.getCurrent());
return true;
};
$scope.cardEditDescriptionChanged = function ($event) {
$scope.status.lastEdit = Date.now();
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').show();
header.find('.save-indicator.saved').hide();
};
$interval(function() {
var currentTime = Date.now();
var timeSinceEdit = currentTime-$scope.status.lastEdit;
if (timeSinceEdit > 1000 && $scope.status.lastEdit > $scope.status.lastSave && !$scope.status.saving) {
$scope.status.lastSave = currentTime;
$scope.status.saving = true;
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').fadeIn(500);
CardService.update($scope.status.edit).then(function (data) {
var header = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(250).fadeOut(1000);
$scope.status.saving = false;
});
}
}, 500, 0, false);
// handle rename to update information on the board as well
$scope.cardRename = function (card) {
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 = $('.tabDetails');
header.find('.save-indicator.unsaved').hide();
header.find('.save-indicator.saved').fadeIn(500).fadeOut(1000);
});
};
$scope.labelAssign = function (element, model) {
CardService.assignLabel($scope.cardId, element.id).then(function (data) {
});
};
$scope.labelRemove = function (element, model) {
CardService.removeLabel($scope.cardId, element.id).then(function (data) {
});
};
$scope.setDuedate = function (duedate) {
var element = CardService.getCurrent();
var newDate = moment(element.duedate);
if(!newDate.isValid()) {
newDate = moment();
}
newDate.date(duedate.date());
newDate.month(duedate.month());
newDate.year(duedate.year());
element.duedate = newDate.toISOString();
CardService.update(element);
};
$scope.setDuedateTime = function (time) {
var element = CardService.getCurrent();
var newDate = moment(element.duedate);
if(!newDate.isValid()) {
newDate = moment();
}
newDate.hour(time.hour());
newDate.minute(time.minute());
element.duedate = newDate.toISOString();
CardService.update(element);
};
$scope.resetDuedate = function () {
var element = CardService.getCurrent();
element.duedate = null;
CardService.update(element);
};
/**
* Show ui-select field when clicking the add button
*/
$scope.toggleAssignUser = function() {
$scope.status.showAssignUser = !$scope.status.showAssignUser;
if ($scope.status.showAssignUser === true) {
$timeout(function () {
$('#assignUserSelect').find('a').click();
});
}
};
/**
* Hide ui-select when select list is closed
*/
$scope.assingUserOpenClose = function(isOpen) {
$scope.status.showAssignUser = isOpen;
};
$scope.addAssignedUser = function(item) {
CardService.assignUser(CardService.getCurrent(), item.uid).then(function (data) {
});
$scope.status.showAssignUser = false;
};
$scope.removeAssignedUser = function(uid) {
CardService.unassignUser(CardService.getCurrent(), uid).then(function (data) {
});
};
$scope.labelStyle = function (color) {
return {
'background-color': '#' + color,
'color': $filter('textColorFilter')(color)
};
};
$scope.isTimelineEnabled = function() {
return OCP.Comments && OCA.Activity;
};
});
-44
View File
@@ -1,44 +0,0 @@
/*
* @copyright Copyright (c) 2018 Oskar Kurz <oskar.kurz@gmail.com>
*
* @author Oskar Kurz <oskar.kurz@gmail.com>
*
* @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('ColorPickerController', ['$scope', function ($scope) {
$scope.hashedColor = '';
$scope.setColor = function (object, color) {
object.color = color;
object.hashedColor = '#' + color;
return object;
};
$scope.setHashedColor = function (object) {
object.color = object.hashedColor.substr(1);
return object;
};
$scope.getCustomBackground = function (color) {
return {'background-color': color};
};
}]);
-255
View File
@@ -1,255 +0,0 @@
/*
* @copyright Copyright (c) 2016 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 app angular oc_isadmin */
var ListController = function ($scope, $location, $filter, BoardService, $element, $timeout, $stateParams, $state, StatusService, $http, $q, $rootScope) {
function calculateNewColor() {
var boards = BoardService.getAll();
var boardKeys = Object.keys(boards);
var colorOccurrences = [];
for (var i = 0; i < $scope.colors.length; i++) {
colorOccurrences.push(0);
}
for (var j = 0; j < boardKeys.length; j++) {
var key = boardKeys[j];
var board = boards[key];
if (board && $scope.colors.indexOf(board.color) !== -1) {
colorOccurrences[$scope.colors.indexOf(board.color)]++;
}
}
return $scope.colors[colorOccurrences.indexOf(Math.min.apply(Math, colorOccurrences))];
}
$scope.boards = [];
$scope.newBoard = {};
$scope.status = {
deleteUndo: [],
filter: $stateParams.filter ? $stateParams.filter : '',
sidebar: false
};
$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') {
$scope.boardservice.sidebar = $scope.boardservice.getData();
$scope.boardservice.sidebar = $filter('orderBy')($scope.boardservice.sidebar, 'title');
$scope.boardservice.sidebar = $filter('cardFilter')($scope.boardservice.sidebar, {archived: false});
} else {
$scope.boardservice.sorted = $scope.boardservice.getData();
if ($scope.status.filter === 'archived') {
var filter = {};
filter[$scope.status.filter] = true;
$scope.boardservice.sorted = $filter('cardFilter')($scope.boardservice.sorted, filter);
} else if ($scope.status.filter === 'shared') {
$scope.boardservice.sorted = $filter('cardFilter')($scope.boardservice.sorted, {archived: false});
$scope.boardservice.sorted = $filter('boardFilterAcl')($scope.boardservice.sorted);
} else {
$scope.boardservice.sorted = $filter('cardFilter')($scope.boardservice.sorted, {archived: false});
}
$scope.boardservice.sorted = $filter('orderBy')($scope.boardservice.sorted, ['deletedAt', 'title']);
}
};
var finishedLoading = function() {
filterData();
$scope.newBoard.color = calculateNewColor();
};
var initialize = function () {
$scope.statusservice = StatusService.listStatus;
if($element.attr('id') === 'app-navigation') {
$scope.statusservice.retainWaiting();
BoardService.fetchAll().then(function(data) {
finishedLoading();
$scope.statusservice.releaseWaiting();
BoardService.loaded = true;
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
} else {
/* initialize main list controller when board list is loaded */
var boardDataWatch = $scope.$watch(function () {
return $scope.boardservice.loaded;
}, function () {
if (BoardService.loaded === true) {
boardDataWatch();
finishedLoading();
}
});
}
$scope.$watch(function () {
return $scope.boardservice.data;
}, function () {
filterData();
}, true);
/* Watch for board filter change */
$scope.$watchCollection(function(){
return $state.params;
}, function(){
$scope.status.filter = $state.params.filter;
filterData();
});
};
initialize();
$scope.selectColor = function(color) {
$scope.newBoard.color = color;
};
$scope.gotoBoard = function(board) {
if(board.deletedAt > 0) {
return false;
}
return $state.go('board', {boardId: board.id});
};
$scope.boardCreate = function() {
if(!$scope.newBoard.title || !$scope.newBoard.color) {
$scope.status.addBoard=false;
return;
}
BoardService.create($scope.newBoard)
.then(function (response) {
$scope.newBoard = {};
$scope.newBoard.color = calculateNewColor();
$scope.status.addBoard=false;
filterData();
}, function(error) {
$scope.status.createBoard = 'Unable to insert board: ' + error.message;
});
};
$scope.boardUpdate = function(board) {
BoardService.update(board).then(function(data) {
board.status.edit = false;
filterData();
});
};
$scope.boardUpdateBegin = function(board) {
$scope.updatingBoard = angular.copy(board);
};
$scope.boardUpdateReset = function(board) {
board.title = $scope.updatingBoard.title;
board.color = $scope.updatingBoard.color;
filterData();
board.status.edit = false;
};
$scope.boardArchive = function (board) {
board.archived = true;
BoardService.update(board).then(function(data) {
filterData();
});
};
$scope.boardUnarchive = function (board) {
board.archived = false;
BoardService.update(board).then(function(data) {
filterData();
});
};
$scope.boardDelete = function(board) {
BoardService.delete(board.id).then(function (data) {
filterData();
});
};
$scope.boardDeleteUndo = function (board) {
BoardService.deleteUndo(board.id).then(function (data) {
filterData();
});
};
};
export default ListController;
-48
View File
@@ -1,48 +0,0 @@
/*
* @copyright Copyright (c) 2016 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('appPopoverMenuUtils', function () {
'use strict';
return {
restrict: 'C',
link: function (scope, elm) {
var menu = elm.find('.popovermenu');
var button = elm.find('button');
button.click(function (e) {
var popovermenus = $('.popovermenu');
var shouldShow = menu.hasClass('hidden');
popovermenus.addClass('hidden');
if (shouldShow) {
menu.toggleClass('hidden');
}
e.stopPropagation();
});
scope.$on('documentClicked', function (scope, event) {
/* prevent closing popover if target has no-close class */
if (event.target !== button && !$(event.target).hasClass('no-close')) {
menu.addClass('hidden');
}
});
}
};
});
-47
View File
@@ -1,47 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
// OwnCloud Click Handling
// https://doc.owncloud.org/server/8.0/developer_manual/app/css.html
app.directive('appNavigationEntryUtils', function () {
'use strict';
return {
restrict: 'C',
link: function (scope, elm) {
var menu = elm.siblings('.app-navigation-entry-menu');
var button = $(elm)
.find('.app-navigation-entry-utils-menu-button button');
button.click(function () {
menu.toggleClass('open');
});
scope.$on('documentClicked', function (scope, event) {
if (event.target !== button[0]) {
menu.removeClass('open');
}
});
}
};
});
-55
View File
@@ -1,55 +0,0 @@
/*
* @copyright Copyright (c) 2016 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('avatar', function() {
'use strict';
return {
restrict: 'AEC',
transclude: true,
replace: true,
template: '<div class="avatardiv-container"><div class="avatardiv" data-toggle="tooltip" ng-transclude></div></div>',
scope: { attr: '=' },
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') {
avatardiv.contactsMenu(value, 0, $(element));
avatardiv.addClass('has-contactsmenu');
}
if(typeof attr.tooltip !== 'undefined' && attr.tooltip !== 'false') {
$(element).tooltip({
title: scope.displayname,
placement: 'top'
});
}
avatardiv.avatar(value, scope.size, false, false, false, attr.displayname);
},
controller: function () {}
};
});
-42
View File
@@ -1,42 +0,0 @@
/*
* @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('contactsmenudelete', function() {
'use strict';
return {
restrict: 'A',
priority: 1,
link: function(scope, element, attr){
var user = attr.user;
var menu = $(element).parent().find('.contactsmenu-popover');
if (oc_current_user === user) {
menu.children(':first').remove();
}
var menuEntry = $('<li><a><span class="icon icon-delete"></span><span>' + t('deck', 'Remove user from card') + '</span></a></li>');
menuEntry.on('click', function () {
scope.removeAssignedUser(user);
});
$(menu).append(menuEntry);
}
};
});
-59
View File
@@ -1,59 +0,0 @@
/*
* @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();
}
});
}
};
});
-55
View File
@@ -1,55 +0,0 @@
/*
* @copyright Copyright (c) 2017 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';
/* global app */
/* gloabl t */
/* global moment */
app.directive('datepicker', function () {
'use strict';
return {
link: function (scope, elm, attr) {
return elm.datepicker({
dateFormat: moment.localeData().longDateFormat('L').replace('YYYY', 'YY').toLowerCase(),
onSelect: function(date, inst) {
var selectedDate = $(this).datepicker('getDate');
scope.setDuedate(moment(selectedDate));
scope.$apply();
},
beforeShow: function(input, inst) {
var dp, marginLeft;
dp = $(inst).datepicker('widget');
marginLeft = -Math.abs($(input).outerWidth() - dp.outerWidth()) / 2 + 'px';
dp.css({
'margin-left': marginLeft
});
$('div.ui-datepicker:before').css({
'left': 100 + 'px'
});
return $('.hasDatepicker').datepicker();
},
minDate: null
});
}
};
});
-41
View File
@@ -1,41 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
// original idea from blockloop: http://stackoverflow.com/a/24090733
app.directive('elastic', [
'$timeout',
function($timeout) {
return {
restrict: 'A',
link: function($scope, element) {
$scope.initialHeight = $scope.initialHeight || element[0].style.height;
var resize = function() {
element[0].style.height = $scope.initialHeight;
element[0].style.height = "" + element[0].scrollHeight + "px";
};
element.on("input change", resize);
$timeout(resize, 0);
}
};
}
]);
-61
View File
@@ -1,61 +0,0 @@
/*
* @copyright Copyright (c) 2016 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('search', function ($document, $location) {
'use strict';
return {
restrict: 'E',
scope: {
'onSearch': '='
},
link: function (scope) {
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);
var doSearch = function () {
var value = box.val();
scope.$apply(function () {
scope.onSearch(value);
});
};
box.on('search keyup', function (event) {
doSearch();
});
}
}
};
});
-48
View File
@@ -1,48 +0,0 @@
/*
* @copyright Copyright (c) 2017 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 '../legacy/jquery.ui.timepicker.js';
import 'legacy/jquery.ui.timepicker.css';
/* global app */
/* global t */
/* global moment */
app.directive('timepicker', function() {
'use strict';
return {
restrict: 'A',
link: function(scope, elm, attr) {
return $(elm).timepicker({
onSelect: function(date, inst) {
scope.setDuedateTime(moment('2000-01-01 ' + date));
scope.$apply();
},
myPosition: 'center top',
atPosition: 'center bottom',
hourText: t('deck', 'Hours'),
minuteText: t('deck', 'Minutes'),
showPeriodLabels: false
});
}
};
});
-34
View File
@@ -1,34 +0,0 @@
/*
* @copyright Copyright (c) 2017 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.filter('boardFilterAcl', function() {
return function(boards) {
var _result = [];
angular.forEach(boards, function(board){
if(board.acl !== null && Object.keys(board.acl).length > 0) {
_result.push(board);
}
});
return _result;
};
});
-40
View File
@@ -1,40 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
// usage | cardFilter({ member: 'admin'})
app.filter('cardFilter', function() {
return function(cards, rules) {
var _result = [];
angular.forEach(cards, function(card){
var _card = card;
var keys = Object.keys(rules);
keys.some(function(key, condition) {
if(_card[key]===rules[key]) {
_result.push(_card);
}
});
});
return _result;
};
});
-44
View File
@@ -1,44 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.filter('cardSearchFilter', function() {
return function(cards, searchString) {
var _result = {};
var rules = {
title: searchString,
//owner: searchString,
};
angular.forEach(cards, function(card){
var _card = card;
Object.keys(rules).some(function(rule) {
if(_card[rule].search(rules[rule])>=0) {
_result[_card.id] = _card;
}
});
});
return $.map(_result, function(value, index) {
return [value];
});
};
});
-63
View File
@@ -1,63 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
/* global app */
/* global OC */
/* global moment */
app.filter('relativeDateFilter', function() {
return function (timestamp) {
return OC.Util.relativeModifiedDate(timestamp*1000);
};
});
app.filter('relativeDateFilterString', function() {
return function (date) {
return OC.Util.relativeModifiedDate(Date.parse(date));
};
});
app.filter('dateToTimestamp', function() {
return function (date) {
return Date.parse(date);
};
});
app.filter('parseDate', function() {
return function (date) {
if(moment(date).isValid()) {
var dateFormat = moment.localeData().longDateFormat('L');
return moment(date).format(dateFormat);
}
return '';
};
});
app.filter('parseTime', function() {
return function (date) {
if(moment(date).isValid()) {
return moment(date).format('HH:mm');
}
return '';
};
});
-67
View File
@@ -1,67 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.filter('iconWhiteFilter', function () {
return function (hex) {
// RGB2HLS by Garry Tan
// http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c
var result = /^([A-Fa-f\d]{2})([A-Fa-f\d]{2})([A-Fa-f\d]{2})$/i.exec(hex);
var color = result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
if (result === null) {
return '';
}
var r = color.r / 255;
var g = color.g / 255;
var b = color.b / 255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if (max === min) {
h = s = 0; // achromatic
} else {
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case r:
h = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / d + 2;
break;
case b:
h = (r - g) / d + 4;
break;
}
h /= 6;
}
if (l < 0.5) {
return '-white';
} else {
return '';
}
};
});
-38
View File
@@ -1,38 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.filter('lightenColorFilter', function() {
return function (hex) {
var result = /^([A-Fa-f\d]{2})([A-Fa-f\d]{2})([A-Fa-f\d]{2})$/i.exec(hex);
var color = result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
if (result !== null) {
return 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',0.7)';
} else {
return '#' + hex;
}
};
});
-43
View File
@@ -1,43 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.filter('orderObjectBy', function(){
return function(input, attribute) {
if (!angular.isObject(input)) {
return input;
}
var array = [];
for(var objectKey in input) {
if ({}.hasOwnProperty.call(input, objectKey)) {
array.push(input[objectKey]);
}
}
array.sort(function(a, b){
a = parseInt(a[attribute]);
b = parseInt(b[attribute]);
return a < b;
});
return array;
};
});
-69
View File
@@ -1,69 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.filter('textColorFilter', function () {
return function (hex) {
// RGB2HLS by Garry Tan
// http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c
var result = /^#?([A-Fa-f\d]{2})([A-Fa-f\d]{2})([A-Fa-f\d]{2})$/i.exec(hex);
var color = result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
if (result !== null) {
var r = color.r / 255;
var g = color.g / 255;
var b = color.b / 255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if (max === min) {
h = s = 0; // achromatic
} else {
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case r:
h = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / d + 2;
break;
case b:
h = (r - g) / d + 4;
break;
}
h /= 6;
}
if (l < 0.5) {
return '#ffffff';
} else {
return '#000000';
}
} else {
return '#000000';
}
};
});
-46
View File
@@ -1,46 +0,0 @@
/*
* @copyright Copyright (c) 2017 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';
/* global app */
/* global angular */
/*
* Remove all assignedUsers from users list
*/
app.filter('withoutAssignedUsers', function () {
return function (users, assignedUsers) {
var _result = [];
angular.forEach(users, function (user) {
var _found = false;
angular.forEach(assignedUsers, function (assignedUser) {
if (assignedUser.participant.uid === user.uid) {
_found = true;
}
});
if (_found === false) {
_result.push(user);
}
});
return _result;
};
});
-69
View File
@@ -1,69 +0,0 @@
/*
* @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';
Vue.prototype.t = t;
Vue.prototype.n = n;
Vue.prototype.OC = OC;
import BoardSelector from './views/BoardSelector';
import './../css/collections.css';
((function(OCP) {
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', 'Link to a board'),
typeIconClass: 'icon-deck'
});
})(window.OCP));
-38
View File
@@ -1,38 +0,0 @@
'use strict';
import "@babel/polyfill";
/* 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';
import angular from 'angular';
import markdownit from 'markdown-it';
global.markdownit = markdownit;
import app from './app/App.js';
import './app/Config.js';
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
var context = require.context('.', true, /(controller|service|filters|directive)\/(.*)\.js$/);
context.keys().forEach(function (key) {
context(key);
});
-161
View File
@@ -1,161 +0,0 @@
/**
* @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
@@ -1,119 +0,0 @@
/*
* 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
@@ -1,54 +0,0 @@
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
@@ -1,561 +0,0 @@
/*
* @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.$));
-57
View File
@@ -1,57 +0,0 @@
/*
* Timepicker stylesheet
* Highly inspired from datepicker
* FG - Nov 2010 - Web3R
*
* version 0.0.3 : Fixed some settings, more dynamic
* version 0.0.4 : Removed width:100% on tables
* version 0.1.1 : set width 0 on tables to fix an ie6 bug
*/
.ui-timepicker-inline { display: inline; }
#ui-timepicker-div { padding: 0.2em; }
.ui-timepicker-table { display: inline-table; width: 0; }
.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }
.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em; }
.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
.ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }
/* span for disabled cells */
.ui-timepicker-table td span {
display:block;
padding:0.2em 0.3em 0.2em 0.5em;
width: 1.2em;
text-align:right;
text-decoration:none;
}
/* anchors for clickable cells */
.ui-timepicker-table td a {
display:block;
padding:0.2em 0.3em 0.2em 0.5em;
width: 1.2em;
cursor: pointer;
text-align:right;
text-decoration:none;
}
/* buttons and button pane styling */
.ui-timepicker .ui-timepicker-buttonpane {
background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0;
}
.ui-timepicker .ui-timepicker-buttonpane button { margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
/* The close button */
.ui-timepicker .ui-timepicker-close { float: right }
/* the now button */
.ui-timepicker .ui-timepicker-now { float: left; }
/* the deselect button */
.ui-timepicker .ui-timepicker-deselect { float: left; }
-1496
View File
File diff suppressed because it is too large Load Diff
-120
View File
@@ -1,120 +0,0 @@
/**
* Original source code from https://github.com/mcecot/markdown-it-checkbox
* © 2015 Markus Cecot
* licenced under MIT
* https://github.com/mcecot/markdown-it-checkbox/blob/master/LICENSE
*/
var checkboxReplace;
checkboxReplace = function(md, options, Token) {
"use strict";
var arrayReplaceAt, createTokens, defaults, lastId, pattern, splitTextToken;
arrayReplaceAt = md.utils.arrayReplaceAt;
lastId = 0;
defaults = {
divWrap: false,
divClass: 'checkbox',
idPrefix: 'checkbox'
};
options = Object.assign(defaults, options);
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">
*/
if (options.divWrap) {
token = new Token("checkbox_open", "div", 1);
token.attrs = [["class", options.divClass]];
nodes.push(token);
}
/**
* <input type="checkbox" id="checkbox{n}" checked="true">
*/
id = options.idPrefix + lastId;
idNumeric = lastId;
lastId += 1;
token = new Token("checkbox_input", "input", 0);
token.attrs = [["type", "checkbox"], ["id", id], ["data-id", idNumeric]];
if (checked === true) {
token.attrs.push(["checked", "true"]);
}
token.attrs.push(["class", "checkbox"]);
nodes.push(token);
/**
* <label for="checkbox{n}">
*/
token = new Token("label_open", "label", 1);
token.attrs = [["for", id], ["data-id", idNumeric]];
nodes.push(token);
/**
* content of label tag
*/
token = new Token("text", "", 0);
token.content = label;
nodes.push(token);
/**
* closing tags
*/
nodes.push(new Token("label_close", "label", -1));
if (options.divWrap) {
nodes.push(new Token("checkbox_close", "div", -1));
}
return nodes;
};
splitTextToken = function(original, Token) {
var checked, label, matches, text, value, before;
text = original.content;
matches = pattern.exec(text);
if (matches === null) {
return original;
}
checked = false;
before = matches[1];
value = matches[3];
label = matches[4];
if (value === "X" || value === "x") {
checked = true;
}
return createTokens(checked, label, Token, before);
};
return function(state) {
lastId = 0;
var blockTokens, i, j, l, token, tokens;
blockTokens = state.tokens;
j = 0;
l = blockTokens.length;
while (j < l) {
if (blockTokens[j].type !== "inline") {
j++;
continue;
}
tokens = blockTokens[j].children;
i = 0;
while (i < tokens.length) {
token = tokens[i];
blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, splitTextToken(token, state.Token));
i++;
}
j++;
}
};
};
/*global module */
module.exports = function(md, options) {
"use strict";
md.core.ruler.push("checkbox", checkboxReplace(md, options));
};
-9139
View File
File diff suppressed because it is too large Load Diff
-56
View File
@@ -1,56 +0,0 @@
{
"name": "deck",
"description": "Frontend for the Nextcloud Deck app",
"repository": "https://github.com/nextcloud/deck",
"version": "1.0.0",
"directories": {
"test": "tests"
},
"dependencies": {
"@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.8",
"babel-polyfill": "^6.26.0",
"markdown-it": "^9.0.1",
"markdown-it-link-target": "^1.0.2",
"nextcloud-axios": "^0.2.0",
"nextcloud-vue": "^0.11.5",
"nextcloud-vue-collections": "^0.5.6",
"ng-infinite-scroll": "^1.3.0",
"ng-sortable": "^1.3.8",
"ui-select": "^0.19.8",
"vue": "^2.6.10",
"vuex": "^3.1.1"
},
"devDependencies": {
"@babel/core": "^7.5.5",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/polyfill": "^7.4.4",
"@babel/preset-env": "^7.5.5",
"babel-loader": "^8.0.6",
"css-loader": "^3.1.0",
"karma": "^4.2.0",
"mini-css-extract-plugin": "^0.8.0",
"style-loader": "^0.23.1",
"uglifyjs-webpack-plugin": "^2.2.0",
"url-loader": "^2.1.0",
"vue-loader": "^15.7.1",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.10",
"webpack": "^4.39.1",
"webpack-cli": "^3.3.6",
"webpack-merge": "^4.2.1"
},
"scripts": {
"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"
},
"author": "",
"license": "AGPL-3.0",
"keywords": []
}
-256
View File
@@ -1,256 +0,0 @@
/*
* @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};
-232
View File
@@ -1,232 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
/** global: oc_defaults */
app.factory('ApiService', function ($http, $q) {
var ApiService = function (http, endpoint) {
// Consider renaming endpoint to resource
this.endpoint = 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;
$http.get(this.baseUrl).then(function (response) {
var objects = response.data;
objects.forEach(function (obj) {
self.data[obj.id] = obj;
});
deferred.resolve(self.data);
}, function (error) {
deferred.reject('Fetching ' + self.endpoint + ' failed');
});
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;
var deferred = $q.defer();
if (id === undefined) {
return deferred.promise;
}
var self = this;
$http.get(this.baseUrl + '/' + id).then(function (response) {
var data = response.data;
if (self.data[data.id] === undefined) {
self.data[data.id] = response.data;
}
$.each(response.data, function (key, value) {
self.data[data.id][key] = value;
});
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Fetching ' + self.endpoint + ' failed');
});
return deferred.promise;
};
ApiService.prototype.create = function (entity) {
var deferred = $q.defer();
var self = this;
$http.post(this.baseUrl, entity).then(function (response) {
self.add(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject(error.data.message);
});
return deferred.promise;
};
ApiService.prototype.update = function (entity) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + entity.id, entity).then(function (response) {
self.add(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject(error.data.message);
});
return deferred.promise;
};
ApiService.prototype.delete = function (id) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + id).then(function (response) {
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) {
this.data[entity.id] = entity;
} else {
Object.keys(entity).forEach(function (key) {
if (entity[key] !== null && element[key] !== entity[key]) {
element[key] = entity[key];
}
});
element.status = {};
}
};
ApiService.prototype.addAll = function (entities) {
var self = this;
angular.forEach(entities, function (entity) {
self.add(entity);
});
};
ApiService.prototype.getCurrent = function () {
return this.data[this.id];
};
ApiService.prototype.unsetCurrrent = function () {
this.id = null;
};
ApiService.prototype.getData = function () {
return $.map(this.data, function (value, index) {
return [value];
});
};
ApiService.prototype.getAll = function () {
return this.data;
};
ApiService.prototype.get = function (id) {
return this.data[id];
};
ApiService.prototype.getName = function () {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : '';
};
return ApiService;
});
-272
View File
@@ -1,272 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
/* global app OC angular */
app.factory('BoardService', function (ApiService, $http, $q) {
var BoardService = function ($http, ep, $q) {
ApiService.call(this, $http, ep, $q);
};
BoardService.prototype = angular.copy(ApiService.prototype);
BoardService.prototype.delete = function (id) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + id).then(function (response) {
self.data[id].deletedAt = response.data.deletedAt;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
BoardService.prototype.deleteUndo = function (id) {
var deferred = $q.defer();
var self = this;
var _id = id;
$http.post(this.baseUrl + '/' + id + '/deleteUndo').then(function (response) {
self.data[_id].deletedAt = 0;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
BoardService.prototype.searchUsers = function (search) {
var deferred = $q.defer();
var self = this;
var searchData = {
format: 'json',
perPage: 4,
itemType: [0, 1, 7]
};
if (search !== "") {
searchData.search = search;
}
$http({
method: 'GET',
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'sharees',
params: searchData
})
.then(function (result) {
var response = result.data;
if (response.ocs.meta.statuscode !== 100) {
deferred.reject('Error while searching for sharees');
return;
}
self.sharees = [];
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) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_USER, item);
var exists = false;
angular.forEach(self.getCurrent().acl, function (acl) {
if (acl.participant.primaryKey === item.value.shareWith) {
exists = true;
}
});
if (!exists && OC.getCurrentUser().uid !== item.value.shareWith) {
self.sharees.push(acl);
}
});
angular.forEach(groups, function (item) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_GROUP, 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);
}
});
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 () {
deferred.reject('Error while searching for sharees');
});
return deferred.promise;
};
BoardService.prototype.generateAcl = function (type, ocsItem) {
return {
boardId: null,
id: null,
owner: false,
participant: {
primaryKey: ocsItem.value.shareWith,
uid: ocsItem.value.shareWith,
displayname: ocsItem.label
},
permissionEdit: true,
permissionManage: false,
permissionShare: false,
type: type
};
};
BoardService.prototype.addAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
var _acl = acl;
$http.post(this.baseUrl + '/' + acl.boardId + '/acl', _acl).then(function (response) {
if (!board.acl || board.acl.length === 0) {
board.acl = {};
}
board.acl[response.data.id] = response.data;
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error creating ACL ' + _acl);
});
acl = null;
return deferred.promise;
};
BoardService.prototype.deleteAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + acl.boardId + '/acl/' + acl.id).then(function (response) {
var index = board.acl.findIndex((item) => item.id === response.data.id);
delete board.acl[index];
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error deleting ACL ' + acl.id);
});
acl = null;
return deferred.promise;
};
BoardService.prototype.updateAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
var _acl = acl;
$http.put(this.baseUrl + '/' + acl.boardId + '/acl', _acl).then(function (response) {
var index = board.acl.findIndex((item) => item.id === _acl.id);
board.acl[index] = response.data;
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error updating ACL ' + _acl);
});
acl = null;
return deferred.promise;
};
BoardService.prototype._updateUsers = function () {
if (!this.getCurrent() || !this.getCurrent().acl) {
return [];
}
this.getCurrent().users = [this.getCurrent().owner];
let self = this;
angular.forEach(this.getCurrent().acl, function(value, key) {
if (value.type === OC.Share.SHARE_TYPE_USER) {
self.getCurrent().users.push(value.participant);
}
});
};
BoardService.prototype.getUsers = function () {
if (this.getCurrent() && !this.getCurrent().users) {
this._updateUsers();
}
return this.getCurrent().users;
};
BoardService.prototype.canRead = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_READ'];
};
BoardService.prototype.canEdit = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_EDIT'];
};
BoardService.prototype.canManage = function (board) {
if (board !== null && board !== undefined) {
return board.permissions['PERMISSION_MANAGE'];
}
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_MANAGE'];
};
BoardService.prototype.canShare = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_SHARE'];
};
BoardService.prototype.isArchived = function () {
if (!this.getCurrent() || this.getCurrent().archived) {
return true;
}
return false;
};
return new BoardService($http, 'boards', $q);
});
-177
View File
@@ -1,177 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.factory('CardService', function (ApiService, $http, $q) {
var CardService = function ($http, ep, $q) {
ApiService.call(this, $http, ep, $q);
};
CardService.prototype = angular.copy(ApiService.prototype);
CardService.prototype.reorder = function (card, order) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + card.id + '/reorder', {
cardId: card.id,
order: order,
stackId: card.stackId
}).then(function (response) {
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.rename = function (card) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + card.id + '/rename', {
cardId: card.id,
title: card.title
}).then(function (response) {
self.data[card.id].title = card.title;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while renaming ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.assignLabel = function (card, label) {
var url = this.baseUrl + '/' + card + '/label/' + label;
var deferred = $q.defer();
var self = this;
$http.post(url).then(function (response) {
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.removeLabel = function (card, label) {
var url = this.baseUrl + '/' + card + '/label/' + label;
var deferred = $q.defer();
var self = this;
$http.delete(url).then(function (response) {
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.archive = function (card) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + card.id + '/archive', {}).then(function (response) {
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.unarchive = function (card) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + card.id + '/unarchive', {}).then(function (response) {
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.assignUser = function (card, user) {
var deferred = $q.defer();
var self = this;
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.get(card.id).assignedUsers.push(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.unassignUser = function (card, user) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + card.id + '/assign/' + user, {}).then(function (response) {
self.get(card.id).assignedUsers = self.get(card.id).assignedUsers.filter(function (obj) {
return obj.participant.uid !== user;
});
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
CardService.prototype.attachmentRemove = function (attachment) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + this.getCurrent().id + '/attachment/' + attachment.id, {}).then(function (response) {
if (response.data.deletedAt > 0) {
let currentAttachment = self.getCurrent().attachments.find(function (obj) {
if (obj.id === attachment.id) {
obj.deletedAt = response.data.deletedAt;
}
});
} else {
self.getCurrent().attachments = self.getCurrent().attachments.filter(function (obj) {
return obj.id !== attachment.id;
});
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error when removing the attachment');
});
return deferred.promise;
};
CardService.prototype.attachmentRemoveUndo = function (attachment) {
var deferred = $q.defer();
var self = this;
$http.get(this.baseUrl + '/' + this.getCurrent().id + '/attachment/' + attachment.id + '/restore', {}).then(function (response) {
let currentAttachment = self.getCurrent().attachments.find(function (obj) {
if (obj.id === attachment.id) {
obj.deletedAt = response.data.deletedAt;
}
});
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error when restoring the attachment');
});
return deferred.promise;
};
var service = new CardService($http, 'cards', $q);
return service;
});
-137
View File
@@ -1,137 +0,0 @@
/*
* @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';
/* global OC oc_requesttoken */
export default class FileService {
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;
fileItem.url = OC.generateUrl('/apps/deck/cards/' + fileItem.cardId + '/attachment?type=deck_file');
if (typeof attachmentId !== 'undefined') {
fileItem.url = OC.generateUrl('/apps/deck/cards/' + fileItem.cardId + '/attachment/' + attachmentId + '?type=deck_file');
} else {
fileItem.formData = [
{
requesttoken: oc_requesttoken,
type: 'deck_file',
}
];
}
fileItem.headers = {requesttoken: oc_requesttoken};
this.uploader.uploadItem(fileItem);
}
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) => {
return attachment.data === fileItem.file.name;
});
if (typeof existingFile !== 'undefined') {
OC.dialogs.confirm(
t('deck', `A file with the name ${fileItem.file.name} already exists. Do you want to overwrite it?`),
t('deck', 'File already exists'),
function (result) {
if (result) {
self.runUpload(fileItem, existingFile.id);
} else {
let fileName = existingFile.extendedData.info.filename;
let foundFilesMatching = attachments.filter((attachment) => {
return attachment.extendedData.info.extension === existingFile.extendedData.info.extension
&& attachment.extendedData.info.filename.startsWith(fileName);
});
let nextIndex = foundFilesMatching.length + 1;
fileItem.file.name = fileName + ' (' + nextIndex + ').' + existingFile.extendedData.info.extension;
self.runUpload(fileItem);
}
}
);
} else {
self.runUpload(fileItem);
}
}, function (error) {
this.progress = this.progress.filter((item) => (fileItem.file.name !== item.file.name));
});
}
onSuccessItem (item, response) {
let attachments = this.cardservice.get(item.cardId).attachments;
let index = attachments.indexOf(attachments.find((attachment) => attachment.id === response.id));
if (~index) {
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);
-30
View File
@@ -1,30 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.factory('LabelService', function (ApiService, $http, $q) {
var LabelService = function ($http, ep, $q) {
ApiService.call(this, $http, ep, $q);
};
LabelService.prototype = angular.copy(ApiService.prototype);
return new LabelService($http, 'labels', $q);
});
-139
View File
@@ -1,139 +0,0 @@
/*
* @copyright Copyright (c) 2016 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';
/* global app angular */
app.factory('StackService', function (ApiService, CardService, $http, $q) {
var StackService = function ($http, ep, $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;
$http.get(this.baseUrl + '/' + boardId).then(function (response) {
self.clear();
self.addAll(response.data);
// When loading a stack add cards to the CardService so we can fetch
// information from there. That way we don't need to refresh the whole
// stack data during digest if some value changes
angular.forEach(response.data, function (entity) {
CardService.addAll(entity.cards);
});
deferred.resolve(self.data);
}, function (error) {
deferred.reject('Error while loading stacks');
});
return deferred.promise;
};
StackService.prototype.fetchArchived = function (boardId) {
var deferred = $q.defer();
var self = this;
$http.get(this.baseUrl + '/' + boardId + '/archived').then(function (response) {
self.clear();
self.addAll(response.data);
angular.forEach(response.data, function (entity) {
CardService.addAll(entity.cards);
});
deferred.resolve(self.data);
}, function (error) {
deferred.reject('Error while loading stacks');
});
return deferred.promise;
};
StackService.prototype.addCard = function (entity) {
if (!this.data[entity.stackId].cards) {
this.data[entity.stackId].cards = [];
}
this.data[entity.stackId].cards.push(entity);
};
StackService.prototype.reorder = function (stack, order) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + stack.id + '/reorder', {
stackId: stack.id,
order: order
}).then(function (response) {
angular.forEach(response.data, function (value, key) {
var id = value.id;
self.data[id].order = value.order;
});
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error while update ' + self.endpoint);
});
return deferred.promise;
};
StackService.prototype.reorderCard = function (entity, order) {
// assign new order
for (var i = 0, j = 0; i < this.data[entity.stackId].cards.length; i++) {
if (this.data[entity.stackId].cards[i].id === entity.id) {
this.data[entity.stackId].cards[i].order = order;
}
if (j === order) {
j++;
}
if (this.data[entity.stackId].cards[i].id !== entity.id) {
this.data[entity.stackId].cards[i].order = j++;
}
}
// sort array by order
this.data[entity.stackId].cards.sort(function (a, b) {
if (a.order < b.order)
{return -1;}
if (a.order > b.order)
{return 1;}
return 0;
});
};
StackService.prototype.updateCard = function (entity) {
var self = this;
var cards = this.data[entity.stackId].cards;
for (var i = 0; i < cards.length; i++) {
if (cards[i].id === entity.id) {
cards[i] = entity;
}
}
};
StackService.prototype.removeCard = function (entity) {
var self = this;
var cards = this.data[entity.stackId].cards;
for (var i = 0; i < cards.length; i++) {
if (cards[i].id === entity.id) {
cards.splice(i, 1);
}
}
};
var service = new StackService($http, 'stacks', $q);
return service;
});
-82
View File
@@ -1,82 +0,0 @@
/*
* @copyright Copyright (c) 2016 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.factory('StatusService', function () {
// Status Helper
var StatusService = function () {
this.active = true;
this.icon = 'loading';
this.title = '';
this.text = '';
this.counter = 0;
};
StatusService.prototype.setStatus = function ($icon, $title, $text) {
this.active = true;
this.icon = $icon;
this.title = $title;
this.text = $text;
};
StatusService.prototype.setError = function ($title, $text) {
this.active = true;
this.icon = 'error';
this.title = $title;
this.text = $text;
this.counter = 0;
};
StatusService.prototype.releaseWaiting = function () {
if (this.counter > 0) {
this.counter--;
}
if (this.counter <= 0) {
this.active = false;
this.counter = 0;
}
};
StatusService.prototype.retainWaiting = function () {
this.active = true;
this.icon = 'loading';
this.title = '';
this.text = '';
this.counter++;
};
StatusService.prototype.unsetStatus = function () {
this.active = false;
};
return {
getInstance: function () {
return new StatusService();
},
/* Shared StatusService instance between both ListController instances */
listStatus: new StatusService()
};
});
-41
View File
@@ -1,41 +0,0 @@
/*
* @copyright Copyright (c) 2016 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/>.
*
*/
describe('BoardController', function() {
'use strict';
var $controller;
beforeEach(inject(function(_$controller_){
// The injector unwraps the underscores (_) from around the parameter names when matching
$controller = _$controller_;
}));
describe('$scope.rgblight', function() {
it('converts rbg color to a lighter color', function() {
var $scope = {};
var controller = $controller('BoardController', { $scope: $scope });
var hex = $scope.rgblight('red');
expect(hex).toEqual('#red');
});
});
});
-76
View File
@@ -1,76 +0,0 @@
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
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'
})
]
};
-7
View File
@@ -1,7 +0,0 @@
const merge = require('webpack-merge');
const baseConfig = require('./webpack.config.js');
module.exports = merge(baseConfig, {
mode: 'development',
devtool: 'source-map',
});
-15
View File
@@ -1,15 +0,0 @@
const webpack = require('webpack');
const merge = require('webpack-merge');
const baseConfig = require('./webpack.config.js');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
module.exports = merge(baseConfig, {
mode: 'production',
optimization: {
minimizer: [
new UglifyJsPlugin({
test: /(vendor\.js)+/i
})
]
}});
+1 -36
View File
@@ -1,39 +1,4 @@
[package] [package]
exclude = [
"build/",
".git",
"js/node_modules",
"js/tests",
"js/legacy",
"js/controller",
"js/directive",
"js/filters",
"js/service",
"js/bower.json",
"js/.bowerrc",
"js/.jshintrc",
"js/Gruntfile.js",
"js/package.json",
"js/package-lock.json",
"docs/",
"tests",
".codecov.yml",
"composer.json",
"composer.lock",
"_config.yml",
".drone.yml",
".travis.yml",
".eslintignore",
".eslintrc.yml",
".gitignore",
"issue_template.md",
"krankerl.toml",
"Makefile",
"mkdocs.yml",
"run-eslint.sh"
]
before_cmds = [ before_cmds = [
'make clean-build', 'make release'
'make build'
] ]
+31
View File
@@ -0,0 +1,31 @@
OC.L10N.register(
"deck",
{
"Personal" : "Persoonlik",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is",
"The file was only partially uploaded" : "Die lêer is slegs gedeeltelik op gelaai",
"No file was uploaded" : "Geen lêer is opgelaai",
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Cancel" : "Kanselleer",
"Tags" : "Etikette",
"Can edit" : "Kan redigeer",
"Can share" : "Kan deel",
"Delete" : "Skrap",
"Edit" : "Wysig",
"Details" : "Besonderhede",
"Due date" : "Sperdatum",
"Description" : "Beskrywing",
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Save" : "Stoor",
"Update" : "Werk by",
"Settings" : "Instellings",
"An error occurred" : "'n Fout het voorgekom"
},
"nplurals=2; plural=(n != 1);");
+29
View File
@@ -0,0 +1,29 @@
{ "translations": {
"Personal" : "Persoonlik",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is",
"The file was only partially uploaded" : "Die lêer is slegs gedeeltelik op gelaai",
"No file was uploaded" : "Geen lêer is opgelaai",
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Cancel" : "Kanselleer",
"Tags" : "Etikette",
"Can edit" : "Kan redigeer",
"Can share" : "Kan deel",
"Delete" : "Skrap",
"Edit" : "Wysig",
"Details" : "Besonderhede",
"Due date" : "Sperdatum",
"Description" : "Beskrywing",
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Save" : "Stoor",
"Update" : "Werk by",
"Settings" : "Instellings",
"An error occurred" : "'n Fout het voorgekom"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+23 -11
View File
@@ -1,18 +1,30 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Hours" : "ساعات", "Personal" : "شخصي",
"Minutes" : "دقائق", "Finished" : "مكتملة",
"File already exists" : "الملف موجود مسبقاً", "copy" : "أنسخ",
"Done" : "تم", "Done" : "تم",
"Actions" : "الإجراءات", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.",
"Delete card" : "حذف البطاقة", "No file was uploaded" : "لم يتم رفع أي ملف",
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Cancel" : "إلغاء",
"Tags" : "الوسوم",
"Timeline" : "الخيط الزمني", "Timeline" : "الخيط الزمني",
"Share" : "شارك", "Undo" : "تراجع",
"Update tag" : "تحديث الوسم", "Can edit" : "يمكنه التغيير",
"Edit tag" : "تعديل الوسم", "Can share" : "Can share",
"Delete tag" : "حذف الوسم", "Delete" : "حذف ",
"Delete attachment" : "حذف المرفق", "Edit" : "تعديل",
"Settings" : "الإعدادات" "Description" : "الوصف",
"Attachments" : "المرفقات",
"Comments" : "تعليقات",
"Modified" : "آخر تعديل",
"Upload attachment" : "رفع المرفقات",
"Save" : "حفظ",
"Update" : "تحديث",
"Delete card" : "حذف البطاقة",
"Settings" : "الإعدادات",
"An error occurred" : "طرأ هناك خطأ"
}, },
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
+23 -11
View File
@@ -1,16 +1,28 @@
{ "translations": { { "translations": {
"Hours" : "ساعات", "Personal" : "شخصي",
"Minutes" : "دقائق", "Finished" : "مكتملة",
"File already exists" : "الملف موجود مسبقاً", "copy" : "أنسخ",
"Done" : "تم", "Done" : "تم",
"Actions" : "الإجراءات", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.",
"Delete card" : "حذف البطاقة", "No file was uploaded" : "لم يتم رفع أي ملف",
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Cancel" : "إلغاء",
"Tags" : "الوسوم",
"Timeline" : "الخيط الزمني", "Timeline" : "الخيط الزمني",
"Share" : "شارك", "Undo" : "تراجع",
"Update tag" : "تحديث الوسم", "Can edit" : "يمكنه التغيير",
"Edit tag" : "تعديل الوسم", "Can share" : "Can share",
"Delete tag" : "حذف الوسم", "Delete" : "حذف ",
"Delete attachment" : "حذف المرفق", "Edit" : "تعديل",
"Settings" : "الإعدادات" "Description" : "الوصف",
"Attachments" : "المرفقات",
"Comments" : "تعليقات",
"Modified" : "آخر تعديل",
"Upload attachment" : "رفع المرفقات",
"Save" : "حفظ",
"Update" : "تحديث",
"Delete card" : "حذف البطاقة",
"Settings" : "الإعدادات",
"An error occurred" : "طرأ هناك خطأ"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} }
+23 -16
View File
@@ -1,29 +1,36 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Hours" : "Hores",
"Minutes" : "Minutos",
"Deck" : "Deck", "Deck" : "Deck",
"Personal" : "Personal",
"Finished" : "Finó", "Finished" : "Finó",
"Action needed" : "Precísase aición", "Action needed" : "Precísase aición",
"Later" : "Más sero", "Later" : "Más sero",
"Submit" : "Unviar", "Done" : "Fecho",
"The file was uploaded" : "Xubióse'l ficheru",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu perpasa la direutiva de xuba upload_max_filesize en php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML",
"No file was uploaded" : "Nun se xubieron fichjeros",
"Missing a temporary folder" : "Falta un direutoriu temporal",
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
"Cancel" : "Encaboxar",
"Show archived cards" : "Amosar tarxetes archivaes", "Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar", "Sharing" : "Compartiendo",
"Tags" : "Etiquetes", "Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir", "Undo" : "Desfacer",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.", "Can edit" : "Can edit",
"Loading" : "Cargando", "Can share" : "Can share",
"Delete" : "Desaniciar",
"Edit" : "Editar", "Edit" : "Editar",
"Share" : "Compartir", "Details" : "Detalles",
"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", "Description" : "Descripción",
"Saved" : "Guardóse" "Attachments" : "Axuntos",
"Comments" : "Comentarios",
"Modified" : "Modificóse'l",
"Created" : "Creóse",
"Save" : "Guardar",
"Update" : "Anovar",
"Settings" : "Settings"
}, },
"nplurals=2; plural=(n != 1);"); "nplurals=2; plural=(n != 1);");
+23 -16
View File
@@ -1,27 +1,34 @@
{ "translations": { { "translations": {
"Hours" : "Hores",
"Minutes" : "Minutos",
"Deck" : "Deck", "Deck" : "Deck",
"Personal" : "Personal",
"Finished" : "Finó", "Finished" : "Finó",
"Action needed" : "Precísase aición", "Action needed" : "Precísase aición",
"Later" : "Más sero", "Later" : "Más sero",
"Submit" : "Unviar", "Done" : "Fecho",
"The file was uploaded" : "Xubióse'l ficheru",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El ficheru xubíu perpasa la direutiva de xuba upload_max_filesize en php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El ficheru xubíu perpasa la direutiva \"MAX_FILE_SIZE\" especificada nel formulariu HTML",
"No file was uploaded" : "Nun se xubieron fichjeros",
"Missing a temporary folder" : "Falta un direutoriu temporal",
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
"Cancel" : "Encaboxar",
"Show archived cards" : "Amosar tarxetes archivaes", "Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar", "Sharing" : "Compartiendo",
"Tags" : "Etiquetes", "Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir", "Undo" : "Desfacer",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.", "Can edit" : "Can edit",
"Loading" : "Cargando", "Can share" : "Can share",
"Delete" : "Desaniciar",
"Edit" : "Editar", "Edit" : "Editar",
"Share" : "Compartir", "Details" : "Detalles",
"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", "Description" : "Descripción",
"Saved" : "Guardóse" "Attachments" : "Axuntos",
"Comments" : "Comentarios",
"Modified" : "Modificóse'l",
"Created" : "Creóse",
"Save" : "Guardar",
"Update" : "Anovar",
"Settings" : "Settings"
},"pluralForm" :"nplurals=2; plural=(n != 1);" },"pluralForm" :"nplurals=2; plural=(n != 1);"
} }
+21
View File
@@ -0,0 +1,21 @@
OC.L10N.register(
"deck",
{
"Personal" : "Şəxsi",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Cancel" : "Dayandır",
"Tags" : "Işarələr",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Description" : "Açıqlanma",
"Modified" : "Dəyişdirildi",
"Save" : "Saxla",
"Update" : "Yenilənmə",
"Settings" : "Quraşdırmalar"
},
"nplurals=2; plural=(n != 1);");
+19
View File
@@ -0,0 +1,19 @@
{ "translations": {
"Personal" : "Şəxsi",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Cancel" : "Dayandır",
"Tags" : "Işarələr",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Description" : "Açıqlanma",
"Modified" : "Dəyişdirildi",
"Save" : "Saxla",
"Update" : "Yenilənmə",
"Settings" : "Quraşdırmalar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+17 -23
View File
@@ -1,42 +1,36 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Hours" : "Часове", "Personal" : "Лични",
"Minutes" : "Минути",
"Finished" : "Готово", "Finished" : "Готово",
"To review" : "За преглед", "To review" : "За преглед",
"Action needed" : "Необходимо е действие", "Action needed" : "Необходимо е действие",
"Later" : "По-късно", "Later" : "По-късно",
"copy" : "Копиране",
"Done" : "Готово",
"The file was uploaded" : "Файлът е качен", "The file was uploaded" : "Файлът е качен",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размерът на файла надвишава максималния размер определен от MAX_FILE_SIZE в HTML формата.",
"The file was only partially uploaded" : "Файлът е качен частично", "The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен", "No file was uploaded" : "Нито един файл не е качен",
"Sharing" : "Споделяне", "Missing a temporary folder" : "Липсва временна папка",
"Cancel" : "Отказ",
"Tags" : "Етикети", "Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи", "Undo" : "Отмяна",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи", "Can edit" : "Може да редактира",
"Loading" : "Зареждане", "Can share" : "Може да споделя",
"Delete" : "Изтриване",
"Edit" : "Редакция", "Edit" : "Редакция",
"Share" : "Сподели",
"Manage" : "Управление",
"Discard share" : "Отхвърляне на споделяне",
"Create" : "Създай",
"Title" : "Име",
"Members" : "Членове",
"Cancel upload" : "Откажи качването",
"by" : "от",
"Modified:" : "Променена:",
"Created:" : "Създадена:",
"Choose a tag" : "Изберете етикет",
"Add a tag" : "Етикети",
"Select tags" : "Изберете етикети",
"Assign users" : "Зачисляване на потребител",
"Choose a user to assign" : "Изберете потребител на който да бъде зачислена",
"Due date" : "Крайна дата", "Due date" : "Крайна дата",
"Remove due date" : "Премахни крайната дата", "Remove due date" : "Премахни крайната дата",
"Description" : "Описание", "Description" : "Описание",
"Attachments" : "Прикачени файлове", "Attachments" : "Прикачени файлове",
"Saved" : "Запазено", "Comments" : "Коментари",
"Modified" : "Промяна",
"Created" : "Създаден",
"Upload attachment" : "Качване", "Upload attachment" : "Качване",
"Settings" : "Настройки" "Save" : "Запазване",
"Update" : "Обновяване",
"Settings" : "Настройки",
"An error occurred" : "Възникна грешка"
}, },
"nplurals=2; plural=(n != 1);"); "nplurals=2; plural=(n != 1);");
+17 -23
View File
@@ -1,40 +1,34 @@
{ "translations": { { "translations": {
"Hours" : "Часове", "Personal" : "Лични",
"Minutes" : "Минути",
"Finished" : "Готово", "Finished" : "Готово",
"To review" : "За преглед", "To review" : "За преглед",
"Action needed" : "Необходимо е действие", "Action needed" : "Необходимо е действие",
"Later" : "По-късно", "Later" : "По-късно",
"copy" : "Копиране",
"Done" : "Готово",
"The file was uploaded" : "Файлът е качен", "The file was uploaded" : "Файлът е качен",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размерът на файла надвишава максималния размер определен от MAX_FILE_SIZE в HTML формата.",
"The file was only partially uploaded" : "Файлът е качен частично", "The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен", "No file was uploaded" : "Нито един файл не е качен",
"Sharing" : "Споделяне", "Missing a temporary folder" : "Липсва временна папка",
"Cancel" : "Отказ",
"Tags" : "Етикети", "Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи", "Undo" : "Отмяна",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи", "Can edit" : "Може да редактира",
"Loading" : "Зареждане", "Can share" : "Може да споделя",
"Delete" : "Изтриване",
"Edit" : "Редакция", "Edit" : "Редакция",
"Share" : "Сподели",
"Manage" : "Управление",
"Discard share" : "Отхвърляне на споделяне",
"Create" : "Създай",
"Title" : "Име",
"Members" : "Членове",
"Cancel upload" : "Откажи качването",
"by" : "от",
"Modified:" : "Променена:",
"Created:" : "Създадена:",
"Choose a tag" : "Изберете етикет",
"Add a tag" : "Етикети",
"Select tags" : "Изберете етикети",
"Assign users" : "Зачисляване на потребител",
"Choose a user to assign" : "Изберете потребител на който да бъде зачислена",
"Due date" : "Крайна дата", "Due date" : "Крайна дата",
"Remove due date" : "Премахни крайната дата", "Remove due date" : "Премахни крайната дата",
"Description" : "Описание", "Description" : "Описание",
"Attachments" : "Прикачени файлове", "Attachments" : "Прикачени файлове",
"Saved" : "Запазено", "Comments" : "Коментари",
"Modified" : "Промяна",
"Created" : "Създаден",
"Upload attachment" : "Качване", "Upload attachment" : "Качване",
"Settings" : "Настройки" "Save" : "Запазване",
"Update" : "Обновяване",
"Settings" : "Настройки",
"An error occurred" : "Възникна грешка"
},"pluralForm" :"nplurals=2; plural=(n != 1);" },"pluralForm" :"nplurals=2; plural=(n != 1);"
} }
+21
View File
@@ -0,0 +1,21 @@
OC.L10N.register(
"deck",
{
"Personal" : "ব্যক্তিগত",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Cancel" : "বাতির",
"Tags" : "ট্যাগ",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "মুছে",
"Edit" : "সম্পাদনা",
"Description" : "বিবরণ",
"Modified" : "পরিবর্তিত",
"Save" : "সংরক্ষণ",
"Update" : "পরিবর্ধন",
"Settings" : "সেটিংস"
},
"nplurals=2; plural=(n != 1);");
+19
View File
@@ -0,0 +1,19 @@
{ "translations": {
"Personal" : "ব্যক্তিগত",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Cancel" : "বাতির",
"Tags" : "ট্যাগ",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "মুছে",
"Edit" : "সম্পাদনা",
"Description" : "বিবরণ",
"Modified" : "পরিবর্তিত",
"Save" : "সংরক্ষণ",
"Update" : "পরিবর্ধন",
"Settings" : "সেটিংস"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+15 -8
View File
@@ -1,15 +1,22 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Hours" : "Sati", "Personal" : "Osobno",
"Minutes" : "Minute", "Done" : "Done",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Cancel" : "Otkaži",
"Sharing" : "Dijeljenje",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Obriši",
"Edit" : "Izmjeni", "Edit" : "Izmjeni",
"Share" : "Podjeli", "Description" : "Opis",
"Create" : "Ustvari", "Comments" : "Komentari",
"Status" : "Status", "Modified" : "Izmijenjeno",
"Title" : "Naslov", "Save" : "Spremi",
"Members" : "Članovi", "Update" : "Ažuriraj",
"Settings" : "Podešavanje" "Settings" : "Podešavanje"
}, },
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+15 -8
View File
@@ -1,13 +1,20 @@
{ "translations": { { "translations": {
"Hours" : "Sati", "Personal" : "Osobno",
"Minutes" : "Minute", "Done" : "Done",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Cancel" : "Otkaži",
"Sharing" : "Dijeljenje",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Obriši",
"Edit" : "Izmjeni", "Edit" : "Izmjeni",
"Share" : "Podjeli", "Description" : "Opis",
"Create" : "Ustvari", "Comments" : "Komentari",
"Status" : "Status", "Modified" : "Izmijenjeno",
"Title" : "Naslov", "Save" : "Spremi",
"Members" : "Članovi", "Update" : "Ažuriraj",
"Settings" : "Podešavanje" "Settings" : "Podešavanje"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} }
+34 -91
View File
@@ -1,17 +1,6 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Please provide a content for your comment." : "Proporcioneu un contingut per al vostre comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha suprimit el comentari",
"The associated stack is deleted as well, it will be restored as well." : "La pila associada també se suprimeix, també es restaurarà.",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Link to a board" : "Enllaça a un tauler",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"File already exists" : "El fitxer ja existeix",
"You have created a new board {board}" : "Heu creat el nou tauler {board}", "You have created a new board {board}" : "Heu creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha 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}" : "Heu suprimit el tauler {board}", "You have deleted the board {board}" : "Heu suprimit el tauler {board}",
@@ -67,9 +56,7 @@ OC.L10N.register(
"You have added the attachment {attachment} to card {card}" : "Heu afegit l'adjunt {attachment} a la targeta {card}", "You have added the attachment {attachment} to card {card}" : "Heu afegit l'adjunt {attachment} a la targeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} ha afegit l'adjunt {attachment} a la targeta {card}", "{user} has added the attachment {attachment} to card {card}" : "{user} ha afegit l'adjunt {attachment} a la targeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Heu actualitzat l'adjunt {attachment} a la targeta {card}", "You have updated the attachment {attachment} on card {card}" : "Heu actualitzat l'adjunt {attachment} a la targeta {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} ha actualitzat l'adjunt {attachment} a la targeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Heu suprimit l'adjunt {attachment} de la targeta {card}", "You have deleted the attachment {attachment} from card {card}" : "Heu suprimit l'adjunt {attachment} de la targeta {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} ha suprimit l'adjunt {attachment} de la targeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Heu restaurat l'adjunt {attachment} a la targeta {card}", "You have restored the attachment {attachment} to card {card}" : "Heu restaurat l'adjunt {attachment} a la targeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}",
"You have commented on card {card}" : "Heu comentat la targeta {card}", "You have commented on card {card}" : "Heu comentat la targeta {card}",
@@ -91,6 +78,7 @@ OC.L10N.register(
"To review" : "Per revisar", "To review" : "Per revisar",
"Action needed" : "Acció necessària", "Action needed" : "Acció necessària",
"Later" : "Més tard", "Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents", "To do" : "Pendents",
"Doing" : "En procés", "Doing" : "En procés",
"Done" : "Finalitzades", "Done" : "Finalitzades",
@@ -106,98 +94,53 @@ OC.L10N.register(
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc", "Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer", "A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s", "No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"A kanban style project and personal management tool for Nextcloud" : "Un projecte destil kanban i una eina de gestió personal per a 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" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Create new board" : "Crea un nou tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte", "Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler", "Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila", "Cancel" : "Cancel·la",
"Submit" : "Envia",
"Show archived cards" : "Mostra les targetes arxivades", "Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades", "Hide archived cards" : "Amaga les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte", "Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler", "Sharing" : "Compartició",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Share board" : "Comparteix tauler",
"Archived cards" : "Targetes arxivades",
"Actions" : "Accions",
"Drop your files here to upload it to the card" : "Deixeu anar els fitxers aquí per carregar-los a la targeta",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Archive card" : "Arxiva la targeta",
"Unarchive card" : "Desarxiva targeta",
"Delete card" : "Suprimeix targeta",
"Enter a card title" : "Introduïu un títol a la targeta",
"Add card" : "Afegeix una targeta",
"Close" : "Tanca",
"Sharing" : "S'està compartint",
"Tags" : "Etiquetes", "Tags" : "Etiquetes",
"Deleted items" : "Elements suprimits", "Deleted items" : "Elements suprimits",
"Timeline" : "Línia de temps", "Timeline" : "Línia de temps",
"Select users or groups to share with" : "Seleccioneu usuaris o grups amb els qui compartir",
"Group" : "Grup",
"Circle" : "Cercle",
"No matching user or group found." : "No s'ha trobat cap usuari o grup coincident.",
"Loading" : "S'està carregant",
"Edit" : "Edita",
"Share" : "Comparteix",
"Manage" : "Gestiona",
"Discard share" : "Descarta la compartició",
"Sharing has been disabled for your account." : "La compartició s'ha desactivat per al vostre compte.",
"Update tag" : "Actualitza etiqueta",
"Edit tag" : "Edita etiqueta",
"Delete tag" : "Suprimeix etiqueta",
"Create" : "Crea",
"Create a new tag" : "Crea una nova etiqueta",
"Deleted stacks" : "Piles suprimides", "Deleted stacks" : "Piles suprimides",
"Undo" : "Desfés",
"Deleted cards" : "Targetes suprimides", "Deleted cards" : "Targetes suprimides",
"Status" : "Estat", "(Group)" : "(Grup)",
"No archived boards to display" : "No hi ha cap tauler arxivat per mostrar", "Can edit" : "Pot editar",
"No shared boards to display" : "No hi ha cap tauler compartit per mostrar", "Can share" : "Pot compartir",
"Title" : "Títol", "Delete" : "Eliminar",
"Members" : "Membres", "Add a new stack" : "Afegeix una nova pila",
"More actions" : "Més accions", "Add card" : "Afegeix una targeta",
"Edit" : "Edita",
"Details" : "Detalls",
"Due date" : "Per la data",
"Remove due date" : "Elimina la data de venciment",
"Description" : "Descripció",
"Formatting help" : "Format d'ajuda",
"Attachments" : "Adjunts",
"Comments" : "Comentaris",
"Modified" : "Darrera modificació",
"Created" : "Creat",
"Upload attachment" : "Carrega l'adjunt",
"Save" : "Desa",
"Update" : "Actualitza",
"Delete card" : "Suprimeix targeta",
"Move card" : "Mou la targeta",
"Archived boards" : "Taulers arxivats",
"Shared boards" : "Taulers compartits",
"Settings" : "Paràmetres",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"New board title" : "Títol del nou tauler",
"Edit board" : "Edita el tauler", "Edit board" : "Edita el tauler",
"An error occurred" : "S'ha produït un error",
"Archive board" : "Arxiva tauler", "Archive board" : "Arxiva tauler",
"Unarchive board" : "Desarxiva tauler", "Unarchive board" : "Desarxiva tauler",
"Delete board" : "Suprimeix tauler", "Delete board" : "Suprimeix tauler",
"Update board" : "Actualitza tauler", "Board details" : "Detalls de la junta",
"Reset board" : "Reinicialitza tauler", "Link to a board" : "Enllaça a un tauler"
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Desfeu la supressió del tauler - Altrament el tauler serà suprimit durant la següent execució de treball del cron.",
"Create new board" : "Crea un nou tauler",
"New board title" : "Títol del nou tauler",
"Create board" : "Crea tauler",
"Select an attachment" : "Selecciona un adjunt",
"Cancel upload" : "Cancel·la la càrrega",
"by" : "per",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Desfeu la supressió del fitxer - Altrament el fitxer serà suprimit durant la següent execució de treball del cron.",
"Undo file deletion" : "Desfés la supressió del fitxer",
"Insert the file into the description" : "Insereix el fitxer a la descripció",
"Delete attachment" : "Suprimeix l'adjunt",
"Modified:" : "Modificat:",
"Created:" : "Creat:",
"Choose a tag" : "Trieu una etiqueta",
"Add a tag" : "Afegeix una etiqueta",
"Select tags" : "Selecciona etiquetes",
"Assign users" : "Assigna usuaris",
"Choose a user to assign" : "Tria 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",
"Description" : "Descripció",
"Attachments" : "Adjunts",
"Saved" : "Desat",
"Unsaved changes" : "Canvis no desats",
"Insert attachment" : "Insereix l'adjunt",
"Formatting help" : "Format d'ajuda",
"Upload attachment" : "Carrega l'adjunt",
"Add a card description…" : "Afegeix una descripció de la targeta ...",
"Shared boards" : "Taulers compartits",
"Move board to archive" : "Mou tauler a l'arxiu",
"Create a new board" : "Crea un nou tauler",
"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." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells."
}, },
"nplurals=2; plural=(n != 1);"); "nplurals=2; plural=(n != 1);");
+34 -91
View File
@@ -1,15 +1,4 @@
{ "translations": { { "translations": {
"Please provide a content for your comment." : "Proporcioneu un contingut per al vostre comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha suprimit el comentari",
"The associated stack is deleted as well, it will be restored as well." : "La pila associada també se suprimeix, també es restaurarà.",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Link to a board" : "Enllaça a un tauler",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"File already exists" : "El fitxer ja existeix",
"You have created a new board {board}" : "Heu creat el nou tauler {board}", "You have created a new board {board}" : "Heu creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha 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}" : "Heu suprimit el tauler {board}", "You have deleted the board {board}" : "Heu suprimit el tauler {board}",
@@ -65,9 +54,7 @@
"You have added the attachment {attachment} to card {card}" : "Heu afegit l'adjunt {attachment} a la targeta {card}", "You have added the attachment {attachment} to card {card}" : "Heu afegit l'adjunt {attachment} a la targeta {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} ha afegit l'adjunt {attachment} a la targeta {card}", "{user} has added the attachment {attachment} to card {card}" : "{user} ha afegit l'adjunt {attachment} a la targeta {card}",
"You have updated the attachment {attachment} on card {card}" : "Heu actualitzat l'adjunt {attachment} a la targeta {card}", "You have updated the attachment {attachment} on card {card}" : "Heu actualitzat l'adjunt {attachment} a la targeta {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} ha actualitzat l'adjunt {attachment} a la targeta {card}",
"You have deleted the attachment {attachment} from card {card}" : "Heu suprimit l'adjunt {attachment} de la targeta {card}", "You have deleted the attachment {attachment} from card {card}" : "Heu suprimit l'adjunt {attachment} de la targeta {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} ha suprimit l'adjunt {attachment} de la targeta {card}",
"You have restored the attachment {attachment} to card {card}" : "Heu restaurat l'adjunt {attachment} a la targeta {card}", "You have restored the attachment {attachment} to card {card}" : "Heu restaurat l'adjunt {attachment} a la targeta {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}", "{user} has restored the attachment {attachment} to card {card}" : "{user} ha restaurat l'adjunt {attachment} a la targeta {card}",
"You have commented on card {card}" : "Heu comentat la targeta {card}", "You have commented on card {card}" : "Heu comentat la targeta {card}",
@@ -89,6 +76,7 @@
"To review" : "Per revisar", "To review" : "Per revisar",
"Action needed" : "Acció necessària", "Action needed" : "Acció necessària",
"Later" : "Més tard", "Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents", "To do" : "Pendents",
"Doing" : "En procés", "Doing" : "En procés",
"Done" : "Finalitzades", "Done" : "Finalitzades",
@@ -104,98 +92,53 @@
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc", "Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer", "A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s", "No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"A kanban style project and personal management tool for Nextcloud" : "Un projecte destil kanban i una eina de gestió personal per a 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" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat", "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Tauler és una eina d'organització a l'estil kanban dirigida a la planificació personal i a l'organització de projectes per equips integrada a Nextcloud.\n\n\n- 📥 Afegiu les tasques en targetes i poseu-les en ordre\n- 📄 Apunteu notes addicionals en markdown\n- 🔖 Assigneu etiquetes per una organització encara millor\n- 👥 Compartiu amb el vostre equip, família o amics\n- 📎 Adjunteu fitxers i encasteu-los en la descripció en markdown\n- 💬 Debateu amb el vostre equip fent servir comentaris\n- ⚡ Mantingueu el seguiment de canvis al flux d'activitat\n- 🚀 Tingueu el vostre projecte organitzat",
"Create new board" : "Crea un nou tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte", "Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler", "Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila", "Cancel" : "Cancel·la",
"Submit" : "Envia",
"Show archived cards" : "Mostra les targetes arxivades", "Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades", "Hide archived cards" : "Amaga les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte", "Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler", "Sharing" : "Compartició",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Share board" : "Comparteix tauler",
"Archived cards" : "Targetes arxivades",
"Actions" : "Accions",
"Drop your files here to upload it to the card" : "Deixeu anar els fitxers aquí per carregar-los a la targeta",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Archive card" : "Arxiva la targeta",
"Unarchive card" : "Desarxiva targeta",
"Delete card" : "Suprimeix targeta",
"Enter a card title" : "Introduïu un títol a la targeta",
"Add card" : "Afegeix una targeta",
"Close" : "Tanca",
"Sharing" : "S'està compartint",
"Tags" : "Etiquetes", "Tags" : "Etiquetes",
"Deleted items" : "Elements suprimits", "Deleted items" : "Elements suprimits",
"Timeline" : "Línia de temps", "Timeline" : "Línia de temps",
"Select users or groups to share with" : "Seleccioneu usuaris o grups amb els qui compartir",
"Group" : "Grup",
"Circle" : "Cercle",
"No matching user or group found." : "No s'ha trobat cap usuari o grup coincident.",
"Loading" : "S'està carregant",
"Edit" : "Edita",
"Share" : "Comparteix",
"Manage" : "Gestiona",
"Discard share" : "Descarta la compartició",
"Sharing has been disabled for your account." : "La compartició s'ha desactivat per al vostre compte.",
"Update tag" : "Actualitza etiqueta",
"Edit tag" : "Edita etiqueta",
"Delete tag" : "Suprimeix etiqueta",
"Create" : "Crea",
"Create a new tag" : "Crea una nova etiqueta",
"Deleted stacks" : "Piles suprimides", "Deleted stacks" : "Piles suprimides",
"Undo" : "Desfés",
"Deleted cards" : "Targetes suprimides", "Deleted cards" : "Targetes suprimides",
"Status" : "Estat", "(Group)" : "(Grup)",
"No archived boards to display" : "No hi ha cap tauler arxivat per mostrar", "Can edit" : "Pot editar",
"No shared boards to display" : "No hi ha cap tauler compartit per mostrar", "Can share" : "Pot compartir",
"Title" : "Títol", "Delete" : "Eliminar",
"Members" : "Membres", "Add a new stack" : "Afegeix una nova pila",
"More actions" : "Més accions", "Add card" : "Afegeix una targeta",
"Edit" : "Edita",
"Details" : "Detalls",
"Due date" : "Per la data",
"Remove due date" : "Elimina la data de venciment",
"Description" : "Descripció",
"Formatting help" : "Format d'ajuda",
"Attachments" : "Adjunts",
"Comments" : "Comentaris",
"Modified" : "Darrera modificació",
"Created" : "Creat",
"Upload attachment" : "Carrega l'adjunt",
"Save" : "Desa",
"Update" : "Actualitza",
"Delete card" : "Suprimeix targeta",
"Move card" : "Mou la targeta",
"Archived boards" : "Taulers arxivats",
"Shared boards" : "Taulers compartits",
"Settings" : "Paràmetres",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"New board title" : "Títol del nou tauler",
"Edit board" : "Edita el tauler", "Edit board" : "Edita el tauler",
"An error occurred" : "S'ha produït un error",
"Archive board" : "Arxiva tauler", "Archive board" : "Arxiva tauler",
"Unarchive board" : "Desarxiva tauler", "Unarchive board" : "Desarxiva tauler",
"Delete board" : "Suprimeix tauler", "Delete board" : "Suprimeix tauler",
"Update board" : "Actualitza tauler", "Board details" : "Detalls de la junta",
"Reset board" : "Reinicialitza tauler", "Link to a board" : "Enllaça a un tauler"
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Desfeu la supressió del tauler - Altrament el tauler serà suprimit durant la següent execució de treball del cron.",
"Create new board" : "Crea un nou tauler",
"New board title" : "Títol del nou tauler",
"Create board" : "Crea tauler",
"Select an attachment" : "Selecciona un adjunt",
"Cancel upload" : "Cancel·la la càrrega",
"by" : "per",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Desfeu la supressió del fitxer - Altrament el fitxer serà suprimit durant la següent execució de treball del cron.",
"Undo file deletion" : "Desfés la supressió del fitxer",
"Insert the file into the description" : "Insereix el fitxer a la descripció",
"Delete attachment" : "Suprimeix l'adjunt",
"Modified:" : "Modificat:",
"Created:" : "Creat:",
"Choose a tag" : "Trieu una etiqueta",
"Add a tag" : "Afegeix una etiqueta",
"Select tags" : "Selecciona etiquetes",
"Assign users" : "Assigna usuaris",
"Choose a user to assign" : "Tria 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",
"Description" : "Descripció",
"Attachments" : "Adjunts",
"Saved" : "Desat",
"Unsaved changes" : "Canvis no desats",
"Insert attachment" : "Insereix l'adjunt",
"Formatting help" : "Format d'ajuda",
"Upload attachment" : "Carrega l'adjunt",
"Add a card description…" : "Afegeix una descripció de la targeta ...",
"Shared boards" : "Taulers compartits",
"Move board to archive" : "Mou tauler a l'arxiu",
"Create a new board" : "Crea un nou tauler",
"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." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells."
},"pluralForm" :"nplurals=2; plural=(n != 1);" },"pluralForm" :"nplurals=2; plural=(n != 1);"
} }
+129 -151
View File
@@ -1,93 +1,86 @@
OC.L10N.register( OC.L10N.register(
"deck", "deck",
{ {
"Please provide a content for your comment." : "Zadejte obsah svého komentáře.", "You have created a new board {board}" : "Vytvořili jste tabuli {board}",
"Posting the comment failed." : "Odeslání komentáře se nezdařilo.", "{user} has created a new board {board}" : "{user} vytvořil(a) novou tabuli {board}",
"The comment has been deleted" : "Komentář byl smazán", "You have deleted the board {board}" : "Smazali jste tabuli {board}",
"The associated stack is deleted as well, it will be restored as well." : "Související stack je také smazaný a bude také obnoven.", "{user} has deleted the board {board}" : "{user} smazal(a) tabuli {board}",
"Restore associated stack" : "Obnovit související stack", "You have restored the board {board}" : "Obnovili jste tabuli {board}",
"Remove user from card" : "Odebrat uživatele z karty", "{user} has restored the board {board}" : "{user} obnovil(a) tabuli {board}",
"Hours" : "Hodiny", "You have shared the board {board} with {acl}" : "Nasdíleli jste tabuli {board} s {acl}",
"Minutes" : "Minuty", "{user} has shared the board {board} with {acl}" : "{user} nasdílel(a) tabuli {board} s {acl}",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost", "You have removed {acl} from the board {board}" : "Odebrali jste {acl} z tabule {board}",
"File already exists" : "Soubor už existuje", "{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z tabule {board}",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}", "You have renamed the board {before} to {board}" : "Přejmenovali jste tabuli {before} na {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}", "{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) tabuli {before} na {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}", "You have archived the board {board}" : "Zaarchivovali jste tabuli {board}",
"{user} has deleted the board {board}" : "{user} smazal(a) nástěnku {board}", "{user} has archived the board {before}" : "{user} zaarchivoval(a) tabuli {before}",
"You have restored the board {board}" : "Obnovili jste nástěnku {board}", "You have unarchived the board {board}" : "Vrátili jste zpět z archivace tabuli {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}", "{user} has unarchived the board {before}" : "{user} vrátil(a) tabuli {before} zpět z archivace",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}", "You have created a new stack {stack} on board {board}" : "Vytvořili jste nový sloupec {stack} na tabuli {board}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}", "{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový sloupec {stack} na tabuli {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}", "You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste sloupec {before} na {stack} na tabuli {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}", "{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) sloupec {before} na {stack} na tabuli {board}",
"{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) desku {before} na {board}", "You have deleted stack {stack} on board {board}" : "Smazali jste sloupec {stack} na tabuli {board}",
"You have archived the board {board}" : "Zaarchivovali jste nástěnku {board}", "{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) sloupec {stack} na tabuli {board}",
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}", "You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} ve sloupci {stack} na tabuli {board}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}", "{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} ve sloupci {stack} na tabuli {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}", "You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} ve sloupci {stack} na tabuli {board}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}", "{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} ve sloupci {board} na tabuli {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}", "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}", "{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}", "You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} ve sloupci {stack} na tabuli {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}", "{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} ve sloupci {stack} na tabuli {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}", "You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} ve sloupci {stack} na tabuli {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}", "{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} ve sloupci {stack} na tabuli {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}", "You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} ve sloupci {stack} na tabuli {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) 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} ve sloupci {stack} na tabuli {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}", "You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} ve sloupci {stack} na tabuli {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}", "{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} ve sloupci {stack} na tabuli {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}", "You have removed the due date of card {card}" : "Odebrali jste termín u karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}", "{user} has removed the due date of card {card}" : "{user} odebral(a) termín u karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}", "You have set the due date of card {card} to {after}" : "Nastavili jste termín u karty {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}", "{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín u 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}", "You have updated the due date of card {card} to {after}" : "Změnili jste termín u karty {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}", "{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval(a) termín u 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}", "You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} ve sloupci {stack} na tabuli {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}", "{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} ve sloupci {stack} na tabuli {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}", "You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} ve sloupci {stack} na tabuli {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}", "{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} ve sloupci {stack} na tabuli {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}", "You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na tabuli {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {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 tabuli {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}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na tabuli {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}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na tabuli {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}", "You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} ze sloupce {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}", "{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} ze sloupce {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}", "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}", "{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}", "You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} u karty {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} aktualizoval(a) přílohu {attachment} u karty {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {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}", "{user} has deleted the attachment {attachment} from 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}", "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}", "{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}", "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}", "{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", "A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Deck" : "Balík", "Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>", "Changes in the <strong>Deck app</strong>" : "Změny v <strong>aplikaci Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Na kartě byl vytvořen <strong>komentář</strong>",
"Personal" : "Osobní", "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.", "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“.", "{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í.", "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“.", "%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“.", "{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.", "The board \"%s\" has been shared with you by %s." : "Uživatel %s vám nasdílel(a) tabuli „%s.",
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.", "{user} has shared the board %s with you." : "{user} vám nasdílel(a) tabuli %s.",
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.", "No data was provided to create an attachment." : "Nebyla poskytnuta žádná data pro vytvoření přílohy.",
"Finished" : "Dokončeno", "Finished" : "Dokončeno",
"To review" : "K revizi", "To review" : "K revizi",
"Action needed" : "Nutná akce", "Action needed" : "Nutná akce",
"Later" : "Později", "Later" : "Později",
"copy" : "kopie",
"To do" : "Udělat", "To do" : "Udělat",
"Doing" : "Provádí se", "Doing" : "Provádí se",
"Done" : "Hotovo", "Done" : "Hotovo",
@@ -95,7 +88,7 @@ OC.L10N.register(
"Example Task 2" : "Druhý úkol pro ukázku", "Example Task 2" : "Druhý úkol pro ukázku",
"Example Task 1" : "První úkol pro ukázku", "Example Task 1" : "První úkol pro ukázku",
"The file was uploaded" : "Soubor byl nahrán", "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 upload_max_filesize directive in php.ini" : "Velikost nahrávaného souboru překračuje limit nastavení direktivou 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 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", "The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
"No file was uploaded" : "Nebyl nahrán žádný soubor", "No file was uploaded" : "Nebyl nahrán žádný soubor",
@@ -103,97 +96,82 @@ OC.L10N.register(
"Could not write file to disk" : "Soubor se nedaří se zapsat na úložiště", "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.", "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", "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.", "Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu",
"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", "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 je nástroj cí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",
"Select board" : "Vybrat nástěnku", "Create new board" : "Vytvořit novou tabuli",
"Add a new stack" : "Přidat nový zásobník", "new board" : "nová tabule",
"Submit" : "Odeslat", "Select the board to link to a project" : "Vyberte tabuli kterou propojit s projektem",
"Select board" : "Vybrat tabuli",
"Select the card to link to a project" : "Vyberte kartu kterou propojit s projektem",
"Select a board" : "Vybrat tabuli",
"Select a card" : "Vybrat tabuli",
"Link to card" : "Propojit s kartou",
"Cancel" : "Storno",
"Add new list" : "Přidat nový seznam",
"List name" : "Název seznamu",
"Show archived cards" : "Zobrazit archivované karty", "Show archived cards" : "Zobrazit archivované karty",
"Hide archived cards" : "Skrýt archivované karty", "Hide archived cards" : "Skrýt archivované karty",
"Toggle compact mode" : "Vyp/zap. kompaktní režim", "Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Show board details" : "Zobrazit podrobnosti o desce", "Loading board" : "Načítání tabule",
"All Boards" : "Všechny desky", "Board not found" : "Tabule nenalezena",
"Archived boards" : "Archivované desky", "Tags" : "Štítky",
"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", "Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení", "Deleted stacks" : "Smazané sloupce",
"Group" : "Skupina", "Undo" : "Vrátit zpět",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Edit" : "Upravit",
"Share" : "Sdílet",
"Manage" : "Spravovat",
"Discard share" : "Zrušit sdílení",
"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", "Deleted cards" : "Smazané karty",
"Status" : "Stav", "Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"No archived boards to display" : "Žádné archivované nástěnky k zobrazení", "Board owner" : "Vlastník tabule",
"No shared boards to display" : "Žádné sdílené nástěnky k zobrazení", "(Group)" : "(Skupina)",
"Title" : "Název", "(Circle)" : "(Okruh)",
"Members" : "Členové", "Can edit" : "Může upravovat",
"More actions" : "Více akcí", "Can share" : "Může sdílet",
"Edit board" : "Upravit desku", "Can manage" : "Může spravovat",
"Archive board" : "Archivovaná deska", "Delete" : "Smazat",
"Unarchive board" : "Odarchivovat desku", "Add a new stack" : "Přidat nový sloupec",
"Delete board" : "Smazat desku", "Delete list" : "Smazat seznam",
"Update board" : "Aktualizovat desku", "Add card" : "Přidat kartu",
"Reset board" : "Resetovat nástěnku", "Add a new card" : "Přidat novou kartu",
"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.", "Edit" : "Upravit",
"Create new board" : "Vytvořit novou desku", "Add a new label" : "Přidat nový popisek",
"New board title" : "Nadpis nové desky", "title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
"Create board" : "Vytvořit nástěnku", "Load More" : "Načíst více",
"Select an attachment" : "Vybrat přílohu", "Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Cancel upload" : "Zrušit nahrávání", "Assign to users" : "Přiřadit k uživatelům",
"by" : "od", "Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"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",
"Add a tag" : "Přidat štítek",
"Select tags" : "Výběr štítků",
"Assign users" : "Přiřadit uživatele",
"Choose a user to assign" : "Zvolte uživatele kterého přiřadit",
"Assign this card to a user" : "Přiřadit kartu uživateli",
"Due date" : "Termín", "Due date" : "Termín",
"Click to set" : "Klikněte pro výběr", "Set a due date" : "Vybrat termín",
"Remove due date" : "Odstranit termín", "Remove due date" : "Odstranit termín",
"Description" : "Popis", "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í", "Formatting help" : "Nápověda k formátování",
"Attachments" : "Přílohy",
"Comments" : "Komentáře",
"Modified" : "Změněno",
"Created" : "Vytvořeno",
"Upload attachment" : "Nahrát přílohu", "Upload attachment" : "Nahrát přílohu",
"Add a card description…" : "Přidat popis karty…", "New comment" : "Nový komentář",
"Shared boards" : "Sdílené desky", "Save" : "Uložit",
"Move board to archive" : "Přesunout desku do archivu", "No users found" : "Nenalezení žádní uživatelé",
"Create a new board" : "Vytvořit novou desku", "No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
"Update" : "Aktualizovat",
"Assign to me" : "Přiřadit mě",
"Delete card" : "Smazat kartu",
"Move card" : "Přesunout kartu",
"Card details" : "Podrobnosti o kartě",
"Select a stack" : "Vybrat sloupec",
"All boards" : "Všechny tabule",
"Archived boards" : "Archivované tabule",
"Shared boards" : "Sdílené tabule",
"Settings" : "Nastavení", "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í nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",
"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." "New board title" : "Název nové tabule",
"Edit board" : "Upravit tabuli",
"An error occurred" : "Došlo k chybě",
"Clone board" : "Klonovat tabuli",
"Archive board" : "Archivovat tabuli",
"Unarchive board" : "Vrátit tabuli zpět z archivu",
"Delete board" : "Smazat tabuli",
"Board details" : "Podrobnosti o desce",
"Link to a board" : "Propojit s tabulí",
"Link to a card" : "Propojit s kartou"
}, },
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+129 -151
View File
@@ -1,91 +1,84 @@
{ "translations": { { "translations": {
"Please provide a content for your comment." : "Zadejte obsah svého komentáře.", "You have created a new board {board}" : "Vytvořili jste tabuli {board}",
"Posting the comment failed." : "Odeslání komentáře se nezdařilo.", "{user} has created a new board {board}" : "{user} vytvořil(a) novou tabuli {board}",
"The comment has been deleted" : "Komentář byl smazán", "You have deleted the board {board}" : "Smazali jste tabuli {board}",
"The associated stack is deleted as well, it will be restored as well." : "Související stack je také smazaný a bude také obnoven.", "{user} has deleted the board {board}" : "{user} smazal(a) tabuli {board}",
"Restore associated stack" : "Obnovit související stack", "You have restored the board {board}" : "Obnovili jste tabuli {board}",
"Remove user from card" : "Odebrat uživatele z karty", "{user} has restored the board {board}" : "{user} obnovil(a) tabuli {board}",
"Hours" : "Hodiny", "You have shared the board {board} with {acl}" : "Nasdíleli jste tabuli {board} s {acl}",
"Minutes" : "Minuty", "{user} has shared the board {board} with {acl}" : "{user} nasdílel(a) tabuli {board} s {acl}",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost", "You have removed {acl} from the board {board}" : "Odebrali jste {acl} z tabule {board}",
"File already exists" : "Soubor už existuje", "{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z tabule {board}",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}", "You have renamed the board {before} to {board}" : "Přejmenovali jste tabuli {before} na {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}", "{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) tabuli {before} na {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}", "You have archived the board {board}" : "Zaarchivovali jste tabuli {board}",
"{user} has deleted the board {board}" : "{user} smazal(a) nástěnku {board}", "{user} has archived the board {before}" : "{user} zaarchivoval(a) tabuli {before}",
"You have restored the board {board}" : "Obnovili jste nástěnku {board}", "You have unarchived the board {board}" : "Vrátili jste zpět z archivace tabuli {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}", "{user} has unarchived the board {before}" : "{user} vrátil(a) tabuli {before} zpět z archivace",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}", "You have created a new stack {stack} on board {board}" : "Vytvořili jste nový sloupec {stack} na tabuli {board}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}", "{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový sloupec {stack} na tabuli {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}", "You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste sloupec {before} na {stack} na tabuli {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}", "{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) sloupec {before} na {stack} na tabuli {board}",
"{user} has renamed the board {before} to {board}" : "{user} přejmenoval(a) desku {before} na {board}", "You have deleted stack {stack} on board {board}" : "Smazali jste sloupec {stack} na tabuli {board}",
"You have archived the board {board}" : "Zaarchivovali jste nástěnku {board}", "{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) sloupec {stack} na tabuli {board}",
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}", "You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} ve sloupci {stack} na tabuli {board}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}", "{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} ve sloupci {stack} na tabuli {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}", "You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} ve sloupci {stack} na tabuli {board}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}", "{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} ve sloupci {board} na tabuli {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}", "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}", "{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}", "You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} ve sloupci {stack} na tabuli {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}", "{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} ve sloupci {stack} na tabuli {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}", "You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} ve sloupci {stack} na tabuli {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}", "{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} ve sloupci {stack} na tabuli {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}", "You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} ve sloupci {stack} na tabuli {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) 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} ve sloupci {stack} na tabuli {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}", "You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} ve sloupci {stack} na tabuli {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}", "{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} ve sloupci {stack} na tabuli {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}", "You have removed the due date of card {card}" : "Odebrali jste termín u karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}", "{user} has removed the due date of card {card}" : "{user} odebral(a) termín u karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}", "You have set the due date of card {card} to {after}" : "Nastavili jste termín u karty {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}", "{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín u 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}", "You have updated the due date of card {card} to {after}" : "Změnili jste termín u karty {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}", "{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval(a) termín u 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}", "You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} ve sloupci {stack} na tabuli {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}", "{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} ve sloupci {stack} na tabuli {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}", "You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} ve sloupci {stack} na tabuli {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}", "{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} ve sloupci {stack} na tabuli {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}", "You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na tabuli {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {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 tabuli {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}", "You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na tabuli {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}", "{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na tabuli {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}", "You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} ze sloupce {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}", "{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} ze sloupce {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}", "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}", "{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}", "You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} u karty {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}", "{user} has updated the attachment {attachment} on card {card}" : "{user} aktualizoval(a) přílohu {attachment} u karty {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {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}", "{user} has deleted the attachment {attachment} from 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}", "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}", "{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}", "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}", "{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", "A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis karty</strong> v aplikaci Deck byl změněn",
"Deck" : "Balík", "Deck" : "Deck",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>", "Changes in the <strong>Deck app</strong>" : "Změny v <strong>aplikaci Deck</strong>",
"A <strong>comment</strong> was created on a card" : "Na kartě byl vytvořen <strong>komentář</strong>",
"Personal" : "Osobní", "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.", "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“.", "{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í.", "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“.", "%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“.", "{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.", "The board \"%s\" has been shared with you by %s." : "Uživatel %s vám nasdílel(a) tabuli „%s.",
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.", "{user} has shared the board %s with you." : "{user} vám nasdílel(a) tabuli %s.",
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.", "No data was provided to create an attachment." : "Nebyla poskytnuta žádná data pro vytvoření přílohy.",
"Finished" : "Dokončeno", "Finished" : "Dokončeno",
"To review" : "K revizi", "To review" : "K revizi",
"Action needed" : "Nutná akce", "Action needed" : "Nutná akce",
"Later" : "Později", "Later" : "Později",
"copy" : "kopie",
"To do" : "Udělat", "To do" : "Udělat",
"Doing" : "Provádí se", "Doing" : "Provádí se",
"Done" : "Hotovo", "Done" : "Hotovo",
@@ -93,7 +86,7 @@
"Example Task 2" : "Druhý úkol pro ukázku", "Example Task 2" : "Druhý úkol pro ukázku",
"Example Task 1" : "První úkol pro ukázku", "Example Task 1" : "První úkol pro ukázku",
"The file was uploaded" : "Soubor byl nahrán", "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 upload_max_filesize directive in php.ini" : "Velikost nahrávaného souboru překračuje limit nastavení direktivou 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 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", "The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
"No file was uploaded" : "Nebyl nahrán žádný soubor", "No file was uploaded" : "Nebyl nahrán žádný soubor",
@@ -101,97 +94,82 @@
"Could not write file to disk" : "Soubor se nedaří se zapsat na úložiště", "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.", "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", "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.", "Personal planning and team project organization" : "Osobní plánování a organizování týmového projektu",
"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", "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 je nástroj cí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",
"Select board" : "Vybrat nástěnku", "Create new board" : "Vytvořit novou tabuli",
"Add a new stack" : "Přidat nový zásobník", "new board" : "nová tabule",
"Submit" : "Odeslat", "Select the board to link to a project" : "Vyberte tabuli kterou propojit s projektem",
"Select board" : "Vybrat tabuli",
"Select the card to link to a project" : "Vyberte kartu kterou propojit s projektem",
"Select a board" : "Vybrat tabuli",
"Select a card" : "Vybrat tabuli",
"Link to card" : "Propojit s kartou",
"Cancel" : "Storno",
"Add new list" : "Přidat nový seznam",
"List name" : "Název seznamu",
"Show archived cards" : "Zobrazit archivované karty", "Show archived cards" : "Zobrazit archivované karty",
"Hide archived cards" : "Skrýt archivované karty", "Hide archived cards" : "Skrýt archivované karty",
"Toggle compact mode" : "Vyp/zap. kompaktní režim", "Toggle compact mode" : "Vyp/zap. kompaktní režim",
"Show board details" : "Zobrazit podrobnosti o desce", "Loading board" : "Načítání tabule",
"All Boards" : "Všechny desky", "Board not found" : "Tabule nenalezena",
"Archived boards" : "Archivované desky", "Tags" : "Štítky",
"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", "Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení", "Deleted stacks" : "Smazané sloupce",
"Group" : "Skupina", "Undo" : "Vrátit zpět",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Edit" : "Upravit",
"Share" : "Sdílet",
"Manage" : "Spravovat",
"Discard share" : "Zrušit sdílení",
"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", "Deleted cards" : "Smazané karty",
"Status" : "Stav", "Share board with a user, group or circle …" : "Sdílet tabuli s uživatelem, skupinou nebo okruhem…",
"No archived boards to display" : "Žádné archivované nástěnky k zobrazení", "Board owner" : "Vlastník tabule",
"No shared boards to display" : "Žádné sdílené nástěnky k zobrazení", "(Group)" : "(Skupina)",
"Title" : "Název", "(Circle)" : "(Okruh)",
"Members" : "Členové", "Can edit" : "Může upravovat",
"More actions" : "Více akcí", "Can share" : "Může sdílet",
"Edit board" : "Upravit desku", "Can manage" : "Může spravovat",
"Archive board" : "Archivovaná deska", "Delete" : "Smazat",
"Unarchive board" : "Odarchivovat desku", "Add a new stack" : "Přidat nový sloupec",
"Delete board" : "Smazat desku", "Delete list" : "Smazat seznam",
"Update board" : "Aktualizovat desku", "Add card" : "Přidat kartu",
"Reset board" : "Resetovat nástěnku", "Add a new card" : "Přidat novou kartu",
"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.", "Edit" : "Upravit",
"Create new board" : "Vytvořit novou desku", "Add a new label" : "Přidat nový popisek",
"New board title" : "Nadpis nové desky", "title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
"Create board" : "Vytvořit nástěnku", "Load More" : "Načíst více",
"Select an attachment" : "Vybrat přílohu", "Assign a tag to this card…" : "Přiřadit této kartě štítek…",
"Cancel upload" : "Zrušit nahrávání", "Assign to users" : "Přiřadit k uživatelům",
"by" : "od", "Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
"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",
"Add a tag" : "Přidat štítek",
"Select tags" : "Výběr štítků",
"Assign users" : "Přiřadit uživatele",
"Choose a user to assign" : "Zvolte uživatele kterého přiřadit",
"Assign this card to a user" : "Přiřadit kartu uživateli",
"Due date" : "Termín", "Due date" : "Termín",
"Click to set" : "Klikněte pro výběr", "Set a due date" : "Vybrat termín",
"Remove due date" : "Odstranit termín", "Remove due date" : "Odstranit termín",
"Description" : "Popis", "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í", "Formatting help" : "Nápověda k formátování",
"Attachments" : "Přílohy",
"Comments" : "Komentáře",
"Modified" : "Změněno",
"Created" : "Vytvořeno",
"Upload attachment" : "Nahrát přílohu", "Upload attachment" : "Nahrát přílohu",
"Add a card description…" : "Přidat popis karty…", "New comment" : "Nový komentář",
"Shared boards" : "Sdílené desky", "Save" : "Uložit",
"Move board to archive" : "Přesunout desku do archivu", "No users found" : "Nenalezení žádní uživatelé",
"Create a new board" : "Vytvořit novou desku", "No comments yet. Begin the discussion!" : "Zatím bez komentářů. Zahajte diskuzi!",
"Update" : "Aktualizovat",
"Assign to me" : "Přiřadit mě",
"Delete card" : "Smazat kartu",
"Move card" : "Přesunout kartu",
"Card details" : "Podrobnosti o kartě",
"Select a stack" : "Vybrat sloupec",
"All boards" : "Všechny tabule",
"Archived boards" : "Archivované tabule",
"Shared boards" : "Sdílené tabule",
"Settings" : "Nastavení", "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í nastavené pro Deck brání uživatelům, kteří nejsou součástí těchto skupin, ve vytváření vlastních tabulí. Nicméně i tak ale pořád budou moci pracovat na tabulích, které jsou jim nasdíleny.",
"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." "New board title" : "Název nové tabule",
"Edit board" : "Upravit tabuli",
"An error occurred" : "Došlo k chybě",
"Clone board" : "Klonovat tabuli",
"Archive board" : "Archivovat tabuli",
"Unarchive board" : "Vrátit tabuli zpět z archivu",
"Delete board" : "Smazat tabuli",
"Board details" : "Podrobnosti o desce",
"Link to a board" : "Propojit s tabulí",
"Link to a card" : "Propojit s kartou"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} }

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