Compare commits

...

839 Commits

Author SHA1 Message Date
Jakob
4d0741e691 started listview
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-10-31 09:02:38 +01:00
dependabot-preview[bot]
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]
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
Julius Härtl
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ärtl
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ärtl
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
Julius Härtl
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
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
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]
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]
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]
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]
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
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]
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]
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ärtl
5772a7025d move card to another board (#1242)
move card to another board
2019-10-14 08:49:20 +02:00
dependabot-preview[bot]
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]
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]
335d9a3a42 Merge pull request #1292 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.1 2019-10-14 06:46:09 +00:00
dependabot-preview[bot]
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]
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]
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ärtl
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
dependabot-preview[bot]
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]
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
Julius Härtl
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]
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]
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
dependabot-preview[bot]
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]
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]
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]
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
dependabot-preview[bot]
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
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
Julius Härtl
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]
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
Julius Härtl
b577a79915 Add circles and groups to cards (#1243)
Add circles and groups to cards
2019-09-13 22:48:26 +02:00
Julius Härtl
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]
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]
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]
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ärtl
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ärtl
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ärtl
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ärtl
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]
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]
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ärtl
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]
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]
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]
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]
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
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ärtl
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ärtl
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ä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
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
Julius Härtl
91f9b8ee72 Merge pull request #1213 from nextcloud/highlightActiveCard
active is highlighted
2019-09-02 16:21:37 +02:00
dependabot-preview[bot]
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]
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
Julius Härtl
625ebdc4c0 label multi shows color, sharing shows avatars (#1210)
label multi shows color, sharing shows avatars
2019-08-30 15:55:31 +02:00
Jakob
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
Julius Härtl
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]
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
Jakob
d08bd23578 active is highlighted
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-29 10:53:34 +02:00
dependabot-preview[bot]
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]
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ärtl
fecd59b511 Required (#1209)
Required
2019-08-29 10:33:51 +02: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]
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]
6a43db39a3 Merge pull request #1206 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.39.3 2019-08-29 05:24:21 +00:00
dependabot-preview[bot]
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]
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]
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]
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
Julius Härtl
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
Jakob
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
Jakob
9f62a24450 loading icon, parse msg in BoardSidebar
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:11:59 +02:00
Jakob
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
Jakob
bc7c5ea4b7 board timeline
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 12:11:59 +02:00
Julius Härtl
c3d925a172 Fix desc field (#1192)
Fix desc field
2019-08-27 10:08:26 +02:00
Jakob
1b2fed9e86 improve desc in editor
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-27 10:07:43 +02:00
dependabot-preview[bot]
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]
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
dependabot-preview[bot]
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]
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]
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]
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
Jakob
bd5f2c13b7 members are shown now
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-23 11:09:22 +02:00
Jakob
bdb9442671 sharing fix and updatedutime
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-22 09:55:23 +02:00
dependabot-preview[bot]
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ärtl
a0af85abe4 Merge branch 'vue' into dependabot/npm_and_yarn/vue/vue-easymde-1.0.0 2019-08-21 10:00:02 +02:00
Jakob
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ärtl
84a9e72463 Update vue branch to master (#1183)
Update vue branch to master
2019-08-20 11:58:38 +02:00
Julius Härtl
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ärtl
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]
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ärtl
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]
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ärtl
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ärtl
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]
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]
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]
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]
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]
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]
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ärtl
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ärtl
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ärtl
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ärtl
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
Jakob
097bb21b45 small fixes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:58 +02:00
Jakob
39ae9332e2 2 small fixes
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:58 +02:00
Jakob
cc92937c6b last stand
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
Jakob
ac9fef5f05 last stand
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
Jakob
4e67c3172b new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:57 +02:00
Jakob
4a45687a28 new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
Jakob
38dc7945dd new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
Jakob
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
Jakob
10b7d8b335 deleted items
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:56 +02:00
Jakob
fcabdbdc24 added new functions
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:55 +02:00
Jakob
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
Jakob
770142232c sharing impl
Signed-off-by: Jakob <jakob.roehrl@web.de>
2019-08-11 12:02:55 +02:00
Jakob Röhrl
501545f2e5 some overall changes
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-08-11 12:02:54 +02:00
Jakob Röhrl
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öhrl
b8cb364f00 sharing extensions
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-08-11 12:02:54 +02:00
Julius Härtl
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]
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ärtl
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ärtl
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ärtl
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ärtl
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]
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]
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]
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]
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
Nextcloud bot
7d52891eb8 [tx-robot] updated from transifex 2019-08-08 02:23:42 +00:00
Nextcloud bot
a36bfda277 [tx-robot] updated from transifex 2019-08-07 02:23:17 +00:00
Nextcloud bot
427e954764 [tx-robot] updated from transifex 2019-08-06 02:22:58 +00:00
Julius Härtl
5f6eb7848f Bump uglifyjs-webpack-plugin from 2.1.3 to 2.2.0 in /js (#1161)
Bump uglifyjs-webpack-plugin from 2.1.3 to 2.2.0 in /js
2019-08-05 08:04:02 +02:00
Julius Härtl
dfdd3222ea Bump webpack from 4.38.0 to 4.39.1 in /js (#1162)
Bump webpack from 4.38.0 to 4.39.1 in /js
2019-08-05 08:03:28 +02:00
Nextcloud bot
8845ba1033 [tx-robot] updated from transifex 2019-08-05 02:22:48 +00:00
dependabot-preview[bot]
1b82ca5d17 Bump webpack from 4.38.0 to 4.39.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.38.0 to 4.39.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.38.0...v4.39.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-04 01:13:19 +00:00
dependabot-preview[bot]
cefec146a2 Bump uglifyjs-webpack-plugin from 2.1.3 to 2.2.0 in /js
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.1.3...v2.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-04 01:12:41 +00:00
Nextcloud bot
6db4cf44bc [tx-robot] updated from transifex 2019-08-02 02:23:17 +00:00
Julius Härtl
eff48652c9 Fix npm audit issues
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-08-01 16:12:49 +02:00
Julius Härtl
28bdb2ea43 Bump nextcloud-vue-collections from 0.5.4 to 0.5.6 in /js (#1155)
Bump nextcloud-vue-collections from 0.5.4 to 0.5.6 in /js
2019-08-01 15:59:39 +02:00
Nextcloud bot
7b2de87b05 [tx-robot] updated from transifex 2019-07-31 02:25:10 +00:00
dependabot-preview[bot]
1fcf3f95ac Bump nextcloud-vue-collections from 0.5.4 to 0.5.6 in /js
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.5.4 to 0.5.6.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.5.4...v0.5.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-30 07:27:52 +00:00
Julius Härtl
2f893eb6ad Bump @babel/core from 7.4.5 to 7.5.5 in /js (#1149)
Bump @babel/core from 7.4.5 to 7.5.5 in /js
2019-07-28 13:11:46 +02:00
Julius Härtl
65272d76e1 Bump @babel/preset-env from 7.4.5 to 7.5.5 in /js (#1145)
Bump @babel/preset-env from 7.4.5 to 7.5.5 in /js
2019-07-28 13:11:34 +02:00
Julius Härtl
96bd7194af Adjust notifier to Nextcloud 17 (#1135)
Adjust notifier to Nextcloud 17
2019-07-28 13:10:48 +02:00
Joas Schilling
f064fe55e2 Adjust notifier to Nextcloud 17
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-07-28 13:01:57 +02:00
Julius Härtl
799497e62f Bump phpunit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-07-28 12:59:14 +02:00
Julius Härtl
a87277735d Bump webpack from 4.37.0 to 4.38.0 in /js (#1154)
Bump webpack from 4.37.0 to 4.38.0 in /js
2019-07-28 12:49:51 +02:00
Nextcloud bot
9d5c67cbef [tx-robot] updated from transifex 2019-07-28 02:24:28 +00:00
dependabot-preview[bot]
c031e1b9c2 Bump webpack from 4.37.0 to 4.38.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.37.0 to 4.38.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.37.0...v4.38.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-28 01:13:24 +00:00
Nextcloud bot
54b4b7c430 [tx-robot] updated from transifex 2019-07-25 02:23:27 +00:00
dependabot-preview[bot]
a953822671 Bump @babel/preset-env from 7.4.5 to 7.5.5 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.5 to 7.5.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.4.5...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 13:27:18 +00:00
Julius Härtl
ea4f4e8335 Bump vue-loader from 15.7.0 to 15.7.1 in /js (#1144)
Bump vue-loader from 15.7.0 to 15.7.1 in /js
2019-07-24 15:25:38 +02:00
Julius Härtl
0bf11c1976 Merge branch 'master' into dependabot/npm_and_yarn/js/vue-loader-15.7.1 2019-07-24 15:25:28 +02:00
Julius Härtl
98bd957dd6 Bump nextcloud-vue from 0.11.4 to 0.11.5 in /js (#1127)
Bump nextcloud-vue from 0.11.4 to 0.11.5 in /js
2019-07-24 15:25:20 +02:00
Julius Härtl
6089d190f4 Adjust travis config as well
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-07-24 15:24:47 +02:00
Julius Härtl
c51509faeb Adjust master test branches
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-07-24 15:20:02 +02:00
Julius Härtl
c817ff2245 Make 0.7 a 17 only release
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-07-24 15:17:48 +02:00
dependabot-preview[bot]
a9dd5b8ebe Bump nextcloud-vue from 0.11.4 to 0.11.5 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.11.4 to 0.11.5.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.4...v0.11.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 07:16:51 +00:00
dependabot-preview[bot]
3105ec62ec Bump vue-loader from 15.7.0 to 15.7.1 in /js
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.7.0 to 15.7.1.
- [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.0...v15.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 07:16:33 +00:00
Julius Härtl
012454abbc Bump webpack from 4.35.3 to 4.37.0 in /js (#1152)
Bump webpack from 4.35.3 to 4.37.0 in /js
2019-07-24 09:14:47 +02:00
dependabot-preview[bot]
179f75052c Bump webpack from 4.35.3 to 4.37.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.3 to 4.37.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.3...v4.37.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 06:55:47 +00:00
Julius Härtl
e49c905d6e Bump mini-css-extract-plugin from 0.7.0 to 0.8.0 in /js (#1142)
Bump mini-css-extract-plugin from 0.7.0 to 0.8.0 in /js
2019-07-24 08:54:26 +02:00
Julius Härtl
a25f4ac6c1 Bump url-loader from 2.0.1 to 2.1.0 in /js (#1143)
Bump url-loader from 2.0.1 to 2.1.0 in /js
2019-07-24 08:53:58 +02:00
Julius Härtl
37a9655f90 Bump webpack-cli from 3.3.5 to 3.3.6 in /js (#1150)
Bump webpack-cli from 3.3.5 to 3.3.6 in /js
2019-07-24 08:53:28 +02:00
Julius Härtl
717955a233 Bump css-loader from 3.0.0 to 3.1.0 in /js (#1148)
Bump css-loader from 3.0.0 to 3.1.0 in /js
2019-07-24 08:53:10 +02:00
Julius Härtl
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
Nextcloud bot
36940d3c4b [tx-robot] updated from transifex 2019-07-21 02:24:41 +00:00
dependabot-preview[bot]
804e662ec4 Bump webpack-cli from 3.3.5 to 3.3.6 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.5 to 3.3.6.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/v3.3.6/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.5...v3.3.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:16:20 +00:00
dependabot-preview[bot]
6ef071cee9 Bump @babel/core from 7.4.5 to 7.5.5 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.5 to 7.5.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.4.5...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:15:51 +00:00
dependabot-preview[bot]
2bf98e57b1 Bump css-loader from 3.0.0 to 3.1.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:15:23 +00:00
dependabot-preview[bot]
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
dependabot-preview[bot]
76943246c8 Bump url-loader from 2.0.1 to 2.1.0 in /js
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.0.1 to 2.1.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.0.1...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:13:17 +00:00
dependabot-preview[bot]
ecdae3a558 Bump mini-css-extract-plugin from 0.7.0 to 0.8.0 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.7.0 to 0.8.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.7.0...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-21 01:12:48 +00:00
Nextcloud bot
836d15486b [tx-robot] updated from transifex 2019-07-17 02:24:09 +00:00
Julius Härtl
1281bde407 Bump nextcloud-vue-collections from 0.5.2 to 0.5.4 in /js (#1128)
Bump nextcloud-vue-collections from 0.5.2 to 0.5.4 in /js
2019-07-15 18:42:16 +02:00
Julius Härtl
a250b0ec7a Bump webpack from 4.35.2 to 4.35.3 in /js (#1126)
Bump webpack from 4.35.2 to 4.35.3 in /js
2019-07-15 18:42:08 +02:00
Julius Härtl
b09c622b7b Bump markdown-it from 8.4.2 to 9.0.1 in /js (#1130)
Bump markdown-it from 8.4.2 to 9.0.1 in /js
2019-07-15 18:41:38 +02:00
Julius Härtl
99153659ae Bump karma from 4.1.0 to 4.2.0 in /js (#1132)
Bump karma from 4.1.0 to 4.2.0 in /js
2019-07-15 18:40:56 +02:00
dependabot-preview[bot]
c3661e6b25 Bump karma from 4.1.0 to 4.2.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 4.1.0 to 4.2.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.1.0...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-14 01:16:41 +00:00
dependabot-preview[bot]
b17b2bec39 Bump markdown-it from 8.4.2 to 9.0.1 in /js
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 8.4.2 to 9.0.1.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/8.4.2...9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-14 01:15:39 +00:00
dependabot-preview[bot]
8e524e3ccb Bump nextcloud-vue-collections from 0.5.2 to 0.5.4 in /js
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.5.2 to 0.5.4.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.5.2...v0.5.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-14 01:14:48 +00:00
dependabot-preview[bot]
5b7cd146d0 Bump webpack from 4.35.2 to 4.35.3 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.2 to 4.35.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.2...v4.35.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-14 01:13:27 +00:00
Nextcloud bot
e18e8fb032 [tx-robot] updated from transifex 2019-07-13 02:23:06 +00:00
Julius Härtl
5af9b3937a Bump lodash.merge from 4.6.1 to 4.6.2 in /js (#1124)
Bump lodash.merge from 4.6.1 to 4.6.2 in /js
2019-07-11 10:34:37 +02:00
Julius Härtl
0f9972cff4 Bump webpack from 4.35.0 to 4.35.2 in /js (#1118)
Bump webpack from 4.35.0 to 4.35.2 in /js
2019-07-11 08:40:49 +02:00
dependabot[bot]
ac852cd4e7 Bump lodash.merge from 4.6.1 to 4.6.2 in /js
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-07-11 06:35:25 +00:00
Julius Härtl
8ff832a9f9 [Security] Bump lodash from 4.17.11 to 4.17.14 in /js (#1123)
[Security] Bump lodash from 4.17.11 to 4.17.14 in /js
2019-07-11 08:34:49 +02:00
Julius Härtl
45d8e224e4 [Security] Bump lodash.merge from 4.6.1 to 4.6.2 in /js (#1122)
[Security] Bump lodash.merge from 4.6.1 to 4.6.2 in /js
2019-07-11 08:34:37 +02:00
dependabot-preview[bot]
5238e475a7 [Security] Bump lodash from 4.17.11 to 4.17.14 in /js
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-11 00:39:02 +00:00
dependabot-preview[bot]
5d8e52b106 [Security] Bump lodash.merge from 4.6.1 to 4.6.2 in /js
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-10 21:40:52 +00:00
dependabot-preview[bot]
436626684b Bump webpack from 4.35.0 to 4.35.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.35.0 to 4.35.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.35.0...v4.35.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-07 01:13:03 +00:00
Nextcloud bot
d6e218064f [tx-robot] updated from transifex 2019-07-06 02:21:13 +00:00
Julius Härtl
c5cfef3ddb Fix proper activity object data (#1117)
Fix proper activity object data
2019-07-05 15:46:41 +02:00
Nextcloud bot
78233b2d62 [tx-robot] updated from transifex 2019-07-05 02:21:49 +00:00
Julius Härtl
f3b5fd4030 Do not overwrite activity object with stripped down card data
Fix check for after data

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

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-07-04 21:34:03 +02:00
Nextcloud bot
5d0180956a [tx-robot] updated from transifex 2019-07-04 02:21:28 +00:00
Nextcloud bot
75c7502186 [tx-robot] updated from transifex 2019-07-03 02:21:27 +00:00
Nextcloud bot
3733b13651 [tx-robot] updated from transifex 2019-07-02 02:21:25 +00:00
Nextcloud bot
0543c1d775 [tx-robot] updated from transifex 2019-07-01 02:21:07 +00:00
Julius Härtl
abb8ae5cff Bump version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 16:46:58 +02:00
Julius Härtl
40fd0c1401 Add polyfill and fix activity filtering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 16:39:28 +02:00
Julius Härtl
fa0a3f099f Bump version to 0.6.3
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 13:49:36 +02:00
Julius Härtl
22087fddc3 Fix ACL and archived REST endpoints (#1111)
Fix ACL and archived REST endpoints
2019-06-30 13:48:02 +02:00
Julius Härtl
db59150d74 Fix comments if activity stream is disabled (#1110)
Fix comments if activity stream is disabled
2019-06-30 13:44:55 +02:00
Julius Härtl
8b8db54309 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 13:42:26 +02:00
Julius Härtl
5b019b1c04 Remove unneeded data from card details
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 13:38:44 +02:00
Julius Härtl
1811dc73b7 Fix ACL and archived REST endpoints
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 13:27:22 +02:00
Julius Härtl
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ärtl
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
Julius Härtl
29a555f475 Bump url-loader from 2.0.0 to 2.0.1 in /js (#1108)
Bump url-loader from 2.0.0 to 2.0.1 in /js
2019-06-30 13:21:31 +02:00
Julius Härtl
2d757e9a95 Bump webpack-cli from 3.3.4 to 3.3.5 in /js (#1109)
Bump webpack-cli from 3.3.4 to 3.3.5 in /js
2019-06-30 13:21:24 +02:00
Julius Härtl
691988c885 Fix sharee parameter in share activity (fixes #869)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 12:55:09 +02:00
Julius Härtl
2713434084 Remove unavailable parameter
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 12:48:26 +02:00
Julius Härtl
f18accd9c4 Fix comments if activity stream setting is disabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-30 12:42:49 +02:00
dependabot-preview[bot]
2d95d29c63 Bump webpack-cli from 3.3.4 to 3.3.5 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.4 to 3.3.5.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.4...v3.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-30 01:12:57 +00:00
dependabot-preview[bot]
58a5a73124 Bump url-loader from 2.0.0 to 2.0.1 in /js
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 2.0.0 to 2.0.1.
- [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.0.0...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-30 01:12:25 +00:00
Nextcloud bot
cc4439517d [tx-robot] updated from transifex 2019-06-25 02:21:59 +00:00
Nextcloud bot
f357d9ebd0 [tx-robot] updated from transifex 2019-06-24 02:22:05 +00:00
dependabot-preview[bot]
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ärtl
b4984d6e73 Bump webpack from 4.32.2 to 4.35.0 in /js (#1100)
Bump webpack from 4.32.2 to 4.35.0 in /js
2019-06-21 10:02:18 +02:00
dependabot-preview[bot]
db4b9a3d97 Bump webpack from 4.32.2 to 4.35.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.32.2 to 4.35.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.32.2...v4.35.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-21 07:27:04 +00:00
Julius Härtl
d9478518fe Bump nextcloud-vue-collections from 0.4.0 to 0.5.2 in /js (#1063)
Bump nextcloud-vue-collections from 0.4.0 to 0.5.2 in /js
2019-06-21 09:26:41 +02:00
Julius Härtl
dfd2e09136 Bump webpack-cli from 3.3.3 to 3.3.4 in /js (#1091)
Bump webpack-cli from 3.3.3 to 3.3.4 in /js
2019-06-21 09:25:16 +02:00
Julius Härtl
a5e23ead24 Bump css-loader from 2.1.1 to 3.0.0 in /js (#1092)
Bump css-loader from 2.1.1 to 3.0.0 in /js
2019-06-21 09:25:03 +02:00
Julius Härtl
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
Nextcloud bot
f3efc9d95a [tx-robot] updated from transifex 2019-06-21 02:21:07 +00:00
Nextcloud bot
53cf93cb8e [tx-robot] updated from transifex 2019-06-16 02:21:49 +00:00
Nextcloud bot
587483df19 [tx-robot] updated from transifex 2019-06-14 02:22:30 +00:00
dependabot-preview[bot]
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]
7e7dfa3b0b Bump css-loader from 2.1.1 to 3.0.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 2.1.1 to 3.0.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v2.1.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-13 21:10:34 +00:00
dependabot-preview[bot]
cdb41f4376 Bump webpack-cli from 3.3.3 to 3.3.4 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/3.3.3...v3.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-13 21:09:50 +00:00
Julius Härtl
ec2f9ad431 Bump webpack-cli from 3.3.2 to 3.3.3 in /js (#1083)
Bump webpack-cli from 3.3.2 to 3.3.3 in /js
2019-06-11 18:36:26 +02:00
dependabot-preview[bot]
319b13fbf9 Bump url-loader from 1.1.2 to 2.0.0 in /js (#1085)
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 1.1.2 to 2.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/v1.1.2...v2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-11 18:35:19 +02:00
dependabot-preview[bot]
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]
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
Nextcloud bot
e577fbca20 [tx-robot] updated from transifex 2019-06-11 02:12:44 +00:00
Nextcloud bot
5eadc789fe [tx-robot] updated from transifex 2019-06-10 02:13:03 +00:00
Nextcloud bot
86431ec3dc [tx-robot] updated from transifex 2019-06-09 02:12:51 +00:00
dependabot-preview[bot]
2eb39d43fc Bump webpack-cli from 3.3.2 to 3.3.3 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.2...3.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-09 01:13:08 +00:00
cloud2018
f645f73993 make dialog (attachment, file exists) translatable (#1079)
* make dialog (attachment, file exists) translatable

Dialog (attachment, file exists) translatable

Signed-off-by: Markus Eckstein eckstein-markus@gmx.de

* Commit suggestion

Signed-off-by: Markus Eckstein eckstein-markus@gmx.de

Co-Authored-By: Julius Härtl <jus@bitgrid.net>
2019-06-07 07:54:49 +02:00
Julius Härtl
e3201ee21a Bump mini-css-extract-plugin from 0.6.0 to 0.7.0 in /js (#1074)
Bump mini-css-extract-plugin from 0.6.0 to 0.7.0 in /js
2019-06-05 11:38:13 +02:00
dependabot-preview[bot]
37ee10121b Bump nextcloud-vue-collections from 0.4.0 to 0.5.2 in /js
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.4.0 to 0.5.2.
- [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-06-05 09:36:53 +00:00
Julius Härtl
aecd402628 Bump @babel/core from 7.4.4 to 7.4.5 in /js (#1066)
Bump @babel/core from 7.4.4 to 7.4.5 in /js
2019-06-05 11:36:15 +02:00
Julius Härtl
bf28b32684 Fix typo in API urls (#1050)
Fix typo in API urls
2019-06-05 11:35:38 +02:00
Julius Härtl
1accc9f11e Bump @babel/preset-env from 7.4.4 to 7.4.5 in /js (#1064)
Bump @babel/preset-env from 7.4.4 to 7.4.5 in /js
2019-06-05 11:35:24 +02:00
Julius Härtl
0297c6384c Merge branch 'master' into dependabot/npm_and_yarn/js/@babel/core-7.4.5 2019-06-05 11:35:09 +02:00
Julius Härtl
f86d060028 Bump webpack from 4.31.0 to 4.32.2 in /js (#1067)
Bump webpack from 4.31.0 to 4.32.2 in /js
2019-06-05 11:35:01 +02:00
Julius Härtl
fe59f0f976 Bump nextcloud-axios from 0.1.3 to 0.2.0 in /js (#1075)
Bump nextcloud-axios from 0.1.3 to 0.2.0 in /js
2019-06-05 11:34:27 +02:00
Julius Härtl
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]
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
dependabot-preview[bot]
7f22f82b63 Bump nextcloud-axios from 0.1.3 to 0.2.0 in /js
Bumps [nextcloud-axios](https://github.com/ChristophWurst/nextcloud-axios) from 0.1.3 to 0.2.0.
- [Release notes](https://github.com/ChristophWurst/nextcloud-axios/releases)
- [Commits](https://github.com/ChristophWurst/nextcloud-axios/compare/v0.1.3...v0.2.0)
2019-06-04 09:12:59 +00:00
Julius Härtl
78955c54ae Bump nextcloud-vue from 0.11.2 to 0.11.4 in /js (#1081)
Bump nextcloud-vue from 0.11.2 to 0.11.4 in /js
2019-06-04 11:08:01 +02:00
Julius Härtl
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
Julius Härtl
5aabac0554 [Security] Bump axios from 0.18.0 to 0.18.1 in /js (#1080)
[Security] Bump axios from 0.18.0 to 0.18.1 in /js
2019-06-04 11:06:42 +02:00
dependabot-preview[bot]
492afaa11e Bump nextcloud-vue from 0.11.2 to 0.11.4 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.11.2 to 0.11.4.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.2...v0.11.4)
2019-06-02 01:12:54 +00:00
dependabot-preview[bot]
17fb44f248 [Security] Bump axios from 0.18.0 to 0.18.1 in /js
Bumps [axios](https://github.com/axios/axios) from 0.18.0 to 0.18.1. **This update includes security fixes.**
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.18.1/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.18.0...v0.18.1)
2019-06-02 01:12:00 +00:00
Nextcloud bot
3e5bea372d [tx-robot] updated from transifex 2019-06-01 02:12:43 +00:00
dependabot-preview[bot]
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]
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]
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]
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
dependabot-preview[bot]
0262902164 Bump mini-css-extract-plugin from 0.6.0 to 0.7.0 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.6.0 to 0.7.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.6.0...v0.7.0)
2019-05-31 07:21:35 +00:00
dependabot-preview[bot]
31e2edabb8 Bump webpack from 4.31.0 to 4.32.2 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.31.0 to 4.32.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.31.0...v4.32.2)
2019-05-24 15:20:53 +00:00
dependabot-preview[bot]
ba55adde4f Bump @babel/core from 7.4.4 to 7.4.5 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.4 to 7.4.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.4.4...v7.4.5)
2019-05-24 15:20:21 +00:00
dependabot-preview[bot]
1c62be7b31 Bump @babel/preset-env from 7.4.4 to 7.4.5 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.4 to 7.4.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.4.4...v7.4.5)
2019-05-24 15:19:16 +00:00
Julius Härtl
8adad1457a Revert "Do not use getDisplayName for groups" (#1062)
Revert "Do not use getDisplayName for groups"
2019-05-23 21:32:53 +02:00
Arthur Schiwon
5423894175 Revert "Do not use getDisplayName for groups"
This reverts commit 12ebffb885.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-05-23 18:15:24 +02:00
Nextcloud bot
dfc8b15ab2 [tx-robot] updated from transifex 2019-05-23 02:21:22 +00:00
Julius Härtl
3950beaaad returns string on null (#1049)
returns string on null
2019-05-20 18:55:43 +02:00
Julius Härtl
b16cfbf662 Bump babel-loader from 8.0.5 to 8.0.6 in /js (#1055)
Bump babel-loader from 8.0.5 to 8.0.6 in /js
2019-05-20 18:44:10 +02:00
Julius Härtl
dd841b5e1a Bump uglifyjs-webpack-plugin from 2.1.2 to 2.1.3 in /js (#1053)
Bump uglifyjs-webpack-plugin from 2.1.2 to 2.1.3 in /js
2019-05-20 18:42:43 +02:00
Julius Härtl
ec9b1b992a Bump nextcloud-vue from 0.11.1 to 0.11.2 in /js (#1052)
Bump nextcloud-vue from 0.11.1 to 0.11.2 in /js
2019-05-20 18:42:13 +02:00
dependabot[bot]
8fd36933ce Bump babel-loader from 8.0.5 to 8.0.6 in /js
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.0.5...v8.0.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-18 19:53:12 +00:00
dependabot[bot]
caab88ed19 Bump uglifyjs-webpack-plugin from 2.1.2 to 2.1.3 in /js
Bumps [uglifyjs-webpack-plugin](https://github.com/webpack-contrib/uglifyjs-webpack-plugin) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/uglifyjs-webpack-plugin/compare/v2.1.2...v2.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-18 19:52:08 +00:00
dependabot[bot]
e2ad6739f1 Bump nextcloud-vue from 0.11.1 to 0.11.2 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.11.1 to 0.11.2.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.1...v0.11.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-18 19:51:35 +00:00
Nextcloud bot
fcd831a010 [tx-robot] updated from transifex 2019-05-18 02:20:38 +00:00
Julius Härtl
85ba0c524f Fix typo in API urls
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-17 12:28:26 +02:00
Maxence Lange
6de2614f05 returns string on null
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-05-16 08:50:16 -01:00
Julius Härtl
6782641c28 Bump version to 0.6.2 (#1042)
Bump version to 0.6.2
2019-05-15 13:19:31 +02:00
Julius Härtl
ffa9716722 Bump version to 0.6.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-15 13:10:52 +02:00
Julius Härtl
690db724b3 Merge pull request #1046 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.11.1
Bump nextcloud-vue from 0.11.0 to 0.11.1 in /js
2019-05-15 13:09:50 +02:00
Julius Härtl
ca66afd841 Expose app version through capabilities (#1047)
Expose app version through capabilities
2019-05-15 13:09:41 +02:00
Julius Härtl
4739681929 Expose app version through capabilities
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-14 11:56:29 +02:00
Julius Härtl
002f956861 Bump webpack from 4.30.0 to 4.31.0 in /js (#1045)
Bump webpack from 4.30.0 to 4.31.0 in /js
2019-05-13 13:34:24 +02:00
Julius Härtl
e567c91c25 Bump vuex from 3.1.0 to 3.1.1 in /js (#1044)
Bump vuex from 3.1.0 to 3.1.1 in /js
2019-05-13 13:34:15 +02:00
dependabot[bot]
fd586db444 Bump nextcloud-vue from 0.11.0 to 0.11.1 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.11.0...v0.11.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-12 01:13:57 +00:00
dependabot[bot]
9c157a7112 Bump webpack from 4.30.0 to 4.31.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.30.0 to 4.31.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.30.0...v4.31.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-12 01:13:28 +00:00
dependabot[bot]
68efe83fdf Bump vuex from 3.1.0 to 3.1.1 in /js
Bumps [vuex](https://github.com/vuejs/vuex) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Commits](https://github.com/vuejs/vuex/compare/v3.1.0...v3.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-12 01:12:53 +00:00
Julius Härtl
78780ff44b Merge pull request #1035 from nextcloud/bugfix/1027
Cast entity to array when logging
2019-05-11 09:49:39 +02:00
Julius Härtl
e33faa594d Do not fail if groups don't exist (#1033)
Do not fail if groups don't exist
2019-05-08 13:18:12 +02:00
Julius Härtl
8688b05474 Only map circles if the app is enabled (#1034)
Only map circles if the app is enabled
2019-05-08 13:18:03 +02: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ärtl
57dd1a7b40 Cast entity to array when logging
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-07 14:04:52 +02:00
Julius Härtl
47e3aad1b7 Only map circles if the app is enabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-07 14:01:38 +02:00
Julius Härtl
c118de2165 Fix acl update route (#1026)
Fix acl update route
2019-05-07 13:55:32 +02:00
Julius Härtl
99fd3c9945 Bump nextcloud-vue from 0.10.0 to 0.11.0 in /js (#1030)
Bump nextcloud-vue from 0.10.0 to 0.11.0 in /js
2019-05-07 13:55:04 +02:00
Julius Härtl
4d4c2257a0 Do not fail if groups don't exist
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-07 13:54:44 +02:00
Julius Härtl
a181ffdd41 Bump webpack-cli from 3.3.1 to 3.3.2 in /js (#1029)
Bump webpack-cli from 3.3.1 to 3.3.2 in /js
2019-05-07 13:45:12 +02:00
dependabot[bot]
a57a5350bc Bump nextcloud-vue from 0.10.0 to 0.11.0 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.10.0...v0.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-05 01:13:19 +00:00
dependabot[bot]
057c0875ba Bump webpack-cli from 3.3.1 to 3.3.2 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-05-05 01:12:47 +00:00
Julius Härtl
230756112b Bump @babel/polyfill from 7.4.3 to 7.4.4 in /js (#1022)
Bump @babel/polyfill from 7.4.3 to 7.4.4 in /js
2019-05-02 11:30:02 +02:00
Julius Härtl
13295c7f8c Fix acl update route
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-05-02 08:51:57 +02:00
Nextcloud bot
f9fff3a165 [tx-robot] updated from transifex 2019-05-01 00:19:20 +00:00
Nextcloud bot
a410aca159 [tx-robot] updated from transifex 2019-04-30 00:19:35 +00:00
dependabot[bot]
81510ce1e0 Bump @babel/polyfill from 7.4.3 to 7.4.4 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.4.3 to 7.4.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.4.3...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-29 10:54:30 +00:00
Julius Härtl
5d2d114c78 Update christophwurst/nextcloud requirement from ^14.0 to ^15.0 (#1019)
Update christophwurst/nextcloud requirement from ^14.0 to ^15.0
2019-04-29 12:33:06 +02:00
Julius Härtl
865d961436 Bump webpack-cli from 3.3.0 to 3.3.1 in /js (#1023)
Bump webpack-cli from 3.3.0 to 3.3.1 in /js
2019-04-29 12:19:30 +02:00
Julius Härtl
930845abfa Bump @babel/core from 7.4.3 to 7.4.4 in /js (#1021)
Bump @babel/core from 7.4.3 to 7.4.4 in /js
2019-04-29 12:19:19 +02:00
Julius Härtl
0190a51546 Bump @babel/preset-env from 7.4.3 to 7.4.4 in /js (#1020)
Bump @babel/preset-env from 7.4.3 to 7.4.4 in /js
2019-04-29 12:19:03 +02:00
dependabot[bot]
9a21f5ee66 Update christophwurst/nextcloud requirement from ^14.0 to ^15.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/14.0.0...v15.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-29 12:17:46 +02:00
dependabot[bot]
1c1b1f1f6d Bump webpack-cli from 3.3.0 to 3.3.1 in /js
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v.3.3.0...v.3.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-28 01:13:53 +00:00
dependabot[bot]
fbcc2a4934 Bump @babel/core from 7.4.3 to 7.4.4 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.3 to 7.4.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.4.3...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-28 01:12:45 +00:00
dependabot[bot]
83b8488b05 Bump @babel/preset-env from 7.4.3 to 7.4.4 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.3 to 7.4.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.4.3...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-28 01:12:13 +00:00
Nextcloud bot
65fdb98302 [tx-robot] updated from transifex 2019-04-28 00:19:15 +00:00
Julius Härtl
3079a028f0 Bump version to 0.6.1 (#1017)
Bump version to 0.6.1
2019-04-27 10:31:39 +02:00
Julius Härtl
5231b5e553 Bump version to 0.6.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-27 10:24:08 +02:00
Nextcloud bot
9908a5daf1 [tx-robot] updated from transifex 2019-04-27 00:19:09 +00:00
Julius Härtl
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öhrl
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öhrl
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öhrl
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öhrl
b3cb618707 label update
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2019-04-26 15:39:01 +02:00
Michael Weimann
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öhrl
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ärtl
d44b1615cc Merge pull request #1011 from nextcloud/bugfix/1006/sharing-middleware-leftover
Fix use of renamed SharingMiddleware
2019-04-25 18:20:13 +02:00
Julius Härtl
f6d0a3f2e7 Remove collections label in sidebar (#1010)
Remove collections label in sidebar
2019-04-25 18:20:00 +02:00
Julius Härtl
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ärtl
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
Julius Härtl
cc1dcafa88 Only try to access angular instance if we are currently in deck (#1015)
Only try to access angular instance if we are currently in deck
2019-04-25 18:01:39 +02:00
Julius Härtl
a530cd0e32 Add proper default value for since (#1014)
Add proper default value for since
2019-04-25 18:01:16 +02:00
Julius Härtl
d655625ec1 Only try to access angular instance if we are currently in deck
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 14:20:04 +02:00
Julius Härtl
05102aa1dc Add proper default value for since to fetch boards that have no last_modified date yet
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 14:06:49 +02:00
Julius Härtl
4db30397a2 Fix use of renamed SharingMiddleware
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 11:49:48 +02:00
Julius Härtl
9e883774b6 Bump nextcloud-vue from 0.9.7 to 0.10.0 in /js (#1001)
Bump nextcloud-vue from 0.9.7 to 0.10.0 in /js
2019-04-25 11:48:42 +02:00
Julius Härtl
3a6a9fbf35 Bump karma from 4.0.1 to 4.1.0 in /js (#1000)
Bump karma from 4.0.1 to 4.1.0 in /js
2019-04-25 11:48:29 +02:00
Julius Härtl
49c57fc2d3 Bump webpack from 4.29.6 to 4.30.0 in /js (#995)
Bump webpack from 4.29.6 to 4.30.0 in /js
2019-04-25 11:48:11 +02:00
Julius Härtl
b3b6c181a0 Remove collections label in sidebar
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-25 09:57:26 +02:00
Julius Härtl
ca5a1bcdda Merge pull request #1007 from sunjam/master
Update README.md to include Circles App
2019-04-24 20:50:55 +02:00
sunjam
990be95e71 Update README.md
added Circles app to readme
2019-04-24 11:05:26 -07:00
Julius Härtl
bbd7fd8535 Bump version to 0.6.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-23 21:08:16 +02:00
Julius Härtl
05576abd27 Some activity hardening (#997)
Some activity hardening
2019-04-23 09:01:22 +02:00
Julius Härtl
f2b0123f75 Make sure we always reset the comments collection if the id changes (#999)
Make sure we always reset the comments collection if the id changes
2019-04-23 09:00:44 +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
dependabot[bot]
af3d51c72d Bump nextcloud-vue from 0.9.7 to 0.10.0 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.9.7 to 0.10.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.9.7...v0.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-21 01:13:15 +00:00
dependabot[bot]
d3fa32c355 Bump karma from 4.0.1 to 4.1.0 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v4.0.1...v4.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-21 01:12:39 +00:00
Nextcloud bot
0c78f272b7 [tx-robot] updated from transifex 2019-04-21 00:19:56 +00:00
Nextcloud bot
4d91559b82 [tx-robot] updated from transifex 2019-04-19 00:19:24 +00:00
Nextcloud bot
b375cd7acc [tx-robot] updated from transifex 2019-04-18 00:19:37 +00:00
Julius Härtl
44db4bb40e Make sure we always reset the comments collection if the id changes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-17 16:07:29 +02:00
dependabot[bot]
0435377dca Bump webpack from 4.29.6 to 4.30.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.29.6 to 4.30.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.29.6...v4.30.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-17 13:21:39 +00:00
Julius Härtl
223de1e54f Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-17 15:16:08 +02:00
Julius Härtl
2c1293be81 Do not extend user parameter if user not found (fix #847)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-17 15:16:08 +02:00
Julius Härtl
9516c7578b Properly check for available data (fixes #921)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-17 15:16:07 +02:00
Julius Härtl
7e8f4c83b3 Merge pull request #998 from nextcloud/bugfix/tests-stable
Run integration tests against stable Nextcloud branches
2019-04-17 15:11:21 +02:00
Julius Härtl
ed4d495f5a Run integration tests against stable Nextcloud branches
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-17 14:55:25 +02:00
Julius Härtl
942310b093 Merge pull request #991 from nextcloud/bugfix/980/use-isavailable
using fulltextsearchmanager::isAvailable()
2019-04-17 14:44:02 +02:00
Nextcloud bot
10bda90afb [tx-robot] updated from transifex 2019-04-17 00:19:47 +00:00
Nextcloud bot
ef49c5f4c3 [tx-robot] updated from transifex 2019-04-16 00:27:18 +00:00
Nextcloud bot
4db2fbde67 [tx-robot] updated from transifex 2019-04-14 00:20:29 +00:00
Nextcloud bot
fa3e090cd9 [tx-robot] updated from transifex 2019-04-13 00:22:40 +00:00
Nextcloud bot
9c71c71168 [tx-robot] updated from transifex 2019-04-12 00:19:56 +00:00
Julius Härtl
76d67e50d5 Merge pull request #993 from nextcloud/bugfix/798/drag-compact
Fix sortable placehodler in compact mode
2019-04-11 12:49:22 +02:00
Julius Härtl
348170fe1e Fix sortable placehodler in compact mode
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-11 10:32:51 +02:00
Maxence Lange
a8472c650a using public instead
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-04-11 07:27:43 -01:00
Julius Härtl
54d5f5ca58 Merge pull request #989 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.6.0
Bump mini-css-extract-plugin from 0.5.0 to 0.6.0 in /js
2019-04-11 10:21:11 +02:00
Julius Härtl
f1c6a712d7 Merge pull request #988 from nextcloud/bugfix/967/collections-fixes
Bugfix/967/collections fixes
2019-04-11 10:20:55 +02:00
dependabot[bot]
d730d9c8c0 Bump mini-css-extract-plugin from 0.5.0 to 0.6.0 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.5.0 to 0.6.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.5.0...v0.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-11 07:56:18 +00:00
Julius Härtl
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
Nextcloud bot
7f7ee53cd3 [tx-robot] updated from transifex 2019-04-11 00:19:47 +00:00
Maxence Lange
cf0d2dc28c using isAvailable()
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-04-10 20:29:19 -01: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ärtl
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
Julius Härtl
50f868b148 Merge pull request #983 from nextcloud/bugfix/980/fts-argument-type
Bugfix/980/fts argument type
2019-04-10 17:28:54 +02:00
Julius Härtl
bc390263ab Fix labels in the UI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 17:27:50 +02:00
Julius Härtl
d73a799593 Merge pull request #987 from nextcloud/bugfix/808/full-owner-details
Always use full owner details
2019-04-10 17:26:26 +02:00
Julius Härtl
9f60c3545a Merge pull request #986 from nextcloud/bugfix/981/label-lastmodified
Add lastModified field to labels
2019-04-10 17:26:08 +02:00
Julius Härtl
7ea0f70fe8 Hide currentboard in selector (fixes #967)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 17:17:19 +02:00
Julius Härtl
ebaf98015a Merge pull request #984 from nextcloud/bugfix/noid/commentscss
Fix importing and comments css
2019-04-10 16:51:08 +02:00
Julius Härtl
ed4b7c5475 Merge pull request #985 from nextcloud/bugfix/979/comments-fix
Only try to add comment details if the comment was found
2019-04-10 16:49:29 +02:00
Julius Härtl
b0eaae6705 Add lastModified field to labels
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 16:48:36 +02:00
Julius Härtl
cab46164ff Always use full owner details
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 16:47:21 +02:00
Julius Härtl
0aed61868f Only try to add comment details if the comment was found
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 15:48:15 +02:00
Julius Härtl
d9305fc347 Merge pull request #973 from nextcloud/dependabot/npm_and_yarn/js/@babel/core-7.4.3
Bump @babel/core from 7.4.0 to 7.4.3 in /js
2019-04-10 15:44:52 +02:00
Julius Härtl
8cdfcd7293 Fix importing and comments css
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 15:42:22 +02:00
Julius Härtl
0258b74b42 Catch exceptions and only cast when necessary
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 15:41:32 +02:00
Julius Härtl
6fb960c255 Merge pull request #975 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-0.9.7
Bump nextcloud-vue from 0.9.5 to 0.9.7 in /js
2019-04-10 13:44:08 +02:00
Julius Härtl
6af28f1b79 Cast ids to integer for fulltextsearch
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 12:53:41 +02:00
Julius Härtl
bcc48d08c8 Add check if fts is enabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 12:53:41 +02:00
dependabot[bot]
d9844c7f4f Bump nextcloud-vue from 0.9.5 to 0.9.7 in /js
Bumps [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) from 0.9.5 to 0.9.7.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.9.5...v0.9.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-10 10:44:51 +00:00
dependabot[bot]
8c00ec67a8 Bump @babel/core from 7.4.0 to 7.4.3 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.0 to 7.4.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.4.0...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-10 10:36:30 +00:00
Julius Härtl
5c73f74355 Merge pull request #978 from nextcloud/dependabot/npm_and_yarn/js/nextcloud-vue-collections-0.4.0
Bump nextcloud-vue-collections from 0.2.2 to 0.4.0 in /js
2019-04-10 12:17:05 +02:00
Julius Härtl
4974c02e3e Merge pull request #977 from nextcloud/tests/noid/drone-1.0
Update drone.yml for drone 1.0
2019-04-10 12:16:28 +02:00
Julius Härtl
35a24427d8 Disable integration tests for now
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 12:11:52 +02:00
Julius Härtl
200e1867a2 Merge pull request #974 from nextcloud/dependabot/npm_and_yarn/js/@babel/polyfill-7.4.3
Bump @babel/polyfill from 7.4.0 to 7.4.3 in /js
2019-04-10 11:39:52 +02:00
Julius Härtl
2b16057006 Split unit tests in separate pipelines
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 11:38:12 +02:00
Julius Härtl
665886fa96 Try to fix integration run
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-10 11:35:23 +02:00
Julius Härtl
693ae495d7 Adjust tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-08 16:19:54 +02:00
Julius Härtl
c1f098ec54 Reenable app check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-08 15:49:32 +02:00
Julius Härtl
6718a7bde4 Remove signed-off-check as we have the DCO bot
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-08 15:49:05 +02:00
dependabot[bot]
a680fc1e1c Bump nextcloud-vue-collections from 0.2.2 to 0.4.0 in /js
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.2.2 to 0.4.0.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.2.2...v0.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-08 13:47:40 +00:00
dependabot[bot]
73bc59a2bc Bump @babel/polyfill from 7.4.0 to 7.4.3 in /js
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.4.0 to 7.4.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.4.0...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-08 13:47:19 +00:00
Julius Härtl
022ff0f425 Merge pull request #976 from nextcloud/dependabot/npm_and_yarn/js/@babel/preset-env-7.4.3
Bump @babel/preset-env from 7.4.2 to 7.4.3 in /js
2019-04-08 15:45:37 +02:00
Julius Härtl
3443969d7a Update drone.yml for drone 1.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-08 15:43:20 +02:00
Nextcloud bot
147d1abac4 [tx-robot] updated from transifex 2019-04-08 00:21:03 +00:00
dependabot[bot]
c6c15855f8 Bump @babel/preset-env from 7.4.2 to 7.4.3 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.2 to 7.4.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.4.2...v7.4.3)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-24 02:20:16 +00:00
Nextcloud bot
c733b356f6 [tx-robot] updated from transifex 2018-12-24 01:23:45 +00:00
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
Nextcloud bot
5233f3f4dc [tx-robot] updated from transifex 2018-12-23 01:19:02 +00:00
Vadim Nicolai
24af938058 Added current user avatar. 2018-12-22 23:17:27 +02:00
Julius Härtl
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ärtl
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ärtl
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
Julius Härtl
75407d9dc4 Merge pull request #818 from cloud2018/Papercut-translation
make "archived cards" translatable
2018-12-21 10:14:35 +01: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
cloud2018
61786e4d94 make "archived cards" translatable
Signed-off-by: Markus Eckstein <eckstein-markus@gmx.de>
2018-12-20 17:43:18 +01: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ärtl
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ärtl
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
Julius Härtl
9ee215affd Allow deck to be limited to groups again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-11-23 18:29:04 +01:00
306 changed files with 30465 additions and 15089 deletions

18
.babelrc Normal file
View File

@@ -0,0 +1,18 @@
{
"plugins": [
"@babel/plugin-syntax-dynamic-import"
],
"presets": [
[
"@babel/preset-env",
{
"targets": {
"browsers": [
"last 2 versions",
"ie >= 11"
]
}
}
]
]
}

View File

@@ -1,183 +1,119 @@
clone:
git:
image: plugins/git
depth: 1
pipeline:
check-app-compatbility:
image: nextcloudci/php7.0:php7.0-17
kind: pipeline
name: checkers
steps:
- name: compatibility
image: nextcloudci/php7.1:php7.1-16
environment:
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
- 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
image: nextcloudci/php7.2:php7.2-9
environment:
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
- name: syntax-php7.3
image: nextcloudci/php7.3:php7.3-2
environment:
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
trigger:
branch:
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: unit-php7.1
steps:
- name: php7.1
image: nextcloudci/php7.1:php7.1-16
environment:
- APP_NAME=deck
- CORE_BRANCH=stable15
- DB=sqlite
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
when:
matrix:
TESTS: check-app-compatbility
check-app-compatbility-14:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
when:
matrix:
TESTS: check-app-compatbility-14
check-app-compatbility-13:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable13
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
when:
matrix:
TESTS: check-app-compatbility-13
signed-off-check:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
- wget https://raw.githubusercontent.com/nextcloud/server/master/build/signed-off-checker.php
- php ./signed-off-checker.php
secrets: [ github_token ]
when:
matrix:
TESTS: signed-off-check
syntax-php5.6:
image: nextcloudci/php5.6:php5.6-8
environment:
- APP_NAME=deck
- CORE_BRANCH=stable13
- DB=sqlite
commands:
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php5.6
syntax-php7.0:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php7.0
syntax-php7.1:
image: nextcloudci/php7.1:php7.1-15
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php7.1
syntax-php7.2:
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
trigger:
branch:
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: unit-php7.2
steps:
- name: php7.2
image: nextcloudci/php7.2:php7.2-9
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php7.2
syntax-php7.3:
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
trigger:
branch:
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: unit-php7.3
steps:
- name: php7.3
image: nextcloudci/php7.3:php7.3-2
environment:
- APP_NAME=deck
- CORE_BRANCH=stable15
- DB=sqlite
commands:
- composer install
- ./vendor/bin/parallel-lint --exclude ./vendor/ .
when:
matrix:
TESTS: syntax-php7.3
php5.6:
image: nextcloudci/php5.6:php5.6-8
environment:
- APP_NAME=deck
- CORE_BRANCH=stable13
- DB=sqlite
commands:
- apt update && apt-get -y install php5-xdebug
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server/
- ./occ app:enable $APP_NAME
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php5.6
php7.0:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
# Run phpunit tests
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.0
php7.1:
image: nextcloudci/php7.1:php7.1-15
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
@@ -188,53 +124,23 @@ pipeline:
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.1
php7.2:
image: nextcloudci/php7.2:php7.2-9
trigger:
branch:
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: integration
steps:
- name: integration
image: nextcloudci/php7.1:php7.1-16
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.2
php7.3:
image: nextcloudci/php7.3:php7.3-2
environment:
- APP_NAME=deck
- CORE_BRANCH=stable15
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server/
- php occ app:enable deck
- cd apps/$APP_NAME
- composer install
- phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- phpunit -c tests/phpunit.integration.xml --coverage-clover build/php-integration.coverage.xml
when:
matrix:
TESTS: php7.3
integration:
image: nextcloudci/integration-php7.0:integration-php7.0-6
environment:
- APP_NAME=deck
- CORE_BRANCH=stable14
- DB=sqlite
APP_NAME: deck
CORE_BRANCH: master
DB: sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
@@ -243,44 +149,36 @@ pipeline:
- php occ app:enable deck
- cd apps/$APP_NAME
- cd tests/integration
- ./run.sh
when:
matrix:
TESTS: integration
eslint:
image: nextcloudci/eslint:eslint-1
- ./run.sh || true
trigger:
branch:
- master
- stable*
event:
- pull_request
- push
---
kind: pipeline
name: frontend
steps:
- name: install
image: node:11-alpine
commands:
- ./run-eslint.sh
when:
matrix:
TESTS: eslint
jsbuild:
image: mhart/alpine-node:6.8.0
- npm install
- name: eslint
image: node:11-alpine
commands:
- apk add --no-cache make
- make build-js
when:
matrix:
TESTS: jsbuild
matrix:
include:
- TESTS: check-app-compatbility-13
- TESTS: check-app-compatbility-14
- TESTS: signed-off-check
- TESTS: syntax-php5.6
- TESTS: syntax-php7.0
- TESTS: syntax-php7.1
- TESTS: syntax-php7.2
- TESTS: syntax-php7.3
- TESTS: php5.6
- TESTS: php7.0
- TESTS: php7.1
- TESTS: php7.2
- TESTS: php7.3
- TESTS: eslint
- TESTS: jsbuild
#- TESTS: integration
branches: [ master, stable* ]
- npm run lint
- name: jsbuild
image: node:11-alpine
commands:
- npm run build
trigger:
branch:
- master
- stable*
- vue
event:
- pull_request
- push

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.{js,vue}]
indent_style = tab

67
.eslintrc.js Normal file
View File

@@ -0,0 +1,67 @@
module.exports = {
root: true,
env: {
browser: true,
es6: true,
node: true,
jest: true
},
globals: {
t: true,
n: true,
OC: true,
OCA: true,
Vue: true,
VueRouter: true
},
parserOptions: {
parser: 'babel-eslint',
ecmaVersion: 6
},
extends: [
'eslint:recommended',
'plugin:node/recommended',
'plugin:vue/essential',
'plugin:vue/recommended',
'standard'
],
plugins: ['vue', 'node'],
rules: {
// space before function ()
'space-before-function-paren': ['error', 'never'],
// curly braces always space
'object-curly-spacing': ['error', 'always'],
// stay consistent with array brackets
'array-bracket-newline': ['error', 'consistent'],
// 1tbs brace style
'brace-style': 'error',
// tabs only
indent: ['error', 'tab'],
'no-tabs': 0,
'vue/html-indent': ['error', 'tab'],
// only debug console
'no-console': ['warn', { allow: ['error', 'warn', 'debug'] }],
// classes blocks
'padded-blocks': ['error', { classes: 'always' }],
// always have the operator in front
'operator-linebreak': ['error', 'before'],
// ternary on multiline
'multiline-ternary': ['error', 'always-multiline'],
// es6 import/export and require
'node/no-unpublished-require': ['off'],
'node/no-unsupported-features/es-syntax': ['off'],
// space before self-closing elements
'vue/html-closing-bracket-spacing': 'error',
// code spacing with attributes
'vue/max-attributes-per-line': [
'error',
{
singleline: 3,
multiline: {
max: 3,
allowFirstLine: true
}
}
]
}
}

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

2
.github/stale.yml vendored
View File

@@ -8,7 +8,9 @@ exemptLabels:
- "2. developing"
- "3. to review"
- "discussion"
- "bounty"
- "bug"
- "enhancement"
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30

8
.gitignore vendored
View File

@@ -1,7 +1,5 @@
js/node_modules/*
js/vendor/
js/public/
js/build/
node_modules/*
js/
build/
css/style.css
css/vendor.css
@@ -9,3 +7,5 @@ tests/integration/vendor/
tests/integration/composer.lock
vendor/
*.lock
\.idea/

View File

@@ -2,18 +2,17 @@ language: php
services:
- mysql
php:
- 7.0
- 7.1
- 7.2
- 7.3
env:
- CORE_BRANCH=stable14 DB=mysql
- CORE_BRANCH=master DB=mysql
before_install:
- wget https://phar.phpunit.de/phpunit-5.7.phar
- chmod +x phpunit-5.7.phar
- wget https://phar.phpunit.de/phpunit-6.5.phar
- chmod +x phpunit-6.5.phar
- mkdir bin
- mv phpunit-5.7.phar bin/phpunit
- mv phpunit-6.5.phar bin/phpunit
- export PATH="$PWD/bin:$PATH"
- phpunit --version
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh

View File

@@ -1,6 +1,71 @@
# Changelog
All notable changes to this project will be documented in this file.
## 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
### Fixed
- Restore stable15 compatibility
## 0.6.3 - 2019-06-30
### Fixed
- Fix issues with comments and activity stream
- Fix setting archived state through API
- Fix type of acl in API responses
- Fix type mismatch with fulltext search
## 0.6.2 - 2019-05-15
### Fixed
- Fix group limit for nonexisting groups
- Only map circle ACLs if the app is enabled
- Fix updating sharing permissions
- Add app version to capabilities
## 0.6.1 - 2019-04-27
### Fixed
- Fix issue with boards not being shown after update
- Fix board selection in projects view outside of deck
- Remove collections text from sidebar
- Remove leftover use statement
## 0.6.0 - 2019-04-23
### Added
- Share boards with circles
- Integration with collections in Nextcloud 16
- Support for full text search
- Nextcloud 16 compatibility
### Fixed
- Fix duplicate call to delete
- Prevent duplicate tag names @jakobroehrl
- Prevent loading details when editing the card title @jakobroehrl
- Hide sidebar after card deletion @jakobroehrl
- Update labels after change in the UI @jakobroehrl
- Allow limiting the app to groups again
- Various REST API enhancements and fixes
- Fix some issues with comments/activites
## 0.5.2 - 2018-12-20
### Fixed

View File

@@ -9,6 +9,7 @@ Deck is a kanban style organization tool aimed at personal planning and project
- :page_facing_up: Write down additional notes in markdown
- :bookmark: Assign labels for even better organization
- :busts_in_silhouette: Share with your team, friends or family
- :family: Integrates with the [Circles](https://github.com/nextcloud/circles) app!
- :paperclip: Attach files and embed them in your markdown description
- :speech_balloon: Discuss with your team using comments
- :zap: Keep track of changes in the activity stream

View File

@@ -29,6 +29,7 @@ $app = new \OCA\Deck\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerNotifications();
$app->registerCommentsEntity();
$app->registerFullTextSearch();
/** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity');

View File

@@ -317,6 +317,13 @@
<notnull>true</notnull>
<length>8</length>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<index>
<name>deck_labels_board_id_index</name>
<field>

View File

@@ -17,12 +17,12 @@
- 🚀 Get your project organized
</description>
<version>0.5.2</version>
<version>0.7.0</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
<types>
<logging/>
<dav />
</types>
<category>organization</category>
<category>office</category>
@@ -36,7 +36,7 @@
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="5.5">mysql</database>
<nextcloud min-version="13" max-version="15" />
<nextcloud min-version="17" max-version="18" />
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>
@@ -54,6 +54,7 @@
<activity>
<settings>
<setting>OCA\Deck\Activity\Setting</setting>
<setting>OCA\Deck\Activity\SettingComment</setting>
<setting>OCA\Deck\Activity\DescriptionSetting</setting>
</settings>
<filters>
@@ -63,4 +64,9 @@
<provider>OCA\Deck\Activity\DeckProvider</provider>
</providers>
</activity>
<fulltextsearch>
<provider min-version="16">OCA\Deck\Provider\DeckProvider</provider>
</fulltextsearch>
</info>

View File

@@ -40,6 +40,7 @@ return [
['name' => 'board#addAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'POST'],
['name' => 'board#updateAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'PUT'],
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
// stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
@@ -87,7 +88,11 @@ return [
['name' => 'board_api#delete', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'DELETE'],
['name' => 'board_api#update', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'PUT'],
['name' => 'board_api#undo_delete', 'url' => '/api/v1.0/boards/{boardId}/undo_delete', 'verb' => 'POST'],
['name' => 'board_api#addAcl', 'url' => '/api/v1.0/boards/{boardId}/acl', 'verb' => 'POST'],
['name' => 'board_api#deleteAcl', 'url' => '/api/v1.0/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board_api#updateAcl', 'url' => '/api/v1.0/boards/{boardId}/acl/{aclId}', 'verb' => 'PUT'],
['name' => 'stack_api#index', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'GET'],
['name' => 'stack_api#getArchived', 'url' => '/api/v1.0/boards/{boardId}/stacks/archived', 'verb' => 'GET'],
['name' => 'stack_api#get', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'GET'],

View File

@@ -13,7 +13,7 @@
},
"require-dev": {
"roave/security-advisories": "dev-master",
"christophwurst/nextcloud": "^14.0",
"christophwurst/nextcloud": "^16.0",
"jakub-onderka/php-parallel-lint": "^1.0.0"
}
}

10
css/collections.css Normal file
View File

@@ -0,0 +1,10 @@
.icon-deck {
background-image: url('../img/deck-dark.svg');
}
.resource-type-deck img {
opacity: 0.4 !important;
}
.resource-type-deck:hover img {
opacity: 0.7 !important;
}

261
css/comments.scss Normal file
View File

@@ -0,0 +1,261 @@
/*
* 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;
}

View File

@@ -1,50 +0,0 @@
#content-wrapper #content {
height: 100%;
}
#app-content {
flex-grow: 1;
height: 100%;
&.details-visible {
margin-right: 500px;
}
}
#app-sidebar {
right: -500px;
max-width: 100%;
width: 500px;
display:flex;
flex-direction: column;
z-index: 1000;
&.details-visible {
right: 0;
}
}
#content[class*='app-'] * {
box-sizing: border-box;
}
body:not(.snapjs-left) {
.app-navigation-hide {
#app-content {
margin-left: 0 !important;
}
#app-navigation {
display: none;
}
}
}
#commentsTabView .newCommentForm .message {
width: 100%;
margin-left: 0;
padding-right: 0;
display: block;
}
#commentsTabView .comment {
margin-bottom: 0;
}

View File

@@ -32,6 +32,8 @@
.stack {
.as-sortable-placeholder {
margin: $compact-board-item-margin;
min-height: 43px;
height: 43px;
&:last-child {
margin: $compact-board-last-item-margin;

View File

@@ -2,6 +2,10 @@
* @copyright Copyright (c) 2016 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
*
@@ -20,28 +24,17 @@
*
*/
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) {
// colors
$color-warning-light: nc-lighten($color-warning, 15%);
$color-lightgrey: nc-darken($color-main-background, 4%);
$color-grey: nc-darken($color-main-background, 7%);
$color-darkgrey: nc-darken($color-main-background, 32%);
var menu = elm.siblings('.app-navigation-entry-menu');
var button = $(elm)
.find('.app-navigation-entry-utils-menu-button button');
// margins/paddings
$board-item-margin: 10px 10px 20px 10px;
$board-last-item-margin: 10px;
button.click(function () {
menu.toggleClass('open');
});
scope.$on('documentClicked', function (scope, event) {
if (event.target !== button[0]) {
menu.removeClass('open');
}
});
}
};
});
$compact-board-item-margin: 5px 10px 10px 10px;
$compact-board-last-item-margin: 5px 10px 10px;
@import 'icons';

View File

@@ -5,10 +5,6 @@
background-image: url('../img/deck-dark.svg');
}
.icon-group {
background-image: url('../../../settings/img/users.svg');
}
.icon-help {
background-image: url('../../../settings/img/help.svg');
}
@@ -17,6 +13,10 @@
background-image: url('../img/add-white.svg');
}
.icon-attach {
background-image: url('../img/attach.svg');
}
.icon-archive {
background-image: url('../img/archive.svg');
}
@@ -53,10 +53,14 @@
background-image: url('../img/toggle-view-collapse.svg');
}
@if mixin-exists('icon-black-white') {
@include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', 'deck', 1);
@include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', '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 {
@include icon-color('toggle-view-expand', 'deck', $color-black);
}
@@ -68,3 +72,15 @@
@include icon-color('activity-dark', 'activity', $color-black);
}
}
.avatardiv.circles {
background: var(--color-primary);
}
.icon-circles {
opacity: 1;
background-size: 20px;
background-position: center center;
}
.icon-colorpicker {
background-image: url('../img/color_picker.svg');
}

View File

@@ -42,6 +42,7 @@ $compact-board-last-item-margin: 5px 10px 10px;
@import 'animations';
@import 'compact-mode';
@import 'autocomplete';
@import 'comments';
/**
* General styles
@@ -71,10 +72,6 @@ input.input-inline {
border-radius: 0;
}
#app img {
box-sizing: content-box;
}
#searchbox {
display: flex !important;
}
@@ -542,11 +539,6 @@ input.input-inline {
margin-right: 2px;
}
}
button {
padding: 22px;
margin: 0;
}
}
a {
@@ -654,7 +646,7 @@ input.input-inline {
min-height: 16px;
}
.popovermenu {
.popovermenu:not(.action-item__menu) {
z-index: 999;
opacity: 1;
display: block;
@@ -996,8 +988,12 @@ input.input-inline {
img {
max-width: 24px;
max-height: 24px;
opacity: 1;
}
}
& > img {
opacity: 0.7;
}
}
.activitysubject.commentAuthor {
@@ -1288,7 +1284,7 @@ input.input-inline {
width: 32px;
height: 32px;
.icon-group {
.icon-group, .icon {
padding: 16px;
opacity: 0.5;
}

View File

@@ -1,5 +1,20 @@
# Nextcloud APIs
## Available sharees
When sharing a board to a user, group or circle, the possible sharees can be obtained though the files_sharing API.
API endpoint: https://nextcloud.local/index.php/apps/files_sharing/api/v1/sharees
### Parameters
- format: **The response format**
- perPage: **Limit response number**
- itemType: **List of types. Currently supported are**
- 0 user
- 1 group
- 7 circle
## Comments
Comments are stored using the Nextcloud Comments API. You can use the WebDAV endpoint of Nextcloud to fetch, update and delete comments.

View File

@@ -65,6 +65,12 @@ curl -u admin:admin -X GET \
The board list endpoint supports setting an `If-Modified-Since` header to limit the results to entities that are changed after the provided time.
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | ---------------------------- |
| options | Bool | **Optional** Enhance boards with details about labels, stacks and users |
#### Response
##### 200 Success
@@ -288,9 +294,67 @@ Returns an array of board items
##### 200 Success
### POST /boards/{boardId}/acl - Add new acl rule
#### Request body
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| type | Integer | Type of the participant |
| participant | String | The uid of the participant |
| permissionEdit | Bool | Setting if the participant has edit permissions |
| permissionShare | Bool | Setting if the participant has sharing permissions |
| permissionManage | Bool | Setting if the participant has management permissions |
##### Supported participant types:
- 0 User
- 1 Group
- 7 Circle
#### Response
##### 200 Success
```json
[{
"participant": {
"primaryKey": "userid",
"uid": "userid",
"displayname": "User Name"
},
"type": 0,
"boardId": 1,
"permissionEdit": true,
"permissionShare": false,
"permissionManage": true,
"owner": false,
"id": 1
}]
```
### PUT /boards/{boardId}/acl/{aclId} - Update an acl rule
#### Request parameters
| Parameter | Type | Description |
| --------- | ------ | ---------------------------------------------------- |
| permissionEdit | Bool | Setting if the participant has edit permissions |
| permissionShare | Bool | Setting if the participant has sharing permissions |
| permissionManage | Bool | Setting if the participant has management permissions |
#### Response
##### 200 Success
### DELETE /boards/{boardId}/acl/{aclId} - Delete an acl rule
#### Response
##### 200 Success
## Stacks
### GET /board/{boardId}/stacks - Get stacks
### GET /boards/{boardId}/stacks - Get stacks
#### Headers
@@ -321,7 +385,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### GET /board/{boardId}/stacks/archived - Get list of archived stacks
### GET /boards/{boardId}/stacks/archived - Get list of archived stacks
#### Request parameters
@@ -347,7 +411,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### GET /board/{boardId}/stacks/{stackId} - Get stack details
### GET /boards/{boardId}/stacks/{stackId} - Get stack details
#### Request parameters
@@ -360,7 +424,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### POST /board/{boardId}/stacks - Create a new stack
### POST /boards/{boardId}/stacks - Create a new stack
#### Request parameters
@@ -372,7 +436,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId} - Update stack details
### PUT /boards/{boardId}/stacks/{stackId} - Update stack details
#### Request parameters
@@ -392,7 +456,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId} - Delete a stack
### DELETE /boards/{boardId}/stacks/{stackId} - Delete a stack
#### Request parameters
@@ -407,7 +471,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
## Cards
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId} - Get card details
### GET /boards/{boardId}/stacks/{stackId}/cards/{cardId} - Get card details
#### Request parameters
@@ -421,7 +485,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### POST /board/{boardId}/stacks/{stackId}/cards - Create a new card
### POST /boards/{boardId}/stacks/{stackId}/cards - Create a new card
#### Request parameters
@@ -465,7 +529,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId} - Update card details
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId} - Update card details
#### Request parameters
@@ -500,7 +564,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId}/cards/{cardId} - Delete a card
### DELETE /boards/{boardId}/stacks/{stackId}/cards/{cardId} - Delete a card
#### Request parameters
@@ -514,7 +578,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel - Assign a label to a card
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel - Assign a label to a card
#### Request parameters
@@ -533,7 +597,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel - Remove a label to a card
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel - Remove a label to a card
#### Request parameters
@@ -553,7 +617,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser - Assign a user to a card
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser - Assign a user to a card
#### Request parameters
@@ -573,7 +637,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{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
@@ -593,7 +657,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/reorder - Change the sorting order of a card
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder - Change the sorting order of a card
#### Request parameters
@@ -617,7 +681,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
## Labels
### GET /board/{boardId}/labels/{labelId} - Get label details
### GET /boards/{boardId}/labels/{labelId} - Get label details
#### Request parameters
@@ -640,7 +704,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
}
```
### POST /board/{boardId}/labels - Create a new label
### POST /boards/{boardId}/labels - Create a new label
#### Request parameters
@@ -661,7 +725,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### PUT /board/{boardId}/labels/{labelId} - Update label details
### PUT /boards/{boardId}/labels/{labelId} - Update label details
#### Request parameters
@@ -684,7 +748,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### DELETE /board/{boardId}/labels/{labelId} - Delete a label
### DELETE /boards/{boardId}/labels/{labelId} - Delete a label
#### Request parameters
@@ -699,7 +763,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
## Attachments
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Get a list of attachments
### GET /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Get a list of attachments
#### Request parameters
@@ -739,7 +803,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
```
### GET /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Get the attachment file
### GET /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Get the attachment file
#### Request parameters
@@ -754,7 +818,7 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
##### 200 Success
### POST /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Upload an attachment
### POST /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments - Upload an attachment
#### Request parameters
@@ -777,7 +841,7 @@ For now only `deck_file` is supported as an attachment type.
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Update an attachment
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Update an attachment
#### Request parameters
@@ -801,7 +865,7 @@ For now only `deck_file` is supported as an attachment type.
##### 200 Success
### DELETE /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Delete an attachment
### DELETE /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId} - Delete an attachment
#### Request parameters
@@ -816,7 +880,7 @@ For now only `deck_file` is supported as an attachment type.
##### 200 Success
### PUT /board/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore - Resore a deleted attachment
### PUT /boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore - Resore a deleted attachment
#### Request parameters

55
docs/Release.md Normal file
View File

@@ -0,0 +1,55 @@
Releasing a new version works quite easy with [krankerl](https://github.com/ChristophWurst/krankerl) and [github-release](https://github.com/aktau/github-release) installed:
1. Run krankerl to build the package
```
krankerl package
```
2. Tag the release on GitHub
```
# For a prerelease
github-release release -u nextcloud -r deck -t v0.3.1 -p
# For a regular release
github-release release -u nextcloud -r deck -t v0.3.1
```
3. Upload the release package to GitHub
```
github-release upload -u nextcloud -r deck -t v0.3.1 -n deck.tar.gz -f build/artifacts/deck.tar.gz
```
4. Run krankerl to release the package to the app store (add `--nightly` for prerelease packages)
```
krankerl publish https://github.com/nextcloud/deck/releases/download/v0.3.1/deck.tar.gz
```
## Release PR template
```
## Backports
- [ ] ...
## Translations
- [ ] ...
## Release
- [ ] Set proper Nextcloud versions in info.xml
- [ ] Update changelog
- [ ] Build test release
- [ ] Tested on
- [ ] Nextcloud 13
- [ ] Nextcloud 14
- [ ] Nextcloud 15
- [ ] Merge
- [ ] Build final release
- [ ] Publish release
- [ ] Upload to the app store
```

View File

@@ -0,0 +1,69 @@
## Introduction
### What about Deck ?
You may know Kanban website like Trello ? Deck is about the same thing but secured and respectful of your privacy !
Integrated in Nextcloud, you can easily manage your projects while having your data secured.
### Use cases
Project management, time management or ideation, Deck makes it easier for you to manage your work.
## Using Deck
Overall, Deck is easy to use. You can create boards, add users, share the Deck, work collaboratively and in real time.
1. [Create my first board](#1-create-my-first-board)
2. [Create stacks and cards](#2-create-stacks-and-cards)
3. [Handle cards options](#3-handle-cards-options)
4. [Archive old tasks](#4-archive-old-tasks)
5. [Manage your board](#5-manage-your-board)
### 1. Create my first board
In this example, we're going to create a board and share it with an other nextcloud user.
![Gif for creating boards](resources/gifs/EN_create_board.gif)
### 2. Create stacks and cards
Stacks are simply columns with list of cards. It can represent a category of tasks or an y step in your projects for example.
**Check this out :**
![Gif for creating columns](resources/gifs/EN_create_columns.gif)
What about the cards? Cards are tasks, objects or ideas that fit into a stack. You can put a lot of cards in a stack! An infinity? Who knows! Who knows!
And all the magic of this software consists on moving your cards from a stack to an other.
**Check this out :**
![Gif for creating tasks](resources/gifs/EN_create_task.gif)
### 3. Handle cards options
Once you have created your cards, you can modify them or add options by clicking on them. So, what are the options? Well, there are several of them:
- Tag Management
- Assign a card to a user (s·he will receive a notification)
- Render date, or deadline
![Gif for puting infos on tasks](resources/gifs/EN_put_infos.gif)
And even :
- Description in markdown language
- Attachment - *you can leave a document, a picture or some other bonus like that.*
![Gif for puting infos on tasks 2](resources/gifs/EN_put_infos_2.gif)
### 4. Archive old tasks
Once finished or obsolete, a task could be archived. The tasks is not deleted, it's just archived, and you can retrieve it later
![Gif for puting infos on tasks 2](resources/gifs/EN_archive.gif)
### 5. Manage your board
You can manage the settings of your Deck once you are inside it, by clicking on the small wheel at the top right.
Once in this menu, you have access to several things:
- Sharing
- Tags
- Deleted objects
- Timeline
The **sharing tab** allows you to add users or even groups to your boards.
**Tags** allows you to modify the tags available for the cards.
**Deleted objects** allows you to return previously deleted stacks or cards.
The **Timeline** allows you to see everything that happened in your boards. Everything!

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

1
img/attach.svg Normal file
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
img/circles.svg Normal file
View File

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

After

Width:  |  Height:  |  Size: 885 B

1
img/clone.svg Normal file
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

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
}

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;

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;
});
});

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"]'
});
});

View File

@@ -1,349 +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.getData(self.element.id).length === 0) {
if (self.type === 'deck_card') {
self.activityservice.loadComments(self.element.id);
}
self.loading = true;
self.fetchUntilResults();
}
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
if (self.type === 'deck_card') {
self.cardservice.getCurrent().commentsUnread = 0;
}
}, true);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
this.activityservice.subscribe(this.$scope, function() {
self.$scope.$apply();
});
if (typeof OCA.Activity.Templates !== 'undefined') {
OCA.Activity.Templates.userLocal = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var helper;
// Compiled handlesbars template
// '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
return "<span class=\"avatar-name-wrapper\"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user=\""
+ container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"id","hash":{},"data":data}) : helper)))
+ "\" ng-attr-displayname=\""
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "\" ng-attr-size=\"16\"></avatar> "
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "</span>";
},"useData":true});
} else {
OCA.Activity.RichObjectStringParser._userLocalTemplate = '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
}
}
applyAtWho($target) {
const self = this;
if (!$target) {
return;
}
$target.atwho({
at: '@',
callbacks: {
remoteFilter: function(query, callback) {
let uids = self.boardservice.getUsers();
uids = uids.filter((x) => x.uid.toLowerCase().includes(query.toLowerCase()) || x.displayname.toLowerCase().includes(query.toLowerCase()));
callback(uids);
},
highlighter: function (li) {
// misuse the highlighter callback to instead of
// highlighting loads the avatars.
var $li = $(li);
$li.find('.avatar').avatar(undefined, 32);
return $li;
},
sorter: function (q, items) { return items; }
},
displayTpl: function (item) {
return '<li>' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span></li>';
},
insertTpl: function (item) {
return '' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span>';
},
searchKey: 'displayname'
});
$target.on('inserted.atwho', function (je, $el) {
$(je.target).find(
'span[data-username="' + $el.find('[data-username]').data('username') + '"]'
).avatar(undefined, 16);
});
$target.on('shown.atwho', function (je) {
$target.find('.avatar').avatar(undefined, 16);
});
}
commentBodyToPlain(content) {
let $comment = $('<div/>').html(content);
$comment.find('.avatar-name-wrapper').each(function () {
var $this = $(this);
var $inserted = $this.parent();
$inserted.html('@' + $this.find('.avatar').data('username'));
});
$comment.html(OCP.Comments.richToPlain($comment.html()));
$comment.html($comment.html().replace(/<br\s*[\/]?>/gi, '\n'));
return $comment.text();
}
static _composeHTMLMention(uid, displayName) {
var avatar = '' +
'<span class="avatar" data-username="' + escapeHTML(uid) + '" data-user="' + escapeHTML(uid) + '" ng-attr-size="16" ' +
'ng-attr-user="' + escapeHTML(uid) + '" ' +
'ng-attr-displayname="' + escapeHTML(displayName) + '" ng-attr-contactsmenu="true">' +
'</span>';
var isCurrentUser = (uid === OC.getCurrentUser().uid);
return '' +
'<span class="atwho-inserted" contenteditable="false">' +
'<span class="avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '">' +
avatar +
'<strong>' + escapeHTML(displayName) + '</strong>' +
'</span>' +
'</span>';
}
formatMessage(activity) {
let message = activity.message;
let mentions = activity.commentModel.get('mentions');
const editMode = false;
message = escapeHTML(message).replace(/\n/g, '<br/>');
for(var i in mentions) {
if(!mentions.hasOwnProperty(i)) {
return;
}
var mention = '@' + mentions[i].mentionId;
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const displayName = ActivityController._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
message = message.replace(new RegExp('(^|\\s)(' + mention + ')\\b', 'g'),
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1+displayName;
}
);
}
if(editMode !== true) {
message = OCP.Comments.plainToRich(message);
}
return message;
}
postComment() {
const self = this;
this.status.commentCreateLoading = true;
let content = this.commentBodyToPlain(self.$scope.newComment);
if (content.length < 1) {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
var model = this.activityservice.commentCollection.create({
actorId: OC.getCurrentUser().uid,
actorDisplayName: OC.getCurrentUser().displayName,
actorType: 'users',
verb: 'comment',
message: content,
creationDateTime: (new Date()).toUTCString()
}, {
at: 0,
// wait for real creation before adding
wait: true,
success: function() {
self.$scope.newComment = '';
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
self.status.commentCreateLoading = false;
},
error: function() {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Posting the comment failed.'));
}
});
}
updateComment(item) {
item.commentEdit = this.formatMessage(item);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
/** Workaround to trigger avatar rendering after the view has been updated */
window.setTimeout(function () {
$target.find('.avatar').avatar(undefined, 16);
}, 0);
}
editComment(item) {
const self = this;
let content = this.commentBodyToPlain(item.commentEdit);
if (content.length < 1) {
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
/** We need to save the model and afterwards run a fetch to update the mentions
* and call apply to propagate the changes to angular
*/
item.commentModel.on('sync', function() {
item.commentModel.off('sync');
item.commentModel.fetch({
success: function() {
self.$scope.$apply();
}
});
});
item.commentModel.save({
message: content,
});
item.message = content;
item.commentEdit = undefined;
}
deleteComment(item) {
item.commentModel.destroy();
item.deleted = true;
item.commentModel = undefined;
item.message = t('deck', 'The comment has been deleted');
}
getData(id) {
return this.activityservice.getData(this.type, id);
}
parseMessage(activity) {
let subject = activity.subject_rich[0];
let parameters = activity.subject_rich[1];
if (parameters.after && parameters.after.id && parameters.after.id.startsWith('dt:')) {
let dateTime = parameters.after.id.substr(3);
parameters.after.name = moment(dateTime).format('L LTS');
}
return OCA.Activity.RichObjectStringParser.parseMessage(subject, parameters);
}
fetchUntilResults () {
const self = this;
let dataLengthBefore = self.getData(self.element.id).length;
let _executeFetch = function() {
let promise = self.activityservice.fetchMoreActivities(self.type, self.element.id);
promise.then(function (data) {
let dataLengthAfter = self.getData(self.element.id).length;
if (data !== null && (dataLengthAfter <= dataLengthBefore || dataLengthAfter < self.activityservice.RESULT_PER_PAGE)) {
_executeFetch();
} else {
self.loading = false;
}
}, function () {
self.loading = false;
self.$scope.$apply();
});
};
_executeFetch();
}
getComments() {
return this.activityservice.comments;
}
getActivityStream() {
let activities = this.activityservice.getData(this.type, this.element.id);
return activities;
}
page() {
if (!this.activityservice.since[this.type][this.element.id].finished) {
this.loading = true;
this.fetchUntilResults();
} else {
this.loading = false;
}
}
loadingNewer() {
return this.activityservice.runningNewer;
}
t(text) {
return t('deck', text);
}
}
let activityComponent = {
templateUrl: OC.linkTo('deck', 'templates/part.card.activity.html'),
controller: ActivityController,
bindings: {
type: '@',
element: '='
}
};
export default activityComponent;

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));
}
};
});

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;

View File

@@ -1,495 +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 OC OCP OCA */
app.controller('BoardController', function ($rootScope, $scope, $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();
}
});
$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.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);
// TODO: remove from cards
};
$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 = {};
});
};
$scope.labelUpdate = function (label) {
label.edit = false;
LabelService.update(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';
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;
};
});

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;
};
});

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

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;

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');
}
});
}
};
});

View File

@@ -1,29 +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('autofocusOnInsert', function () {
'use strict';
return function (scope, elm) {
elm.focus();
};
});

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 () {}
};
});

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);
}
};
});

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();
}
});
}
};
});

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
});
}
};
});

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

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();
});
}
}
};
});

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
});
}
};
});

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;
};
});

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;
};
});

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

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 '';
};
});

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 '';
}
};
});

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;
}
};
});

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;
};
});

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';
}
};
});

