Compare commits

...

916 Commits

Author SHA1 Message Date
Julius Härtl
3c241b3389 WIP: Edit card title inline
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-21 17:30:21 +02:00
Julius Härtl
07a7ea2564 Merge pull request #1730 from nextcloud/release/1.0.0-beta2 2020-04-21 09:56:59 +02:00
Julius Härtl
04c8bf211a Merge pull request #1726 from nextcloud/bugfix/sharing-search 2020-04-21 09:56:04 +02:00
Julius Härtl
3aba6840c1 Merge pull request #1737 from nextcloud/bugfix/noid/regex 2020-04-21 09:55:41 +02:00
Julius Härtl
871a399ddb Fix searching for sharees
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-21 09:30:37 +02:00
Julius Härtl
406c840dc3 Merge pull request #1732 from nextcloud/bugfix/1675 2020-04-21 09:29:20 +02:00
Julius Härtl
79a5d9e769 Fix checkmark regex to apply for lists only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-21 09:27:51 +02:00
Julius Härtl
bf8810e6e0 Merge pull request #1727 from nextcloud/bugfix/harden-order 2020-04-21 09:21:46 +02:00
Julius Härtl
35f35297bc Merge pull request #1728 from nextcloud/bugfix/url 2020-04-21 09:21:37 +02:00
Julius Härtl
f34384b9df Merge pull request #1733 from nextcloud/bugfix/1676 2020-04-21 09:18:03 +02:00
Julius Härtl
a522c0bbad Merge pull request #1734 from nextcloud/bugfix/noid/comments 2020-04-21 09:17:54 +02:00
Julius Härtl
195ddcd116 Merge pull request #1731 from nextcloud/enh/checkbox-markdown-preview 2020-04-21 08:54:34 +02:00
Nextcloud bot
ea16e22fb9 [tx-robot] updated from transifex 2020-04-21 02:28:02 +00:00
Julius Härtl
a867c4db6b Merge pull request #1735 from nextcloud/bugfix/1256/activity-absolute
Use absolute urls for activity
2020-04-20 21:50:35 +02:00
Julius Härtl
de20896a71 Use absolute urls for activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 19:00:56 +02:00
Julius Härtl
7d83472501 Hide comments tab if comments app is disabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 18:44:24 +02:00
Julius Härtl
0a3151715d Let labels/assignedUsers have sane default values in the store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 17:46:03 +02:00
Julius Härtl
746993c389 Make settings menu more usable
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 17:45:17 +02:00
Julius Härtl
e40a402f70 Use separate preview for description and allow toggling checkboxes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 17:22:15 +02:00
Julius Härtl
66765cac59 Bump version to 1.0.0-beta2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 13:36:34 +02:00
Julius Härtl
35f8e5c4eb Fix vue router urls to match with pre-vue ones
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 10:11:39 +02:00
Julius Härtl
646d8960d5 Fix double slash in notification urls (fixes #1698)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 10:11:19 +02:00
Julius Härtl
8ceb3f3c92 Merge pull request #1725 from nextcloud/bugfix/simplify-archived-button 2020-04-20 10:04:32 +02:00
Julius Härtl
141ab46b46 Properly sort cards if order is the same
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 10:01:00 +02:00
Julius Härtl
07a67cc94e Merge pull request #1724 from ishantgupta777/board_delete_confirmation 2020-04-20 09:04:57 +02:00
Julius Härtl
45e79e1591 Remove duplicate action button
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-20 09:02:28 +02:00
Julius Härtl
a445ed672b Merge pull request #1713 from ishantgupta777/tooltip_fix 2020-04-20 08:55:43 +02:00
Nextcloud bot
08272e03d2 [tx-robot] updated from transifex 2020-04-20 02:26:59 +00:00
Ishant
49a8ca6f22 removed extra lines
Signed-off-by: Ishant <ishantgupta777@gmail.com>
2020-04-20 05:11:11 +05:30
Ishant Gupta
ef1f8996d5 Merge branch 'master' into tooltip_fix 2020-04-19 18:24:59 +05:30
Ishant
7234e3a4bb title changes with tooltip
Signed-off-by: Ishant <ishantgupta777@gmail.com>
2020-04-19 18:24:24 +05:30
dependabot-preview[bot]
027914dc37 Merge pull request #1716 from nextcloud/dependabot/npm_and_yarn/raw-loader-4.0.1 2020-04-19 07:05:14 +00:00
dependabot-preview[bot]
55ba716ce1 Bump raw-loader from 4.0.0 to 4.0.1
Bumps [raw-loader](https://github.com/webpack-contrib/raw-loader) from 4.0.0 to 4.0.1.
- [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/v4.0.0...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 07:01:25 +00:00
dependabot-preview[bot]
1344e0fcdf Merge pull request #1717 from nextcloud/dependabot/npm_and_yarn/vue-click-outside-1.1.0 2020-04-19 06:59:05 +00:00
dependabot-preview[bot]
e482503149 Bump vue-click-outside from 1.0.7 to 1.1.0
Bumps [vue-click-outside](https://github.com/vue-bulma/click-outside) from 1.0.7 to 1.1.0.
- [Release notes](https://github.com/vue-bulma/click-outside/releases)
- [Commits](https://github.com/vue-bulma/click-outside/commits/v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 06:55:05 +00:00
dependabot-preview[bot]
4a1d890130 Merge pull request #1719 from nextcloud/dependabot/npm_and_yarn/nextcloud/moment-1.1.1 2020-04-19 06:52:46 +00:00
dependabot-preview[bot]
10cf5acc5f Bump @nextcloud/moment from 1.1.0 to 1.1.1
Bumps [@nextcloud/moment](https://github.com/nextcloud/nextcloud-moment) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/nextcloud/nextcloud-moment/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-moment/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-moment/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 06:49:00 +00:00
dependabot-preview[bot]
b8c3693f6d Merge pull request #1720 from nextcloud/dependabot/npm_and_yarn/nextcloud/initial-state-1.1.2 2020-04-19 06:46:33 +00:00
dependabot-preview[bot]
851ff42ccf Bump @nextcloud/initial-state from 1.1.1 to 1.1.2
Bumps [@nextcloud/initial-state](https://github.com/nextcloud/nextcloud-initial-state) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/nextcloud/nextcloud-initial-state/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-initial-state/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-initial-state/compare/v1.1.1...v1.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 06:42:35 +00:00
dependabot-preview[bot]
6da10167d1 Merge pull request #1718 from nextcloud/dependabot/npm_and_yarn/url-loader-4.1.0 2020-04-19 06:40:11 +00:00
dependabot-preview[bot]
2455243156 Bump url-loader from 4.0.0 to 4.1.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 4.0.0 to 4.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/v4.0.0...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 02:49:48 +00:00
Nextcloud bot
b777345676 [tx-robot] updated from transifex 2020-04-19 02:27:10 +00:00
Ishant
ec5a8e9ebe translations added
Signed-off-by: Ishant <ishantgupta777@gmail.com>
2020-04-18 18:33:32 +05:30
Julius Härtl
381f23e195 Merge pull request #1710 from nextcloud/dependabot/npm_and_yarn/stylelint-scss-3.17.0 2020-04-18 09:33:57 +02:00
Julius Härtl
1308f93a1f Fix nextcloudignore paths
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-18 08:53:37 +02:00
Nextcloud bot
e67a08b1e9 [tx-robot] updated from transifex 2020-04-18 02:27:54 +00:00
Ishant
6009c10579 fixed tooltip bug and closes #1679
Signed-off-by: Ishant <ishantgupta777@gmail.com>
2020-04-18 05:40:54 +05:30
dependabot-preview[bot]
b447aff767 Bump stylelint-scss from 3.16.0 to 3.17.0
Bumps [stylelint-scss](https://github.com/kristerkari/stylelint-scss) from 3.16.0 to 3.17.0.
- [Release notes](https://github.com/kristerkari/stylelint-scss/releases)
- [Changelog](https://github.com/kristerkari/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kristerkari/stylelint-scss/compare/3.16.0...3.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 16:31:24 +00:00
dependabot-preview[bot]
9f10ea4dda Merge pull request #1691 from nextcloud/dependabot/npm_and_yarn/css-loader-3.5.2 2020-04-17 16:28:54 +00:00
dependabot-preview[bot]
b323a192f3 Bump css-loader from 3.4.2 to 3.5.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.2 to 3.5.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.2...v3.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 15:55:47 +00:00
dependabot-preview[bot]
ed3256a7cb Merge pull request #1696 from nextcloud/dependabot/npm_and_yarn/jest-25.3.0 2020-04-17 15:53:27 +00:00
dependabot-preview[bot]
3d2819f876 Bump jest from 25.2.7 to 25.3.0
Bumps [jest](https://github.com/facebook/jest) from 25.2.7 to 25.3.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/v25.2.7...v25.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 15:47:50 +00:00
dependabot-preview[bot]
676cbe8d03 Merge pull request #1695 from nextcloud/dependabot/npm_and_yarn/vue/test-utils-1.0.0-beta.33 2020-04-17 15:45:16 +00:00
dependabot-preview[bot]
61bda8f5a2 Bump @vue/test-utils from 1.0.0-beta.32 to 1.0.0-beta.33
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.0-beta.32 to 1.0.0-beta.33.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/packages/test-utils/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.0.0-beta.33/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 15:38:34 +00:00
dependabot-preview[bot]
7756305b7e Merge pull request #1694 from nextcloud/dependabot/npm_and_yarn/nextcloud/l10n-1.2.3 2020-04-17 15:35:32 +00:00
dependabot-preview[bot]
fba6b9bb92 Bump @nextcloud/l10n from 1.2.0 to 1.2.3
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.2.0 to 1.2.3.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.2.0...v1.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 15:17:13 +00:00
dependabot-preview[bot]
bf9b2f320b Merge pull request #1692 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-1.5.0 2020-04-17 15:14:25 +00:00
dependabot-preview[bot]
b5502b14ab Bump @nextcloud/vue from 1.4.1 to 1.5.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.4.1...v1.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 14:42:28 +00:00
dependabot-preview[bot]
21f9c09629 Merge pull request #1690 from nextcloud/dependabot/npm_and_yarn/babel/preset-env-7.9.5 2020-04-17 14:40:07 +00:00
dependabot-preview[bot]
8019699963 Bump @babel/preset-env from 7.9.0 to 7.9.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.0 to 7.9.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.9.0...v7.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 13:37:10 +00:00
dependabot-preview[bot]
1857205979 Merge pull request #1688 from nextcloud/dependabot/npm_and_yarn/juliushaertl/vue-richtext-0.3.1 2020-04-17 13:34:41 +00:00
dependabot-preview[bot]
02167c8fcc Bump @juliushaertl/vue-richtext from 0.3.0 to 0.3.1
Bumps [@juliushaertl/vue-richtext](https://github.com/juliushaertl/vue-richtext) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/juliushaertl/vue-richtext/releases)
- [Commits](https://github.com/juliushaertl/vue-richtext/compare/v0.3.0...v0.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 11:54:49 +00:00
dependabot-preview[bot]
8590add148 Merge pull request #1687 from nextcloud/dependabot/npm_and_yarn/babel-jest-25.3.0 2020-04-17 11:52:26 +00:00
dependabot-preview[bot]
fa7ea946fa Bump babel-jest from 25.2.6 to 25.3.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 25.2.6 to 25.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v25.3.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 10:51:34 +00:00
dependabot-preview[bot]
8a9bf82577 Merge pull request #1689 from nextcloud/dependabot/npm_and_yarn/nextcloud/auth-1.2.3 2020-04-17 10:49:15 +00:00
dependabot-preview[bot]
17399b3e78 Bump @nextcloud/auth from 1.2.2 to 1.2.3
Bumps [@nextcloud/auth](https://github.com/nextcloud/nextcloud-auth) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/nextcloud/nextcloud-auth/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-auth/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-auth/compare/v1.2.2...v1.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 09:40:38 +00:00
Julius Härtl
866843a942 Merge pull request #1705 from nextcloud/fix/cloneBoard
permissions added on board cloning
2020-04-17 11:38:19 +02:00
Julius Härtl
d7e2ade1f3 Merge pull request #1707 from nextcloud/fix/1682
archived cards adjustments
2020-04-17 11:36:54 +02:00
Julius Härtl
6c3cfd0035 Merge pull request #1706 from nextcloud/fix/1681
changed names
2020-04-17 11:36:04 +02:00
Julius Härtl
742d13827b Merge pull request #1708 from ishantgupta777/fixed_cards_in_archive_view
fixed cards getting added in archive view and closes #1682
2020-04-17 11:34:55 +02:00
Nextcloud bot
c2d30fc24b [tx-robot] updated from transifex 2020-04-17 02:27:25 +00:00
Ishant Gupta
e5da69c2c3 Merge branch 'master' into fixed_cards_in_archive_view 2020-04-17 07:49:49 +05:30
Ishant
478f849b51 fixed cards getting added in archive view and closes #1682
Signed-off-by: Ishant <ishantgupta777@gmail.com>
2020-04-17 07:38:07 +05:30
Jakob Röhrl
af2b37f53b archived cards adjustments
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-04-16 10:57:55 +02:00
Jakob Röhrl
95f2310b13 changed names
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-04-16 10:34:10 +02:00
Jakob Röhrl
fdda77e4b7 permissions added on board cloning
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-04-16 10:28:20 +02:00
Nextcloud bot
a1cbd1047d [tx-robot] updated from transifex 2020-04-16 02:29:01 +00:00
Nextcloud bot
5d70854f19 [tx-robot] updated from transifex 2020-04-15 02:28:44 +00:00
Nextcloud bot
c07a053d1f [tx-robot] updated from transifex 2020-04-14 02:28:39 +00:00
Nextcloud bot
b55ffaff76 [tx-robot] updated from transifex 2020-04-13 02:33:02 +00:00
Nextcloud bot
f7ebdf0626 [tx-robot] updated from transifex 2020-04-11 02:30:48 +00:00
Nextcloud bot
7befe236ee [tx-robot] updated from transifex 2020-04-10 02:30:46 +00:00
Julius Härtl
99c3beafb7 1.0.0 is 18+ only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-09 16:34:53 +02:00
Julius Härtl
9dc78b790c Merge pull request #1654 from nextcloud/release/1.0.0-beta1
Prepare 1.0.0 Beta 1
2020-04-09 16:34:20 +02:00
Julius Härtl
854798f7e2 Merge pull request #1670 from nextcloud/bugfix/noid/fix-card-order
Fix filtering and sorting of stacks that caused card reordering
2020-04-09 16:34:05 +02:00
Julius Härtl
59211e3e9b Merge pull request #1669 from nextcloud/enh/design-card
Adjust card design
2020-04-09 15:26:35 +02:00
Julius Härtl
929ef69d31 Fix filtering and sorting of stacks that caused card reordering to only apply after reload
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-09 12:24:29 +02:00
Julius Härtl
4e091d0428 Fix checkmark text spacing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-09 10:50:47 +02:00
Julius Härtl
266818cd2b Adjust card design
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-09 10:47:15 +02:00
Nextcloud bot
fd82f4c792 [tx-robot] updated from transifex 2020-04-09 02:30:23 +00:00
Nextcloud bot
e7d2c74986 [tx-robot] updated from transifex 2020-04-08 02:30:32 +00:00
Julius Härtl
23e06b58f5 Merge pull request #1653 from nextcloud/bugfix/noid/use-parent-permission
Harden permission check on reshares
2020-04-07 12:08:23 +02:00
Julius Härtl
bea8370c03 Merge pull request #1656 from nextcloud/bugfix/noid/snap.js-disable
Disable snap.js
2020-04-07 12:07:47 +02:00
Julius Härtl
08284caedd Merge pull request #1652 from nextcloud/enh/attachmentProgressIndicator
Progress indicator for attachment uploads
2020-04-07 12:07:16 +02:00
Nextcloud bot
da3cc5b589 [tx-robot] updated from transifex 2020-04-07 02:29:29 +00:00
Julius Härtl
d0d2da490c Merge pull request #1662 from nextcloud/bugfix/noid/save-desc
Properly update description and add autosave delay
2020-04-06 14:28:23 +02:00
Julius Härtl
f6b4807ba0 Properly update description and add autosave delay
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-06 08:58:29 +02:00
Nextcloud bot
50391204c9 [tx-robot] updated from transifex 2020-04-06 02:29:42 +00:00
dependabot-preview[bot]
5ca5ff3a71 Merge pull request #1657 from nextcloud/dependabot/npm_and_yarn/nextcloud/l10n-1.2.0 2020-04-05 08:50:51 +00:00
dependabot-preview[bot]
7a657b4edc Bump @nextcloud/l10n from 1.1.1 to 1.2.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.1.1 to 1.2.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.1.1...v1.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-05 08:46:37 +00:00
dependabot-preview[bot]
0c8dac5f4c Merge pull request #1658 from nextcloud/dependabot/npm_and_yarn/eslint-loader-3.0.4 2020-04-05 08:44:18 +00:00
dependabot-preview[bot]
02ec4cc57d Bump eslint-loader from 3.0.3 to 3.0.4
Bumps [eslint-loader](https://github.com/webpack-contrib/eslint-loader) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/webpack-contrib/eslint-loader/releases)
- [Changelog](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/eslint-loader/compare/v3.0.3...v3.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-05 08:36:54 +00:00
dependabot-preview[bot]
63de91dddc Merge pull request #1659 from nextcloud/dependabot/npm_and_yarn/babel-jest-25.2.6 2020-04-05 08:34:25 +00:00
dependabot-preview[bot]
16401ae879 Bump babel-jest from 25.1.0 to 25.2.6
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 25.1.0 to 25.2.6.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v25.2.6/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-05 08:28:23 +00:00
dependabot-preview[bot]
64ec3d1754 Merge pull request #1660 from nextcloud/dependabot/npm_and_yarn/eslint-plugin-import-2.20.2 2020-04-05 08:25:57 +00:00
dependabot-preview[bot]
16c1184bb1 Bump eslint-plugin-import from 2.20.1 to 2.20.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.1 to 2.20.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.1...v2.20.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-05 08:13:13 +00:00
dependabot-preview[bot]
5eb4bd2a9b Merge pull request #1661 from nextcloud/dependabot/npm_and_yarn/jest-25.2.7 2020-04-05 08:10:48 +00:00
dependabot-preview[bot]
5d369a3cb5 Bump jest from 25.2.3 to 25.2.7
Bumps [jest](https://github.com/facebook/jest) from 25.2.3 to 25.2.7.
- [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/v25.2.3...v25.2.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-05 08:05:20 +00:00
Nextcloud bot
08990a1d42 [tx-robot] updated from transifex 2020-04-05 02:29:32 +00:00
Julius Härtl
cf4b59ddcd Disable snap.js
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 22:49:07 +02:00
Julius Härtl
e22a72d836 Add CHANGELOG draft for 1.0.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 21:51:38 +02:00
Julius Härtl
a590e15e75 Bump version to 1.0.0-beta1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 21:46:18 +02:00
Julius Härtl
396a5c395f Fix styling and run only two uploads in parallel
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 21:36:41 +02:00
Julius Härtl
22fb70f957 Add progress indicator and basic uplaod queue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 21:24:15 +02:00
Jakob Röhrl
6cab67cb11 axios config
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-04-04 21:01:36 +02:00
Julius Härtl
bb6790882a Let new shares only use the current users permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-04 12:58:14 +02:00
Nextcloud bot
2eca9c2d01 [tx-robot] updated from transifex 2020-04-04 02:29:19 +00:00
Julius Härtl
7d5dfab739 Merge pull request #1629 from nextcloud/enh/assign-groups
Assign groups/circles to cards
2020-04-03 10:24:53 +02:00
Nextcloud bot
39c493433f [tx-robot] updated from transifex 2020-04-02 02:19:21 +00:00
Julius Härtl
541fc9cfbb Fix primary key usage with different types
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-01 20:52:13 +02:00
Julius Härtl
17c63989b1 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-01 20:52:13 +02:00
Julius Härtl
d6eac1b11a Add frontend for assigning groups to cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-01 20:52:09 +02:00
Julius Härtl
3c6a177da9 Add backend for assigning groups to cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-04-01 20:52:09 +02:00
Julius Härtl
097e8df2ad Merge pull request #1651 from nextcloud/enh/showIfControlIsActive
show if filter or archiv view is set
2020-04-01 11:21:51 +02:00
Jakob Röhrl
1d33b803f5 show if filter or archiv is set
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-04-01 11:01:22 +02:00
Nextcloud bot
b5f1037964 [tx-robot] updated from transifex 2020-04-01 02:19:18 +00:00
Julius Härtl
b98b89061e Merge pull request #1648 from nextcloud/bugfix/1430/duedate-create
Allow to set duedate during card creation
2020-03-31 14:26:12 +02:00
Julius Härtl
d461614d5f Merge pull request #1649 from nextcloud/bugfix/1094/deleted-card-notification
Do not get deleted cards when fetching overdue for notifications
2020-03-31 14:26:03 +02:00
Nextcloud bot
0485c6f70c [tx-robot] updated from transifex 2020-03-31 02:30:15 +00:00
Nextcloud bot
7bb5f28ea9 [tx-robot] updated from transifex 2020-03-30 02:29:45 +00:00
Julius Härtl
9f9d6797bf Do not get deleted cards when fetching overdue for notifications
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-29 12:40:41 +02:00
Julius Härtl
1781aaafb7 Allow to set duedate during card creation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-29 12:37:04 +02:00
Julius Härtl
fdfbcb6535 Merge pull request #1610 from nextcloud/enh/attachment-dad-cards
new mixin and component
2020-03-29 11:50:35 +02:00
Julius Härtl
2d639ed470 Fix styling and attachment count assignment
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-29 11:44:59 +02:00
Jakob Röhrl
67083b8fce new mixin and component
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-29 11:44:33 +02:00
Julius Härtl
6d6f8aaa7a Merge pull request #1640 from nextcloud/dependabot/npm_and_yarn/vue-loader-15.9.1
Bump vue-loader from 15.9.0 to 15.9.1
2020-03-29 09:40:45 +02:00
Julius Härtl
1b1a72fc90 Merge pull request #1646 from nextcloud/dependabot/npm_and_yarn/blueimp-md5-2.13.0
Bump blueimp-md5 from 2.12.0 to 2.13.0
2020-03-29 09:40:03 +02:00
Julius Härtl
a9b4fe12c3 Merge pull request #1644 from nextcloud/dependabot/npm_and_yarn/babel/runtime-7.9.2
Bump @babel/runtime from 7.8.7 to 7.9.2
2020-03-29 09:39:54 +02:00
Julius Härtl
4b78d59818 Merge pull request #1645 from nextcloud/dependabot/npm_and_yarn/babel-loader-8.1.0
Bump babel-loader from 8.0.6 to 8.1.0
2020-03-29 09:39:46 +02:00
Julius Härtl
62148d587d Merge pull request #1643 from nextcloud/dependabot/npm_and_yarn/babel/preset-env-7.9.0
Bump @babel/preset-env from 7.8.7 to 7.9.0
2020-03-29 09:39:34 +02:00
dependabot-preview[bot]
dd99f2a5af Bump @babel/preset-env from 7.8.7 to 7.9.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.7 to 7.9.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.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:36:13 +00:00
dependabot-preview[bot]
cb3f01d022 Bump blueimp-md5 from 2.12.0 to 2.13.0
Bumps [blueimp-md5](https://github.com/blueimp/JavaScript-MD5) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/blueimp/JavaScript-MD5/releases)
- [Commits](https://github.com/blueimp/JavaScript-MD5/compare/v2.12.0...v2.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:36:10 +00:00
dependabot-preview[bot]
9ed47bca7a Bump babel-loader from 8.0.6 to 8.1.0
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.0.6 to 8.1.0.
- [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.6...v8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:36:00 +00:00
dependabot-preview[bot]
42116419ad Bump @babel/runtime from 7.8.7 to 7.9.2
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.7 to 7.9.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/commits/v7.9.2/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:35:56 +00:00
dependabot-preview[bot]
34a7265095 Bump vue-loader from 15.9.0 to 15.9.1
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.0 to 15.9.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.9.0...v15.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:35:52 +00:00
Julius Härtl
60d9efe413 Merge pull request #1647 from nextcloud/dependabot/npm_and_yarn/eslint-plugin-node-11.1.0
Bump eslint-plugin-node from 11.0.0 to 11.1.0
2020-03-29 09:33:32 +02:00
dependabot-preview[bot]
31db28275f Bump eslint-plugin-node from 11.0.0 to 11.1.0
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v11.0.0...v11.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 07:26:00 +00:00
Julius Härtl
1700ea3094 Merge pull request #1642 from nextcloud/dependabot/npm_and_yarn/nextcloud/router-1.0.2
Bump @nextcloud/router from 1.0.0 to 1.0.2
2020-03-29 09:24:05 +02:00
Julius Härtl
44c5740c48 Merge pull request #1641 from nextcloud/dependabot/npm_and_yarn/babel/core-7.9.0
Bump @babel/core from 7.8.7 to 7.9.0
2020-03-29 09:23:49 +02:00
Julius Härtl
0451fe7189 Merge pull request #1638 from nextcloud/dependabot/npm_and_yarn/jest-25.2.3
Bump jest from 25.1.0 to 25.2.3
2020-03-29 09:23:33 +02:00
Julius Härtl
53ca39f3f9 Merge pull request #1639 from nextcloud/dependabot/npm_and_yarn/webpack-4.42.1
Bump webpack from 4.42.0 to 4.42.1
2020-03-29 09:23:19 +02:00
Nextcloud bot
83201866e0 [tx-robot] updated from transifex 2020-03-29 02:32:28 +00:00
dependabot-preview[bot]
d7f68494af Bump @nextcloud/router from 1.0.0 to 1.0.2
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 1.0.0 to 1.0.2.
- [Release notes](https://github.com/nextcloud/nextcloud-router/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-router/compare/v1.0.0...v1.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 01:19:08 +00:00
dependabot-preview[bot]
40e7a63492 Bump @babel/core from 7.8.7 to 7.9.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.7 to 7.9.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.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 01:18:25 +00:00
dependabot-preview[bot]
fee21f75ac Bump webpack from 4.42.0 to 4.42.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.42.0 to 4.42.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.42.0...v4.42.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 01:16:09 +00:00
dependabot-preview[bot]
ff555f96e4 Bump jest from 25.1.0 to 25.2.3
Bumps [jest](https://github.com/facebook/jest) from 25.1.0 to 25.2.3.
- [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/v25.1.0...v25.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-29 01:14:59 +00:00
Nextcloud bot
5f04b383a7 [tx-robot] updated from transifex 2020-03-28 02:29:13 +00:00
Nextcloud bot
a457f852b4 [tx-robot] updated from transifex 2020-03-25 02:29:04 +00:00
Nextcloud bot
4322815b43 [tx-robot] updated from transifex 2020-03-24 02:29:57 +00:00
Julius Härtl
af868c0765 Merge pull request #1628 from nextcloud/bugfix/create-card
Fix showing cards after create
2020-03-23 10:51:17 +01:00
Nextcloud bot
239504166f [tx-robot] updated from transifex 2020-03-23 02:29:41 +00:00
Julius Härtl
a3d3d55991 Merge pull request #1626 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-1.4.1
Bump @nextcloud/vue from 1.4.0 to 1.4.1
2020-03-22 17:04:32 +01:00
dependabot-preview[bot]
6e2d556032 Merge pull request #1620 from nextcloud/dependabot/npm_and_yarn/nextcloud/dialogs-1.2.2 2020-03-22 12:18:18 +00:00
dependabot-preview[bot]
789ebf01c6 Bump @nextcloud/dialogs from 1.2.1 to 1.2.2
Bumps [@nextcloud/dialogs](https://github.com/nextcloud/nextcloud-dialogs) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/nextcloud/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-dialogs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-dialogs/compare/v1.2.1...v1.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 12:09:49 +00:00
dependabot-preview[bot]
efde457dc7 Merge pull request #1617 from nextcloud/dependabot/npm_and_yarn/nextcloud/auth-1.2.2 2020-03-22 12:07:32 +00:00
dependabot-preview[bot]
b93ffd754d Bump @nextcloud/auth from 1.2.1 to 1.2.2
Bumps [@nextcloud/auth](https://github.com/nextcloud/nextcloud-auth) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/nextcloud/nextcloud-auth/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-auth/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-auth/compare/v1.2.1...v1.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 11:56:12 +00:00
dependabot-preview[bot]
aea46726ac Merge pull request #1623 from nextcloud/dependabot/npm_and_yarn/nextcloud/initial-state-1.1.1 2020-03-22 11:53:54 +00:00
Julius Härtl
b705ac8ff7 Fix showing cards after create
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-22 12:35:12 +01:00
dependabot-preview[bot]
bb94e3dfa8 Bump @nextcloud/initial-state from 1.1.0 to 1.1.1
Bumps [@nextcloud/initial-state](https://github.com/nextcloud/nextcloud-initial-state) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/nextcloud/nextcloud-initial-state/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-initial-state/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-initial-state/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 11:22:52 +00:00
Julius Härtl
0a1663557c Merge pull request #1614 from nextcloud/dependabot/npm_and_yarn/nextcloud/files-1.0.1
Bump @nextcloud/files from 1.0.0 to 1.0.1
2020-03-22 12:20:48 +01:00
Julius Härtl
d2e1852fbf Merge pull request #1621 from nextcloud/dependabot/npm_and_yarn/nextcloud/axios-1.3.2
Bump @nextcloud/axios from 1.3.1 to 1.3.2
2020-03-22 12:20:34 +01:00
Julius Härtl
d16d9502c8 Merge pull request #1625 from nextcloud/dependabot/npm_and_yarn/url-loader-4.0.0
Bump url-loader from 3.0.0 to 4.0.0
2020-03-22 12:20:00 +01:00
Julius Härtl
0e0632f1f8 Merge pull request #1622 from nextcloud/dependabot/npm_and_yarn/file-loader-6.0.0
Bump file-loader from 5.1.0 to 6.0.0
2020-03-22 12:19:49 +01:00
Julius Härtl
075cc31f01 Merge branch 'master' into dependabot/npm_and_yarn/nextcloud/vue-1.4.1 2020-03-22 12:19:43 +01:00
Julius Härtl
3866f86689 Merge pull request #1624 from nextcloud/dependabot/npm_and_yarn/stylelint-scss-3.16.0
Bump stylelint-scss from 3.14.2 to 3.16.0
2020-03-22 12:19:32 +01:00
Julius Härtl
273d3a8df6 Merge pull request #1627 from nextcloud/dependabot/npm_and_yarn/nextcloud/l10n-1.1.1
Bump @nextcloud/l10n from 1.1.0 to 1.1.1
2020-03-22 12:18:48 +01:00
Nextcloud bot
dcef6ece5f [tx-robot] updated from transifex 2020-03-22 02:29:16 +00:00
dependabot-preview[bot]
adbff2250e Bump @nextcloud/l10n from 1.1.0 to 1.1.1
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:28:45 +00:00
dependabot-preview[bot]
50a240677c Bump @nextcloud/vue from 1.4.0 to 1.4.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.4.0...v1.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:28:03 +00:00
dependabot-preview[bot]
ecd9f10831 Bump url-loader from 3.0.0 to 4.0.0
Bumps [url-loader](https://github.com/webpack-contrib/url-loader) from 3.0.0 to 4.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/v3.0.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:26:54 +00:00
dependabot-preview[bot]
d58533c8ba Bump stylelint-scss from 3.14.2 to 3.16.0
Bumps [stylelint-scss](https://github.com/kristerkari/stylelint-scss) from 3.14.2 to 3.16.0.
- [Release notes](https://github.com/kristerkari/stylelint-scss/releases)
- [Changelog](https://github.com/kristerkari/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kristerkari/stylelint-scss/compare/3.14.2...3.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:26:08 +00:00
dependabot-preview[bot]
29793e6821 Bump file-loader from 5.1.0 to 6.0.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 5.1.0 to 6.0.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v5.1.0...v6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:24:32 +00:00
dependabot-preview[bot]
3129d9db99 Bump @nextcloud/axios from 1.3.1 to 1.3.2
Bumps [@nextcloud/axios](https://github.com/nextcloud/nextcloud-axios) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/nextcloud/nextcloud-axios/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-axios/compare/v1.3.1...v1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:23:45 +00:00
dependabot-preview[bot]
6b82f8170b Bump @nextcloud/files from 1.0.0 to 1.0.1
Bumps @nextcloud/files from 1.0.0 to 1.0.1.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-22 02:20:41 +00:00
Nextcloud bot
ccc5eaf509 [tx-robot] updated from transifex 2020-03-21 02:29:57 +00:00
Nextcloud bot
84ac811c23 [tx-robot] updated from transifex 2020-03-17 02:30:01 +00:00
dependabot-preview[bot]
db87f7c5c4 Merge pull request #1606 from nextcloud/dependabot/npm_and_yarn/eslint-plugin-vue-6.2.2 2020-03-16 07:47:41 +00:00
dependabot-preview[bot]
62b7436f26 Bump eslint-plugin-vue from 6.2.1 to 6.2.2
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v6.2.1...v6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 07:43:39 +00:00
Julius Härtl
48bd893b3d Merge pull request #1608 from nextcloud/dependabot/npm_and_yarn/vue/test-utils-1.0.0-beta.32
Bump @vue/test-utils from 1.0.0-beta.31 to 1.0.0-beta.32
2020-03-16 08:41:12 +01:00
dependabot-preview[bot]
cae1ae5cba Bump @vue/test-utils from 1.0.0-beta.31 to 1.0.0-beta.32
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.0-beta.31 to 1.0.0-beta.32.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/packages/test-utils/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.0.0-beta.32/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 07:39:21 +00:00
Julius Härtl
76bb15738f Merge pull request #1607 from nextcloud/dependabot/npm_and_yarn/vuex-3.1.3
Bump vuex from 3.1.2 to 3.1.3
2020-03-16 08:37:52 +01:00
Nextcloud bot
9d12ed12fb [tx-robot] updated from transifex 2020-03-16 02:32:28 +00:00
Nextcloud bot
cff20e33f6 [tx-robot] updated from transifex 2020-03-15 02:30:35 +00:00
dependabot-preview[bot]
0206941b85 Bump vuex from 3.1.2 to 3.1.3
Bumps [vuex](https://github.com/vuejs/vuex) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Commits](https://github.com/vuejs/vuex/compare/v3.1.2...v3.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-15 02:18:13 +00:00
Julius Härtl
c94bf25f54 Merge pull request #1601 from nextcloud/enh/dad
drag and drop on attachment tab
2020-03-14 09:51:40 +01:00
Julius Härtl
b600d13806 Merge pull request #1603 from nextcloud/dependabot/npm_and_yarn/acorn-6.4.1
[Security] Bump acorn from 6.4.0 to 6.4.1
2020-03-14 09:51:13 +01:00
Nextcloud bot
5bc0044a29 [tx-robot] updated from transifex 2020-03-14 02:29:01 +00:00
dependabot-preview[bot]
dc35ad16f6 [Security] Bump acorn from 6.4.0 to 6.4.1
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-13 22:18:54 +00:00
Julius Härtl
d10d8bdebb Cleanup and simplify animation
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-13 13:04:50 +01:00
Jakob
25679b0fb4 Merge branch 'master' into enh/dad 2020-03-13 11:11:18 +01:00
Nextcloud bot
bb9cb194bb [tx-robot] updated from transifex 2020-03-13 02:29:22 +00:00
Jakob Röhrl
bb01ccf638 permissions impl
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-12 14:52:51 +01:00
Julius Härtl
c770689e99 Merge pull request #1600 from nextcloud/bugfix/noid/filesize
Add back initial state and check for filesize and canCreate permissions
2020-03-12 12:01:36 +01:00
Jakob Röhrl
b3e5bf8324 drag and drop on attachment tab
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-12 11:30:23 +01:00
Julius Härtl
59e3c8ce61 Add back initial state and check for filesize and canCreate permissions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-12 10:56:23 +01:00
Julius Härtl
1348990868 Merge pull request #1524 from nextcloud/enh/attachments
Attachments
2020-03-12 08:32:57 +01:00
Julius Härtl
bb30205f86 Make upload button a bit nicer
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-12 08:20:44 +01:00
Julius Härtl
7fb7fbc0d1 Fix unit tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-12 08:11:42 +01:00
Nextcloud bot
b82b42faf9 [tx-robot] updated from transifex 2020-03-12 02:29:25 +00:00
Julius Härtl
98b733338b Fix updating attachments and computed properties
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-11 14:55:59 +01:00
Julius Härtl
10a12a7291 Bump package-lock
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-11 12:10:11 +01:00
Jakob Röhrl
b90842e717 styles
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-11 12:08:49 +01:00
Jakob Röhrl
d27a5ac9ba override attachment
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-11 12:08:23 +01:00
Jakob Röhrl
725f99d8b8 update attachment
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-11 12:08:04 +01:00
Jakob Röhrl
1e3ff41cb2 new exception
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-11 12:08:03 +01:00
Jakob Röhrl
7750621917 X1st try
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-03-11 12:08:02 +01:00
Nextcloud bot
27679c43bf [tx-robot] updated from transifex 2020-03-11 02:30:01 +00:00
Julius Härtl
ebafe3c98e Merge pull request #1575 from nextcloud/bugfix/trashbin
Trashbin refactoring
2020-03-10 12:39:18 +01:00
Julius Härtl
4482356bb0 Merge pull request #1576 from nextcloud/bugfix/noid/board-jumping
Fix card sizing when editing
2020-03-10 12:39:10 +01:00
Julius Härtl
cbaa47ade3 Refactor deleted items into trashbin store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 12:31:31 +01:00
Julius Härtl
87ae02246c Fix restoring cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 12:30:21 +01:00
Julius Härtl
f89cac2822 Merge pull request #1574 from nextcloud/bugfix/noid/duedate-udpate
Make sure due date is properly updated in the UI
2020-03-10 12:29:21 +01:00
Julius Härtl
486e8bf89d Dynamically size card height
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 12:27:57 +01:00
Julius Härtl
095f64c4c3 Fix card sizing when editing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 12:27:56 +01:00
Julius Härtl
82f35bb5ab Merge pull request #1537 from nextcloud/enh/comments-reply
Comments reply
2020-03-10 12:27:04 +01:00
Julius Härtl
7e4b42a223 Comments are available to all users of a board though webdav, but at least check for read permission to the board
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 12:13:32 +01:00
Julius Härtl
08310406a1 Fix editing comments in the UI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:58:23 +01:00
Julius Härtl
3f891bf103 Add API docs for comments OCS API
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:58:15 +01:00
Julius Härtl
755f0527dd Fix reply styling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
b7a870fae6 Cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
81e8100897 Fix extracting the richtext element since there is no component ref available for functional components
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
694438bd3a Move to OCS requests in comments api service
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
ecbbc29384 Show relative timestamp using mixin
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
fb06cac246 Move to OCS routes for new comments api
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
7ab2a839e7 Add fixme about ins/del
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:38 +01:00
Julius Härtl
ef48636f5d Do not lint jsdocs for now
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:37 +01:00
Julius Härtl
cc4e544eef Use @nextcloud/router
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:37 +01:00
Julius Härtl
841fa0d4dd Implement api endpoints for comment reply handling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:37 +01:00
Julius Härtl
e6de5fe3a9 Properly handle spaces in user ids (fixes #1515)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:16:34 +01:00
Julius Härtl
07fd562a55 WIP: Comment reply
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:15:45 +01:00
Julius Härtl
0a27174592 Make sure due date is properly updated in the UI
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-10 11:09:31 +01:00
Julius Härtl
8457f2f6c2 Merge pull request #1573 from nextcloud/enh/migrations
Move to database migrations
2020-03-10 11:04:15 +01:00
Julius Härtl
26d895dfd8 Merge pull request #1577 from nextcloud/bugfix/1274
Show tooltip with local timezone
2020-03-09 10:38:58 +01:00
Julius Härtl
05d0bdbb61 Merge pull request #1579 from nextcloud/bugfix/card-store-cleanup
Card store cleanup
2020-03-09 10:38:21 +01:00
dependabot-preview[bot]
6f17d0bdf8 Merge pull request #1586 from nextcloud/dependabot/npm_and_yarn/babel/core-7.8.7 2020-03-07 20:09:00 +00:00
dependabot-preview[bot]
4c30de712f Bump @babel/core from 7.8.6 to 7.8.7
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.6 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 20:02:58 +00:00
dependabot-preview[bot]
92c97f2f53 Merge pull request #1588 from nextcloud/dependabot/npm_and_yarn/babel/polyfill-7.8.7 2020-03-07 20:00:28 +00:00
dependabot-preview[bot]
4b88762bfc Bump @babel/polyfill from 7.8.3 to 7.8.7
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.8.3 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.3...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 19:55:42 +00:00
dependabot-preview[bot]
da63057432 Merge pull request #1590 from nextcloud/dependabot/npm_and_yarn/babel/runtime-7.8.7 2020-03-07 19:53:16 +00:00
dependabot-preview[bot]
f0447d0107 Bump @babel/runtime from 7.8.4 to 7.8.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.4 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.7/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 19:48:25 +00:00
dependabot-preview[bot]
ca98b8a774 Merge pull request #1589 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-1.4.0 2020-03-07 19:46:09 +00:00
dependabot-preview[bot]
627c04f089 Bump @nextcloud/vue from 1.3.1 to 1.4.0
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.3.1 to 1.4.0.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.3.1...v1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 19:40:43 +00:00
dependabot-preview[bot]
73f921e979 Merge pull request #1587 from nextcloud/dependabot/npm_and_yarn/babel/preset-env-7.8.7 2020-03-07 19:38:18 +00:00
dependabot-preview[bot]
3704a7e393 Bump @babel/preset-env from 7.8.6 to 7.8.7
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.6 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 19:33:35 +00:00
dependabot-preview[bot]
99b79846d1 Merge pull request #1585 from nextcloud/dependabot/npm_and_yarn/vue-infinite-loading-2.4.5 2020-03-07 19:31:06 +00:00
dependabot-preview[bot]
06870c27f3 Bump vue-infinite-loading from 2.4.4 to 2.4.5
Bumps [vue-infinite-loading](https://github.com/PeachScript/vue-infinite-loading) from 2.4.4 to 2.4.5.
- [Release notes](https://github.com/PeachScript/vue-infinite-loading/releases)
- [Commits](https://github.com/PeachScript/vue-infinite-loading/compare/v2.4.4...v2.4.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 19:20:32 +00:00
dependabot-preview[bot]
6c21a55bcd Merge pull request #1583 from nextcloud/dependabot/npm_and_yarn/webpack-4.42.0 2020-03-07 19:18:11 +00:00
dependabot-preview[bot]
69b3538b13 Bump webpack from 4.41.6 to 4.42.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.6 to 4.42.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.6...v4.42.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-07 17:32:42 +00:00
Julius Härtl
498453e7a3 Catch errors in vue app and emit message if provided by the response
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-07 10:58:19 +01:00
Julius Härtl
e69abd9be5 Unify mutations to modify card properties and move to async actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-07 10:57:54 +01:00
Julius Härtl
d577288ec8 Fix navigating to card without assigned users
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-07 10:56:49 +01:00
Julius Härtl
efd6e9f64b Add loading indicator and autofocus
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-07 10:56:29 +01:00
Julius Härtl
44f2915d1e Show tooltip with local timezone
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-07 09:48:04 +01:00
Julius Härtl
c16ac70b48 Move to database migrations
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-03-06 17:19:11 +01:00
Nextcloud bot
c2641d2aaa [tx-robot] updated from transifex 2020-03-06 02:29:18 +00:00
Nextcloud bot
b5660f1882 [tx-robot] updated from transifex 2020-03-05 02:29:31 +00:00
Julius Härtl
a3a49dc00f Add link to the android app 2020-03-03 11:46:34 +01:00
dependabot-preview[bot]
74350c4224 Merge pull request #1566 from nextcloud/dependabot/npm_and_yarn/babel/core-7.8.6 2020-03-02 07:00:16 +00:00
dependabot-preview[bot]
ff850e2513 Bump @babel/core from 7.8.4 to 7.8.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.4 to 7.8.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 06:46:36 +00:00
dependabot-preview[bot]
cb31215aad Merge pull request #1567 from nextcloud/dependabot/npm_and_yarn/vue-router-3.1.6 2020-03-02 06:43:47 +00:00
dependabot-preview[bot]
cb924df96b Bump vue-router from 3.1.5 to 3.1.6
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.1.5 to 3.1.6.
- [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.5...v3.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 06:39:25 +00:00
dependabot-preview[bot]
10c4b17131 Merge pull request #1568 from nextcloud/dependabot/npm_and_yarn/juliushaertl/vue-richtext-0.3.0 2020-03-02 06:36:43 +00:00
dependabot-preview[bot]
6f1e0f220d Bump @juliushaertl/vue-richtext from 0.2.1 to 0.3.0
Bumps [@juliushaertl/vue-richtext](https://github.com/juliushaertl/vue-richtext) from 0.2.1 to 0.3.0.
- [Release notes](https://github.com/juliushaertl/vue-richtext/releases)
- [Commits](https://github.com/juliushaertl/vue-richtext/compare/v0.2.1...v0.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 06:33:14 +00:00
dependabot-preview[bot]
9a0426fadc Merge pull request #1570 from nextcloud/dependabot/npm_and_yarn/babel-eslint-10.1.0 2020-03-02 06:30:19 +00:00
dependabot-preview[bot]
800387281e Bump babel-eslint from 10.0.3 to 10.1.0
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.3 to 10.1.0.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.3...v10.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 06:26:07 +00:00
dependabot-preview[bot]
88feafd631 Merge pull request #1569 from nextcloud/dependabot/npm_and_yarn/babel/preset-env-7.8.6 2020-03-02 06:23:14 +00:00
dependabot-preview[bot]
807acd4534 Bump @babel/preset-env from 7.8.4 to 7.8.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.4 to 7.8.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 06:19:44 +00:00
Nextcloud bot
855cfee58c [tx-robot] updated from transifex 2020-03-02 02:28:49 +00:00
Nextcloud bot
84e451b4eb [tx-robot] updated from transifex 2020-03-01 02:29:51 +00:00
Julius Härtl
7bec49f43b Merge pull request #1562 from BKapelari/issue#834
fixed issue #834
2020-02-27 11:22:10 +01:00
Bernhard Kapelari
b71ce38581 fixed issue
Signed-off-by: Bernhard Kapelari <bernhard@kapelari.com>
2020-02-26 20:50:22 +01:00
Nextcloud bot
8200d9663a [tx-robot] updated from transifex 2020-02-24 02:30:58 +00:00
dependabot-preview[bot]
8248e8b554 Merge pull request #1554 from nextcloud/dependabot/npm_and_yarn/eslint-plugin-vue-6.2.1 2020-02-23 21:08:25 +00:00
dependabot-preview[bot]
ebb9f369a8 Bump eslint-plugin-vue from 6.1.2 to 6.2.1
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 6.1.2 to 6.2.1.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v6.1.2...v6.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-23 21:03:57 +00:00
dependabot-preview[bot]
f33ce3bfc1 Merge pull request #1551 from nextcloud/dependabot/npm_and_yarn/juliushaertl/vue-richtext-0.2.1 2020-02-23 21:01:26 +00:00
dependabot-preview[bot]
598a338e59 Bump @juliushaertl/vue-richtext from 0.2.0 to 0.2.1
Bumps [@juliushaertl/vue-richtext](https://github.com/juliushaertl/vue-richtext) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/juliushaertl/vue-richtext/releases)
- [Commits](https://github.com/juliushaertl/vue-richtext/compare/v0.2.0...v0.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-23 20:56:37 +00:00
dependabot-preview[bot]
eb1d7e2899 Merge pull request #1552 from nextcloud/dependabot/npm_and_yarn/file-loader-5.1.0 2020-02-23 20:54:17 +00:00
dependabot-preview[bot]
b2c36f072f Bump file-loader from 5.0.2 to 5.1.0
Bumps [file-loader](https://github.com/webpack-contrib/file-loader) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/compare/v5.0.2...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-23 20:33:02 +00:00
dependabot-preview[bot]
feba6c3f12 Merge pull request #1553 from nextcloud/dependabot/npm_and_yarn/nextcloud/l10n-1.1.0 2020-02-23 20:30:51 +00:00
dependabot-preview[bot]
0d2e8f5d6a Bump @nextcloud/l10n from 1.0.1 to 1.1.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud/nextcloud-l10n) from 1.0.1 to 1.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-l10n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-l10n/compare/v1.0.1...v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-23 02:16:04 +00:00
Nextcloud bot
d8b173b7e5 [tx-robot] updated from transifex 2020-02-22 02:30:11 +00:00
Julius Härtl
14aec3e6d2 Merge pull request #1528 from nextcloud/reduceCardSpacing
reduce card spacing
2020-02-20 16:36:20 +01:00
Julius Härtl
7c6f32428a Remove space from sides of the stack
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-20 16:01:42 +01:00
Jakob Röhrl
99c9bac05c reduce card spacing
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-02-20 15:55:59 +01:00
Nextcloud bot
2fc20723c2 [tx-robot] updated from transifex 2020-02-20 02:29:52 +00:00
Nextcloud bot
edeb18bb38 [tx-robot] updated from transifex 2020-02-19 02:29:07 +00:00
Julius Härtl
fc2a0bcb04 Merge pull request #1541 from nextcloud/dependabot/npm_and_yarn/vue-loader-15.9.0
Bump vue-loader from 15.8.3 to 15.9.0
2020-02-18 13:07:23 +01:00
Nextcloud bot
89119581e7 [tx-robot] updated from transifex 2020-02-17 02:28:21 +00:00
dependabot-preview[bot]
f13af79b44 Bump vue-loader from 15.8.3 to 15.9.0
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.8.3 to 15.9.0.
- [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.8.3...v15.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-16 13:51:01 +00:00
dependabot-preview[bot]
2e9e899616 Merge pull request #1543 from nextcloud/dependabot/npm_and_yarn/webpack-cli-3.3.11 2020-02-16 13:48:33 +00:00
dependabot-preview[bot]
8a670a8d3c Bump webpack-cli from 3.3.10 to 3.3.11
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.10 to 3.3.11.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/next/CHANGELOG_v3.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.10...v3.3.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-16 13:40:25 +00:00
Julius Härtl
64ef894a92 Merge pull request #1544 from nextcloud/dependabot/npm_and_yarn/webpack-4.41.6
Bump webpack from 4.41.5 to 4.41.6
2020-02-16 14:38:14 +01:00
Nextcloud bot
6605ddafa4 [tx-robot] updated from transifex 2020-02-16 02:29:15 +00:00
dependabot-preview[bot]
8a835ce055 Bump webpack from 4.41.5 to 4.41.6
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.5 to 4.41.6.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.5...v4.41.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-16 02:17:27 +00:00
Nextcloud bot
3dde973559 [tx-robot] updated from transifex 2020-02-15 02:28:59 +00:00
Nextcloud bot
3c80af3353 [tx-robot] updated from transifex 2020-02-13 02:30:44 +00:00
Julius Härtl
030998a2cc Merge pull request #1530 from nextcloud/bugfix/noid/comments-check
Check for board membership on comments entity event
2020-02-11 09:31:36 +01:00
Nextcloud bot
d873763e02 [tx-robot] updated from transifex 2020-02-11 02:29:32 +00:00
dependabot-preview[bot]
ae2af26cb8 Merge pull request #1536 from nextcloud/dependabot/npm_and_yarn/eslint-plugin-import-2.20.1 2020-02-10 16:40:10 +00:00
dependabot-preview[bot]
90a82dbd8a Bump eslint-plugin-import from 2.20.0 to 2.20.1
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.0 to 2.20.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.0...v2.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 12:14:29 +00:00
dependabot-preview[bot]
0b4d3c476e Merge pull request #1535 from nextcloud/dependabot/npm_and_yarn/url-search-params-polyfill-8.0.0 2020-02-10 12:12:15 +00:00
dependabot-preview[bot]
566a20d7d5 Bump url-search-params-polyfill from 7.0.1 to 8.0.0
Bumps [url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill) from 7.0.1 to 8.0.0.
- [Release notes](https://github.com/jerrybendy/url-search-params-polyfill/releases)
- [Commits](https://github.com/jerrybendy/url-search-params-polyfill/compare/v7.0.1...v8.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 10:09:04 +00:00
Julius Härtl
acf2907978 Merge pull request #1533 from nextcloud/dependabot/npm_and_yarn/nextcloud-vue-collections-0.7.2
Bump nextcloud-vue-collections from 0.7.1 to 0.7.2
2020-02-10 11:07:07 +01:00
Julius Härtl
1b61288fa2 Merge pull request #1534 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-1.3.1
Bump @nextcloud/vue from 1.3.0 to 1.3.1
2020-02-10 11:06:55 +01:00
dependabot-preview[bot]
e53a5382e4 Bump nextcloud-vue-collections from 0.7.1 to 0.7.2
Bumps [nextcloud-vue-collections](https://github.com/juliushaertl/nextcloud-vue-collections) from 0.7.1 to 0.7.2.
- [Release notes](https://github.com/juliushaertl/nextcloud-vue-collections/releases)
- [Commits](https://github.com/juliushaertl/nextcloud-vue-collections/compare/v0.7.1...v0.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:38:15 +00:00
dependabot-preview[bot]
d2f742cc32 Bump @nextcloud/vue from 1.3.0 to 1.3.1
Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v1.3.0...v1.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 08:38:10 +00:00
Nextcloud bot
5eb78fe154 [tx-robot] updated from transifex 2020-02-10 02:29:12 +00:00
Nextcloud bot
96aa9324f4 [tx-robot] updated from transifex 2020-02-09 02:30:26 +00:00
Nextcloud bot
f95d58680f [tx-robot] updated from transifex 2020-02-08 02:29:18 +00:00
Julius Härtl
0e7b3b17dd Check for board membership on comments entity event
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-07 16:51:24 +01:00
rakekniven
65767dc5ac l10n: Fixed typo
Reported at Transifex.

Signed-off-by: rakekniven <mark.ziegler@rakekniven.de>
2020-02-07 12:59:27 +01:00
Nextcloud bot
720a75bac5 [tx-robot] updated from transifex 2020-02-07 02:45:10 +00:00
Jakob
2a94c53d4e Board filter (#1507)
* filter field

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

* build filters

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

* Implement tag and assigned user filters

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

* small changes

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

* new icon

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

* Properly style filter popover

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

* Make sure that due is reactive

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

* filers are working now :)

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

Co-authored-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 17:47:01 +01:00
Julius Härtl
0a003fe491 Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 12:08:33 +01:00
Julius Härtl
6439b8b4c9 Hide tabs if comments/activity is disabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 12:08:33 +01:00
Julius Härtl
618a81cfb5 Add tag icon to activity stream
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 12:08:33 +01:00
Julius Härtl
729d728694 Properly use filtered activities to check for last received
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 12:08:33 +01:00
Julius Härtl
2a4b2b7d49 Finish activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-06 12:08:33 +01:00
Julius Härtl
9eea838a3c Merge pull request #1527 from nextcloud/tests/more-github-actions
More github actions
2020-02-06 11:48:58 +01:00
Nextcloud bot
f7e489c567 [tx-robot] updated from transifex 2020-02-06 02:30:29 +00:00
Julius Härtl
5b0c0f8195 Add lint script to composer
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-05 20:28:35 +01:00
Julius Härtl
5e6cc83de0 Remove node build from drone
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-05 20:26:33 +01:00
Julius Härtl
348538fe6c Add dedicated lint action
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-05 20:25:17 +01:00
Jakob
8d331845f6 Merge pull request #1525 from nextcloud/bugfix/sentry
Fix undefined users variable
2020-02-05 11:28:28 +01:00
Jakob
5427d6ab78 Merge branch 'master' into bugfix/sentry 2020-02-05 11:12:25 +01:00
Nextcloud bot
31bec057f8 [tx-robot] updated from transifex 2020-02-05 02:29:14 +00:00
Julius Härtl
1f724fb612 Fix undefined users variable
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-04 16:44:11 +01:00
Julius Härtl
9bf3d4edef Merge pull request #1520 from nextcloud/dependabot/npm_and_yarn/babel/core-7.8.4
Bump @babel/core from 7.8.3 to 7.8.4
2020-02-04 12:46:45 +01:00
Julius Härtl
e8afb5c319 Merge pull request #1519 from nextcloud/dependabot/npm_and_yarn/babel/runtime-7.8.4
Bump @babel/runtime from 7.8.3 to 7.8.4
2020-02-04 12:46:33 +01:00
Julius Härtl
5db9201d89 Merge pull request #1511 from nextcloud/enh/card-search
search cards (title and description)
2020-02-04 12:46:07 +01:00
Jakob
f260884217 Merge branch 'master' into enh/card-search 2020-02-04 12:26:50 +01:00
Jakob Röhrl
b567a744a6 :case insensitive and litte changes
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-02-04 12:26:20 +01:00
dependabot-preview[bot]
5dbcf648f0 Bump @babel/runtime from 7.8.3 to 7.8.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.3 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.4/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 11:26:01 +00:00
dependabot-preview[bot]
040bd940f0 Bump @babel/core from 7.8.3 to 7.8.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.3 to 7.8.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.8.3...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 11:25:58 +00:00
Julius Härtl
2699a6cda7 Merge pull request #1522 from nextcloud/dependabot/npm_and_yarn/babel/preset-env-7.8.4
Bump @babel/preset-env from 7.8.3 to 7.8.4
2020-02-04 12:23:57 +01:00
dependabot-preview[bot]
05a1826eff Bump @babel/preset-env from 7.8.3 to 7.8.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.3 to 7.8.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.8.3...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 11:15:59 +00:00
Julius Härtl
7496c80b57 Merge pull request #1516 from nextcloud/bugfix/noid/reorder-flicker
Properly sort cards in the frontend
2020-02-04 12:13:56 +01:00
Jakob
2ed1572f8b Merge branch 'master' into bugfix/noid/reorder-flicker 2020-02-04 12:07:10 +01:00
Nextcloud bot
3bb47cf6fe [tx-robot] updated from transifex 2020-02-04 02:28:57 +00:00
Nextcloud bot
b01354564f [tx-robot] updated from transifex 2020-02-03 02:27:13 +00:00
dependabot-preview[bot]
f7d7e5a850 Merge pull request #1521 from nextcloud/dependabot/npm_and_yarn/stylelint-scss-3.14.2 2020-02-02 13:27:11 +00:00
dependabot-preview[bot]
306ef066fa Bump stylelint-scss from 3.14.0 to 3.14.2
Bumps [stylelint-scss](https://github.com/kristerkari/stylelint-scss) from 3.14.0 to 3.14.2.
- [Release notes](https://github.com/kristerkari/stylelint-scss/releases)
- [Changelog](https://github.com/kristerkari/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kristerkari/stylelint-scss/compare/3.14.0...3.14.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-02 13:21:49 +00:00
Nextcloud bot
c4b7512f6f [tx-robot] updated from transifex 2020-02-02 02:28:42 +00:00
Julius Härtl
dc904f421c Cleanup imports
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-01 14:45:42 +01:00
Julius Härtl
7a2f9f9b34 Add FIXME about space in username
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-02-01 13:50:18 +01:00
Julius Härtl
de451386b2 Merge pull request #1508 from nextcloud/enh/comments
Comments
2020-02-01 13:49:14 +01:00
Nextcloud bot
6bbf01756d [tx-robot] updated from transifex 2020-02-01 02:28:20 +00:00
Julius Härtl
7e7e1e4c97 Properly sort cards in the frontend
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 16:18:35 +01:00
Julius Härtl
466ce43678 Cleanup dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 15:00:24 +01:00
Julius Härtl
ac39a0d92c Keep mentions when editing a comment
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 14:46:56 +01:00
Julius Härtl
41d286986b Update read marker
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 13:22:43 +01:00
Julius Härtl
1731cbd5ee Add comment form component
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 12:24:20 +01:00
Julius Härtl
30b9af87e2 Use RichText component for activity
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 12:24:09 +01:00
Julius Härtl
6286779041 Implement editing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 11:38:57 +01:00
Julius Härtl
03d5321414 Bump vue-richtext
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-31 11:38:34 +01:00
Nextcloud bot
8e83f126a6 [tx-robot] updated from transifex 2020-01-31 02:28:33 +00:00
Julius Härtl
820c25647c Add user mentions to the comment display
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-30 13:51:38 +01:00
Jakob Röhrl
032573bd69 serach cards
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-30 12:03:00 +01:00
Nextcloud bot
b0e3520969 [tx-robot] updated from transifex 2020-01-30 02:29:17 +00:00
Julius Härtl
548c9a78ff Switch to vue-at for comment mentions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 18:02:24 +01:00
Julius Härtl
cfec900763 Implement fetching newer comments and infinite loading
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 15:50:18 +01:00
Julius Härtl
a3320571b8 Merge pull request #1505 from nextcloud/new-color-picker
use color picker from nextcloud vue
2020-01-29 13:26:49 +01:00
Julius Härtl
36dadfe25d Fix styling in label color picker and pick random default colors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 13:18:45 +01:00
Jakob Röhrl
167448dde1 added new color picker
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-29 13:18:45 +01:00
Julius Härtl
1ef22524ec Fix color picker positioning
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-29 13:18:45 +01:00
Jakob Röhrl
a15a00ab6b new color picker
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-01-29 13:18:45 +01:00
Nextcloud bot
b07bf861bd [tx-robot] updated from transifex 2020-01-29 02:29:27 +00:00
Jakob
1d7ccaae6e Merge pull request #1503 from nextcloud/nightly
Run nightly build on github actions
2020-01-28 13:35:43 +01:00
Julius Härtl
8fe9b2b0fa Update nightly build url in the readme
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-28 12:45:48 +01:00
Julius Härtl
5903002e54 Run nightly build on github actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>

Tag nightly build

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

Test release

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

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

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

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

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-25 09:29:27 +00:00
dependabot-preview[bot]
f29b4fd1d2 Bump @babel/plugin-syntax-dynamic-import from 7.7.4 to 7.8.3 in /js
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.7.4 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.3)

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

1. try

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

remote calls are working

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

litte changes

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

small fixes

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

incremental fetching

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

integrated tiptap suggestions for test

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

Update package-lock after rebase

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

Fix various errors

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

Cleanup mention plugin use

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

Downgrade tippy

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 17:55:29 +00:00
Julius Härtl
b77dc10812 Merge pull request #1457 from nextcloud/dependabot/npm_and_yarn/js/babel/core-7.8.3
Bump @babel/core from 7.7.7 to 7.8.3 in /js
2020-01-24 18:49:50 +01:00
Nextcloud bot
eb5a8a0655 [tx-robot] updated from transifex 2020-01-24 02:27:49 +00:00
dependabot-preview[bot]
562aad3aa3 Bump @babel/core from 7.7.7 to 7.8.3 in /js
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.3)

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 04:41:51 +00:00
dependabot-preview[bot]
58b4e4042a Merge pull request #1466 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud/vue-1.2.7 2020-01-19 04:39:48 +00:00
dependabot-preview[bot]
d698febfba Bump @babel/plugin-syntax-dynamic-import from 7.8.0 to 7.8.3
Bumps [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel) from 7.8.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 04:13:38 +00:00
dependabot-preview[bot]
ddde4c0196 Merge pull request #1465 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.8.3 2020-01-19 04:11:26 +00:00
dependabot-preview[bot]
533cda55ac Bump node-sass from 4.13.0 to 4.13.1
Bumps [node-sass](https://github.com/sass/node-sass) from 4.13.0 to 4.13.1.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.13.0...v4.13.1)

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:16:18 +00:00
dependabot-preview[bot]
f07da5c42f Bump @babel/preset-env from 7.8.0 to 7.8.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3)

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 02:13:44 +00:00
Julius Härtl
f77e0ad5d1 Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js (#1458)
Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js
2020-01-18 17:06:38 +01:00
dependabot-preview[bot]
fa4e7d61cd Merge pull request #1461 from nextcloud/dependabot/npm_and_yarn/vue/babel/polyfill-7.8.3 2020-01-18 14:13:30 +00:00
dependabot-preview[bot]
f0873d1c75 Bump @babel/preset-env from 7.7.7 to 7.8.3 in /js
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 14:00:43 +00:00
dependabot-preview[bot]
7d2b509f6b Merge pull request #1440 from nextcloud/dependabot/npm_and_yarn/js/css-loader-3.4.2 2020-01-18 13:59:08 +00:00
dependabot-preview[bot]
b5a734c801 Bump @babel/polyfill from 7.7.0 to 7.8.3
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.7.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 13:53:35 +00:00
dependabot-preview[bot]
b91ddd3068 Bump css-loader from 3.4.1 to 3.4.2 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.1...v3.4.2)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-17 21:51:49 +00:00
dependabot-preview[bot]
7e733810fe Merge pull request #1447 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.8.0 2020-01-12 10:33:25 +00:00
dependabot-preview[bot]
750d7e6494 Bump @babel/preset-env from 7.7.7 to 7.8.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 09:58:24 +00:00
dependabot-preview[bot]
7c8aa023f6 Bump @babel/runtime from 7.7.7 to 7.8.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.7.7 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.0/packages/babel-runtime)

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 03:26:29 +00:00
dependabot-preview[bot]
832b63cadd Bump css-loader from 3.4.1 to 3.4.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.1...v3.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:37:07 +00:00
dependabot-preview[bot]
3cf0e84b85 Bump @babel/core from 7.7.7 to 7.8.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.7...v7.8.0)

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 02:34:09 +00:00
Julius Härtl
6adae96d51 Merge pull request #1418 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-node-11.0.0
Bump eslint-plugin-node from 8.0.1 to 11.0.0
2020-01-05 19:04:32 +01:00
Julius Härtl
6bbfe00474 Update eslint config
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-01-05 18:58:02 +01:00
dependabot-preview[bot]
1d8190aff9 Merge pull request #1428 from nextcloud/dependabot/npm_and_yarn/vue/css-loader-3.4.1 2020-01-05 03:15:45 +00:00
dependabot-preview[bot]
900afbbb6b Bump eslint-plugin-node from 8.0.1 to 11.0.0
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 8.0.1 to 11.0.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v8.0.1...v11.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 03:10:39 +00:00
dependabot-preview[bot]
f5e7c738df Merge pull request #1427 from nextcloud/dependabot/npm_and_yarn/vue/eslint-plugin-vue-6.1.2 2020-01-05 03:08:41 +00:00
dependabot-preview[bot]
c35d482525 Bump css-loader from 3.4.0 to 3.4.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.4.0...v3.4.1)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-05 02:16:14 +00:00
dependabot-preview[bot]
a6208bac64 Merge pull request #1419 from nextcloud/dependabot/npm_and_yarn/vue/eslint-config-standard-12.0.0 2019-12-29 09:04:20 +00:00
dependabot-preview[bot]
32cde04d38 Merge pull request #1420 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.5 2019-12-29 05:22:18 +00:00
dependabot-preview[bot]
6e872ac9b3 Bump webpack from 4.41.4 to 4.41.5
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.4 to 4.41.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.4...v4.41.5)

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

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 07:10:58 +00:00
dependabot-preview[bot]
8969c6ce5f Merge pull request #1412 from nextcloud/dependabot/npm_and_yarn/vue/eslint-6.8.0 2019-12-22 07:08:49 +00:00
dependabot-preview[bot]
6551defd38 Merge pull request #1408 from nextcloud/dependabot/npm_and_yarn/vue/webpack-4.41.4 2019-12-22 06:56:06 +00:00
dependabot-preview[bot]
19587366c0 Bump eslint from 6.7.2 to 6.8.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.7.2 to 6.8.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.7.2...v6.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:30:42 +00:00
dependabot-preview[bot]
8e1b83bbd0 Bump mini-css-extract-plugin from 0.8.2 to 0.9.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.8.2 to 0.9.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.2...v0.9.0)

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 02:25:56 +00:00
Julius Härtl
2d7a43b93f Actually show can edit checkbox
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 21:46:12 +01:00
Julius Härtl
152e1b7b8c Bump dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-19 20:56:14 +01:00
dependabot-preview[bot]
30312da058 Merge pull request #1369 from nextcloud/dependabot/npm_and_yarn/vue/eslint-and-eslint-plugin-vue-6.7.2 2019-12-17 21:59:20 +00:00
Julius Härtl
6bc9d0a49b Use the same node version over all frontend jobs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 22:55:50 +01:00
Julius Härtl
76fbe7a0ea Fix eslint
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 22:47:45 +01:00
dependabot-preview[bot]
a7bc10277e Bump eslint and eslint-plugin-vue
Bumps [eslint](https://github.com/eslint/eslint) and [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue). These dependencies needed to be updated together.

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 22:47:44 +01:00
Julius Härtl
f26137f254 Bump nextcloud-vue-collections from 0.6.0 to 0.7.1 (#1379)
Bump nextcloud-vue-collections from 0.6.0 to 0.7.1
2019-12-17 22:25:09 +01:00
Julius Härtl
3050477280 Bump file-loader from 4.3.0 to 5.0.2 (#1366)
Bump file-loader from 4.3.0 to 5.0.2
2019-12-17 21:46:46 +01:00
dependabot-preview[bot]
ecca9c2755 Merge pull request #1380 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.7.6 2019-12-17 19:57:40 +00:00
dependabot-preview[bot]
a825f63135 Merge pull request #1393 from nextcloud/dependabot/npm_and_yarn/vue/vue-loader-15.8.3 2019-12-17 19:56:45 +00:00
dependabot-preview[bot]
ec83470b49 Bump @babel/preset-env from 7.7.4 to 7.7.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.7.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.7.6)

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

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-17 19:36:58 +00:00
Julius Härtl
2089f5df73 Merge remote-tracking branch 'origin/master' into vue 2019-12-17 20:36:16 +01:00
Julius Härtl
9087be9c94 Bump dependencies
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-12-17 20:34:42 +01:00
Julius Härtl
05dae27309 Bump css-loader from 3.2.0 to 3.3.2 (#1387)
Bump css-loader from 3.2.0 to 3.3.2
2019-12-17 20:25:21 +01:00
Julius Härtl
7776f75896 Bump url-search-params-polyfill from 7.0.0 to 7.0.1 (#1386)
Bump url-search-params-polyfill from 7.0.0 to 7.0.1
2019-12-17 20:24:56 +01:00
dependabot-preview[bot]
329faf79d5 Bump css-loader from 3.2.0 to 3.3.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.2.0 to 3.3.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.2.0...v3.3.2)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 02:15:26 +00:00
dependabot-preview[bot]
6a4871f7d5 Bump @babel/core from 7.7.4 to 7.7.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.4 to 7.7.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.7.5)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:21:34 +00:00
dependabot-preview[bot]
a768dc9bbd Bump @babel/runtime from 7.6.3 to 7.7.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.6.3 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.7.4/packages/babel-runtime)

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-01 02:16:16 +00:00
Julius Härtl
d42d390ab3 Vue move nextcloud vue (#1307)
Vue move nextcloud vue
2019-11-27 21:32:42 +01:00
Julius Härtl
35d6522598 Quer Application class
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 20:57:15 +01:00
Julius Härtl
cb3a80eea3 Resolve apps node_modules first
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 20:42:35 +01:00
Julius Härtl
4ccc590f24 Move to indivitual imports
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl
334d88aec6 Add URLSearchParams polyfill
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl
f68a94e920 Use proper import from vue-easymde
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:20 +01:00
Julius Härtl
2c7e306289 move to @nextcloud/vue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:28:18 +01:00
Julius Härtl
0d98d02b76 Move to @nextcloud/vue
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-27 13:27:53 +01:00
dependabot-preview[bot]
4b96f1892d Merge pull request #1354 from nextcloud/dependabot/npm_and_yarn/vue/babel/preset-env-7.7.4 2019-11-24 09:44:39 +00:00
dependabot-preview[bot]
bbf6297f67 Bump @babel/preset-env from 7.7.1 to 7.7.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.1 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.1...v7.7.4)

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

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 02:16:56 +00:00
dependabot-preview[bot]
96f08e5f38 Bump @babel/core from 7.7.2 to 7.7.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.2 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.2...v7.7.4)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 07:48:58 +00:00
dependabot-preview[bot]
a9c8e9bf4b Merge pull request #1331 from nextcloud/dependabot/npm_and_yarn/vue/babel/polyfill-7.7.0 2019-11-10 20:25:33 +00:00
dependabot-preview[bot]
97c4f3d7c5 Merge pull request #1333 from nextcloud/dependabot/npm_and_yarn/vue/babel/core-7.7.2 2019-11-10 09:29:24 +00:00
dependabot-preview[bot]
f85c3c25ce Merge pull request #1332 from nextcloud/dependabot/npm_and_yarn/vue/webpack-cli-3.3.10 2019-11-10 07:56:32 +00:00
dependabot-preview[bot]
e4716cd3ed Merge pull request #1330 from nextcloud/dependabot/npm_and_yarn/vue/vue-loader-15.7.2 2019-11-10 06:46:56 +00:00
dependabot-preview[bot]
6bc6804c8e Merge pull request #1326 from nextcloud/dependabot/npm_and_yarn/vue/vue-easymde-1.0.1 2019-11-10 03:35:44 +00:00
dependabot-preview[bot]
b850cf8b4f Bump @babel/core from 7.6.4 to 7.7.2
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.4 to 7.7.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.4...v7.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 03:10:29 +00:00
dependabot-preview[bot]
9d84753322 Bump @babel/polyfill from 7.6.0 to 7.7.0
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.0...v7.7.0)

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

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

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:13:51 +00:00
dependabot-preview[bot]
2eac30f709 Bump @babel/preset-env from 7.6.3 to 7.7.1
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.3 to 7.7.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.3...v7.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-10 02:13:04 +00:00
dependabot-preview[bot]
99e04162ee Merge pull request #1311 from nextcloud/dependabot/npm_and_yarn/vue/vue-smooth-dnd-0.8.1 2019-11-02 12:02:03 +00:00
dependabot-preview[bot]
a09f7b7912 Merge pull request #1309 from nextcloud/dependabot/npm_and_yarn/vue/nextcloud-vue-0.12.7 2019-11-02 12:01:53 +00:00
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]
de269fa278 Bump vue-smooth-dnd from 0.8.0 to 0.8.1
Bumps [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:18:26 +00:00
dependabot-preview[bot]
0e6b79fe9b Bump node-sass from 4.12.0 to 4.13.0
Bumps [node-sass](https://github.com/sass/node-sass) from 4.12.0 to 4.13.0.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.12.0...v4.13.0)

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-27 02:16:11 +00:00
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
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
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
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]
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
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
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
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
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
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
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
ead3608082 Update css-loader requirement from ^2.0.1 to ^3.0.0 (#1093)
Update css-loader requirement from ^2.0.1 to ^3.0.0
2019-06-21 09:24:59 +02:00
dependabot-preview[bot]
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]
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
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
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
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
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
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
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
dependabot[bot]
0506c2454f Update vue-smooth-dnd requirement from ^0.7.0 to ^0.8.0
Updates the requirements on [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) to permit the latest version.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-21 01:24:27 +00:00
Julius Hä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
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
dependabot[bot]
1f14b76caa Update vue-smooth-dnd requirement from ^0.3.2 to ^0.7.0
Updates the requirements on [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd) to permit the latest version.
- [Release notes](https://github.com/kutlugsahin/vue-smooth-dnd/releases)
- [Commits](https://github.com/kutlugsahin/vue-smooth-dnd/commits)

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

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

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-19 07:27:54 +00:00
Julius Hä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
dependabot[bot]
8cec3f4b58 Update nextcloud-vue requirement from ^0.8.0 to ^0.9.0
Updates the requirements on [nextcloud-vue](https://github.com/nextcloud/nextcloud-vue) to permit the latest version.
- [Release notes](https://github.com/nextcloud/nextcloud-vue/releases)
- [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v0.8.0...v0.9.0)

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

Signed-off-by: Vadim Nicolai <nicolai.vadim@gmail.com>
2018-12-31 11:22:43 +02:00
Julius Härtl
35d9b48117 Implement stack drag-and-drop and use proper data from store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Julius Härtl
0f46b283b7 Add helper function for reordering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Julius Härtl
c1580c765b Separate store to modules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-29 22:54:18 +01:00
Michael Weimann
1fc0d64925 Re implement the navigation
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 22:30:56 +01:00
Michael Weimann
45be999245 Add dummy delete
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 18:00:09 +01:00
Michael Weimann
03a3d29f1a Re use nav items
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 18:00:02 +01:00
Michael Weimann
b1e434ef6b Fix use of nc vue
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-12-29 13:47:48 +01:00
Michael Weimann
1edb403c9a Merge branch 'vue' of https://github.com/nextcloud/deck into vue 2018-12-29 12:08:03 +01:00
Vadim Nicolai
d2f78714a6 Added multiselect; adjusted acl.
Signed-off-by: Vadim Nicolai <nicolai.vadim@gmail.com>
2018-12-28 15:50:50 +02:00
Julius Härtl
fb2ee56346 Add sidebar component
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:58:22 +01:00
Julius Härtl
950c6b9046 Fix drag-and-drop reordering
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:58:03 +01:00
Julius Härtl
acd85eb097 Rework routing to make sidebar dependent on child routes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:57:43 +01:00
Julius Härtl
ef06f21d2a Add basic board view
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-12-23 21:56:13 +01:00
Vadim Nicolai
24af938058 Added current user avatar. 2018-12-22 23:17:27 +02:00
Julius Hä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
dependabot[bot]
1b0ea73318 Update file-loader requirement from ^2.0.0 to ^3.0.1
Updates the requirements on [file-loader](https://github.com/webpack-contrib/file-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/file-loader/releases)
- [Changelog](https://github.com/webpack-contrib/file-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/file-loader/commits/v3.0.1)

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

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-18 19:40:47 +00:00
Julius Hä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
375 changed files with 37468 additions and 28802 deletions

View File

@@ -130,24 +130,3 @@ trigger:
event:
- pull_request
- push
---
kind: pipeline
name: frontend
steps:
- name: eslint
image: nextcloudci/eslint:eslint-1
commands:
- ./run-eslint.sh
- name: jsbuild
image: node:lts-alpine
commands:
- apk add --no-cache make
- make build-js
trigger:
branch:
- master
- stable*
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

8
.eslintrc.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
extends: [
'nextcloud'
],
rules: {
'valid-jsdoc': ['off'],
}
}

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

45
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Lint
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
php:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.2', '7.3', '7.4']
name: php${{ matrix.php-versions }} lint
steps:
- uses: actions/checkout@v2
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@v1
with:
php-version: ${{ matrix.php-versions }}
coverage: none
- name: Lint
run: composer run lint
node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint

62
.github/workflows/nightly.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Nightly build
on:
push:
branches:
- nightly
schedule:
- cron: '0 1 * * *' # run at 2 AM UTC
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Setup PHP
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
tools: composer
- name: install dependencies
run: |
wget https://github.com/ChristophWurst/krankerl/releases/download/v0.12.2/krankerl_0.12.2_amd64.deb
sudo dpkg -i krankerl_0.12.2_amd64.deb
- name: package
run: |
uname -a
RUST_BACKTRACE=1 krankerl --version
RUST_BACKTRACE=1 krankerl package
- name: Set git config
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag -f nightly
- name: Push tag
uses: juliushaertl/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tags: true
force: true
- name: Create Release
id: create_release
uses: juliushaertl/action-release@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly
files: ./build/artifacts/deck.tar.gz
name: Nightly build
body: |
Nightly release of deck
draft: false
prerelease: true
overwrite: true

26
.github/workflows/nodejs.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Node CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: install dependencies
run: |
npm ci
- name: build
run: |
npm run build --if-present

6
.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

28
.nextcloudignore Normal file
View File

@@ -0,0 +1,28 @@
/build/
/.git
/.github
/docs/
/tests
/babel.config.js
/.editorconfig
/.eslintrc.js
/.nextcloudignore
/webpack.*.js
/.codecov.yml
/composer.json
/composer.lock
/_config.yml
/.drone.yml
/.travis.yml
/.eslintignore
/.eslintrc.yml
/.gitignore
/issue_template.md
/krankerl.toml
/Makefile
/mkdocs.yml
/run-eslint.sh
/package.json
/package-lock.json
/node_modules/
/src/

View File

@@ -1,6 +1,36 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.0.0 - unreleased
## Added
- Completly rewritten frontend
- Better maintainability
- Various small fixes
- Unified user interface with Nextcloud
- Separate comment and activity timelines
- Add ability to reply to comments #1537
- Filter cards on board #1507 @jakobroehrl
- Add cards to projects #1294 @jakobroehrl
- Move cards to other boards #1242 @jakobroehrl
- Clone boards with existing stacks and labels #1221 @jakobroehrl
- Upload multiple files at once and in parallel
A huge thangs goes to our awesome community that put enourmous effort into the frontend migration:
Special thanks for contributing huge parts of the Vue.js migration:
@jakobroehrl @weeman1337 @nicolad
Testers/reporters:
@cloud2018 @putt1ck @bpcurse
Calendar/Tasks integration help:
@raimund-schluessler @georgehrke
Android app team for helping to improve our REST API:
@desperateCoder @stefan-niedermann
## 0.8.0 - 2020-01-16
## Added

View File

@@ -12,70 +12,32 @@ sign_dir=$(build_dir)/sign
cert_dir=$(HOME)/.nextcloud/certificates
default: package
clean-build:
rm -rf $(build_dir)
default: build
clean-dist:
rm -rf js/node_modules
rm -rf node_modules/
install-deps: install-deps-js
composer install
install-deps-js:
cd js && npm install
install-deps-nodev: install-deps-js
composer install --no-dev
build: install-deps build-js
install-deps-js:
npm ci
build: clean-dist install-deps build-js
release: clean-dist install-deps-nodev build-js
build-js: install-deps-js
cd js && npm run build
npm run build
build-js-dev: install-deps
cd js && npm run dev
npm run dev
watch:
cd js && npm run watch
# appstore: clean install-deps
appstore: clean-build build
rm -rf $(appstore_build_directory)
mkdir -p $(appstore_build_directory)
tar cvzf $(appstore_package_name).tar.gz \
--exclude="../$(app_name)/build" \
--exclude="../$(app_name)/tests" \
--exclude="../$(app_name)/Makefile" \
--exclude="../$(app_name)/*.log" \
--exclude="../$(app_name)/phpunit*xml" \
--exclude="../$(app_name)/composer.*" \
--exclude="../$(app_name)/js/node_modules" \
--exclude="../$(app_name)/js/tests" \
--exclude="../$(app_name)/js/test" \
--exclude="../$(app_name)/js/*.log" \
--exclude="../$(app_name)/js/package-lock.json" \
--exclude="../$(app_name)/js/package.json" \
--exclude="../$(app_name)/js/bower.json" \
--exclude="../$(app_name)/js/karma.*" \
--exclude="../$(app_name)/js/protractor.*" \
--exclude="../$(app_name)/package.json" \
--exclude="../$(app_name)/bower.json" \
--exclude="../$(app_name)/karma.*" \
--exclude="../$(app_name)/protractor\.*" \
--exclude="../$(app_name)/.*" \
--exclude="../$(app_name)/*.lock" \
--exclude="../$(app_name)/run-eslint.sh" \
--exclude="../$(app_name)/js/.*" \
--exclude="../$(app_name)/vendor" \
--exclude-vcs \
../$(app_name)
@if [ -f $(cert_dir)/$(app_name).key ]; then \
echo "Signing package…"; \
openssl dgst -sha512 -sign $(cert_dir)/$(app_name).key $(build_dir)/$(app_name).tar.gz | openssl base64; \
fi
echo $(appstore_package_name).tar.gz
npm run watch
test: test-unit test-integration
@@ -96,7 +58,4 @@ test-integration:
cd tests/integration && ./run.sh
test-js: install-deps
cd js && run test
package:
krankerl package
npm run test

View File

@@ -15,6 +15,9 @@ Deck is a kanban style organization tool aimed at personal planning and project
- :zap: Keep track of changes in the activity stream
- :rocket: Get your project organized
### Mobile apps
- The [Nextcloud Deck app for Android](https://github.com/stefan-niedermann/nextcloud-deck) is available as [beta release in the Google Play Store](https://play.google.com/apps/testing/it.niedermann.nextcloud.deck.play)
![Deck - Manage cards on your board](https://download.bitgrid.net/nextcloud/deck/screenshots/Deck.png)
@@ -41,7 +44,7 @@ Please make sure you have installed the following dependencies: `make, which, ta
### Install the nightly builds
Instead of setting everything up manually, you can just [download the nightly builds](https://download.bitgrid.net/nextcloud/deck/nightly/) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
Instead of setting everything up manually, you can just [download the nightly build](https://github.com/nextcloud/deck/releases/tag/nightly) instead. These builds are updated every 24 hours, and are pre-configured with all the needed dependencies.
## Developing

View File

@@ -21,15 +21,19 @@
*
*/
if ((@include_once __DIR__ . '/../vendor/autoload.php')===false) {
use OCA\Deck\AppInfo\Application;
use OCP\AppFramework\QueryException;
if ((@include_once __DIR__ . '/../vendor/autoload.php')=== false) {
throw new Exception('Cannot include autoload. Did you run install dependencies using composer?');
}
$app = new \OCA\Deck\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerNotifications();
$app->registerCommentsEntity();
$app->registerFullTextSearch();
try {
/** @var Application $app */
$app = \OC::$server->query(Application::class);
$app->register();
} catch (QueryException $e) {
}
/** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity');

View File

@@ -1,482 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<database>
<name>*dbname*</name>
<create>true</create>
<overwrite>false</overwrite>
<charset>utf8</charset>
<table>
<name>*dbprefix*deck_boards</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>100</length>
</field>
<field>
<name>owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>color</name>
<type>text</type>
<length>6</length>
<notnull>false</notnull>
</field>
<field>
<name>archived</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_stacks</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>100</length>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>order</name>
<type>integer</type>
<length>8</length>
<notnull>false</notnull>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<index>
<name>deck_stacks_board_id_index</name>
<field>
<name>board_id</name>
</field>
</index>
<index>
<name>deck_stacks_order_index</name>
<field>
<name>order</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*deck_cards</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<length>100</length>
<notnull>true</notnull>
</field>
<field>
<name>description</name>
<type>clob</type>
<notnull>false</notnull>
</field>
<field>
<name>description_prev</name>
<type>clob</type>
<notnull>false</notnull>
</field>
<field>
<name>stack_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>type</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
<default>plain</default>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>last_editor</name>
<type>text</type>
<notnull>false</notnull>
<length>64</length>
</field>
<field>
<name>created_at</name>
<type>integer</type>
<default></default>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>order</name>
<type>integer</type>
<length>8</length>
<notnull>false</notnull>
</field>
<field>
<name>archived</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>duedate</name>
<type>timestamp</type>
<default>0</default>
</field>
<field>
<name>notified</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<index>
<name>deck_cards_stack_id_index</name>
<field>
<name>stack_id</name>
</field>
</index>
<index>
<name>deck_cards_order_index</name>
<field>
<name>order</name>
</field>
</index>
<index>
<name>deck_cards_archived_index</name>
<field>
<name>archived</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*deck_attachment</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>card_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>type</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>data</name>
<type>text</type>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default/>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>created_at</name>
<type>integer</type>
<default/>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>created_by</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>deleted_at</name>
<type>integer</type>
<default>0</default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_labels</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>false</notnull>
<length>100</length>
</field>
<field>
<name>color</name>
<type>text</type>
<length>6</length>
<notnull>false</notnull>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<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>
<name>board_id</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*deck_assigned_labels</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>label_id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
<field>
<name>card_id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
<index>
<name>deck_assigned_labels_idx_i</name>
<field>
<name>label_id</name>
</field>
</index>
<index>
<name>deck_assigned_labels_idx_c</name>
<field>
<name>card_id</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*deck_assigned_users</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>participant</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>card_id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
<index>
<name>deck_assigned_users_idx_p</name>
<field>
<name>participant</name>
</field>
</index>
<index>
<name>deck_assigned_users_idx_c</name>
<field>
<name>card_id</name>
</field>
</index>
</declaration>
</table>
<table>
<name>*dbprefix*deck_board_acl</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<notnull>true</notnull>
<length>8</length>
</field>
<field>
<name>type</name>
<type>integer</type>
<notnull>true</notnull>
<length>4</length>
</field>
<field>
<name>participant</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>permission_edit</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_share</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_manage</name>
<type>boolean</type>
<default>false</default>
</field>
<index>
<name>deck_board_acl_uq_i</name>
<unique>true</unique>
<field>
<name>board_id</name>
<sorting>ascending</sorting>
</field>
<field>
<name>type</name>
<sorting>ascending</sorting>
</field>
<field>
<name>participant</name>
<sorting>ascending</sorting>
</field>
</index>
<index>
<name>deck_board_acl_idx_i</name>
<field>
<name>board_id</name>
</field>
</index>
</declaration>
</table>
</database>

View File

@@ -3,7 +3,7 @@
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>deck</id>
<name>Deck</name>
<summary>A kanban style project and personal management tool for Nextcloud</summary>
<summary>Personal planning and team project organization</summary>
<description>Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
@@ -17,7 +17,7 @@
- 🚀 Get your project organized
</description>
<version>0.8.0</version>
<version>1.0.0-beta2</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
@@ -36,7 +36,7 @@
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="5.5">mysql</database>
<nextcloud min-version="17" max-version="18" />
<nextcloud min-version="18" max-version="19" />
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>

View File

@@ -38,8 +38,9 @@ return [
['name' => 'board#deleteUndo', 'url' => '/boards/{boardId}/deleteUndo', 'verb' => 'POST'],
['name' => 'board#getUserPermissions', 'url' => '/boards/{boardId}/permissions', 'verb' => 'GET'],
['name' => 'board#addAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'POST'],
['name' => 'board#updateAcl', 'url' => '/boards/{boardId}/acl', 'verb' => 'PUT'],
['name' => 'board#updateAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'PUT'],
['name' => 'board#deleteAcl', 'url' => '/boards/{boardId}/acl/{aclId}', 'verb' => 'DELETE'],
['name' => 'board#clone', 'url' => '/boards/{boardId}/clone', 'verb' => 'POST'],
// stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}', 'verb' => 'GET'],
@@ -63,7 +64,7 @@ return [
['name' => 'card#assignLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'POST'],
['name' => 'card#removeLabel', 'url' => '/cards/{cardId}/label/{labelId}', 'verb' => 'DELETE'],
['name' => 'card#assignUser', 'url' => '/cards/{cardId}/assign', 'verb' => 'POST'],
['name' => 'card#unassignUser', 'url' => '/cards/{cardId}/assign/{userId}', 'verb' => 'DELETE'],
['name' => 'card#unassignUser', 'url' => '/cards/{cardId}/unassign', 'verb' => 'PUT'],
['name' => 'attachment#getAll', 'url' => '/cards/{cardId}/attachments', 'verb' => 'GET'],
['name' => 'attachment#create', 'url' => '/cards/{cardId}/attachment', 'verb' => 'POST'],
@@ -121,6 +122,14 @@ return [
['name' => 'attachment_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}', 'verb' => 'DELETE'],
['name' => 'attachment_api#restore', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore', 'verb' => 'PUT'],
['name' => 'board_api#preflighted_cors', 'url' => '/api/v1.0/{path}','verb' => 'OPTIONS', 'requirements' => ['path' => '.+']],
],
'ocs' => [
['name' => 'comments_api#list', 'url' => '/api/v1.0/cards/{cardId}/comments', 'verb' => 'GET'],
['name' => 'comments_api#create', 'url' => '/api/v1.0/cards/{cardId}/comments', 'verb' => 'POST'],
['name' => 'comments_api#update', 'url' => '/api/v1.0/cards/{cardId}/comments/{commentId}', 'verb' => 'PUT'],
['name' => 'comments_api#delete', 'url' => '/api/v1.0/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
]
];

View File

@@ -1,11 +1,10 @@
module.exports = {
plugins: ['@babel/plugin-syntax-dynamic-import'],
presets: [
[
'@babel/preset-env',
{
targets: {
browsers: ['last 2 versions', 'ie >= 11']
}
modules: false
}
]
]

View File

@@ -16,5 +16,12 @@
"christophwurst/nextcloud": "^17",
"jakub-onderka/php-parallel-lint": "^1.0.0",
"phpunit/phpunit": "^8"
},
"config": {
"optimize-autoloader": true,
"classmap-authoritative": true
},
"scripts": {
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l \"{}\" \\;"
}
}

View File

@@ -1,77 +0,0 @@
/**
* based upon apps/comments/js/vendor/At.js/dist/css/jquery.atwho.css,
* only changed colors and font-weight
*/
.atwho-view {
position:absolute;
top: 0;
left: 0;
display: none;
margin-top: 18px;
background: var(--color-main-background);
color: var(--color-main-text);
border: 1px solid var(--color-border);
border-radius: var(--border-radius);
box-shadow: 0 0 5px var(--color-box-shadow);
min-width: 120px;
z-index: 11110 !important;
}
.atwho-view .atwho-header {
padding: 5px;
margin: 5px;
cursor: pointer;
border-bottom: solid 1px var(--color-border);
color: var(--color-main-text);
font-size: 11px;
font-weight: bold;
}
.atwho-view .atwho-header .small {
color: var(--color-main-text);
float: right;
padding-top: 2px;
margin-right: -5px;
font-size: 12px;
font-weight: normal;
}
.atwho-view .atwho-header:hover {
cursor: default;
}
.atwho-view .cur {
background: var(--color-primary);
color: var(--color-primary-text);
}
.atwho-view .cur small {
color: var(--color-primary-text);
}
.atwho-view strong {
color: var(--color-main-text);
font-weight: normal;
}
.atwho-view .cur strong {
color: var(--color-primary-text);
font-weight: normal;
}
.atwho-view ul {
/* width: 100px; */
list-style:none;
padding:0;
margin:auto;
max-height: 200px;
overflow-y: auto;
}
.atwho-view ul li {
display: block;
padding: 5px 10px;
border-bottom: 1px solid var(--color-border);
cursor: pointer;
}
.atwho-view small {
font-size: smaller;
color: var(--color-main-text);
font-weight: normal;
}

View File

@@ -1,261 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
#commentsTabView .emptycontent {
margin-top: 0;
}
#commentsTabView .newCommentForm {
margin-left: 36px;
position: relative;
}
#commentsTabView .newCommentForm .message {
width: 100%;
padding: 10px;
min-height: 44px;
margin: 0;
/* Prevent the text from overlapping with the submit button. */
padding-right: 30px;
}
#commentsTabView .newCommentForm {
.submit,
.submitLoading {
width: 44px;
height: 44px;
margin: 0;
padding: 13px;
background-color: transparent;
border: none;
opacity: .3;
position: absolute;
bottom: 0;
right: 0;
}
}
#commentsTabView .deleteLoading {
padding: 14px;
vertical-align: middle;
}
#commentsTabView .newCommentForm .submit:not(:disabled):hover,
#commentsTabView .newCommentForm .submit:not(:disabled):focus {
opacity: 1;
}
#commentsTabView .newCommentForm div.message {
resize: none;
}
#commentsTabView .newCommentForm div.message:empty:before {
content: attr(data-placeholder);
color: grey;
}
#commentsTabView .comment {
position: relative;
/** padding bottom is little more so that the top and bottom gap look uniform **/
padding: 10px 0 15px;
}
#commentsTabView .comments .comment {
border-top: 1px solid var(--color-border);
}
#commentsTabView .comment .avatar,
.atwho-view-ul * .avatar{
width: 32px;
height: 32px;
line-height: 32px;
margin-right: 5px;
}
#commentsTabView .comment .message .avatar,
.atwho-view-ul * .avatar
{
display: inline-block;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
white-space: pre-wrap;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
max-height: 70px;
overflow: hidden;
}
#activityTabView li.comment .message-overlay,
#commentsTabView .comment .message-overlay {
display: none;
}
#activityTabView li.comment.collapsed .message-overlay,
#commentsTabView .comment.collapsed .message-overlay {
display: block;
position: absolute;
z-index: 2;
height: 50px;
pointer-events: none;
left: 0;
right: 0;
bottom: 0;
background: -moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: -ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background: linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));
background-repeat: no-repeat;
}
#commentsTabView .hidden {
display: none !important;
}
/** set min-height as 44px to ensure that it fits the button sizes. **/
#commentsTabView .comment .authorRow {
min-height: 44px;
}
#commentsTabView .comment .authorRow .tooltip {
/** because of the padding on the element, the tooltip appear too far up,
adding this brings them closer to the element**/
margin-top: 5px;
}
.atwho-view-ul * .avatar-name-wrapper,
#commentsTabView .comment .authorRow {
position: relative;
display: inline-flex;
align-items: center;
width: 100%;
}
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,
#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,
#commentsTabView .comment .authorRow .avatar:not(.currentUser),
#commentsTabView .comment .authorRow .author:not(.currentUser) {
cursor: pointer;
}
.atwho-view-ul .avatar-name-wrapper,
.atwho-view-ul .avatar-name-wrapper .avatar,
.atwho-view-ul .avatar-name-wrapper .avatar img {
cursor: pointer;
}
#commentsTabView .comments li .message .atwho-inserted,
#commentsTabView .newCommentForm .atwho-inserted {
.avatar-name-wrapper {
/* Make the wrapper the positioning context of its child contacts
* menu. */
position: relative;
display: inline;
vertical-align: top;
background-color: var(--color-background-dark);
border-radius: 50vh;
padding: 1px 7px 1px 1px;
/* Ensure that the avatar and the user name will be kept together. */
white-space: nowrap;
.avatar {
img {
vertical-align: top;
}
height: 16px;
width: 16px;
vertical-align: middle;
padding: 1px;
margin-top: -3px;
margin-left: 0;
margin-right: 2px;
}
strong {
/* Ensure that the user name is shown in bold, as different browsers
* use different font weights for strong elements. */
font-weight: bold;
}
}
.avatar-name-wrapper.currentUser {
background-color: var(--color-primary);
color: var(--color-primary-text);
}
}
.atwho-view-ul * .avatar-name-wrapper {
white-space: nowrap;
}
#commentsTabView .comment .author,
#commentsTabView .comment .date {
opacity: .5;
}
#commentsTabView .comment .author {
max-width: 210px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
#commentsTabView .comment .date {
margin-left: auto;
/** this is to fix the tooltip being too close due to the margin-top applied
to bring the tooltip closer for the action icons **/
padding: 10px 0px;
}
#commentsTabView .comments > li:not(.newCommentRow) .message {
padding-left: 40px;
word-wrap: break-word;
overflow-wrap: break-word;
}
#commentsTabView .comment .action {
opacity: 0.3;
padding: 14px;
display: block;
}
#commentsTabView .comment .action:hover,
#commentsTabView .comment .action:focus {
opacity: 1;
}
#commentsTabView .newCommentRow .action-container {
margin-left: auto;
}
#commentsTabView .comment.disabled .message {
opacity: 0.3;
}
#commentsTabView .comment.disabled .action {
display: none;
}
#commentsTabView .message.error {
color: #e9322d;
border-color: #e9322d;
box-shadow: 0 0 6px #f8b9b7;
}
.app-files .action-comment {
padding: 16px 14px;
}
#commentsTabView .comment .message .contactsmenu-popover {
left: -6px;
top: 24px;
}

View File

@@ -1,113 +0,0 @@
/*
* @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net>
* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Hotfix for support <NC13 with new app sidebar
*/
#app-navigation {
.app-navigation-entry-menu.open {
ul li a {
background-position: 10px center;
padding: 0 10px 0 36px !important;
}
}
.app-navigation-entry-edit {
display: none;
}
.editing {
.app-navigation-entry-edit {
display: block;
position: absolute;
background: $color-main-background;
height: auto;
z-index: 250;
}
}
}
/**
* copied styles from core/css/styles.scss
* to have the same breadcrumb styling in NC12
*/
.breadcrumb {
display: inline-flex;
}
div.crumb {
display: inline-flex;
background-repeat: no-repeat;
background-position: right center;
height: 44px;
background-size: auto 24px;
flex: 0 0 auto;
order: 1;
padding-right: 7px;
&.crumbmenu {
order: 2;
position: relative;
a {
opacity: 0.5
}
}
&.hidden {
display: none;
~ .crumb {
order: 3;
}
}
> a,
> span {
position: relative;
padding: 12px;
opacity: 0.5;
top: 0 !important;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
flex: 0 0 auto;
&.icon-home {
// Hide home text
text-indent: -9999px;
}
}
> a[class^='icon-'] {
padding: 0;
width: 44px;
}
&:not(:first-child) a {
}
&:last-child {
font-weight: 600;
margin-right: 10px;
// Allow multiple span next to the main 'a'
a ~ span {
padding-left: 0;
}
}
&:hover, &:focus, a:focus, &:active {
> a,
> span {
opacity: .7;
}
}
}

View File

@@ -1,43 +0,0 @@
/*
* @copyright Copyright (c) 2018 Michael Weimann <mail@michael-weimann.eu>
*
* @author 2018 Michael Weimann <mail@michael-weimann.eu>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
.compact-mode {
.card {
margin: $compact-board-item-margin;
&:last-child {
margin: $compact-board-last-item-margin;
}
}
.stack {
.as-sortable-placeholder {
margin: $compact-board-item-margin;
min-height: 43px;
height: 43px;
&:last-child {
margin: $compact-board-last-item-margin;
}
}
}
}

View File

@@ -2,28 +2,27 @@
* @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
*
*
* 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();
};
});
@import 'icons';
@import 'print';

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,11 +53,16 @@
background-image: url('../img/toggle-view-collapse.svg');
}
@if mixin-exists('icon-black-white') {
@include icon-black-white('deck', 'deck', 1);
@include icon-black-white('archive', 'deck', 1);
@include icon-black-white('circles', 'deck', 1);
@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('filter', 'deck', 1);
@include icon-black-white('attach', 'deck', 1);
@include icon-black-white('reply', 'deck', 1);
.icon-toggle-compact-collapsed {
@include icon-color('toggle-view-expand', 'deck', $color-black);
}
@@ -77,4 +82,7 @@
opacity: 1;
background-size: 20px;
background-position: center center;
}
}
.icon-colorpicker {
background-image: url('../img/color_picker.svg');
}

File diff suppressed because it is too large Load Diff

View File

@@ -515,6 +515,8 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
| title | String | The title of the new stack |
| type | String | Type of the card (for later use) use 'plain' for now |
| order | Integer | Order for sorting the stacks |
| description | String | _(optional)_ The markdown description of the card |
| duedate | timestamp | _(optional)_ The duedate of the card or null |
#### Response
@@ -936,3 +938,232 @@ For now only `deck_file` is supported as an attachment type.
##### 200 Success
# OCS API
The following endpoints are available tough the Nextcloud OCS endpoint, which is available at `/ocs/v2.php/apps/deck/api/v1.0/`.
This has the benefit that both the web UI as well as external integrations can use the same API.
## Comments
### GET /cards/{cardId}/comments - List comments
#### Request parameters
string $cardId, int $limit = 20, int $offset = 0
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| cardId | Integer | The id of the card |
| limit | Integer | The maximum number of comments that should be returned, defaults to 20 |
| offset | Integer | The start offset used for pagination, defaults to 0 |
```
curl 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/cards/12/comments' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true'
```
#### Response
A list of comments will be provided under the `ocs.data` key. If no or no more comments are available the list will be empty.
##### 200 Success
```
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": [
{
"id": "175",
"objectId": "12",
"message": "This is a comment with a mention to @alice",
"actorId": "admin",
"actorType": "users",
"actorDisplayName": "Administrator",
"creationDateTime": "2020-03-10T10:23:07+00:00",
"mentions": [
{
"mentionId": "alice",
"mentionType": "user",
"mentionDisplayName": "alice"
}
]
}
]
}
}
```
### POST /cards/{cardId}/comments - Create a new comment
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| cardId | Integer | The id of the card |
| message | String | The message of the comment, maximum length is limited to 1000 characters |
| parentId | Integer | The start offset used for pagination, defaults to null |
Mentions will be parsed by the server. The server will return a list of mentions in the response to this request as shown below.
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/cards/12/comments' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true'
-H 'Content-Type: application/json;charset=utf-8'
--data '{"message":"My message to @bob","parentId":null}'
```
#### Response
A list of comments will be provided under the `ocs.data` key. If no or no more comments are available the list will be empty.
##### 200 Success
```
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": {
"id": "177",
"objectId": "13",
"message": "My message to @bob",
"actorId": "admin",
"actorType": "users",
"actorDisplayName": "Administrator",
"creationDateTime": "2020-03-10T10:30:17+00:00",
"mentions": [
{
"mentionId": "bob",
"mentionType": "user",
"mentionDisplayName": "bob"
}
]
}
}
}
```
##### 400 Bad request
A bad request response is returned if invalid input values are provided. The response message will contain details about which part was not valid.
##### 404 Not found
A not found response might be returned if:
- The card for the given cardId could not be found
- The parent comment could not be found
### PUT /cards/{cardId}/comments/{commentId} - Update a new comment
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| cardId | Integer | The id of the card |
| commentId | Integer | The id of the comment |
| message | String | The message of the comment, maximum length is limited to 1000 characters |
Mentions will be parsed by the server. The server will return a list of mentions in the response to this request as shown below.
Updating comments is limited to the current user being the same as the comment author specified in the `actorId` of the comment.
```
curl -X POST 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/cards/12/comments' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true'
-H 'Content-Type: application/json;charset=utf-8'
--data '{"message":"My message"}'
```
#### Response
A list of comments will be provided under the `ocs.data` key. If no or no more comments are available the list will be empty.
##### 200 Success
```
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": {
"id": "177",
"objectId": "13",
"message": "My message",
"actorId": "admin",
"actorType": "users",
"actorDisplayName": "Administrator",
"creationDateTime": "2020-03-10T10:30:17+00:00",
"mentions": []
}
}
}
```
##### 400 Bad request
A bad request response is returned if invalid input values are provided. The response message will contain details about which part was not valid.
##### 404 Not found
A not found response might be returned if:
- The card for the given cardId could not be found
- The comment could not be found
### DELETE /cards/{cardId}/comments/{commentId} - Delete a comment
#### Request parameters
| Parameter | Type | Description |
| --------- | ------- | --------------------------------------- |
| cardId | Integer | The id of the card |
| commentId | Integer | The id of the comment |
Deleting comments is limited to the current user being the same as the comment author specified in the `actorId` of the comment.
```
curl -X DELETE 'https://admin:admin@nextcloud/ocs/v2.php/apps/deck/api/v1.0/cards/12/comments' \
-H 'Accept: application/json' -H 'OCS-APIRequest: true'
-H 'Content-Type: application/json;charset=utf-8'
```
#### Response
A list of comments will be provided under the `ocs.data` key. If no or no more comments are available the list will be empty.
##### 200 Success
```
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": "OK"
},
"data": []
}
}
```
##### 400 Bad request
A bad request response is returned if invalid input values are provided. The response message will contain details about which part was not valid.
##### 404 Not found
A not found response might be returned if:
- The card for the given cardId could not be found
- The comment could not be found

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

78
img/filter.svg Normal file
View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 4.2333332 4.2333335"
version="1.1"
id="svg4524"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="filter.svg">
<defs
id="defs4518" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="-13.015771"
inkscape:cy="15.433087"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1">
<sodipodi:guide
position="3.1773623,1.9016928"
orientation="0,1"
id="guide5088"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata4521">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-292.76665)">
<path
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.09337848;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 0.51971728,293.23203 H 3.8033853 l -1.1728849,1.45285 H 1.6418341 Z"
id="rect5069"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.05817544;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 1.6418341,294.68488 h 0.9921874 v 1.86627 L 1.637658,296.09596 Z"
id="rect5069-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

1
img/reply.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16"><path d="M15 15s-.4-7.8-7-10V1L1 8l7 7v-4c5.1 0 7 4 7 4z"/></svg>

After

Width:  |  Height:  |  Size: 128 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,350 +0,0 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/* global OC OCA OCP t escapeHTML Handlebars moment */
import CommentCollection from '../legacy/commentcollection';
import CommentModel from '../legacy/commentmodel';
class ActivityController {
constructor ($scope, CardService, ActivityService, BoardService) {
'ngInject';
this.cardservice = CardService;
this.boardservice = BoardService;
this.activityservice = ActivityService;
this.$scope = $scope;
this.type = '';
this.loading = false;
this.status = {
commentCreateLoading: false
};
this.$scope.newComment = '';
this.$scope.newCommentString = 'New comment…';
this.currentUser = OC.getCurrentUser();
const self = this;
this.$scope.$watch(function () {
return self.element.id;
}, function (params) {
if (self.type === 'deck_card') {
self.activityservice.loadComments(self.element.id);
}
if (self.getData(self.element.id).length === 0) {
self.loading = true;
self.fetchUntilResults();
}
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
if (self.type === 'deck_card') {
self.cardservice.getCurrent().commentsUnread = 0;
}
}, true);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
this.activityservice.subscribe(this.$scope, function() {
self.$scope.$apply();
});
if (typeof OCA.Activity.Templates !== 'undefined') {
OCA.Activity.Templates.userLocal = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var helper;
// Compiled handlesbars template
// '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
return "<span class=\"avatar-name-wrapper\"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user=\""
+ container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"id","hash":{},"data":data}) : helper)))
+ "\" ng-attr-displayname=\""
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "\" ng-attr-size=\"16\"></avatar> "
+ container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"name","hash":{},"data":data}) : helper)))
+ "</span>";
},"useData":true});
} else {
OCA.Activity.RichObjectStringParser._userLocalTemplate = '<span class="avatar-name-wrapper"><avatar ng-attr-contactsmenu ng-attr-tooltip ng-attr-user="{{ id }}" ng-attr-displayname="{{name}}" ng-attr-size="16"></avatar> {{ name }}</span>';
}
}
applyAtWho($target) {
const self = this;
if (!$target) {
return;
}
$target.atwho({
at: '@',
callbacks: {
remoteFilter: function(query, callback) {
let uids = self.boardservice.getUsers();
uids = uids.filter((x) => x.uid.toLowerCase().includes(query.toLowerCase()) || x.displayname.toLowerCase().includes(query.toLowerCase()));
callback(uids);
},
highlighter: function (li) {
// misuse the highlighter callback to instead of
// highlighting loads the avatars.
var $li = $(li);
$li.find('.avatar').avatar(undefined, 32);
return $li;
},
sorter: function (q, items) { return items; }
},
displayTpl: function (item) {
return '<li>' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span></li>';
},
insertTpl: function (item) {
return '' +
'<span class="avatar-name-wrapper">' +
'<span class="avatar" ' +
'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars
'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu
'data-user-display-name="' + escapeHTML(item.displayname) + '">' +
'</span>' +
'<strong>' + escapeHTML(item.displayname) + '</strong>' +
'</span>';
},
searchKey: 'displayname'
});
$target.on('inserted.atwho', function (je, $el) {
$(je.target).find(
'span[data-username="' + $el.find('[data-username]').data('username') + '"]'
).avatar(undefined, 16);
});
$target.on('shown.atwho', function (je) {
$target.find('.avatar').avatar(undefined, 16);
});
}
commentBodyToPlain(content) {
let $comment = $('<div/>').html(content);
$comment.find('.avatar-name-wrapper').each(function () {
var $this = $(this);
var $inserted = $this.parent();
$inserted.html('@' + $this.find('.avatar').data('username'));
});
$comment.html(OCP.Comments.richToPlain($comment.html()));
$comment.html($comment.html().replace(/<br\s*[\/]?>/gi, '\n'));
return $comment.text();
}
static _composeHTMLMention(uid, displayName) {
var avatar = '' +
'<span class="avatar" data-username="' + escapeHTML(uid) + '" data-user="' + escapeHTML(uid) + '" ng-attr-size="16" ' +
'ng-attr-user="' + escapeHTML(uid) + '" ' +
'ng-attr-displayname="' + escapeHTML(displayName) + '" ng-attr-contactsmenu="true">' +
'</span>';
var isCurrentUser = (uid === OC.getCurrentUser().uid);
return '' +
'<span class="atwho-inserted" contenteditable="false">' +
'<span class="avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '">' +
avatar +
'<strong>' + escapeHTML(displayName) + '</strong>' +
'</span>' +
'</span>';
}
formatMessage(activity) {
let message = activity.message;
let mentions = activity.commentModel.get('mentions');
const editMode = false;
message = escapeHTML(message).replace(/\n/g, '<br/>');
for(var i in mentions) {
if(!mentions.hasOwnProperty(i)) {
return;
}
var mention = '@' + mentions[i].mentionId;
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const displayName = ActivityController._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
message = message.replace(new RegExp('(^|\\s)(' + mention + ')\\b', 'g'),
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1+displayName;
}
);
}
if(editMode !== true) {
message = OCP.Comments.plainToRich(message);
}
return message;
}
postComment() {
const self = this;
this.status.commentCreateLoading = true;
let content = this.commentBodyToPlain(self.$scope.newComment);
if (content.length < 1) {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
var model = this.activityservice.commentCollection.create({
actorId: OC.getCurrentUser().uid,
actorDisplayName: OC.getCurrentUser().displayName,
actorType: 'users',
verb: 'comment',
message: content,
creationDateTime: (new Date()).toUTCString()
}, {
at: 0,
// wait for real creation before adding
wait: true,
success: function() {
self.$scope.newComment = '';
self.activityservice.fetchNewerActivities(self.type, self.element.id).then(function () {});
self.status.commentCreateLoading = false;
},
error: function() {
self.status.commentCreateLoading = false;
OC.Notification.showTemporary(t('deck', 'Posting the comment failed.'));
}
});
}
updateComment(item) {
item.commentEdit = this.formatMessage(item);
let $target = $('.newCommentForm .message');
this.applyAtWho($target);
/** Workaround to trigger avatar rendering after the view has been updated */
window.setTimeout(function () {
$target.find('.avatar').avatar(undefined, 16);
}, 0);
}
editComment(item) {
const self = this;
let content = this.commentBodyToPlain(item.commentEdit);
if (content.length < 1) {
OC.Notification.showTemporary(t('deck', 'Please provide a content for your comment.'));
return;
}
/** We need to save the model and afterwards run a fetch to update the mentions
* and call apply to propagate the changes to angular
*/
item.commentModel.on('sync', function() {
item.commentModel.off('sync');
item.commentModel.fetch({
success: function() {
self.$scope.$apply();
}
});
});
item.commentModel.save({
message: content,
});
item.message = content;
item.commentEdit = undefined;
}
deleteComment(item) {
item.commentModel.destroy();
item.deleted = true;
item.commentModel = undefined;
item.message = t('deck', 'The comment has been deleted');
}
getData(id) {
return this.activityservice.getData(this.type, id);
}
parseMessage(activity) {
let subject = activity.subject_rich[0];
let parameters = activity.subject_rich[1];
if (parameters.after && typeof parameters.after.id === 'string' && parameters.after.id.startsWith('dt:')) {
let dateTime = parameters.after.id.substr(3);
parameters.after.name = moment(dateTime).format('L LTS');
}
return OCA.Activity.RichObjectStringParser.parseMessage(subject, parameters);
}
fetchUntilResults () {
const self = this;
let dataLengthBefore = self.getData(self.element.id).length;
let _executeFetch = function() {
let promise = self.activityservice.fetchMoreActivities(self.type, self.element.id);
promise.then(function (data) {
let dataLengthAfter = self.getData(self.element.id).length;
if (data !== null && (dataLengthAfter <= dataLengthBefore || dataLengthAfter < self.activityservice.RESULT_PER_PAGE)) {
_executeFetch();
} else {
self.loading = false;
}
}, function () {
self.loading = false;
self.$scope.$apply();
});
};
_executeFetch();
}
getComments() {
return this.activityservice.comments;
}
getActivityStream() {
let activities = this.activityservice.getData(this.type, this.element.id);
return activities;
}
page() {
if (!this.activityservice.since[this.type][this.element.id].finished) {
this.loading = true;
this.fetchUntilResults();
} else {
this.loading = false;
}
}
loadingNewer() {
return this.activityservice.runningNewer;
}
t(text) {
return t('deck', text);
}
}
let activityComponent = {
templateUrl: OC.linkTo('deck', 'templates/part.card.activity.html'),
controller: ActivityController,
bindings: {
type: '@',
element: '='
}
};
export default activityComponent;

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,568 +0,0 @@
/*
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/* global oc_defaults oc_config OC OCP OCA t n */
import app from '../app/App.js';
import Vue from 'vue';
Vue.prototype.t = t;
Vue.prototype.n = n;
Vue.prototype.OC = OC;
import CollaborationView from '../views/CollaborationView';
app.controller('BoardController', function ($rootScope, $scope, $element, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions, $filter, FileService) {
$scope.sidebar = $rootScope.sidebar;
$scope.id = $stateParams.boardId;
$scope.status = {
addCard: [],
};
$scope.newLabel = {};
$scope.OC = OC;
$scope.stackservice = StackService;
$scope.boardservice = BoardService;
$scope.cardservice = CardService;
$scope.statusservice = StatusService.getInstance();
$scope.labelservice = LabelService;
$scope.defaultColors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD'];
$scope.board = BoardService.getCurrent();
$scope.uploader = FileService.uploader;
$scope.searchText = '';
$scope.startTitleEdit = function(card) {
card.renameTitle = card.title;
card.status = card.status || {};
card.status.editCard = true;
};
$scope.finishTitleEdit = function(card) {
var newTitle;
if (!card.renameTitle || !card.renameTitle.trim()) {
newTitle = '';
} else {
newTitle = card.renameTitle.trim();
}
if (newTitle === card.title) {
// title unchanged
card.status.editCard = false;
delete card.renameTitle;
} else if (newTitle !== '') {
// title changed
card.title = newTitle;
CardService.update(card).then(function (data) {
card.status.editCard = false;
delete card.renameTitle;
});
} else {
// empty title
card.status.editCard = false;
delete card.renameTitle;
}
};
$scope.$watch(function() {
return $scope.params.tab;
}, function (newTab, oldTab) {
if (newTab === 2 && oldTab !== 2) {
CardService.fetchDeleted($scope.id);
StackService.fetchDeleted($scope.id);
}
});
// workaround for $stateParams changes not being propagated
$scope.$watch(function() {
return $state.params;
}, function (params) {
$scope.params = params;
}, true);
$scope.params = $state.params;
/**
* Check for markdown checkboxes in description to render the counter
*
* This should probably be moved to the backend at some point
*
* @param text
* @returns array of [finished, total] checkboxes
*/
$scope.getCheckboxes = function(text) {
const regTotal = /\[(X|\s|\_|\-)\]/igm;
const regFinished = /\[(X|\_|\-)\]/igm;
return [
((text || '').match(regFinished) || []).length,
((text || '').match(regTotal) || []).length
];
};
$scope.search = function (searchText) {
$scope.searchText = searchText;
$scope.refreshData();
};
$scope.$watch(function () {
if (typeof BoardService.getCurrent() !== 'undefined') {
return BoardService.getCurrent().title;
} else {
return null;
}
}, function () {
$scope.setPageTitle();
});
$scope.setPageTitle = function () {
if (BoardService.getCurrent()) {
document.title = BoardService.getCurrent().title + ' | Deck - ' + oc_defaults.name;
} else {
document.title = 'Deck - ' + oc_defaults.name;
}
};
$scope.statusservice.retainWaiting();
$scope.statusservice.retainWaiting();
// handle filter parameter for switching between archived/unarchived cards
$scope.switchFilter = function (filter) {
$state.go('.', {filter: filter});
};
$scope.$watch(function() {
return $scope.params.filter;
}, function (filter) {
if (filter === 'archive') {
$scope.loadArchived();
} else {
$scope.loadDefault();
}
});
if (parseInt(oc_config.version.split('.')[0]) >= 16) {
const ComponentVM = new Vue({
render: h => h(CollaborationView),
data: {
model: BoardService.getCurrent()
},
});
$scope.mountCollections = function () {
const MountingPoint = document.getElementById('collaborationResources');
if (MountingPoint) {
ComponentVM.model = BoardService.getCurrent();
ComponentVM.$mount(MountingPoint);
}
};
$scope.$$postDigest($scope.mountCollections);
$scope.$watch(function () {
return BoardService.getCurrent();
}, function () {
ComponentVM.model = BoardService.getCurrent();
if ($scope.sidebar.show) {
$scope.$$postDigest($scope.mountCollections);
}
});
}
$scope.toggleCompactMode = function() {
$rootScope.compactMode = !$rootScope.compactMode;
localStorage.setItem('deck.compactMode', JSON.stringify($rootScope.compactMode));
};
$scope.stacksData = StackService;
$scope.stacks = [];
$scope.$watch('stacksData', function () {
$scope.refreshData();
}, true);
$scope.refreshData = function () {
if ($scope.params.filter === 'archive') {
$scope.filterData('-lastModified', $scope.searchText);
} else {
$scope.filterData('order', $scope.searchText);
}
};
$scope.checkCanEdit = function () {
return !BoardService.getCurrent().archived;
};
// filter cards here, as ng-sortable will not work nicely with html-inline filters
$scope.filterData = function (order, text) {
if ($scope.stacks === undefined) {
return;
}
angular.copy(StackService.getData(), $scope.stacks);
$scope.stacks = $filter('orderBy')($scope.stacks, 'order');
angular.forEach($scope.stacks, function (value, key) {
var cards = $filter('cardSearchFilter')(value.cards, text);
cards = $filter('orderBy')(cards, order);
$scope.stacks[key].cards = cards;
});
};
$scope.loadDefault = function () {
StackService.fetchAll($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
};
$scope.loadArchived = function () {
StackService.fetchArchived($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
};
// Handle initial Loading
BoardService.fetchOne($scope.id).then(function (data) {
$scope.statusservice.releaseWaiting();
$scope.setPageTitle();
}, function (error) {
$scope.statusservice.setError('Error occured', error);
});
$scope.searchForUser = function (search) {
BoardService.searchUsers(search);
};
$scope.newStack = {'boardId': $scope.id};
$scope.newCard = {};
// Create a new Stack
$scope.createStack = function () {
StackService.create($scope.newStack).then(function (data) {
$scope.newStack.title = '';
});
};
$scope.createCard = function (stack, title) {
if (this['addCardForm' + stack].$valid) {
var newCard = {
'title': title,
'stackId': stack,
'type': 'plain'
};
CardService.create(newCard).then(function (data) {
$scope.stackservice.addCard(data);
$scope.newCard.title = '';
});
}
};
$scope.stackDelete = function (stack) {
$scope.stackservice.delete(stack.id);
};
$scope.stackUndoDelete = function (deletedStack) {
return StackService.undoDelete(deletedStack);
};
$scope.cardDelete = function (card) {
CardService.delete(card.id).then(function () {
StackService.removeCard(card);
$scope.sidebar.show = false;
});
};
$scope.cardOrCardAndStackUndoDelete = function (deletedCard) {
var associatedDeletedStack = $scope.stackservice.deleted[deletedCard.stackId];
if(associatedDeletedStack !== undefined) {
$scope.cardAndStackUndoDeleteAskForConfirmation(deletedCard, associatedDeletedStack);
} else {
$scope.cardUndoDelete(deletedCard);
}
};
$scope.cardAndStackUndoDeleteAskForConfirmation = function(deletedCard, associatedDeletedStack) {
OC.dialogs.confirm(
t('deck', 'The associated stack is deleted as well, it will be restored as well.'),
t('deck', 'Restore associated stack'),
function(state) {
if (state) {
$scope.cardAndStackUndoDelete(deletedCard, associatedDeletedStack);
}
}
);
};
$scope.cardAndStackUndoDelete = function(deletedCard, associatedDeletedStack) {
$scope.stackUndoDelete(associatedDeletedStack).then(function() {
$scope.cardUndoDelete(deletedCard);
});
};
$scope.cardUndoDelete = function(deletedCard) {
CardService.undoDelete(deletedCard).then(function() {
StackService.addCard(deletedCard);
});
};
$scope.cardArchive = function (card) {
CardService.archive(card);
StackService.removeCard(card);
};
$scope.isCurrentUserAssigned = function (card) {
if (! CardService.get(card.id).assignedUsers) {
return false;
}
var userList = CardService.get(card.id).assignedUsers.filter(function (obj) {
return obj.participant.uid === OC.getCurrentUser().uid;
});
return userList.length === 1;
};
$scope.cardAssignToMe = function (card) {
CardService.assignUser(card, OC.getCurrentUser().uid)
.then(
function() {StackService.updateCard(card);}
);
// TODO: remove this jquery call. Fix and use appPopoverMenuUtils instead
$('.popovermenu').addClass('hidden');
};
$scope.cardUnassignFromMe = function (card) {
CardService.unassignUser(card, OC.getCurrentUser().uid);
StackService.updateCard(card);
// TODO: remove this jquery call.Fix and use appPopoverMenuUtils instead
$('.popovermenu').addClass('hidden');
};
$scope.cardUnarchive = function (card) {
CardService.unarchive(card);
StackService.removeCard(card);
};
$scope.labelDelete = function (label) {
LabelService.delete(label.id);
// remove from board data
var i = BoardService.getCurrent().labels.indexOf(label);
BoardService.getCurrent().labels.splice(i, 1);
// remove from cards
var cards = CardService.data;
for (var card in cards) {
if (Object.prototype.hasOwnProperty.call(cards, card)) {
var labelsFromCard = cards[card].labels;
labelsFromCard.forEach(function (labelFromCard, index) {
if (labelFromCard.id === label.id) {
cards[card].labels.splice(index, 1);
}
});
}
}
};
$scope.labelCreate = function (label) {
label.boardId = $scope.id;
LabelService.create(label).then(function (data) {
$scope.newStack.title = '';
BoardService.getCurrent().labels.push(data);
$scope.status.createLabel = false;
$scope.newLabel = {};
}).catch((err) => {
OC.Notification.showTemporary(err);
});
};
$scope.labelUpdateBefore = function (label) {
label.renameTitle = label.title;
};
$scope.labelUpdate = function (label) {
label.edit = false;
LabelService.update(label).catch((err) => {
label.title = label.renameTitle;
OC.Notification.showTemporary(err);
});
// update labels in UI
var cards = CardService.data;
for (var card in cards) {
if (Object.prototype.hasOwnProperty.call(cards, card)) {
var labelsFromCard = cards[card].labels;
labelsFromCard.forEach(function (labelFromCard, index) {
if (labelFromCard.id === label.id) {
cards[card].labels[index] = label;
}
});
}
}
};
$scope.aclAdd = function (sharee) {
sharee.boardId = $scope.id;
BoardService.addAcl(sharee);
$scope.status.addSharee = null;
};
$scope.aclDelete = function (acl) {
BoardService.deleteAcl(acl).then(function(data) {
$scope.loadDefault();
$scope.refreshData();
});
};
$scope.aclUpdate = function (acl) {
BoardService.updateAcl(acl);
};
$scope.aclTypeString = function (acl) {
if (typeof acl === 'undefined') {
return '';
}
switch (acl.type) {
case OC.Share.SHARE_TYPE_USER:
return 'user';
case OC.Share.SHARE_TYPE_GROUP:
return 'group';
case OC.Share.SHARE_TYPE_CIRCLE:
return 'circles';
default:
return '';
}
};
// settings for card sorting
$scope.sortOptions = {
id: 'card',
itemMoved: function (event) {
event.source.itemScope.modelValue.status = event.dest.sortableScope.$parent.column;
var order = event.dest.index;
var card = $scope.cardservice.get(event.source.itemScope.c.id);
var newStack = event.dest.sortableScope.$parent.s.id;
var oldStack = card.stackId;
card.stackId = newStack;
CardService.update(card);
CardService.reorder(card, order).then(function (data) {
StackService.addCard(card);
StackService.reorderCard(card, order);
StackService.removeCard({
id: card.id,
stackId: oldStack
});
});
},
orderChanged: function (event) {
var order = event.dest.index;
var card = $scope.cardservice.get(event.source.itemScope.c.id);
var stack = event.dest.sortableScope.$parent.s.id;
CardService.reorder(card, order).then(function (data) {
StackService.reorderCard(card, order);
$scope.refreshData();
});
},
scrollableContainer: '#innerBoard',
containerPositioning: 'relative',
containment: '#innerBoard',
longTouch: true,
// auto scroll on drag
dragMove: function (itemPosition, containment, eventObj) {
if (eventObj) {
var container = $('#board');
var offset = container.offset();
var targetX = eventObj.pageX - (offset.left || container.scrollLeft());
var targetY = eventObj.pageY - (offset.top || container.scrollTop());
if (targetX < offset.left) {
container.scrollLeft(container.scrollLeft() - 25);
} else if (targetX > container.width()) {
container.scrollLeft(container.scrollLeft() + 25);
}
if (targetY < offset.top) {
container.scrollTop(container.scrollTop() - 25);
} else if (targetY > container.height()) {
container.scrollTop(container.scrollTop() + 25);
}
}
},
accept: function (sourceItemHandleScope, destSortableScope, destItemScope) {
return sourceItemHandleScope.sortableScope.options.id === 'card';
}
};
$scope.sortOptionsStack = {
id: 'stack',
orderChanged: function (event) {
var order = event.dest.index;
var stack = event.source.itemScope.s;
StackService.reorder(stack, order).then(function (data) {
$scope.refreshData();
});
},
scrollableContainer: '#board',
containerPositioning: 'relative',
containment: '#innerBoard',
dragMove: function (itemPosition, containment, eventObj) {
if (eventObj) {
var container = $('#board');
var offset = container.offset();
var targetX = eventObj.pageX - (offset.left || container.scrollLeft());
var targetY = eventObj.pageY - (offset.top || container.scrollTop());
if (targetX < offset.left) {
container.scrollLeft(container.scrollLeft() - 50);
} else if (targetX > container.width()) {
container.scrollLeft(container.scrollLeft() + 50);
}
if (targetY < offset.top) {
container.scrollTop(container.scrollTop() - 50);
} else if (targetY > container.height()) {
container.scrollTop(container.scrollTop() + 50);
}
}
},
accept: function (sourceItemHandleScope, destSortableScope, destItemScope) {
return sourceItemHandleScope.sortableScope.options.id === 'stack';
}
};
$scope.labelStyle = function (color) {
return {
'background-color': '#' + color,
'color': $filter('textColorFilter')(color)
};
};
$scope.colorValue = function(color) {
const re = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/;
if (re.test(color)) {
return color;
}
return '';
};
$scope.attachmentCount = function(card) {
if (Array.isArray(card.attachments)) {
return card.attachments.filter((obj) => obj.deletedAt === 0).length;
}
return card.attachmentCount;
};
$scope.unreadCommentCount = function(card) {
return card.commentsUnread;
};
$scope.isTimelineEnabled = function() {
return OCP.Comments && OCA.Activity;
};
});

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,47 +0,0 @@
/*
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import app from '../app/App.js';
// OwnCloud Click Handling
// https://doc.owncloud.org/server/8.0/developer_manual/app/css.html
app.directive('appNavigationEntryUtils', function () {
'use strict';
return {
restrict: 'C',
link: function (scope, elm) {
var menu = elm.siblings('.app-navigation-entry-menu');
var button = $(elm)
.find('.app-navigation-entry-utils-menu-button button');
button.click(function () {
menu.toggleClass('open');
});
scope.$on('documentClicked', function (scope, event) {
if (event.target !== button[0]) {
menu.removeClass('open');
}
});
}
};
});

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,46 +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) {
var pattern = rules[rule];
// eslint-disable-next-line detect-non-literal-regexp
if(_card[rule].search(new RegExp(pattern, 'i'))>=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,46 +0,0 @@
/*
* @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import app from '../app/App.js';
/* global app */
/* global angular */
/*
* Remove all assignedUsers from users list
*/
app.filter('withoutAssignedUsers', function () {
return function (users, assignedUsers) {
var _result = [];
angular.forEach(users, function (user) {
var _found = false;
angular.forEach(assignedUsers, function (assignedUser) {
if (assignedUser.participant.uid === user.uid) {
_found = true;
}
});
if (_found === false) {
_result.push(user);
}
});
return _result;
};
});

View File

@@ -1,69 +0,0 @@
/*
* @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
'use strict';
/* global __webpack_nonce__ __webpack_public_path__ OC t n */
// eslint-disable-next-line
__webpack_nonce__ = btoa(OC.requestToken);
// eslint-disable-next-line
__webpack_public_path__ = OC.linkTo('deck', 'js/build/');
import Vue from 'vue';
Vue.prototype.t = t;
Vue.prototype.n = n;
Vue.prototype.OC = OC;
import BoardSelector from './views/BoardSelector';
import './../css/collections.css';
((function(OCP) {
OCP.Collaboration.registerType('deck', {
action: () => {
return new Promise((resolve, reject) => {
const container = document.createElement('div');
container.id = 'deck-board-select';
const body = document.getElementById('body-user');
body.append(container);
const ComponentVM = new Vue({
render: h => h(BoardSelector),
});
ComponentVM.$mount(container);
ComponentVM.$root.$on('close', () => {
ComponentVM.$el.remove();
ComponentVM.$destroy();
reject();
});
ComponentVM.$root.$on('select', (id) => {
resolve(id);
ComponentVM.$el.remove();
ComponentVM.$destroy();
});
});
},
typeString: t('deck', 'Link to a board'),
typeIconClass: 'icon-deck'
});
})(window.OCP));

View File

@@ -1,38 +0,0 @@
'use strict';
import "@babel/polyfill";
/* global __webpack_nonce__ __webpack_public_path__ OC t n */
// eslint-disable-next-line
__webpack_nonce__ = btoa(OC.requestToken);
// eslint-disable-next-line
__webpack_public_path__ = OC.linkTo('deck', 'js/build/');
// used for building a vendor stylesheet
import 'ng-sortable/dist/ng-sortable.css';
import angular from 'angular';
import markdownit from 'markdown-it';
global.markdownit = markdownit;
import app from './app/App.js';
import './app/Config.js';
import './app/Run.js';
import ListController from 'controller/ListController.js';
import attachmentListComponent from './controller/AttachmentController.js';
import activityComponent from './controller/ActivityController.js';
app.controller('ListController', ListController);
app.component('attachmentListComponent', attachmentListComponent);
app.component('activityComponent', activityComponent);
// require all the js files from subdirectories
var context = require.context('.', true, /(controller|service|filters|directive)\/(.*)\.js$/);
context.keys().forEach(function (key) {
context(key);
});

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

8351
js/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,55 +0,0 @@
{
"name": "deck",
"description": "Frontend for the Nextcloud Deck app",
"repository": "https://github.com/nextcloud/deck",
"version": "1.0.0",
"directories": {
"test": "tests"
},
"dependencies": {
"@uirouter/angularjs": "^1.0.24",
"angular": "^1.7.9",
"angular-animate": "^1.7.9",
"angular-file-upload": "^2.5.0",
"angular-markdown-it": "^0.6.1",
"angular-sanitize": "^1.7.9",
"babel-polyfill": "^6.26.0",
"markdown-it": "^10.0.0",
"markdown-it-link-target": "^1.0.2",
"nextcloud-axios": "^0.2.1",
"nextcloud-vue": "^0.12.8",
"nextcloud-vue-collections": "^0.6.0",
"ng-infinite-scroll": "^1.3.0",
"ng-sortable": "^1.3.8",
"ui-select": "^0.19.8",
"vue": "^2.6.11",
"vuex": "^3.1.2"
},
"devDependencies": {
"@babel/core": "^7.7.7",
"@babel/plugin-syntax-dynamic-import": "^7.7.4",
"@babel/polyfill": "^7.7.0",
"@babel/preset-env": "^7.7.7",
"babel-loader": "^8.0.6",
"css-loader": "^3.4.1",
"karma": "^4.4.1",
"mini-css-extract-plugin": "^0.9.0",
"style-loader": "^1.1.2",
"url-loader": "^3.0.0",
"vue-loader": "^15.8.3",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10",
"webpack-merge": "^4.2.2"
},
"scripts": {
"build": "NODE_ENV=production ./node_modules/webpack-cli/bin/cli.js --mode production --config webpack.prod.config.js",
"dev": "./node_modules/webpack-cli/bin/cli.js --mode development --config webpack.dev.config.js",
"watch": "./node_modules/webpack-cli/bin/cli.js --mode development --config webpack.dev.config.js --watch",
"test": "echo \"Warning: no test specified\" && exit 0"
},
"author": "",
"license": "AGPL-3.0",
"keywords": []
}

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(error.data.message);
});
return deferred.promise;
};
ApiService.prototype.update = function (entity) {
var deferred = $q.defer();
var self = this;
$http.put(this.baseUrl + '/' + entity.id, entity).then(function (response) {
self.add(response.data);
deferred.resolve(response.data);
}, function (error) {
deferred.reject(error.data.message);
});
return deferred.promise;
};
ApiService.prototype.delete = function (id) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + id).then(function (response) {
self.deleted[id] = self.data[id];
delete self.data[id];
let deletedAt = response.data.deletedAt;
if (deletedAt !== undefined) {
self.deleted[id].deletedAt = deletedAt;
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
ApiService.prototype.undoDelete = function(entity) {
var self = this;
entity.deletedAt = 0;
var promise = this.update(entity);
promise.then(() => {
self.data[entity.id] = entity;
delete this.deleted[entity.id];
});
return promise;
};
// methods for managing data
ApiService.prototype.clear = function () {
this.data = {};
};
ApiService.prototype.add = function (entity) {
var element = this.data[entity.id];
if (element === undefined) {
this.data[entity.id] = entity;
} else {
Object.keys(entity).forEach(function (key) {
if (entity[key] !== null && element[key] !== entity[key]) {
element[key] = entity[key];
}
});
element.status = {};
}
};
ApiService.prototype.addAll = function (entities) {
var self = this;
angular.forEach(entities, function (entity) {
self.add(entity);
});
};
ApiService.prototype.getCurrent = function () {
return this.data[this.id];
};
ApiService.prototype.unsetCurrrent = function () {
this.id = null;
};
ApiService.prototype.getData = function () {
return $.map(this.data, function (value, index) {
return [value];
});
};
ApiService.prototype.getAll = function () {
return this.data;
};
ApiService.prototype.get = function (id) {
return this.data[id];
};
ApiService.prototype.getName = function () {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : '';
};
return ApiService;
});

View File

@@ -1,272 +0,0 @@
/*
* @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import app from '../app/App.js';
/* global app OC angular */
app.factory('BoardService', function (ApiService, $http, $q) {
var BoardService = function ($http, ep, $q) {
ApiService.call(this, $http, ep, $q);
};
BoardService.prototype = angular.copy(ApiService.prototype);
BoardService.prototype.delete = function (id) {
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + id).then(function (response) {
self.data[id].deletedAt = response.data.deletedAt;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
BoardService.prototype.deleteUndo = function (id) {
var deferred = $q.defer();
var self = this;
var _id = id;
$http.post(this.baseUrl + '/' + id + '/deleteUndo').then(function (response) {
self.data[_id].deletedAt = 0;
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Deleting ' + self.endpoint + ' failed');
});
return deferred.promise;
};
BoardService.prototype.searchUsers = function (search) {
var deferred = $q.defer();
var self = this;
var searchData = {
format: 'json',
perPage: 4,
itemType: [0, 1, 7]
};
if (search !== "") {
searchData.search = search;
}
$http({
method: 'GET',
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'sharees',
params: searchData
})
.then(function (result) {
var response = result.data;
if (response.ocs.meta.statuscode !== 100) {
deferred.reject('Error while searching for sharees');
return;
}
self.sharees = [];
var users = response.ocs.data.exact.users.concat(response.ocs.data.users.slice(0, 4));
var groups = response.ocs.data.exact.groups.concat(response.ocs.data.groups.slice(0, 4));
var circles = response.ocs.data.exact.groups.concat(response.ocs.data.circles.slice(0, 4));
// filter out everyone who is already in the share list
angular.forEach(users, function (item) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_USER, item);
var exists = false;
angular.forEach(self.getCurrent().acl, function (acl) {
if (acl.participant.primaryKey === item.value.shareWith) {
exists = true;
}
});
if (!exists && OC.getCurrentUser().uid !== item.value.shareWith) {
self.sharees.push(acl);
}
});
angular.forEach(groups, function (item) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_GROUP, item);
var exists = false;
angular.forEach(self.getCurrent().acl, function (acl) {
if (acl.participant.primaryKey === item.value.shareWith) {
exists = true;
}
});
if (!exists) {
self.sharees.push(acl);
}
});
angular.forEach(circles, function (item) {
var acl = self.generateAcl(OC.Share.SHARE_TYPE_CIRCLE, item);
var exists = false;
angular.forEach(self.getCurrent().acl, function (acl) {
if (acl.participant.primaryKey === item.value.shareWith) {
exists = true;
}
});
if (!exists) {
self.sharees.push(acl);
}
});
deferred.resolve(self.sharees);
}, function () {
deferred.reject('Error while searching for sharees');
});
return deferred.promise;
};
BoardService.prototype.generateAcl = function (type, ocsItem) {
return {
boardId: null,
id: null,
owner: false,
participant: {
primaryKey: ocsItem.value.shareWith,
uid: ocsItem.value.shareWith,
displayname: ocsItem.label
},
permissionEdit: true,
permissionManage: false,
permissionShare: false,
type: type
};
};
BoardService.prototype.addAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
var _acl = acl;
$http.post(this.baseUrl + '/' + acl.boardId + '/acl', _acl).then(function (response) {
if (!board.acl || board.acl.length === 0) {
board.acl = {};
}
board.acl[response.data.id] = response.data;
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error creating ACL ' + _acl);
});
acl = null;
return deferred.promise;
};
BoardService.prototype.deleteAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
$http.delete(this.baseUrl + '/' + acl.boardId + '/acl/' + acl.id).then(function (response) {
var index = board.acl.findIndex((item) => item.id === response.data.id);
delete board.acl[index];
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error deleting ACL ' + acl.id);
});
acl = null;
return deferred.promise;
};
BoardService.prototype.updateAcl = function (acl) {
var board = this.getCurrent();
var deferred = $q.defer();
var self = this;
var _acl = acl;
$http.put(this.baseUrl + '/' + acl.boardId + '/acl', _acl).then(function (response) {
var index = board.acl.findIndex((item) => item.id === _acl.id);
board.acl[index] = response.data;
if (response.data.type === OC.Share.SHARE_TYPE_USER) {
self._updateUsers();
} else {
self.fetchOne(response.data.boardId);
}
deferred.resolve(response.data);
}, function (error) {
deferred.reject('Error updating ACL ' + _acl);
});
acl = null;
return deferred.promise;
};
BoardService.prototype._updateUsers = function () {
if (!this.getCurrent() || !this.getCurrent().acl) {
return [];
}
this.getCurrent().users = [this.getCurrent().owner];
let self = this;
angular.forEach(this.getCurrent().acl, function(value, key) {
if (value.type === OC.Share.SHARE_TYPE_USER) {
self.getCurrent().users.push(value.participant);
}
});
};
BoardService.prototype.getUsers = function () {
if (this.getCurrent() && !this.getCurrent().users) {
this._updateUsers();
}
return this.getCurrent().users;
};
BoardService.prototype.canRead = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_READ'];
};
BoardService.prototype.canEdit = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_EDIT'];
};
BoardService.prototype.canManage = function (board) {
if (board !== null && board !== undefined) {
return board.permissions['PERMISSION_MANAGE'];
}
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_MANAGE'];
};
BoardService.prototype.canShare = function () {
if (!this.getCurrent() || !this.getCurrent().permissions) {
return false;
}
return this.getCurrent().permissions['PERMISSION_SHARE'];
};
BoardService.prototype.isArchived = function () {
if (!this.getCurrent() || this.getCurrent().archived) {
return true;
}
return false;
};
return new BoardService($http, 'boards', $q);
});

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(
t('deck', `A file with the name ${fileItem.file.name} already exists. Do you want to overwrite it?`),
t('deck', 'File already exists'),
function (result) {
if (result) {
self.runUpload(fileItem, existingFile.id);
} else {
let fileName = existingFile.extendedData.info.filename;
let foundFilesMatching = attachments.filter((attachment) => {
return attachment.extendedData.info.extension === existingFile.extendedData.info.extension
&& attachment.extendedData.info.filename.startsWith(fileName);
});
let nextIndex = foundFilesMatching.length + 1;
fileItem.file.name = fileName + ' (' + nextIndex + ').' + existingFile.extendedData.info.extension;
self.runUpload(fileItem);
}
}
);
} else {
self.runUpload(fileItem);
}
}, function (error) {
this.progress = this.progress.filter((item) => (fileItem.file.name !== item.file.name));
});
}
onSuccessItem (item, response) {
let attachments = this.cardservice.get(item.cardId).attachments;
let index = attachments.indexOf(attachments.find((attachment) => attachment.id === response.id));
if (~index) {
attachments = attachments.splice(index, 1);
}
this.cardservice.get(item.cardId).attachments.push(response);
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
onErrorItem (item, response) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
this.status = {
error: t('deck', `Failed to upload:`) + ' ' + item.file.name,
message: response.message
};
}
onCancelItem (item) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
getProgressItemsForCard (cardId) {
return this.progress.filter((fileItem) => (fileItem.cardId === cardId));
}
}
app.service('FileService', FileService);

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,76 +0,0 @@
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
node: {
fs: 'empty',
},
entry: {
deck: ['./init.js'],
collections: ['./init-collections.js']
},
output: {
filename: '[name].js',
path: __dirname + '/build'
},
module: {
rules: [
{
test: /\.css$/,
use: ['vue-style-loader', 'style-loader', 'css-loader']
},
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-syntax-dynamic-import']
}
},
{
test: /\.scss$/,
use: [
'vue-style-loader',
'css-loader',
'sass-loader'
]
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader',
options: {
name: '[name].[ext]?[hash]'
}
},
]
},
/* use external jQuery from server */
externals: {
'jquery': 'jQuery'
},
resolve: {
alias: {
vue$: 'vue/dist/vue.esm.js'
},
extensions: ['*', '.js', '.vue', '.json'],
modules: [
path.resolve(__dirname),
path.join(__dirname, 'node_modules'),
'node_modules'
]
},
plugins: [
new VueLoaderPlugin(),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
};

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,18 +0,0 @@
const webpack = require('webpack');
const merge = require('webpack-merge');
const baseConfig = require('./webpack.config.js');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = merge(baseConfig, {
mode: 'production',
devtool: '#source-map',
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
test: /vendor\.js(\?.*)?$/i,
}),
],
},
});

View File

@@ -1,39 +1,4 @@
[package]
exclude = [
"build/",
".git",
"js/node_modules",
"js/tests",
"js/legacy",
"js/controller",
"js/directive",
"js/filters",
"js/service",
"js/bower.json",
"js/.bowerrc",
"js/.jshintrc",
"js/Gruntfile.js",
"js/package.json",
"js/package-lock.json",
"docs/",
"tests",
".codecov.yml",
"composer.json",
"composer.lock",
"_config.yml",
".drone.yml",
".travis.yml",
".eslintignore",
".eslintrc.yml",
".gitignore",
"issue_template.md",
"krankerl.toml",
"Makefile",
"mkdocs.yml",
"run-eslint.sh"
]
before_cmds = [
'make clean-build',
'make build'
'make release'
]

View File

@@ -1,10 +1,8 @@
OC.L10N.register(
"deck",
{
"Hours" : "Uur",
"Minutes" : "Minute",
"File already exists" : "Lêer bestaan reeds",
"Personal" : "Persoonlik",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
@@ -13,21 +11,25 @@ OC.L10N.register(
"No file was uploaded" : "Geen lêer is opgelaai",
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Actions" : "Aksies",
"Close" : "Sluit",
"Cancel" : "Kanselleer",
"File already exists" : "Lêer bestaan reeds",
"Today" : "Vandag",
"Details" : "Besonderhede",
"Tags" : "Etikette",
"Group" : "Groep",
"Loading" : "Laai tans..",
"Can edit" : "Kan redigeer",
"Can share" : "Kan deel",
"Delete" : "Skrap",
"Edit" : "Wysig",
"Share" : "Deel",
"Create" : "Skep",
"Title" : "Titel",
"Cancel upload" : "Kanselleer oplaai",
"by" : "deur",
"Created:" : "Geskep:",
"Due date" : "Sperdatum",
"Description" : "Beskrywing",
"Saved" : "Bewaar",
"Settings" : "Instellings"
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Save" : "Stoor",
"Reply" : "Antwoord",
"Update" : "Werk by",
"seconds ago" : "sekondes gelede",
"Settings" : "Instellings",
"An error occurred" : "'n Fout het voorgekom"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,8 +1,6 @@
{ "translations": {
"Hours" : "Uur",
"Minutes" : "Minute",
"File already exists" : "Lêer bestaan reeds",
"Personal" : "Persoonlik",
"copy" : "kopie",
"Done" : "Gereed",
"The file was uploaded" : "Die lêer is opgelaai",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
@@ -11,21 +9,25 @@
"No file was uploaded" : "Geen lêer is opgelaai",
"Missing a temporary folder" : "Ontbrekende tydelike gids",
"A PHP extension stopped the file upload" : "n PHP-uitbreiding het die oplaai gestaak",
"Actions" : "Aksies",
"Close" : "Sluit",
"Cancel" : "Kanselleer",
"File already exists" : "Lêer bestaan reeds",
"Today" : "Vandag",
"Details" : "Besonderhede",
"Tags" : "Etikette",
"Group" : "Groep",
"Loading" : "Laai tans..",
"Can edit" : "Kan redigeer",
"Can share" : "Kan deel",
"Delete" : "Skrap",
"Edit" : "Wysig",
"Share" : "Deel",
"Create" : "Skep",
"Title" : "Titel",
"Cancel upload" : "Kanselleer oplaai",
"by" : "deur",
"Created:" : "Geskep:",
"Due date" : "Sperdatum",
"Description" : "Beskrywing",
"Saved" : "Bewaar",
"Settings" : "Instellings"
"Comments" : "Kommentare",
"Modified" : "Gewysig",
"Created" : "Geskep",
"Save" : "Stoor",
"Reply" : "Antwoord",
"Update" : "Werk by",
"seconds ago" : "sekondes gelede",
"Settings" : "Instellings",
"An error occurred" : "'n Fout het voorgekom"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,42 +1,36 @@
OC.L10N.register(
"deck",
{
"Hours" : "ساعات",
"Minutes" : "دقائق",
"File already exists" : "الملف موجود مسبقاً",
"Personal" : "شخصي",
"Finished" : "مكتملة",
"copy" : "أنسخ",
"Done" : "تم",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.",
"No file was uploaded" : "لم يتم رفع أي ملف",
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Actions" : "الإجراءات",
"Delete card" : "حذف البطاقة",
"Close" : "إغلاق",
"Cancel" : "إلغاء",
"File already exists" : "الملف موجود مسبقاً",
"Today" : "اليوم",
"Details" : "التفاصيل",
"Sharing" : "المشاركة",
"Tags" : "الوسوم",
"Timeline" : "الخيط الزمني",
"Group" : "الفريق",
"Circle" : "حلقة",
"Loading" : "Loading",
"Undo" : "تراجع",
"Can edit" : "يمكنه التغيير",
"Can share" : "Can share",
"Delete" : "حذف ",
"Edit" : "تعديل",
"Share" : "شارك",
"Update tag" : "تحديث الوسم",
"Edit tag" : "تعديل الوسم",
"Delete tag" : "حذف الوسم",
"Create" : "إنشاء",
"Status" : "الحالة",
"Title" : "العنوان",
"More actions" : "إجراءات أخرى",
"Cancel upload" : "إلغاء الرفع",
"by" : "من قبل",
"Delete attachment" : "حذف المرفق",
"Modified:" : "عُدل في :",
"Created:" : "تاريخ الإنشاء :",
"Description" : "الوصف",
"Attachments" : "المرفقات",
"Saved" : م الإحتفاظ به",
"Comments" : عليقات",
"Modified" : "آخر تعديل",
"Upload attachment" : "رفع المرفقات",
"Settings" : "الإعدادات"
"Save" : "حفظ",
"Reply" : "رد",
"Update" : "تحديث",
"Delete card" : "حذف البطاقة",
"seconds ago" : "ثوان مضت",
"Settings" : "الإعدادات",
"An error occurred" : "طرأ هناك خطأ"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");

View File

@@ -1,40 +1,34 @@
{ "translations": {
"Hours" : "ساعات",
"Minutes" : "دقائق",
"File already exists" : "الملف موجود مسبقاً",
"Personal" : "شخصي",
"Finished" : "مكتملة",
"copy" : "أنسخ",
"Done" : "تم",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "حجم الملف الذي تريد ترفيعه أعلى مما MAX_FILE_SIZE يسمح به في واجهة ال HTML.",
"No file was uploaded" : "لم يتم رفع أي ملف",
"Missing a temporary folder" : "المجلد المؤقت غير موجود",
"Actions" : "الإجراءات",
"Delete card" : "حذف البطاقة",
"Close" : "إغلاق",
"Cancel" : "إلغاء",
"File already exists" : "الملف موجود مسبقاً",
"Today" : "اليوم",
"Details" : "التفاصيل",
"Sharing" : "المشاركة",
"Tags" : "الوسوم",
"Timeline" : "الخيط الزمني",
"Group" : "الفريق",
"Circle" : "حلقة",
"Loading" : "Loading",
"Undo" : "تراجع",
"Can edit" : "يمكنه التغيير",
"Can share" : "Can share",
"Delete" : "حذف ",
"Edit" : "تعديل",
"Share" : "شارك",
"Update tag" : "تحديث الوسم",
"Edit tag" : "تعديل الوسم",
"Delete tag" : "حذف الوسم",
"Create" : "إنشاء",
"Status" : "الحالة",
"Title" : "العنوان",
"More actions" : "إجراءات أخرى",
"Cancel upload" : "إلغاء الرفع",
"by" : "من قبل",
"Delete attachment" : "حذف المرفق",
"Modified:" : "عُدل في :",
"Created:" : "تاريخ الإنشاء :",
"Description" : "الوصف",
"Attachments" : "المرفقات",
"Saved" : م الإحتفاظ به",
"Comments" : عليقات",
"Modified" : "آخر تعديل",
"Upload attachment" : "رفع المرفقات",
"Settings" : "الإعدادات"
"Save" : "حفظ",
"Reply" : "رد",
"Update" : "تحديث",
"Delete card" : "حذف البطاقة",
"seconds ago" : "ثوان مضت",
"Settings" : "الإعدادات",
"An error occurred" : "طرأ هناك خطأ"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}

View File

@@ -1,9 +1,6 @@
OC.L10N.register(
"deck",
{
"Hours" : "Hores",
"Minutes" : "Minutos",
"File already exists" : "Yá esiste'l ficheru",
"Deck" : "Deck",
"Personal" : "Personal",
"Finished" : "Finó",
@@ -17,34 +14,28 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta un direutoriu temporal",
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
"Submit" : "Unviar",
"Cancel" : "Encaboxar",
"File already exists" : "Yá esiste'l ficheru",
"Today" : "Güei",
"Show archived cards" : "Amosar tarxetes archivaes",
"Actions" : "Aiciones",
"Close" : "Zarrar",
"Details" : "Detalles",
"Sharing" : "Compartiendo",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"Group" : "Group",
"Circle" : "Círculu",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Undo" : "Desfacer",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Desaniciar",
"Edit" : "Editar",
"Share" : "Compartir",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Create" : "Crear",
"Status" : "Estáu",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"Cancel upload" : "Encaboxar xuba",
"by" : "por",
"Modified:" : "Modificáu:",
"Created:" : "Creóse'l",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Attachments" : "Axuntos",
"Saved" : "Guardóse",
"Comments" : "Comentarios",
"Modified" : "Modificóse'l",
"Created" : "Creóse",
"Save" : "Guardar",
"Reply" : "Rempuesta",
"Update" : "Anovar",
"(group)" : "(grupu)",
"seconds ago" : "hai segundos",
"Settings" : "Settings"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,7 +1,4 @@
{ "translations": {
"Hours" : "Hores",
"Minutes" : "Minutos",
"File already exists" : "Yá esiste'l ficheru",
"Deck" : "Deck",
"Personal" : "Personal",
"Finished" : "Finó",
@@ -15,34 +12,28 @@
"Missing a temporary folder" : "Falta un direutoriu temporal",
"Could not write file to disk" : "Nun pudo escribise nel discu'l ficheru",
"A PHP extension stopped the file upload" : "Una estensión de PHP paró la xuba de ficheros",
"Submit" : "Unviar",
"Cancel" : "Encaboxar",
"File already exists" : "Yá esiste'l ficheru",
"Today" : "Güei",
"Show archived cards" : "Amosar tarxetes archivaes",
"Actions" : "Aiciones",
"Close" : "Zarrar",
"Details" : "Detalles",
"Sharing" : "Compartiendo",
"Tags" : "Etiquetes",
"Select users or groups to share with" : "Esbilla usuarios o grupos colos que compartir",
"Group" : "Group",
"Circle" : "Círculu",
"No matching user or group found." : "Nun s'alcontró dengún usuariu o grupu que concasara.",
"Loading" : "Cargando",
"Undo" : "Desfacer",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Desaniciar",
"Edit" : "Editar",
"Share" : "Compartir",
"Manage" : "Xestionar",
"Discard share" : "Escartar compartición",
"Create" : "Crear",
"Status" : "Estáu",
"Title" : "Títulu",
"Members" : "Miembros",
"More actions" : "Más aiciones",
"Cancel upload" : "Encaboxar xuba",
"by" : "por",
"Modified:" : "Modificáu:",
"Created:" : "Creóse'l",
"Click to set" : "Primi p'afitar",
"Description" : "Descripción",
"Attachments" : "Axuntos",
"Saved" : "Guardóse",
"Comments" : "Comentarios",
"Modified" : "Modificóse'l",
"Created" : "Creóse",
"Save" : "Guardar",
"Reply" : "Rempuesta",
"Update" : "Anovar",
"(group)" : "(grupu)",
"seconds ago" : "hai segundos",
"Settings" : "Settings"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,29 +1,27 @@
OC.L10N.register(
"deck",
{
"Hours" : "Saatlar",
"Minutes" : "Dəqiqələr",
"Personal" : "Şəxsi",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Actions" : "İşlər",
"Close" : "Bağla",
"Cancel" : "Dayandır",
"Today" : "Bu gün",
"Details" : "Detallar",
"Sharing" : "Paylaşılır",
"Tags" : "Işarələr",
"Group" : "Qrup",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Share" : "Paylaş",
"Create" : "Yarat",
"Title" : "Başlıq",
"Cancel upload" : "Yüklənməni dayandır",
"by" : "onunla",
"Modified:" : "Dəyişdirildi:",
"Created:" : "Yaradıldı:",
"Description" : "Açıqlanma",
"Saved" : "Saxlanıldı",
"Modified" : "Dəyişdirildi",
"Save" : "Saxla",
"Reply" : "Cavab",
"Update" : "Yenilənmə",
"(group)" : "(qrup)",
"seconds ago" : "saniyələr öncə",
"Settings" : "Quraşdırmalar"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,27 +1,25 @@
{ "translations": {
"Hours" : "Saatlar",
"Minutes" : "Dəqiqələr",
"Personal" : "Şəxsi",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
"No file was uploaded" : "Heç bir fayl yüklənilmədi",
"Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
"Actions" : "İşlər",
"Close" : "Bağla",
"Cancel" : "Dayandır",
"Today" : "Bu gün",
"Details" : "Detallar",
"Sharing" : "Paylaşılır",
"Tags" : "Işarələr",
"Group" : "Qrup",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Sil",
"Edit" : "Dəyişiklik et",
"Share" : "Paylaş",
"Create" : "Yarat",
"Title" : "Başlıq",
"Cancel upload" : "Yüklənməni dayandır",
"by" : "onunla",
"Modified:" : "Dəyişdirildi:",
"Created:" : "Yaradıldı:",
"Description" : "Açıqlanma",
"Saved" : "Saxlanıldı",
"Modified" : "Dəyişdirildi",
"Save" : "Saxla",
"Reply" : "Cavab",
"Update" : "Yenilənmə",
"(group)" : "(qrup)",
"seconds ago" : "saniyələr öncə",
"Settings" : "Quraşdırmalar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,56 +1,45 @@
OC.L10N.register(
"deck",
{
"Hours" : "Часове",
"Minutes" : "Минути",
"File already exists" : "Файлът вече съществува",
"Personal" : "Лични",
"Finished" : "Готово",
"To review" : "За преглед",
"Action needed" : "Необходимо е действие",
"Later" : "По-късно",
"copy" : "Копиране",
"Done" : "Готово",
"The file was uploaded" : "Файлът е качен",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размерът на файла надвишава максималния размер определен от MAX_FILE_SIZE в HTML формата.",
"The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен",
"Missing a temporary folder" : "Липсва временна папка",
"Submit" : "Изпращане",
"Actions" : "Действия",
"Close" : "Затваряне",
"Cancel" : "Отказ",
"File already exists" : "Файлът вече съществува",
"Do you want to overwrite it?" : "Искате ли да го презапишете?",
"Filter by tag" : "Филтрирай по маркер",
"Today" : "Днес",
"Details" : "Подробности",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи",
"Group" : "Група",
"Circle" : "Кръг",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи",
"Loading" : "Зареждане",
"Undo" : "Отмяна",
"Can edit" : "Може да редактира",
"Can share" : "Може да споделя",
"Delete" : "Изтриване",
"Edit" : "Редакция",
"Share" : "Сподели",
"Manage" : "Управление",
"Discard share" : "Отхвърляне на споделяне",
"Delete tag" : "Изтрий таг",
"Create" : "Създай",
"Create a new tag" : "Създаване на нов етикет",
"Status" : "Състояние",
"Title" : "Име",
"Members" : "Членове",
"More actions" : "Още действия",
"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" : "Запазено",
"Comments" : "Коментари",
"Modified" : "Промяна",
"Created" : "Създаден",
"Upload attachment" : "Качване",
"Settings" : "Настройки"
"Save" : "Запазване",
"Reply" : "Отговори",
"Update" : "Обновяване",
"(group)" : "(група)",
"seconds ago" : "преди секунди",
"Settings" : "Настройки",
"An error occurred" : "Възникна грешка"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,54 +1,43 @@
{ "translations": {
"Hours" : "Часове",
"Minutes" : "Минути",
"File already exists" : "Файлът вече съществува",
"Personal" : "Лични",
"Finished" : "Готово",
"To review" : "За преглед",
"Action needed" : "Необходимо е действие",
"Later" : "По-късно",
"copy" : "Копиране",
"Done" : "Готово",
"The file was uploaded" : "Файлът е качен",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размерът на файла надвишава максималния размер определен от MAX_FILE_SIZE в HTML формата.",
"The file was only partially uploaded" : "Файлът е качен частично",
"No file was uploaded" : "Нито един файл не е качен",
"Missing a temporary folder" : "Липсва временна папка",
"Submit" : "Изпращане",
"Actions" : "Действия",
"Close" : "Затваряне",
"Cancel" : "Отказ",
"File already exists" : "Файлът вече съществува",
"Do you want to overwrite it?" : "Искате ли да го презапишете?",
"Filter by tag" : "Филтрирай по маркер",
"Today" : "Днес",
"Details" : "Подробности",
"Sharing" : "Споделяне",
"Tags" : "Етикети",
"Select users or groups to share with" : "Споделяне с потребители или групи",
"Group" : "Група",
"Circle" : "Кръг",
"No matching user or group found." : "Не са намерени съвпадащи потребители или групи",
"Loading" : "Зареждане",
"Undo" : "Отмяна",
"Can edit" : "Може да редактира",
"Can share" : "Може да споделя",
"Delete" : "Изтриване",
"Edit" : "Редакция",
"Share" : "Сподели",
"Manage" : "Управление",
"Discard share" : "Отхвърляне на споделяне",
"Delete tag" : "Изтрий таг",
"Create" : "Създай",
"Create a new tag" : "Създаване на нов етикет",
"Status" : "Състояние",
"Title" : "Име",
"Members" : "Членове",
"More actions" : "Още действия",
"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" : "Запазено",
"Comments" : "Коментари",
"Modified" : "Промяна",
"Created" : "Създаден",
"Upload attachment" : "Качване",
"Settings" : "Настройки"
"Save" : "Запазване",
"Reply" : "Отговори",
"Update" : "Обновяване",
"(group)" : "(група)",
"seconds ago" : "преди секунди",
"Settings" : "Настройки",
"An error occurred" : "Възникна грешка"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,29 +1,27 @@
OC.L10N.register(
"deck",
{
"Hours" : "ঘন্টা",
"Minutes" : "মিনিট",
"Personal" : "ব্যক্তিগত",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Actions" : "পদক্ষেপসমূহ",
"Close" : "বন্ধ",
"Cancel" : "বাতির",
"Today" : "আজ",
"Details" : "বিসতারিত",
"Sharing" : "ভাগাভাগিরত",
"Tags" : "ট্যাগ",
"Group" : "গোষ্ঠীসমূহ",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "মুছে",
"Edit" : "সম্পাদনা",
"Share" : "ভাগাভাগি কর",
"Create" : "তৈরী কর",
"Title" : "শিরোনাম",
"Cancel upload" : "আপলোড বাতিল কর",
"by" : "কর্তৃক",
"Modified:" : "পরিবর্তিতঃ",
"Created:" : "তৈরীর নির্ঘন্টঃ",
"Description" : "বিবরণ",
"Saved" : "সংরক্ষণ করা হলো",
"Modified" : "পরিবর্তিত",
"Save" : "সংরক্ষণ",
"Reply" : "জবাব",
"Update" : "পরিবর্ধন",
"(group)" : "(গোষ্ঠি)",
"seconds ago" : "সেকেন্ড পূর্বে",
"Settings" : "সেটিংস"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,27 +1,25 @@
{ "translations": {
"Hours" : "ঘন্টা",
"Minutes" : "মিনিট",
"Personal" : "ব্যক্তিগত",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
"No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
"Actions" : "পদক্ষেপসমূহ",
"Close" : "বন্ধ",
"Cancel" : "বাতির",
"Today" : "আজ",
"Details" : "বিসতারিত",
"Sharing" : "ভাগাভাগিরত",
"Tags" : "ট্যাগ",
"Group" : "গোষ্ঠীসমূহ",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "মুছে",
"Edit" : "সম্পাদনা",
"Share" : "ভাগাভাগি কর",
"Create" : "তৈরী কর",
"Title" : "শিরোনাম",
"Cancel upload" : "আপলোড বাতিল কর",
"by" : "কর্তৃক",
"Modified:" : "পরিবর্তিতঃ",
"Created:" : "তৈরীর নির্ঘন্টঃ",
"Description" : "বিবরণ",
"Saved" : "সংরক্ষণ করা হলো",
"Modified" : "পরিবর্তিত",
"Save" : "সংরক্ষণ",
"Reply" : "জবাব",
"Update" : "পরিবর্ধন",
"(group)" : "(গোষ্ঠি)",
"seconds ago" : "সেকেন্ড পূর্বে",
"Settings" : "সেটিংস"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -1,30 +1,24 @@
OC.L10N.register(
"deck",
{
"Hours" : "Sati",
"Minutes" : "Minute",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Personal" : "Osobno",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Actions" : "Radnje",
"Close" : "Zatvori",
"Cancel" : "Otkaži",
"Today" : "Danas",
"Sharing" : "Dijeljenje",
"Group" : "Grupa",
"Circle" : "Krug",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Obriši",
"Edit" : "Izmjeni",
"Share" : "Podjeli",
"Create" : "Ustvari",
"Status" : "Status",
"Title" : "Naslov",
"Members" : "Članovi",
"Cancel upload" : "Prekini učitavanje",
"by" : "od strane",
"Description" : "Opis",
"Saved" : "Spremljeno",
"Settings" : "Podešavanje"
"Comments" : "Komentari",
"Modified" : "Izmijenjeno",
"Save" : "Spremi",
"Update" : "Ažuriraj",
"Settings" : "Podešavanje",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena"
},
"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,28 +1,22 @@
{ "translations": {
"Hours" : "Sati",
"Minutes" : "Minute",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena",
"Personal" : "Osobno",
"Done" : "Done",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
"No file was uploaded" : "Nijedna datoteka nije učitana.",
"Missing a temporary folder" : "Nedostaje privremeni direktorij.",
"Actions" : "Radnje",
"Close" : "Zatvori",
"Cancel" : "Otkaži",
"Today" : "Danas",
"Sharing" : "Dijeljenje",
"Group" : "Grupa",
"Circle" : "Krug",
"Loading" : "Loading",
"Can edit" : "Can edit",
"Can share" : "Can share",
"Delete" : "Obriši",
"Edit" : "Izmjeni",
"Share" : "Podjeli",
"Create" : "Ustvari",
"Status" : "Status",
"Title" : "Naslov",
"Members" : "Članovi",
"Cancel upload" : "Prekini učitavanje",
"by" : "od strane",
"Description" : "Opis",
"Saved" : "Spremljeno",
"Settings" : "Podešavanje"
"Comments" : "Komentari",
"Modified" : "Izmijenjeno",
"Save" : "Spremi",
"Update" : "Ažuriraj",
"Settings" : "Podešavanje",
"Maximum file size of {size} exceeded" : "Maksimalna veličina datoteke prekoračena"
},"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,17 +1,6 @@
OC.L10N.register(
"deck",
{
"Please provide a content for your comment." : "Proporcioneu un contingut per al vostre comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha suprimit el comentari",
"The associated stack is deleted as well, it will be restored as well." : "La pila associada també se suprimeix, també es restaurarà.",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Link to a board" : "Enllaça a un tauler",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"File already exists" : "El fitxer ja existeix",
"You have created a new board {board}" : "Heu creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Heu suprimit el tauler {board}",
@@ -89,6 +78,7 @@ OC.L10N.register(
"To review" : "Per revisar",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents",
"Doing" : "En procés",
"Done" : "Finalitzades",
@@ -104,98 +94,58 @@ OC.L10N.register(
"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",
"Create new board" : "Crea un nou tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila",
"Submit" : "Envia",
"Cancel" : "Cancel·la",
"File already exists" : "El fitxer ja existeix",
"Do you want to overwrite it?" : "Voleu sobre-escriure'l?",
"Today" : "Avui",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Share board" : "Comparteix tauler",
"Archived cards" : "Targetes arxivades",
"Actions" : "Accions",
"Drop your files here to upload it to the card" : "Deixeu anar els fitxers aquí per carregar-los a la targeta",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Archive card" : "Arxiva la targeta",
"Unarchive card" : "Desarxiva targeta",
"Delete card" : "Suprimeix targeta",
"Enter a card title" : "Introduïu un títol a la targeta",
"Add card" : "Afegeix una targeta",
"Close" : "Tanca",
"Sharing" : "S'està compartint",
"Details" : "Detalls",
"Sharing" : "Compartició",
"Tags" : "Etiquetes",
"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" : "Gestiona",
"Discard share" : "Descarta la compartició",
"Sharing has been disabled for your account." : "La compartició s'ha desactivat per al vostre compte.",
"Update tag" : "Actualitza etiqueta",
"Edit tag" : "Edita etiqueta",
"Delete tag" : "Suprimeix etiqueta",
"Create" : "Crea",
"Create a new tag" : "Crea una nova etiqueta",
"Deleted stacks" : "Piles suprimides",
"Undo" : "Desfés",
"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",
"(Group)" : "(Grup)",
"Can edit" : "Pot editar",
"Can share" : "Pot compartir",
"Delete" : "Eliminar",
"Add a new stack" : "Afegeix una nova pila",
"Add card" : "Afegeix una targeta",
"Edit" : "Edita",
"Due date" : "Per la data",
"Remove due date" : "Elimina la data de venciment",
"Description" : "Descripció",
"Formatting help" : "Format d'ajuda",
"Attachments" : "Adjunts",
"Comments" : "Comentaris",
"Modified" : "Darrera modificació",
"Created" : "Creat",
"Upload attachment" : "Carrega l'adjunt",
"Save" : "Desa",
"Reply" : "Respon",
"Update" : "Actualitza",
"(group)" : "(grup)",
"Delete card" : "Suprimeix targeta",
"Move card" : "Mou la targeta",
"seconds ago" : "fa uns segons",
"Archived boards" : "Taulers arxivats",
"Shared boards" : "Taulers compartits",
"Settings" : "Paràmetres",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"New board title" : "Títol del nou tauler",
"Edit board" : "Edita el tauler",
"An error occurred" : "S'ha produït un error",
"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 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."
"Board details" : "Detalls de la junta",
"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}"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -1,15 +1,4 @@
{ "translations": {
"Please provide a content for your comment." : "Proporcioneu un contingut per al vostre comentari.",
"Posting the comment failed." : "No s'ha pogut publicar el comentari.",
"The comment has been deleted" : "S'ha suprimit el comentari",
"The associated stack is deleted as well, it will be restored as well." : "La pila associada també se suprimeix, també es restaurarà.",
"Restore associated stack" : "Restaura la pila associada",
"Remove user from card" : "Suprimeix l'usuari de la targeta",
"Hours" : "Hores",
"Minutes" : "Minuts",
"Link to a board" : "Enllaça a un tauler",
"Maximum file size of {size} exceeded" : "S'ha superat la mida màxima per fitxer de {size}",
"File already exists" : "El fitxer ja existeix",
"You have created a new board {board}" : "Heu creat el nou tauler {board}",
"{user} has created a new board {board}" : "{user} ha creat el nou tauler {board}",
"You have deleted the board {board}" : "Heu suprimit el tauler {board}",
@@ -87,6 +76,7 @@
"To review" : "Per revisar",
"Action needed" : "Acció necessària",
"Later" : "Més tard",
"copy" : "copia",
"To do" : "Pendents",
"Doing" : "En procés",
"Done" : "Finalitzades",
@@ -102,98 +92,58 @@
"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",
"Create new board" : "Crea un nou tauler",
"Select the board to link to a project" : "Selecciona el tauler per enllaçar a un projecte",
"Select board" : "Selecciona un tauler",
"Add a new stack" : "Afegeix una nova pila",
"Submit" : "Envia",
"Cancel" : "Cancel·la",
"File already exists" : "El fitxer ja existeix",
"Do you want to overwrite it?" : "Voleu sobre-escriure'l?",
"Today" : "Avui",
"Show archived cards" : "Mostra les targetes arxivades",
"Hide archived cards" : "Amaga les targetes arxivades",
"Toggle compact mode" : "Commuta el mode compacte",
"Show board details" : "Mostra els detalls del tauler",
"All Boards" : "Tots els Taulers",
"Archived boards" : "Taulers arxivats",
"Share board" : "Comparteix tauler",
"Archived cards" : "Targetes arxivades",
"Actions" : "Accions",
"Drop your files here to upload it to the card" : "Deixeu anar els fitxers aquí per carregar-los a la targeta",
"Assign card to me" : "Assigna'm la targeta",
"Unassign card from me" : "Desassigna'm la targeta",
"Archive card" : "Arxiva la targeta",
"Unarchive card" : "Desarxiva targeta",
"Delete card" : "Suprimeix targeta",
"Enter a card title" : "Introduïu un títol a la targeta",
"Add card" : "Afegeix una targeta",
"Close" : "Tanca",
"Sharing" : "S'està compartint",
"Details" : "Detalls",
"Sharing" : "Compartició",
"Tags" : "Etiquetes",
"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" : "Gestiona",
"Discard share" : "Descarta la compartició",
"Sharing has been disabled for your account." : "La compartició s'ha desactivat per al vostre compte.",
"Update tag" : "Actualitza etiqueta",
"Edit tag" : "Edita etiqueta",
"Delete tag" : "Suprimeix etiqueta",
"Create" : "Crea",
"Create a new tag" : "Crea una nova etiqueta",
"Deleted stacks" : "Piles suprimides",
"Undo" : "Desfés",
"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",
"(Group)" : "(Grup)",
"Can edit" : "Pot editar",
"Can share" : "Pot compartir",
"Delete" : "Eliminar",
"Add a new stack" : "Afegeix una nova pila",
"Add card" : "Afegeix una targeta",
"Edit" : "Edita",
"Due date" : "Per la data",
"Remove due date" : "Elimina la data de venciment",
"Description" : "Descripció",
"Formatting help" : "Format d'ajuda",
"Attachments" : "Adjunts",
"Comments" : "Comentaris",
"Modified" : "Darrera modificació",
"Created" : "Creat",
"Upload attachment" : "Carrega l'adjunt",
"Save" : "Desa",
"Reply" : "Respon",
"Update" : "Actualitza",
"(group)" : "(grup)",
"Delete card" : "Suprimeix targeta",
"Move card" : "Mou la targeta",
"seconds ago" : "fa uns segons",
"Archived boards" : "Taulers arxivats",
"Shared boards" : "Taulers compartits",
"Settings" : "Paràmetres",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Limitant el Tauler bloquejarà la creació de taulers als usuaris que no són part d'aquests grups. Els usuaris podran seguir treballant en els taulers que hagin estat compartits amb ells.",
"New board title" : "Títol del nou tauler",
"Edit board" : "Edita el tauler",
"An error occurred" : "S'ha produït un error",
"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 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."
"Board details" : "Detalls de la junta",
"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}"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

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