View File

@@ -1,33 +0,0 @@
'use strict';
/* global __webpack_nonce__ OC */
__webpack_nonce__ = btoa(OC.requestToken); // eslint-disable-line no-native-reassign
// 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);
});

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;

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;

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;

File diff suppressed because one or more lines are too long

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.$));

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; }

File diff suppressed because it is too large Load Diff

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));
};

7108
js/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,46 +0,0 @@
{
"name": "deck",
"description": "Frontend for the Nextcloud Deck app",
"repository": "https://github.com/nextcloud/deck",
"version": "1.0.0",
"main": "Gruntfile.js",
"directories": {
"test": "tests"
},
"dependencies": {
"@uirouter/angularjs": "^1.0.20",
"angular": "^1.7.5",
"angular-animate": "^1.7.5",
"angular-file-upload": "^2.5.0",
"angular-markdown-it": "^0.6.1",
"angular-sanitize": "^1.7.5",
"babel-polyfill": "^6.26.0",
"markdown-it": "^8.4.2",
"markdown-it-link-target": "^1.0.2",
"ng-infinite-scroll": "^1.3.0",
"ng-sortable": "^1.3.8",
"ui-select": "^0.19.8"
},
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/polyfill": "^7.0.0",
"@babel/preset-env": "^7.2.0",
"babel-loader": "^8.0.4",
"css-loader": "^2.0.1",
"karma": "^3.1.3",
"mini-css-extract-plugin": "^0.5.0",
"uglifyjs-webpack-plugin": "^2.0.1",
"webpack": "^4.27.1",
"webpack-cli": "^3.1.2",
"webpack-merge": "^4.1.5"
},
"scripts": {
"build": "./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": []
}

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};

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('Fetching' + self.endpoint + ' failed');
});
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('Updating ' + self.endpoint + ' failed');
});
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;
});

View File

@@ -1,257 +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 */
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]
};
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));
// 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);
}
});
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) {
delete board.acl[response.data.id];
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) {
board.acl[_acl.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 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);
});

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;
});

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(
`A file with the name ${fileItem.file.name} already exists. Do you want to overwrite it?`,
'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);

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);
});

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;
});

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()
};
});

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');
});
});
});

View File

@@ -1,68 +0,0 @@
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
require('babel-polyfill');
module.exports = {
node: {
fs: 'empty',
},
entry: {
deck: ['babel-polyfill', './init.js'],
},
output: {
filename: '[name].js',
path: __dirname + '/build'
},
resolve: {
modules: [path.resolve(__dirname), 'node_modules'],
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['@babel/preset-env'],
}
},
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader'
]
}
]
},
optimization: {
splitChunks: {
cacheGroups: {
/* separate vendor chunk for node_modules and legacy scripts */
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendor',
chunks: 'all'
},
legacy: {
test: /[\\/]legacy[\\/]/,
name: 'vendor',
chunks: 'all'
}
}
}
},
/* use external jQuery from server */
externals: {
'jquery': 'jQuery'
},
plugins: [
new MiniCssExtractPlugin('[name].css'),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
};

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',
});

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

18
l10n/ar.js Normal file
View File

@@ -0,0 +1,18 @@
OC.L10N.register(
"deck",
{
"Hours" : "ساعات",
"Minutes" : "دقائق",
"File already exists" : "الملف موجود مسبقاً",
"Done" : "تم",
"Actions" : "الإجراءات",
"Delete card" : "حذف البطاقة",
"Timeline" : "الخيط الزمني",
"Share" : "شارك",
"Update tag" : "تحديث الوسم",
"Edit tag" : "تعديل الوسم",
"Delete tag" : "حذف الوسم",
"Delete attachment" : "حذف المرفق",
"Settings" : "الإعدادات"
},
"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;");

16
l10n/ar.json Normal file
View File

@@ -0,0 +1,16 @@
{ "translations": {
"Hours" : "ساعات",
"Minutes" : "دقائق",
"File already exists" : "الملف موجود مسبقاً",
"Done" : "تم",
"Actions" : "الإجراءات",
"Delete card" : "حذف البطاقة",
"Timeline" : "الخيط الزمني",
"Share" : "شارك",
"Update tag" : "تحديث الوسم",
"Edit tag" : "تعديل الوسم",
"Delete tag" : "حذف الوسم",
"Delete attachment" : "حذف المرفق",
"Settings" : "الإعدادات"
},"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;"
}

29
l10n/ast.js Normal file
View File

@@ -0,0 +1,29 @@
OC.L10N.register(
"deck",
{
"Hours" : "Hores",
"Minutes" : "Minutos",
"Deck" : "Deck",
"Finished" : "Finó",
"Action needed" : "Precísase aición",
"Later" : "Más sero",
"Submit" : "Unviar",
"Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Edit" : "Editar",
"Share" : "Compartir",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"by" : "por",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Saved" : "Guardóse"
},
"nplurals=2; plural=(n != 1);");

27
l10n/ast.json Normal file
View File

@@ -0,0 +1,27 @@
{ "translations": {
"Hours" : "Hores",
"Minutes" : "Minutos",
"Deck" : "Deck",
"Finished" : "Finó",
"Action needed" : "Precísase aición",
"Later" : "Más sero",
"Submit" : "Unviar",
"Show archived cards" : "Amosar tarxetes archivaes",
"Close" : "Zarrar",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Edit" : "Editar",
"Share" : "Compartir",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"by" : "por",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Saved" : "Guardóse"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

42
l10n/bg.js Normal file
View File

@@ -0,0 +1,42 @@
OC.L10N.register(
"deck",
{
"Hours" : "Часове",
"Minutes" : "Минути",
"Finished" : "Готово",
"To review" : "За преглед",
"Action needed" : "Необходимо е действие",
"Later" : "По-късно",
"The file was uploaded" : "Файлът е качен",
"The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи",
"Loading" : "Зареждане",
"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" : "Крайна дата",
"Remove due date" : "Премахни крайната дата",
"Description" : "Описание",
"Attachments" : "Прикачени файлове",
"Saved" : "Запазено",
"Upload attachment" : "Качване",
"Settings" : "Настройки"
},
"nplurals=2; plural=(n != 1);");

40
l10n/bg.json Normal file
View File

@@ -0,0 +1,40 @@
{ "translations": {
"Hours" : "Часове",
"Minutes" : "Минути",
"Finished" : "Готово",
"To review" : "За преглед",
"Action needed" : "Необходимо е действие",
"Later" : "По-късно",
"The file was uploaded" : "Файлът е качен",
"The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи",
"Loading" : "Зареждане",
"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" : "Крайна дата",
"Remove due date" : "Премахни крайната дата",
"Description" : "Описание",
"Attachments" : "Прикачени файлове",
"Saved" : "Запазено",
"Upload attachment" : "Качване",
"Settings" : "Настройки"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

15
l10n/bs.js Normal file
View File

@@ -0,0 +1,15 @@
OC.L10N.register(
"deck",
{
"Hours" : "Sati",
"Minutes" : "Minute",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Edit" : "Izmjeni",
"Share" : "Podjeli",
"Create" : "Ustvari",
"Status" : "Status",
"Title" : "Naslov",
"Members" : "Članovi",
"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);");

13
l10n/bs.json Normal file
View File

@@ -0,0 +1,13 @@
{ "translations": {
"Hours" : "Sati",
"Minutes" : "Minute",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Edit" : "Izmjeni",
"Share" : "Podjeli",
"Create" : "Ustvari",
"Status" : "Status",
"Title" : "Naslov",
"Members" : "Članovi",
"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);"
}

View File

@@ -1,64 +1,203 @@
OC.L10N.register(
"deck",
{
"Please provide a content for your comment." : "Si us plau, proporciona un comentari.",
"Posting the comment failed." : "Error al posar el comentari.",
"The comment has been deleted" : "S'ha esborrat el comentari",
"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" : "Esborra usuari de la targeta",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Maximum file size of {size} exceeded" : "Mida màxima per fitxer de {size} superada",
"You have created a new board {board}" : "Has creat el nou tauler {board}",
"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}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Has esborrat el taulell {board}",
"{user} has deleted the board {board}" : "{user} ha esborrat el taulell {board}",
"You have restored the board {board}" : "Has restaurat el taulell {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el taulell {board}",
"You have shared the board {board} with {acl}" : "Has compartit el taulell {board} amb {acl}",
"You have renamed the card {before} to {card}" : "Has canviat el nom de la targeta de {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha canviat el nom de la targeta de {before} a {card}",
"Deck" : "Coberta",
"You have deleted the board {board}" : "Heu suprimit el tauler {board}",
"{user} has deleted the board {board}" : "{user} ha suprimit el tauler {board}",
"You have restored the board {board}" : "Heu restaurat el tauler {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el tauler {board}",
"You have shared the board {board} with {acl}" : "Heu compartit el tauler {board} amb {acl}",
"{user} has shared the board {board} with {acl}" : "{user} ha compartit el tauler {board} amb {acl}",
"You have removed {acl} from the board {board}" : "Heu suprimit {acl} del tauler {board}",
"{user} has removed {acl} from the board {board}" : "{user} ha suprimit {acl} del tauler {board}",
"You have renamed the board {before} to {board}" : "Heu reanomenat el tauler {before} a {board}",
"{user} has renamed the board {before} to {board}" : "{user} ha reanomenat el tauler {before} a {board}",
"You have archived the board {board}" : "Heu arxivat el tauler {board}",
"{user} has archived the board {before}" : "{user} ha arxivat el tauler {before}",
"You have unarchived the board {board}" : "Heu desarxivat el tauler {board}",
"{user} has unarchived the board {before}" : "{user} ha desarxivat el tauler {before}",
"You have created a new stack {stack} on board {board}" : "Heu creat una nova pila {stack} al tauler {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} ha creat una nova pila {stack} al tauler {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Heu reanomenat la pila {before} a {stack} al tauler {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} ha reanomenat la pila {before} a {stack} al tauler {board}",
"You have deleted stack {stack} on board {board}" : "Heu suprimit la pila {stack} al tauler {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} ha suprimit la pila {stack} al tauler {board}",
"You have created card {card} in stack {stack} on board {board}" : "Heu creat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} ha creat la targeta {card} a la pila {stack} al tauler {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Heu suprimit la targeta {card} a la pila {stack} al tauler {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} ha suprimit la targeta {card} a la pila {stack} al tauler {board}",
"You have renamed the card {before} to {card}" : "Heu reanomenat la targeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha reanomenat la targeta {before} a {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la pila {stack} al tauler {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} ha afegit una descripció a la targeta {card} a la pila {stack} al tauler {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Heu actualitzat la descripció de la targeta {card} a la pila {stack} al tauler {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} ha actualitzat la descripció de la targeta {card} a la pila {stack} al tauler {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Heu arxivat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} ha arxivat la targeta {card} a la pila {stack} al tauler {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Heu desarxivat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} ha arxivat la targeta {card} a la pila {stack} al tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de venciment de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de venciment de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de venciment de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de venciment de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de venciment de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de venciment de la targeta {card} a {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Heu afegit l'etiqueta {label} a la targeta {card} a la pila {stack} al tauler {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} ha afegit l'etiqueta {label} a la targeta {card} a la pila {stack} al tauler {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Heu suprimit l'etiqueta {label} de la targeta {card} a la pila {stack} al tauler {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} ha suprimit l'etiqueta {label} de la targeta {card} a la pila {stack} al tauler {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Heu assignat a {assigneduser} a la targeta {card} al tauler {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha assignat a {assigneduser} la targeta {card} del tauler {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Heu desassignat {assigneduser} de la targeta {card} al tauler {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ha desassignat {assigneduser} de la targeta {card} al tauler {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Heu mogut la targeta {card} de la pila {stackBefore} a {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} ha mogut la targeta {card} de la pila {stackBefore} a {stack}",
"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}",
"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}",
"{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}",
"{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}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
"The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.",
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on \"%s\"." : "{user} us ha anomenat en un comentari sobre \"%s\".",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared the board %s with you." : "{user} us ha compartit el tauler %s.",
"No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.",
"Finished" : "Acabat",
"To review" : "Per revisar",
"Action needed" : "Acció necessaria",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"To do" : "Pendents",
"Doing" : "En procés",
"Done" : "Finalitzades",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
"The file was uploaded" : "S'ha carregat el fitxer",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
"No file was uploaded" : "No s'ha carregat cap fitxer",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"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",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila",
"Submit" : "Envia",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"All Boards" : "Totes les juntes",
"Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Enter a card title" : "Introduïu un títol de la targeta",
"Sharing" : "Compartir",
"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",
"Select users or groups to share with" : "Seleccioneu usuaris o grups per compartir",
"Deleted items" : "Elements suprimits",
"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" : "Gestor",
"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",
"Title" : "Title",
"Deleted stacks" : "Piles suprimides",
"Deleted cards" : "Targetes suprimides",
"Status" : "Estat",
"No archived boards to display" : "No hi ha cap tauler arxivat per mostrar",
"No shared boards to display" : "No hi ha cap tauler compartit per mostrar",
"Title" : "Títol",
"Members" : "Membres",
"More actions" : "Més accions",
"Edit board" : "Edita el tauler",
"Archive board" : "Arxiu",
"Unarchive board" : "Desbloquejar",
"Delete board" : "Eliminat",
"Create new board" : "Crear nova",
"New board title" : "Nou títol",
"Archive board" : "Arxiva tauler",
"Unarchive board" : "Desarxiva tauler",
"Delete board" : "Suprimeix tauler",
"Update board" : "Actualitza tauler",
"Reset board" : "Reinicialitza 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 la placa a l'arxiu",
"Create a new board" : "Crear nova"
"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);");

View File

@@ -1,62 +1,201 @@
{ "translations": {
"Please provide a content for your comment." : "Si us plau, proporciona un comentari.",
"Posting the comment failed." : "Error al posar el comentari.",
"The comment has been deleted" : "S'ha esborrat el comentari",
"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" : "Esborra usuari de la targeta",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Maximum file size of {size} exceeded" : "Mida màxima per fitxer de {size} superada",
"You have created a new board {board}" : "Has creat el nou tauler {board}",
"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}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Has esborrat el taulell {board}",
"{user} has deleted the board {board}" : "{user} ha esborrat el taulell {board}",
"You have restored the board {board}" : "Has restaurat el taulell {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el taulell {board}",
"You have shared the board {board} with {acl}" : "Has compartit el taulell {board} amb {acl}",
"You have renamed the card {before} to {card}" : "Has canviat el nom de la targeta de {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha canviat el nom de la targeta de {before} a {card}",
"Deck" : "Coberta",
"You have deleted the board {board}" : "Heu suprimit el tauler {board}",
"{user} has deleted the board {board}" : "{user} ha suprimit el tauler {board}",
"You have restored the board {board}" : "Heu restaurat el tauler {board}",
"{user} has restored the board {board}" : "{user} ha restaurat el tauler {board}",
"You have shared the board {board} with {acl}" : "Heu compartit el tauler {board} amb {acl}",
"{user} has shared the board {board} with {acl}" : "{user} ha compartit el tauler {board} amb {acl}",
"You have removed {acl} from the board {board}" : "Heu suprimit {acl} del tauler {board}",
"{user} has removed {acl} from the board {board}" : "{user} ha suprimit {acl} del tauler {board}",
"You have renamed the board {before} to {board}" : "Heu reanomenat el tauler {before} a {board}",
"{user} has renamed the board {before} to {board}" : "{user} ha reanomenat el tauler {before} a {board}",
"You have archived the board {board}" : "Heu arxivat el tauler {board}",
"{user} has archived the board {before}" : "{user} ha arxivat el tauler {before}",
"You have unarchived the board {board}" : "Heu desarxivat el tauler {board}",
"{user} has unarchived the board {before}" : "{user} ha desarxivat el tauler {before}",
"You have created a new stack {stack} on board {board}" : "Heu creat una nova pila {stack} al tauler {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} ha creat una nova pila {stack} al tauler {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Heu reanomenat la pila {before} a {stack} al tauler {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} ha reanomenat la pila {before} a {stack} al tauler {board}",
"You have deleted stack {stack} on board {board}" : "Heu suprimit la pila {stack} al tauler {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} ha suprimit la pila {stack} al tauler {board}",
"You have created card {card} in stack {stack} on board {board}" : "Heu creat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} ha creat la targeta {card} a la pila {stack} al tauler {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Heu suprimit la targeta {card} a la pila {stack} al tauler {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} ha suprimit la targeta {card} a la pila {stack} al tauler {board}",
"You have renamed the card {before} to {card}" : "Heu reanomenat la targeta {before} a {card}",
"{user} has renamed the card {before} to {card}" : "{user} ha reanomenat la targeta {before} a {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Heu afegit una descripció a la targeta {card} a la pila {stack} al tauler {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} ha afegit una descripció a la targeta {card} a la pila {stack} al tauler {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Heu actualitzat la descripció de la targeta {card} a la pila {stack} al tauler {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} ha actualitzat la descripció de la targeta {card} a la pila {stack} al tauler {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Heu arxivat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} ha arxivat la targeta {card} a la pila {stack} al tauler {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Heu desarxivat la targeta {card} a la pila {stack} al tauler {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} ha arxivat la targeta {card} a la pila {stack} al tauler {board}",
"You have removed the due date of card {card}" : "Heu suprimit la data de venciment de la targeta {targeta}",
"{user} has removed the due date of card {card}" : "{user} ha suprimit la data de venciment de la targeta {targeta}",
"You have set the due date of card {card} to {after}" : "Heu establert la data de venciment de la targeta {card} a {after}",
"{user} has set the due date of card {card} to {after}" : "{user} ha establert la data de venciment de la targeta {card} a {after}",
"You have updated the due date of card {card} to {after}" : "Heu actualitzat la data de venciment de la targeta {card} a {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} ha actualitzat la data de venciment de la targeta {card} a {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Heu afegit l'etiqueta {label} a la targeta {card} a la pila {stack} al tauler {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} ha afegit l'etiqueta {label} a la targeta {card} a la pila {stack} al tauler {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Heu suprimit l'etiqueta {label} de la targeta {card} a la pila {stack} al tauler {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} ha suprimit l'etiqueta {label} de la targeta {card} a la pila {stack} al tauler {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Heu assignat a {assigneduser} a la targeta {card} al tauler {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} ha assignat a {assigneduser} la targeta {card} del tauler {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Heu desassignat {assigneduser} de la targeta {card} al tauler {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} ha desassignat {assigneduser} de la targeta {card} al tauler {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Heu mogut la targeta {card} de la pila {stackBefore} a {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} ha mogut la targeta {card} de la pila {stackBefore} a {stack}",
"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}",
"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}",
"{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}",
"{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}",
"{user} has commented on card {card}" : "{user} ha comentat la targeta {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "S'ha canviat una <strong>descripció de targeta</strong> a l'aplicació Tauler",
"Deck" : "Tauler",
"Changes in the <strong>Deck app</strong>" : "Hi ha canvis a l'<strong>aplicació Tauler</strong>",
"A <strong>comment</strong> was created on a card" : "S'ha afegit un <strong>comentari</strong> a una targeta",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "La targeta \"%s\" sobre \"%s\" se us ha assignat per %s.",
"{user} has assigned the card \"%s\" on \"%s\" to you." : "{user} us ha assignat la targeta \"%s\" sobre \"%s\".",
"The card \"%s\" on \"%s\" has reached its due date." : "La targeta \"%s\" sobre \"%s\" ha assolit la seva data de venciment.",
"%s has mentioned you in a comment on \"%s\"." : "%s us ha anomenat en un comentari sobre \"%s\".",
"{user} has mentioned you in a comment on \"%s\"." : "{user} us ha anomenat en un comentari sobre \"%s\".",
"The board \"%s\" has been shared with you by %s." : "El tauler \"%s\" se us ha compartit per %s.",
"{user} has shared the board %s with you." : "{user} us ha compartit el tauler %s.",
"No data was provided to create an attachment." : "No sha proporcionat cap dada per crear un fitxer adjunt.",
"Finished" : "Acabat",
"To review" : "Per revisar",
"Action needed" : "Acció necessaria",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"To do" : "Pendents",
"Doing" : "En procés",
"Done" : "Finalitzades",
"Example Task 3" : "Tasca d'exemple 3",
"Example Task 2" : "Tasca d'exemple 2",
"Example Task 1" : "Tasca d'exemple 1",
"The file was uploaded" : "S'ha carregat el fitxer",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El fitxer carregat excedeix la directiva upload_max_filesize dins de php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El fitxer carregat excedeix la directiva MAX_FILE_SIZE que hi ha especificada al formulari d'HTML",
"The file was only partially uploaded" : "El fitxer s'ha carregat només parcialment",
"No file was uploaded" : "No s'ha carregat cap fitxer",
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No sha pogut escriure el fitxer al disc",
"A PHP extension stopped the file upload" : "Una extensió del PHP ha aturat la carregada del fitxer",
"No file uploaded or file size exceeds maximum of %s" : "No s'ha carregat cap fitxer o la mida del fitxer sobrepassa el màxim de %s",
"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",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila",
"Submit" : "Envia",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"All Boards" : "Totes les juntes",
"Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Enter a card title" : "Introduïu un títol de la targeta",
"Sharing" : "Compartir",
"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",
"Select users or groups to share with" : "Seleccioneu usuaris o grups per compartir",
"Deleted items" : "Elements suprimits",
"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" : "Gestor",
"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",
"Title" : "Title",
"Deleted stacks" : "Piles suprimides",
"Deleted cards" : "Targetes suprimides",
"Status" : "Estat",
"No archived boards to display" : "No hi ha cap tauler arxivat per mostrar",
"No shared boards to display" : "No hi ha cap tauler compartit per mostrar",
"Title" : "Títol",
"Members" : "Membres",
"More actions" : "Més accions",
"Edit board" : "Edita el tauler",
"Archive board" : "Arxiu",
"Unarchive board" : "Desbloquejar",
"Delete board" : "Eliminat",
"Create new board" : "Crear nova",
"New board title" : "Nou títol",
"Archive board" : "Arxiva tauler",
"Unarchive board" : "Desarxiva tauler",
"Delete board" : "Suprimeix tauler",
"Update board" : "Actualitza tauler",
"Reset board" : "Reinicialitza 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 la placa a l'arxiu",
"Create a new board" : "Crear nova"
"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);"
}

View File

@@ -10,6 +10,7 @@ OC.L10N.register(
"Hours" : "Hodiny",
"Minutes" : "Minuty",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
"File already exists" : "Soubor už existuje",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}",
@@ -17,7 +18,6 @@ OC.L10N.register(
"You have restored the board {board}" : "Obnovili jste nástěnku {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} nasdílel(a) nástěnku {board} pro {sharee}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}",
@@ -26,8 +26,52 @@ OC.L10N.register(
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový balíček {stack} na desce {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste hromádku {before} na {stack} na desce {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) hromádku {before} na {stack} na desce {board}",
"You have deleted stack {stack} on board {board}" : "Smazali jste balíček {stack} na desce {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) balíček {stack} na desce {board}",
"You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} v balíčku {stack} na kartě {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} na hromádce {stack} na desce {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} na hromádce {stack} na desce {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} v balíčku {board} na desce {board}",
"You have renamed the card {before} to {card}" : "Přejmenovali jste kartu {before} na {card}",
"{user} has renamed the card {before} to {card}" : "{user} přejmenoval(a) {before} na {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} v hromádce {stack} na desce {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} v hromádce {stack} na desce {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} v hromádce {stack} na desce {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} na hromádce {stack} na nástěnce {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} v balíčku {stack} na desce {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} na hromádce {stack} na desce {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} na hromádce {stack} na desce {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}",
"You have updated the due date of card {card} to {after}" : "Změnili jste termín na kartě {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} v hromádce {stack} na nástěnce {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} přidal(a) štítek {label} ke kartě {card} v hromádce {stack} na nástěnce {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} v hromádce {stack} na desce {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} na hromádce {stack} na desce {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {assigneduser} ke kartě {card} na desce {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na nástěnce {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na desce {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} z balíčku {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} přidal(a) přílohu {attachment} ke kartě {card}",
"You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} na kartě {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} smazal(a) přílohu {attachment} u karty {card}",
"You have restored the attachment {attachment} to card {card}" : "Obnovili jste přílohu {attachment} ke kartě {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis mapy</strong> v Deck-aplikace byl změněn",
"Deck" : "Balík",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>",
@@ -61,6 +105,7 @@ OC.L10N.register(
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní řízení ve stylu Kanban.",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
"Select board" : "Vybrat nástěnku",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
"Show archived cards" : "Zobrazit archivované karty",
@@ -70,6 +115,7 @@ OC.L10N.register(
"All Boards" : "Všechny desky",
"Archived boards" : "Archivované desky",
"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ě",
@@ -85,7 +131,8 @@ OC.L10N.register(
"Deleted items" : "Smazané položky",
"Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení",
"Access for" : "Přístup pro",
"Group" : "Skupina",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Edit" : "Upravit",

View File

@@ -8,6 +8,7 @@
"Hours" : "Hodiny",
"Minutes" : "Minuty",
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
"File already exists" : "Soubor už existuje",
"You have created a new board {board}" : "Vytvořili jste nástěnku {board}",
"{user} has created a new board {board}" : "{user} vytvořil(a) novou nástěnku {board}",
"You have deleted the board {board}" : "Smazali jste nástěnku {board}",
@@ -15,7 +16,6 @@
"You have restored the board {board}" : "Obnovili jste nástěnku {board}",
"{user} has restored the board {board}" : "{user} obnovil(a) nástěnku {board}",
"You have shared the board {board} with {acl}" : "Nasdíleli jste nástěnku {board} s {acl}",
"{user} has shared the board {board} with {sharee}" : "{user} nasdílel(a) nástěnku {board} pro {sharee}",
"You have removed {acl} from the board {board}" : "Odebrali jste {acl} z nástěnky {board}",
"{user} has removed {acl} from the board {board}" : "{user} odebral(a) {acl} z nástěnky {board}",
"You have renamed the board {before} to {board}" : "Přejmenovali jste nástěnku {before} na {board}",
@@ -24,8 +24,52 @@
"{user} has archived the board {before}" : "{user} zaarchivoval(a) nástěnku {before}",
"You have unarchived the board {board}" : "Zrušili jste archivaci nástěnky {board}",
"{user} has unarchived the board {before}" : "{user} zrušil(a) archivaci nástěnky {before}",
"You have created a new stack {stack} on board {board}" : "Vytvořili jste novou hromádku {stack} na desce {board}",
"{user} has created a new stack {stack} on board {board}" : "{user} vytvořil(a) nový balíček {stack} na desce {board}",
"You have renamed stack {before} to {stack} on board {board}" : "Přejmenovali jste hromádku {before} na {stack} na desce {board}",
"{user} has renamed stack {before} to {stack} on board {board}" : "{user} přejmenoval(a) hromádku {before} na {stack} na desce {board}",
"You have deleted stack {stack} on board {board}" : "Smazali jste balíček {stack} na desce {board}",
"{user} has deleted stack {stack} on board {board}" : "{user} smazal(a) balíček {stack} na desce {board}",
"You have created card {card} in stack {stack} on board {board}" : "Vytvořili jste kartu {card} v balíčku {stack} na kartě {board}",
"{user} has created card {card} in stack {stack} on board {board}" : "{user} vytvořil(a) kartu {card} na hromádce {stack} na desce {board}",
"You have deleted card {card} in stack {stack} on board {board}" : "Smazali jste kartu {card} na hromádce {stack} na desce {board}",
"{user} has deleted card {card} in stack {stack} on board {board}" : "{user} smazal(a) kartu {card} v balíčku {board} na desce {board}",
"You have renamed the card {before} to {card}" : "Přejmenovali jste kartu {before} na {card}",
"{user} has renamed the card {before} to {card}" : "{user} přejmenoval(a) {before} na {card}",
"You have added a description to card {card} in stack {stack} on board {board}" : "Přidali jste popis ke kartě {card} v hromádce {stack} na desce {board}",
"{user} has added a description to card {card} in stack {stack} on board {board}" : "{user} přidal(a) popis ke kartě {card} v hromádce {stack} na desce {board}",
"You have updated the description of card {card} in stack {stack} on board {board}" : "Aktualizovali jste popis karty {card} v hromádce {stack} na desce {board}",
"{user} has updated the description of the card {card} in stack {stack} on board {board}" : "{user} aktualizoval(a) popis karty {card} na hromádce {stack} na nástěnce {board}",
"You have archived card {card} in stack {stack} on board {board}" : "Zaarchivovali kartu {card} v balíčku {stack} na desce {board}",
"{user} has archived card {card} in stack {stack} on board {board}" : "{user} zaarchivoval(a) kartu {card} v balíčku {stack} na desce {board}",
"You have unarchived card {card} in stack {stack} on board {board}" : "Zrušili jste archivaci karty {card} na hromádce {stack} na desce {board}",
"{user} has unarchived card {card} in stack {stack} on board {board}" : "{user} zrušil(a) archivaci karty {card} na hromádce {stack} na desce {board}",
"You have removed the due date of card {card}" : "Odebrali jste termín karty {card}",
"{user} has removed the due date of card {card}" : "{user} odebral(a) termín karty {card}",
"You have set the due date of card {card} to {after}" : "Nastavili jste termín na kartě {card} na {after}",
"{user} has set the due date of card {card} to {after}" : "{user} nastavil(a) termín karty {card} na {after}",
"You have updated the due date of card {card} to {after}" : "Změnili jste termín na kartě {card} na {after}",
"{user} has updated the due date of card {card} to {after}" : "{user} aktualizoval termín karty {card} na {after}",
"You have added the tag {label} to card {card} in stack {stack} on board {board}" : "Přidali jste štítek {label} kartě {card} v hromádce {stack} na nástěnce {board}",
"{user} has added the tag {label} to card {card} in stack {stack} on board {board}" : "{user} přidal(a) štítek {label} ke kartě {card} v hromádce {stack} na nástěnce {board}",
"You have removed the tag {label} from card {card} in stack {stack} on board {board}" : "Odebrali jste štítek {label} z karty {card} v hromádce {stack} na desce {board}",
"{user} has removed the tag {label} from card {card} in stack {stack} on board {board}" : "{user} odebral(a) štítek {label} z karty {card} na hromádce {stack} na desce {board}",
"You have assigned {assigneduser} to card {card} on board {board}" : "Přiřadili jste {assigneduser} ke kartě {card} na desce {board}",
"{user} has assigned {assigneduser} to card {card} on board {board}" : "{user} přiřadil(a) {assigneduser} ke kartě {card} na desce {board}",
"You have unassigned {assigneduser} from card {card} on board {board}" : "Zrušili jste přiřazení {assigneduser} u karty {card} na nástěnce {board}",
"{user} has unassigned {assigneduser} from card {card} on board {board}" : "{user} zrušil(a) přiřazení {assigneduser} z karty {card} na desce {board}",
"You have moved the card {card} from stack {stackBefore} to {stack}" : "Přesunuli jste kartu {card} z balíčku {stackBefore} do {stack}",
"{user} has moved the card {card} from stack {stackBefore} to {stack}" : "{user} přesunul(a) kartu {card} z balíčku {stackBefore} do {stack}",
"You have added the attachment {attachment} to card {card}" : "Přidali jste přílohu {attachment} ke kartě {card}",
"{user} has added the attachment {attachment} to card {card}" : "{user} přidal(a) přílohu {attachment} ke kartě {card}",
"You have updated the attachment {attachment} on card {card}" : "Aktualizovali jste přílohu {attachment} na kartě {card}",
"{user} has updated the attachment {attachment} to card {card}" : "{user} aktualizoval(a) přílohu {attachment} ke kartě {card}",
"You have deleted the attachment {attachment} from card {card}" : "Smazali jste přílohu {attachment} u karty {card}",
"{user} has deleted the attachment {attachment} to card {card}" : "{user} smazal(a) přílohu {attachment} u karty {card}",
"You have restored the attachment {attachment} to card {card}" : "Obnovili jste přílohu {attachment} ke kartě {card}",
"{user} has restored the attachment {attachment} to card {card}" : "{user} obnovil(a) přílohu {attachment} ke kartě {card}",
"You have commented on card {card}" : "Přidali jste komentář na kartě {card}",
"{user} has commented on card {card}" : "{user} přidal(a) komentář na kartě {card}",
"A <strong>card description</strong> inside the Deck app has been changed" : "<strong>Popis mapy</strong> v Deck-aplikace byl změněn",
"Deck" : "Balík",
"Changes in the <strong>Deck app</strong>" : "Změny v <strong>Deck aplikace</strong>",
@@ -59,6 +103,7 @@
"No file uploaded or file size exceeds maximum of %s" : "Nebyl nahrán žádný soubor nebo jeho velikost přesáhla %s",
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní řízení ve stylu Kanban.",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, vestavěný v Nextcloud.\n\n\n- 📥 Zadávejte a uspořádávejte své úkoly do karet\n- 📄 Zapisujte si dodatečné poznámky \n- 🔖 Přiřazujte štítky pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přáteli nebo rodinou\n- 🚀 Dostaňte svůj projekt pod kontrolu",
"Select board" : "Vybrat nástěnku",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
"Show archived cards" : "Zobrazit archivované karty",
@@ -68,6 +113,7 @@
"All Boards" : "Všechny desky",
"Archived boards" : "Archivované desky",
"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ě",
@@ -83,7 +129,8 @@
"Deleted items" : "Smazané položky",
"Timeline" : "Časová osa",
"Select users or groups to share with" : "Vyberte uživatele nebo skupiny pro sdílení",
"Access for" : "Přístup pro",
"Group" : "Skupina",
"Circle" : "Okruh",
"No matching user or group found." : "Nevyhovuje žádný uživatel ani skupina",
"Loading" : "Načítání",
"Edit" : "Upravit",

View File

@@ -25,7 +25,6 @@ OC.L10N.register(
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Select users or groups to share with" : "Vælg brugere eller grupper og dele med",
"Access for" : "Adgang for",
"No matching user or group found." : "Ingen bruger eller gruppe fundet",
"Loading" : "Loader",
"Edit" : "Redigér",
@@ -64,6 +63,7 @@ OC.L10N.register(
"Add a card description…" : "Tilføj en beskrivelse...",
"Shared boards" : "Delte lister",
"Move board to archive" : "Flyt liste til arkiv",
"Create a new board" : "Opret ny liste"
"Create a new board" : "Opret ny liste",
"Settings" : "Indstillinger"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -23,7 +23,6 @@
"Sharing" : "Deling",
"Tags" : "Mærkat",
"Select users or groups to share with" : "Vælg brugere eller grupper og dele med",
"Access for" : "Adgang for",
"No matching user or group found." : "Ingen bruger eller gruppe fundet",
"Loading" : "Loader",
"Edit" : "Redigér",
@@ -62,6 +61,7 @@
"Add a card description…" : "Tilføj en beskrivelse...",
"Shared boards" : "Delte lister",
"Move board to archive" : "Flyt liste til arkiv",
"Create a new board" : "Opret ny liste"
"Create a new board" : "Opret ny liste",
"Settings" : "Indstillinger"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

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