Compare commits

...
2191 Commits
Author SHA1 Message Date
Lauri Ojansivu 7df278e805 v7.78 2024-12-31 23:13:54 +02:00
Lauri Ojansivu 34325dde8c Updated translations. 2024-12-31 23:09:25 +02:00
Lauri Ojansivu c7e3cc7e0a Updated ChangeLog. 2024-12-31 22:57:49 +02:00
Lauri Ojansivu 826876ff11 Merge pull request #5649 from NadavTasher/bugfix/fix-list-header-width-in-cleandark-theme
Fix list header too wide in cleanlight and cleandark themes
2024-12-31 22:56:34 +02:00
Lauri Ojansivu b031da6c6d Updated ChangeLog. 2024-12-31 22:55:53 +02:00
Lauri Ojansivu 43e15a1ef4 Merge pull request #5648 from NadavTasher/bugfix/keyboard-shortcuts-behaving-differently-with-caps
Fix upper-case keyboard shortcuts & different language shortcuts getting triggered when shortcuts are disabled
2024-12-31 22:54:35 +02:00
Lauri Ojansivu 7c32188968 Updated ChangeLog. 2024-12-31 22:53:58 +02:00
Lauri Ojansivu 78d38bc4e2 Merge pull request #5647 from NadavTasher/bugfix/change-assign-self-shortcut
Fix assign-self shortcut in shortcut help popup (different from actual shortcut)
2024-12-31 22:52:42 +02:00
Lauri Ojansivu f942631fd4 Updated ChangeLog. 2024-12-31 22:52:01 +02:00
Lauri Ojansivu 5d64c28e89 Merge pull request #5646 from NadavTasher/feature/additional-card-archive-shortcut
Add additional archiving keyboard shortcut (added `-`)
2024-12-31 22:51:06 +02:00
Lauri Ojansivu 485c2f0a7d Updated ChangeLog. 2024-12-31 22:50:31 +02:00
Lauri Ojansivu 3d894d0e56 Merge pull request #5645 from NadavTasher/bugfix/vertical-scrollbar-toggle-style
Fix styling for vertical scrollbars toggle
2024-12-31 22:48:32 +02:00
Lauri Ojansivu b265701844 Updated ChangeLog. 2024-12-31 22:47:56 +02:00
Lauri Ojansivu 468760bd31 Merge pull request #5644 from NadavTasher/bugfix/hide-scrollbars-on-old-browser-versions
Disable scrollbars on older versions of Chrome and Safari in "no vertical scrollbars" mode
2024-12-31 22:46:01 +02:00
Nadav Tasher f03744d99b Fix list header too wide in cleanlight and cleandark themes 2024-12-31 21:42:42 +02:00
Nadav Tasher 26e78a1381 Fix upper-case keyboard shortcuts & different language shortcuts getting triggered when shortcuts are disabled 2024-12-31 21:18:17 +02:00
Nadav Tasher 44aeb323d9 Change assign-self shortcut in shortcut help popup 2024-12-31 19:47:21 +02:00
Nadav Tasher 503298a33f Add additional archiving keyboard shortcut 2024-12-31 19:38:46 +02:00
Nadav Tasher 58b456d5d5 Fix styling for vertical scrollbars toggle 2024-12-31 19:30:22 +02:00
Nadav Tasher d370cac14c Disable scrollbars on older versions of Chrome and Safari 2024-12-31 19:17:06 +02:00
Lauri Ojansivu b29c19f5e0 Merge newest changes. 2024-12-31 01:26:43 +02:00
Lauri Ojansivu a3ba0cf6d5 Updated translations. 2024-12-31 01:26:01 +02:00
Lauri Ojansivu 8bb089fe07 Updated translations. 2024-12-31 00:37:44 +02:00
Lauri Ojansivu 7ba66f6386 Updated translations. 2024-12-31 00:22:15 +02:00
Lauri Ojansivu b537f9b20a Merge pull request #5643 from NadavTasher/feature/optional-vertical-scrollbars
Allow vertical scrollbars to be disabled (new preference)
2024-12-30 23:44:33 +02:00
Lauri Ojansivu 7abe8d71a8 v7.77 2024-12-30 23:32:34 +02:00
Nadav Tasher 3e01231874 Allow vertical scrollbars to be disabled (user preferences, visible by default) 2024-12-30 23:22:54 +02:00
Lauri Ojansivu fb8e23dc4b Updated translations. 2024-12-30 23:20:32 +02:00
Lauri Ojansivu bf0d6cad2c Updated ChangeLog. 2024-12-30 23:18:04 +02:00
Lauri Ojansivu 5a9d36341c Merge pull request #5642 from NadavTasher/bugfix/generic-fix-for-keyboard-shortcuts-stop-callback
Fix "SPACE" shortcut not working after recent fixes
2024-12-30 23:17:14 +02:00
Lauri Ojansivu c7bf0b24a7 Updated ChangeLog. 2024-12-30 23:16:35 +02:00
Lauri Ojansivu d69a505928 Merge pull request #5641 from NadavTasher/bugfix/fix-weird-add-checklist-buttons-in-card-details
Fix weird add checklist buttons in card details
2024-12-30 23:15:24 +02:00
Lauri Ojansivu 7980899f37 Updated ChangeLog. 2024-12-30 23:14:39 +02:00
Lauri Ojansivu 91d245a414 Merge pull request #5640 from NadavTasher/bugfix/fix-bad-comments-background-in-dark-theme
Fix comment backgrounds in cleandark theme
2024-12-30 23:13:53 +02:00
Lauri Ojansivu 5db8d45f4d Updated ChangeLog. 2024-12-30 23:13:07 +02:00
Lauri Ojansivu ee4f09845c Merge pull request #5639 from NadavTasher/feature/enable-keyboard-shortcuts-by-default
Enable keyboard shortcuts by default
2024-12-30 23:11:26 +02:00
Nadav Tasher 01a717f143 Generic fix for keyboard shortcuts which fixes "SPACE" shortcut and more bugs 2024-12-30 21:03:18 +02:00
Nadav Tasher efd22df657 Add some padding to checklist title to make it seperate from card details body 2024-12-30 20:31:28 +02:00
Nadav Tasher 2948e0aa4f Fix confusing and broken "Add checklist" and "Add subtask" buttons in card details view 2024-12-30 20:31:00 +02:00
Nadav Tasher b253683b3c Fix comment backgrounds in cleandark theme 2024-12-30 20:23:54 +02:00
Nadav Tasher 189ebd4201 Enable keyboard shortcuts by default 2024-12-30 20:15:52 +02:00
Lauri Ojansivu f1810e47e0 v7.76 2024-12-30 01:57:04 +02:00
Lauri Ojansivu 37f7924524 Updated ChangeLog. 2024-12-30 01:37:27 +02:00
Lauri Ojansivu 6427a5e5f1 Merge pull request #5635 from NadavTasher/bugfix/move-swimlane-creation-button-to-board-header
Move swimlane creation button to board header when using swimlane view mode
2024-12-30 01:33:48 +02:00
Nadav Tasher 96e11cb727 Display new swimlane creation button when no swimlanes exist 2024-12-30 01:25:25 +02:00
Lauri Ojansivu a5f9157217 Updated ChangeLog. 2024-12-30 00:42:33 +02:00
Lauri Ojansivu 133066c900 Merge pull request #5636 from NadavTasher/bugfix/esc-keyboard-shortcut-not-working
Always handle the escape key when shortcuts are enabled
2024-12-30 00:39:53 +02:00
Nadav Tasher cf75623184 Always handle the escape key when shortcuts are enabled 2024-12-30 00:34:40 +02:00
Nadav Tasher fecae8d0a3 Revert "Move swimlane creation button to board header when using swimlane view mode"
This reverts commit d51e8d1d1d.
2024-12-30 00:17:56 +02:00
Lauri Ojansivu f1d8220ab7 v7.75 2024-12-29 23:50:26 +02:00
Nadav Tasher d51e8d1d1d Move swimlane creation button to board header when using swimlane view mode 2024-12-29 22:54:32 +02:00
Lauri Ojansivu 9a761d2a77 Updated ChangeLog. 2024-12-29 22:40:22 +02:00
Lauri Ojansivu 407d018067 Fix Cannot save Layout settings.
Thanks to tensor5g and xet7 !

Fixes #5630
2024-12-29 22:38:19 +02:00
Lauri Ojansivu 028b8b606a Updated ChangeLog. 2024-12-29 22:19:47 +02:00
Nadav Tasher ad0e86d725 Remove keyboard shortcut toggle from board header 2024-12-29 22:14:55 +02:00
Nadav Tasher 8aeed8b033 Impove margins around shortcuts toggle 2024-12-29 22:12:45 +02:00
Lauri Ojansivu 989c73f1f1 Updated translations. 2024-12-29 16:56:17 +02:00
Lauri Ojansivu f6a3a04dba Updated translations. 2024-12-25 20:40:37 +02:00
Lauri Ojansivu 8ff11ccc88 v7.74 2024-12-25 07:25:21 +02:00
Lauri Ojansivu 5d145d0dd1 Updated ChangeLog. 2024-12-25 07:17:29 +02:00
Lauri Ojansivu 275ac445d0 Keyboard Shortcuts Enable/Disable is now at Right Sidebar, where already was list of Keyboard Shortcuts.
Thanks to xet7 !

Fixes https://github.com/wekan/wekan/pull/5628
2024-12-25 07:14:22 +02:00
Lauri Ojansivu 7fc364cb63 Updated translations. 2024-12-25 06:51:18 +02:00
Lauri Ojansivu 93868fd905 Updated ChangeLog. 2024-12-25 06:47:51 +02:00
Lauri Ojansivu a862486ec3 "Auto List Width" is now at "List ☰ Set Width" popup.
Thanks to xet7 !

Fixes https://github.com/wekan/wekan/pull/5628
2024-12-25 06:43:02 +02:00
Lauri Ojansivu 14c9b70149 Updated translations. 2024-12-25 05:42:21 +02:00
Lauri Ojansivu b60c655b98 Updated ChangeLog. 2024-12-25 05:20:10 +02:00
Lauri Ojansivu fe5475d5ec Updated ChangeLog. 2024-12-25 05:01:55 +02:00
Lauri Ojansivu 955a46ca60 Fixes keyboard shortcuts defaults, icons and texts to be more understandable.
Thanks to xet7 !

Fixes https://github.com/wekan/wekan/pull/5628
2024-12-25 04:59:15 +02:00
Nadav Tasher 0d0c88ceaa Add translations for keyboard shortcut actions 2024-12-25 00:32:46 +02:00
Nadav Tasher fb008569ab Make sure keyboard shortcuts are enabled and no text is selected on shortcut triggers 2024-12-25 00:24:41 +02:00
Nadav Tasher 295c9c8617 Allow toggling profile.keyboardShortcuts from boardHeader 2024-12-25 00:23:18 +02:00
Nadav Tasher 658e43ab54 Add profile.keyboardShortcuts to User model 2024-12-25 00:22:37 +02:00
Nadav Tasher 41b1227b17 Add keyboard shortcut toggle 2024-12-25 00:22:04 +02:00
Nadav Tasher 68c7a41906 Revert "Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible."
This reverts commit 5606414f89.
2024-12-24 21:41:25 +02:00
Nadav Tasher 18f6d4cb16 Revert "Part 2. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible."
This reverts commit 94391d4cde.
2024-12-24 21:41:13 +02:00
Nadav Tasher 7c60d7932a Revert "Part 3. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible."
This reverts commit 8b73c702c3.
2024-12-24 21:41:03 +02:00
Lauri Ojansivu b9182a1fc7 v7.73 2024-12-24 20:16:31 +02:00
Lauri Ojansivu e45d35ba60 Updated ChangeLog. 2024-12-24 20:05:38 +02:00
Lauri Ojansivu 8b73c702c3 Part 3. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible.
Thanks to xet7 !

Fixes #5603,
fixes #2423,
fixes #1878,
fixes #931
2024-12-24 20:04:35 +02:00
Lauri Ojansivu 8e744e860d Updated ChangeLog. 2024-12-24 19:55:25 +02:00
Lauri Ojansivu 94391d4cde Part 2. Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible.
Thanks to xet7 !

Fixes #5603,
fixes #2423,
fixes #1878,
fixes #931
2024-12-24 19:54:17 +02:00
Lauri Ojansivu 4e73c56afe Updated ChangeLog. 2024-12-24 19:48:38 +02:00
Lauri Ojansivu 5606414f89 Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible.
Thanks to xet7 !

Fixes #5603,
fixes #2423,
fixes #1878,
fixes #931
2024-12-24 19:41:56 +02:00
Lauri Ojansivu 8ebb1a7d7f Updated translations. 2024-12-24 19:34:00 +02:00
Lauri Ojansivu 586043e00b Updated ChangeLog. 2024-12-24 19:32:49 +02:00
Lauri Ojansivu e70c51a1f0 Hide Accessibility Settings at Admin Panel. It will be continued and added back later.
Thanks to xet7 !
2024-12-24 19:31:15 +02:00
Lauri Ojansivu ea8f8de391 Updated ChangeLog. 2024-12-24 19:29:49 +02:00
Lauri Ojansivu 0332ef3298 Hide support popup. It will be made editable later.
Thanks to xet7 !
2024-12-24 19:28:20 +02:00
Lauri Ojansivu 751b0aa073 Merge branch 'main' of github.com:wekan/wekan 2024-12-21 12:49:02 +02:00
Lauri Ojansivu 965db42170 Updated translations. 2024-12-21 12:48:47 +02:00
Lauri Ojansivu 73f16692da Updated 2024-12-21 12:48:36 +02:00
Lauri Ojansivu aab80e67bd Updated ChangeLog. 2024-12-17 19:59:29 +02:00
Lauri Ojansivu 3e3b629aa2 Updated Developer Docs about docker compose.
Thanks to sridharin2020 and xet7 !

Related https://github.com/wekan/wekan/discussions/5622
2024-12-17 19:57:29 +02:00
Lauri Ojansivu adeec24252 Updated ChangeLog. 2024-12-15 18:01:32 +02:00
Lauri Ojansivu ba0fdaef72 Revert back to have shortcut "c to archive" back for non-Persian keyboards.
Thanks to hatl and xet7 !

Related #1878
2024-12-15 17:58:48 +02:00
Lauri Ojansivu c357c77e7e Updated translations. 2024-12-13 02:12:40 +02:00
Lauri Ojansivu 702375856d Updated ChangeLog. 2024-12-13 02:08:35 +02:00
Lauri Ojansivu c936d83b38 Reverted all previous Oauth2 filepath code, thinking is there some better way.
Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/5619,
related https://github.com/wekan/wekan/pull/5616
2024-12-13 01:51:42 +02:00
Lauri Ojansivu 83d22c9ebf Updated translations. 2024-12-12 04:47:22 +02:00
Lauri Ojansivu 02f45f4e65 Merge pull request #5614 from NadavTasher/feature/change-default-maximum-width-for-lists
Changed the default maximum list width
2024-12-12 03:13:05 +02:00
Lauri Ojansivu da2ba45456 Merge pull request #5618 from NadavTasher/bugfix/weird-dragscroll-behaviour-in-lists-view
Fix buggy behaviours in board dragscrolling
2024-12-12 03:12:49 +02:00
Lauri Ojansivu 0566f7c89b Merge pull request #5616 from walster001/main
Add functionality to cross-check emails against a known local server-side file on OIDC login.
2024-12-12 03:11:24 +02:00
Nadav Tasher 30a2e8b990 Fix dragscroll getting stuck on view changes 2024-12-11 23:04:10 +02:00
Nadav Tasher 81b2bce385 Allow dragscrolling the board in Lists view mode 2024-12-11 22:19:52 +02:00
walster001 a5347cfcac Update wekan-help with local file email changes. 2024-12-12 00:52:28 +10:30
walster001 3422db31ee Local email checking modifications 2024-12-12 00:47:14 +10:30
walster001 755880ec90 Add OAUTH2 Email check keys 2024-12-12 00:41:19 +10:30
walster001 30273709ae Add support for external email verification
Add support for external email verification against OIDC login script. This will check local file for presence of email and log the user in if it is or deny them if it isn't.
2024-12-12 00:34:22 +10:30
Nadav Tasher 17f4bbde20 Changed the default maximum list width 2024-12-10 21:23:12 +02:00
Lauri Ojansivu 575e3750f1 Updated translations. 2024-12-09 23:05:57 +02:00
Lauri Ojansivu d7c8eced81 Revert changing URLs and email addresses. 2024-12-09 18:00:14 +02:00
Lauri Ojansivu 86fda62a48 Merge branch 'main' of github.com:wekan/wekan 2024-12-08 17:07:46 +02:00
Lauri Ojansivu a4ec20a7c8 Merge remote-tracking branch 'origin/feature-accessibility' 2024-12-08 17:07:39 +02:00
Lauri Ojansivu 90653c1472 Updated translations. 2024-12-08 17:06:29 +02:00
Lauri Ojansivu 30ec59140c Updated ChangeLog. 2024-12-08 15:04:17 +02:00
Lauri Ojansivu f689d1688a Updated URLs and email addresses.
Thanks to xet7 !
2024-12-08 15:02:43 +02:00
Lauri Ojansivu 57e545e7c4 Updated translations. 2024-12-08 15:01:48 +02:00
Lauri Ojansivu d0ea8e3a81 v7.72 2024-12-08 03:08:28 +02:00
Lauri Ojansivu c188d2bf65 Updated translations. 2024-12-08 03:01:51 +02:00
Lauri Ojansivu 75b3421222 Updated ChangeLog. 2024-12-08 02:59:15 +02:00
Lauri Ojansivu c062bd63bb Fix in API user role is not considered.
Thanks to mohammadZahedian and xet7 !

Fixes #5422
2024-12-08 02:56:37 +02:00
Lauri Ojansivu 0c753e85a8 Updated ChangeLog. 2024-12-08 02:02:26 +02:00
Lauri Ojansivu 32770c02ad Updated translations. 2024-12-08 01:02:19 +02:00
Lauri Ojansivu 133dd55f4c Merge branch 'feature/optional-auto-width' of https://github.com/NadavTasher/wekan 2024-12-08 00:33:58 +02:00
Nadav Tasher d1e2db9cb8 Replace Session.get with utility call 2024-12-07 21:26:25 +02:00
Nadav Tasher 52a02409f0 Use utility function instead of Session.get 2024-12-07 20:37:11 +02:00
Nadav Tasher eb3377deb8 Revert "Use utility function is autoWidth function"
This reverts commit c06bcac9f3.
2024-12-07 20:35:15 +02:00
Nadav Tasher c06bcac9f3 Use utility function is autoWidth function 2024-12-07 19:47:19 +02:00
Nadav Tasher f9f0523112 Updated translations with new texts for auto-width support 2024-12-07 19:00:51 +02:00
Nadav Tasher f7aa5d0871 Add auto-width and constraint support in list 2024-12-07 19:00:08 +02:00
Nadav Tasher 9576f6807b Add missing functions to users model for auto-width 2024-12-07 18:59:30 +02:00
Nadav Tasher efe50a65ee Add list constraint support in set-width popup 2024-12-07 18:59:01 +02:00
Nadav Tasher fb34dd6114 Add auto-width board-header toggle 2024-12-07 18:57:34 +02:00
Nadav Tasher 2ebff3a864 Revert adding migration 2024-12-07 18:56:40 +02:00
Lauri Ojansivu a3f70735ac Fix WeKan Snap Candidate v7.71 build. There was old version number.
Thanks to xet7 !
2024-12-06 11:22:07 +02:00
Lauri Ojansivu e1fd915ecd Updated ChangeLog. 2024-12-06 08:31:39 +02:00
Nadav Tasher 0097674fc0 Added initial support for auto-width lists option 2024-12-05 21:46:35 +02:00
Lauri Ojansivu f6341de610 Updated ChangeLog. 2024-12-05 15:55:49 +02:00
Lauri Ojansivu 17d5fae7bb Updated release scripts: Disabled Docker registry sync. Only pushing WeKan to GitHub, Quay and Docker Hub.
Thanks to xet7 !
2024-12-05 15:52:14 +02:00
Lauri Ojansivu 05eca83b15 v7.71 2024-12-05 13:35:32 +02:00
Lauri Ojansivu 6d004b2095 Updated ChangeLog. 2024-12-05 10:33:31 +02:00
Lauri Ojansivu 46327f19a1 To menu right top username, added Support, to have info about from where to get support.
Thanks to xet7 !
2024-12-05 10:29:15 +02:00
Lauri Ojansivu d4c8ea9361 v7.70 2024-12-04 18:41:05 +02:00
Lauri Ojansivu 7af0ddc226 Updated ChangeLog. 2024-12-04 14:18:43 +02:00
Lauri Ojansivu 80ea1782f9 Move card to archive, add shortcut key ÷ for Persian keyboard.
Thanks to mohammadZahedian and xet7 !

Fixes https://github.com/wekan/wekan/pull/5589,
fixes https://github.com/wekan/wekan/pull/5576.
2024-12-04 14:11:10 +02:00
Lauri Ojansivu aa46b42356 Updated ChangeLog. 2024-12-04 13:08:25 +02:00
Lauri Ojansivu 3cd069ffb9 Merge pull request #5598 from wekan/dependabot/github_actions/docker/build-push-action-6.10.0
Bump docker/build-push-action from 6.9.0 to 6.10.0
2024-12-03 13:39:14 +02:00
dependabot[bot] e621ad6d7c Bump docker/build-push-action from 6.9.0 to 6.10.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/4f58ea79222b3b9dc2c8bbdd6debcef730109a75...48aba3b46d1b1fec4febb7c5d0c644b249a11355)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 20:59:24 +00:00
Lauri Ojansivu 729d8fb435 Accessibility statement. Part 1. In Progress.
Thanks to xet7 !
2024-12-02 14:17:58 +02:00
Lauri Ojansivu de2ddbe8b5 Fix typo. 2024-12-02 10:51:48 +02:00
Lauri Ojansivu 57ddd82ef1 v7.69 2024-12-02 08:22:51 +02:00
Lauri Ojansivu 79f7ec2715 Updated release scripts.
Thanks to xet7 !
2024-12-02 08:14:54 +02:00
Lauri Ojansivu ab4c3bd2fc Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh.
Thanks to xet7 !
2024-12-02 08:10:32 +02:00
Lauri Ojansivu bd3a7e1068 Updated ChangeLog. 2024-12-02 06:19:38 +02:00
Lauri Ojansivu aa33ead7b2 Updated Windows docs. 2024-12-02 06:17:40 +02:00
Lauri Ojansivu 94cf2a80a5 Updated ChangeLog. 2024-11-28 16:37:52 +02:00
Lauri Ojansivu 2ee959a08e Merge pull request #5597 from malteprang/main
Update docker-compose.yml keycloak part
2024-11-28 16:36:33 +02:00
malteprang 54b7591ca0 Update docker-compose.yml keycloak part 2024-11-28 15:00:00 +01:00
Lauri Ojansivu b3f0392e7d Updated translations. 2024-11-27 16:28:48 +02:00
Lauri Ojansivu 77e7350e96 Updated ChangeLog. 2024-11-27 16:25:51 +02:00
Lauri Ojansivu 9c87572f90 Updated dependencies.
Thanks to developers of dependencies !
2024-11-27 16:24:11 +02:00
Lauri Ojansivu 65765f6c2f Updated ChangeLog. 2024-11-27 16:16:31 +02:00
Lauri Ojansivu 785b312009 Merge pull request #5595 from walster001/main
Fix issue with comments not showing
2024-11-27 14:48:55 +02:00
walster001 1d9a710e3b Fix issue with comments not showing 2024-11-27 22:05:43 +10:30
Lauri Ojansivu 909bf811d1 Merge pull request #5590 from wekan/dependabot/github_actions/docker/metadata-action-5.6.1
Bump docker/metadata-action from 5.5.1 to 5.6.1
2024-11-25 23:19:01 +02:00
dependabot[bot] 90abe01286 Bump docker/metadata-action from 5.5.1 to 5.6.1
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.1 to 5.6.1.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/8e5442c4ef9f78752691e2d8f8d19755c6f78e81...369eb591f429131d6889c46b94e711f089e6ca96)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 21:17:31 +00:00
Lauri Ojansivu 2c13d74c5f Merge pull request #5589 from NadavTasher/feature/change-card-archive-shortcut
Opinion - Change archive-card shortcut to backtick for better ergonomics
2024-11-24 22:13:21 +02:00
Lauri Ojansivu 5d975c5da4 Updated ChangeLog. 2024-11-24 21:17:10 +02:00
Nadav Tasher 35c1057527 Change archive-card shortcut to backtick for better ergonomics 2024-11-24 20:55:36 +02:00
Lauri Ojansivu 3912181857 v7.68 2024-11-24 20:44:30 +02:00
Lauri Ojansivu b9a01eb5d6 Updated ChangeLog. 2024-11-24 20:35:28 +02:00
Lauri Ojansivu 3027f0acb0 Updated translations. 2024-11-24 20:34:34 +02:00
Lauri Ojansivu 609c2a5ddb Updated ChangeLog. 2024-11-24 20:33:32 +02:00
Lauri Ojansivu f76d648012 Merge branch 'feature/new-dockerfile' of https://github.com/NadavTasher/wekan 2024-11-24 20:13:14 +02:00
Nadav Tasher 203bf92a0a Fix data directory regression 2024-11-24 19:49:32 +02:00
Lauri Ojansivu 3e8cc9e905 Merge branch 'feature/new-dockerfile' of https://github.com/NadavTasher/wekan 2024-11-24 04:22:27 +02:00
Nadav Tasher b9f32c1739 Remove ulimit from Dockerfile 2024-11-24 02:01:10 +02:00
Nadav Tasher 7e1c65f616 Removed stack-size changing, replaced with FD limit 2024-11-24 01:29:56 +02:00
Nadav Tasher 447ae93476 Updated NodeJS version to v14.21.4 (Meteor ESM) 2024-11-24 00:46:29 +02:00
Nadav Tasher 6df40f41ac Change source of GitHub wekan packages to HTTPs (eliminates git ls-remote) 2024-11-23 23:21:12 +02:00
Nadav Tasher 3e0ef3d070 Created efficient multi-stage Dockerfile 2024-11-23 23:20:57 +02:00
Lauri Ojansivu 33a17a9a1b v7.67 2024-11-21 01:42:38 +02:00
Lauri Ojansivu aed4bfb7f4 Updated translations. 2024-11-21 01:33:11 +02:00
Nadav Tasher 78f7c3e5bd Updated theming documentation on sidebar coloring 2024-11-21 00:43:20 +02:00
Nadav Tasher d764047c1f Remove non-effective height property (does nothing here) 2024-11-21 00:42:23 +02:00
Nadav Tasher 65015ea7c7 Remove non-required sidebar-shadow div in favor of direct sidebar background 2024-11-21 00:41:57 +02:00
Nadav Tasher 6ef2d9cb9d Remove bottom margin from sidebar (causes an out-of-theme white gap) 2024-11-21 00:24:40 +02:00
Nadav Tasher c39fdab11d Disable scrollbar hiding in swimlanes 2024-11-21 00:14:04 +02:00
Nadav Tasher 547261abb6 Disable scrollbar hiding in sidebar 2024-11-21 00:13:50 +02:00
Nadav Tasher 7696b7b769 Disable scrollbar hiding in list 2024-11-21 00:13:34 +02:00
Nadav Tasher 585635494a Disable scrollbar hiding in cardDetails 2024-11-21 00:13:22 +02:00
Nadav Tasher a36e80099a Revert "Revert some scrollbar, sidebar and list width changes."
This reverts commit 096fe130f6.
2024-11-21 00:10:49 +02:00
Nadav Tasher f5f8a4f6fb Revert "Updated translations."
This reverts commit 83a12a9a26.
2024-11-21 00:10:30 +02:00
Lauri Ojansivu e207bff91f v7.65 2024-11-20 21:22:23 +02:00
Lauri Ojansivu a2c7c230ef Updated ChangeLog. 2024-11-20 21:16:21 +02:00
Lauri Ojansivu 83a12a9a26 Updated translations. 2024-11-20 21:14:01 +02:00
Lauri Ojansivu 096fe130f6 Revert some scrollbar, sidebar and list width changes.
Thanks to xet7 !

Fixes #5585,
fixes https://github.com/wekan/wekan/pull/5583
2024-11-20 21:08:06 +02:00
Lauri Ojansivu 12d22f92b2 v7.64 2024-11-20 09:08:49 +02:00
Lauri Ojansivu 017628e2a6 Updated ChangeLog. 2024-11-20 08:57:40 +02:00
Lauri Ojansivu 332b9f5816 Updated translations. 2024-11-20 08:49:46 +02:00
Lauri Ojansivu 09a96c1118 Updated translations. 2024-11-20 08:15:19 +02:00
Lauri Ojansivu 82750ee8a2 Updated translations. 2024-11-20 03:04:51 +02:00
Lauri Ojansivu 4e89f27768 Updated translations. 2024-11-20 02:53:30 +02:00
Lauri Ojansivu 6f60235a3f Merge pull request #5584 from NadavTasher/feature/fix-minimum-width-on-list-auto-width
Improve list auto-width, fix regressions
2024-11-20 02:47:45 +02:00
Lauri Ojansivu 42be851d64 Merge pull request #5583 from NadavTasher/feature/better-scrollbar-disabling
Change way of disabling scrollbars, disable swimlane scrollbars
2024-11-20 02:44:45 +02:00
Nadav Tasher 6c32c210f8 Disable scrollbars in swimlanes 2024-11-20 01:20:40 +02:00
Nadav Tasher aca665ae4e Changed method of scrollbar hiding 2024-11-20 01:20:10 +02:00
Nadav Tasher 09bee30610 Change list width translation 2024-11-20 00:49:24 +02:00
Nadav Tasher 87d53f6f93 Fix dragscroll inside swimlanes 2024-11-20 00:48:13 +02:00
Nadav Tasher 98cf7ec715 Change max-width to min-width so that lists will only shrink when there is no space left 2024-11-20 00:47:45 +02:00
Lauri Ojansivu 12e50d93df Merge pull request #5581 from NadavTasher/feature/default-lists-to-space-evenly
Make lists fill up space evenly, change listWidth to max-width
2024-11-18 03:24:56 +02:00
Lauri Ojansivu dfcdb1994b Merge pull request #5580 from NadavTasher/bugfix/add-missing-semicolon
Add missing semicolon in keyboard.js
2024-11-18 03:24:28 +02:00
Nadav Tasher 30a5b87370 Change list width to max width, default to even spacing 2024-11-17 23:05:21 +02:00
Nadav Tasher 465e2b1b6a Remove swimlane size limit 2024-11-17 23:03:56 +02:00
Lauri Ojansivu 1ae52bbdb1 Updated translations. 2024-11-17 12:41:56 +02:00
Nadav Tasher d0024d397a Add missing semicolon 2024-11-16 23:35:39 +02:00
Lauri Ojansivu 0b2cdc4d56 v7.63 2024-11-16 21:37:58 +02:00
Lauri Ojansivu 92af6f71d9 Updated scaling docs.
Thanks to xet7 !
2024-11-16 21:36:35 +02:00
Lauri Ojansivu 8879b8498f Updated translations. 2024-11-16 21:19:04 +02:00
Lauri Ojansivu ad7e0e0bf9 Updated ChangeLog. 2024-11-16 21:17:37 +02:00
Lauri Ojansivu edb7398295 Revert adding more stack size.
Thanks to xet7 !
2024-11-16 21:16:30 +02:00
Lauri Ojansivu cfca28e25a Updated translations. 2024-11-16 21:00:46 +02:00
Lauri Ojansivu a811e22f95 Updated ChangeLog. 2024-11-16 20:53:41 +02:00
Lauri Ojansivu fbb2e6e261 Merge pull request #5578 from NadavTasher/feature/various-style-improvements
Sidebar style overhaul - absolute positioning, weird style fixes, disable sidebar scrollbar
2024-11-16 20:19:18 +02:00
Lauri Ojansivu c44b99d515 Merge pull request #5577 from NadavTasher/feature/new-keyboard-shortcut-for-assigning-user
Potential bug(fix?) - Add assign-self keyboard shortcut (old shortcut actually adds)
2024-11-16 20:18:42 +02:00
Lauri Ojansivu 0f283e6cdf Merge pull request #5576 from NadavTasher/bugfix/change-archive-shortcut-to-minus
Change move-to-archive keyboard shortcut to '-', because of Ctrl + C shortcut
2024-11-16 20:17:30 +02:00
Nadav Tasher b7e8f796a3 Sidebar overhaul - change position to absolute, fix weird style bugs, disable scrollbar 2024-11-16 18:56:38 +02:00
Nadav Tasher d63507dd97 Add margin to member and assignee avatars 2024-11-16 17:53:36 +02:00
Nadav Tasher e1168b5107 Added keyboard shortcut to "assign self" and rename old shortcut to "add self" 2024-11-16 17:40:35 +02:00
Nadav Tasher cecb4b8336 Change move-to-archive keyboard shortcut to '-' 2024-11-16 17:34:16 +02:00
Lauri Ojansivu 5bbbf9d0e6 Merge pull request #5575 from NadavTasher/feature/disable-filter-menu-popup-when-using-keyboard-filters
Disable sidebar showing when filtering using keyboard shortcut
2024-11-16 17:33:15 +02:00
Lauri Ojansivu 29775eef9a Updated ChangeLog. 2024-11-16 17:32:45 +02:00
Lauri Ojansivu 3f3e645c96 Merge pull request #5574 from NadavTasher/feature/support-shortcuts-when-not-using-english-keyboard-layout
Patch to allow shortcuts to work when another keyboard layout is used
2024-11-16 17:27:59 +02:00
Nadav Tasher ebece3f961 Disable sidebar showing when filtering using keyboard shortcut 2024-11-16 17:25:42 +02:00
Lauri Ojansivu 4951d409db Updated translations. 2024-11-16 17:22:37 +02:00
Nadav Tasher cf90511f3c Added multi-language support for keyboard shortcuts 2024-11-16 17:21:47 +02:00
Lauri Ojansivu 4ec0e63d99 Merge pull request #5573 from NadavTasher/feature/hide-scrollbars-in-card-details-and-lists
Hide scrollbars where they interrupt
2024-11-16 17:21:29 +02:00
Nadav Tasher 08843a9dd6 Hide scrollbars from lists (middle of the screen) 2024-11-16 17:18:46 +02:00
Nadav Tasher b3f229dc86 Hide scrollbars from card details popup 2024-11-16 17:17:05 +02:00
Lauri Ojansivu 18b74e7a61 Merge pull request #5572 from NadavTasher/feature/right-to-left
Fix some text alignment issues when using RTL languages
2024-11-16 17:16:20 +02:00
Lauri Ojansivu c60961cbb1 Merge pull request #5571 from NadavTasher/feature/always-close-sidebar-on-escape
Always close sidebar when user clicks ESC
2024-11-16 17:15:48 +02:00
Lauri Ojansivu 3338fc366d Merge pull request #5570 from NadavTasher/feature/new-card-keyboard-shortcut
Added 'n' shortcut for adding new minicards to current list
2024-11-16 17:15:22 +02:00
Nadav Tasher 79cbf25b73 Fix some text alignment issues when using RTL languages 2024-11-16 17:14:03 +02:00
Nadav Tasher 7963118032 Always close sidebar on escape button 2024-11-16 17:07:25 +02:00
Nadav Tasher 35e6c938dc Added 'n' shortcut for adding new minicards 2024-11-16 17:03:59 +02:00
Lauri Ojansivu c632bc4555 Merge newest changes. 2024-11-15 23:35:13 +02:00
Lauri Ojansivu 7a34bc3eb0 Updated Docker base image to Ubuntu 24.10.
Thanks to Ubuntu developers !
2024-11-15 23:33:18 +02:00
Lauri Ojansivu 6e0d41834c v7.62 2024-11-15 23:30:15 +02:00
Lauri Ojansivu 4bcbaf9113 Updated ChangeLog. 2024-11-15 23:24:19 +02:00
Lauri Ojansivu 5448a15691 Updated docs sidebar.
Thanks to xet7 !
2024-11-15 23:22:46 +02:00
Lauri Ojansivu c63feb3ff3 Updated ChangeLog. 2024-11-15 23:21:32 +02:00
Lauri Ojansivu fb4d95672e Update Snap Candidate to MongoDB 6.0.19. Updated WeKan Windows version numbers. Added Cron docs.
Thanks to xet7 !
2024-11-15 23:19:36 +02:00
Lauri Ojansivu bfb1658abe Updated translations. 2024-11-15 23:04:29 +02:00
Lauri Ojansivu 79e2c9175f Updated ChangeLog. 2024-11-15 22:56:59 +02:00
Lauri Ojansivu b9c2d49a1c Updated translations. 2024-11-15 22:44:46 +02:00
Lauri Ojansivu a25eb4ded6 Updated translations. 2024-11-15 22:39:14 +02:00
Lauri Ojansivu 3851de2774 Merge pull request #5569 from mfilser/checklist_items_hide_per_checklist
each checklist can now be configured to hide checked checklist items
2024-11-15 22:04:03 +02:00
Martin Filser 0783b733b0 Checklist, hide all checklist items possible, regardless if the checklist item is finished or not 2024-11-15 21:00:06 +01:00
Martin Filser bb17feaa17 Checklist, hide checked checklist items (configureable at each checklist) 2024-11-15 21:00:06 +01:00
Lauri Ojansivu 7623c8dcb7 Merge pull request #5568 from mfilser/checklist_multiline_insert
Checklist multiline insert (many checklist items at once)
2024-11-15 21:59:36 +02:00
Martin Filser 1d7eb8a03b Checklist, adding many items set's now the sorting correctly 2024-11-15 20:56:36 +01:00
Martin Filser c5712f5ae0 Checklist multiline option, adding description to both checkbox options 2024-11-15 20:54:30 +01:00
Martin Filser 00e5808a4c Checklist multiline option, adding option to keep the origin order if many items are added at the checklist top 2024-11-15 20:54:29 +01:00
Lauri Ojansivu 0a591564fd Merge pull request #5567 from mfilser/checklist_items_hide_per_card
Checklist items hide per card
2024-11-15 21:52:25 +02:00
Martin Filser 8448068d22 hide empty checklist if checklist items are hidden
conditions are:
- the checklist must have at least 1 checklist item
- all checklist items have to be finished
- the option "hide checked checklist items" is set at card details
2024-11-15 20:35:18 +01:00
Martin Filser 9fa36c3991 hide checklist-items per card now
- performance relevant
- more granular setting
2024-11-15 20:35:18 +01:00
Martin Filser d949753d54 preparation hide checklist-items per card 2024-11-15 20:35:17 +01:00
Lauri Ojansivu f6d2b08025 Merge pull request #5566 from mfilser/card_comment_section
added comment section on card details to avoid loading the card comment activities from the server
2024-11-15 21:21:12 +02:00
Martin Filser 8a446de3e9 added comment section on card details to avoid loading the card comment activities from the server
- and added to show only the activities a card

- to display the card comments a connection to the server was needed to get the activities of the card comments, now, it's not necessary
- also performance relevant. until now there were a lot of activities loaded, now only of the current card
2024-11-15 19:55:07 +01:00
Lauri Ojansivu 0196f46094 Merge branch 'main' of github.com:wekan/wekan 2024-11-11 17:46:43 +02:00
Lauri Ojansivu bd83b3bc8e Add info about if Snap slow 2024-11-11 17:46:09 +02:00
Lauri Ojansivu 89347abf53 Updated ChangeLog. 2024-11-02 18:56:52 +02:00
Lauri Ojansivu a27f8ecfa9 Fix Warning: missing space before text for line 210 of jade file client/components/activities/activities.jade
Thanks to xet7 !
2024-11-02 18:55:33 +02:00
Lauri Ojansivu 75ca4920c5 Updated ChangeLog. 2024-11-02 18:36:10 +02:00
Lauri Ojansivu 324be07b85 Add more stack size.
Thanks to xet7 !
2024-11-02 18:34:51 +02:00
Lauri Ojansivu 282a5b30f9 Updated ChangeLog. 2024-11-02 18:19:50 +02:00
Lauri Ojansivu b24acefa6f Updated dependencies.
Thanks to developers of dependencies!
2024-11-02 18:18:14 +02:00
Lauri Ojansivu 751b519167 Updated ChangeLog. 2024-11-02 18:17:34 +02:00
Lauri Ojansivu 330aec2bdd Merge pull request #5555 from emmanuel-ferdman/main
Update `ldap-sync.py` reference
2024-11-02 16:42:08 +02:00
Emmanuel Ferdman d5635c3a89 Update ldap-sync.py reference
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-11-01 23:09:16 -07:00
Lauri Ojansivu 1e86d67bfe Updated ChangeLog. 2024-10-31 00:25:30 +02:00
Lauri Ojansivu 8ac9353c53 Copied from Sandstorm developer discussions to docs fix for running Sandstorm at Ubuntu 24.04.
Thanks to xet7 !
2024-10-31 00:23:45 +02:00
Lauri Ojansivu 1557970170 Updated ChangeLog. 2024-10-31 00:13:33 +02:00
Lauri Ojansivu 508bbb37ce Add docs about how at LXC/LXD Fix: System does not fully support snapd.
Thanks to xet7 !
2024-10-31 00:11:15 +02:00
Lauri Ojansivu a90fc396a9 Updated ChangeLog. 2024-10-30 22:36:26 +02:00
Lauri Ojansivu 96627540da Updated docs about Linked Cards.
Thanks to xet7 !
2024-10-30 22:34:53 +02:00
Lauri Ojansivu db6ebe0470 Updated ChangeLog. 2024-10-23 02:06:35 +03:00
Lauri Ojansivu 559251eb0d Copied updated Docs from wiki to WeKan repo.
Thanks to xet7 !
2024-10-23 02:04:30 +03:00
Lauri Ojansivu 23396d1bd6 v7.61 2024-10-23 01:05:15 +03:00
Lauri Ojansivu 9d92a79a28 Updated to MongoDB 6.0.18 at Snap Candidate.
Thanks to MongoDB developers !
2024-10-23 01:02:48 +03:00
Lauri Ojansivu 90a64a7403 Updated ChangeLog. 2024-10-23 00:51:43 +03:00
Lauri Ojansivu f709cc332c Merge pull request #5552 from mfilser/master
Fixing opening cards and slow performance of closing cards
2024-10-23 00:35:49 +03:00
Martin Filser c925a27870 Fixing opening cards and slow performance of closing cards
Fixes: #5533
Fixes: #5548

Revert "Switch from kadira:flow-router to ostrio:flow-router-extra"

This reverts commit 718c1a393d.
2024-10-22 21:45:36 +02:00
Lauri Ojansivu d31403a918 Updated ChangeLog. 2024-10-20 00:08:24 +03:00
Lauri Ojansivu f9051d768c Updated translations. 2024-10-20 00:06:08 +03:00
Lauri Ojansivu 06eb2adeaa Merge pull request #5549 from AdenKoziol/main
renaming list shows in activities
2024-10-20 00:00:01 +03:00
Aden Koziol 12af3a5d10 renaming list shows in activities 2024-10-16 16:40:20 -05:00
Lauri Ojansivu 8bf94d6ac6 Merge pull request #5538 from namar0x0309/patch-1
Update Candidate-WeKan-Snap-Manual-Upgrade.md in order to create a proper sh file snap-settings.sh
2024-10-03 05:44:19 +03:00
Nas A. 15af5d2c2e Update Candidate-WeKan-Snap-Manual-Upgrade.md
"sudo snap get wekan" outputs key value pairs but not sh code to set those values in snap wekan environment. 

Fixing this here
2024-10-02 16:40:16 -07:00
Lauri Ojansivu 60c5c5c723 Merge pull request #5535 from wekan/dependabot/github_actions/docker/build-push-action-6.9.0
Bump docker/build-push-action from 6.7.0 to 6.9.0
2024-10-01 15:00:48 +03:00
Lauri Ojansivu f972da7442 Merge pull request #5534 from majus/master
Update VSCode debugging configuration
2024-10-01 15:00:33 +03:00
dependabot[bot] 948537cb75 Bump docker/build-push-action from 6.7.0 to 6.9.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.7.0 to 6.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/5cd11c3a4ced054e52742c5fd54dca954e0edd85...4f58ea79222b3b9dc2c8bbdd6debcef730109a75)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 20:09:47 +00:00
Denis Perov ec5d0d00f5 Update VSCode debugging configuration 2024-09-30 16:23:27 +03:00
Lauri Ojansivu 0e7c454013 Updated ChangeLog. 2024-09-24 07:33:25 +03:00
Lauri Ojansivu 6e8e581ceb Testing packages without versions from 2024-09-24 07:22:22 +03:00
Lauri Ojansivu 2ec435af41 Updated ChangeLog. 2024-09-24 00:54:11 +03:00
Lauri Ojansivu 5aa38c2e40 Try 6 to fix apparmor denied in syslog at Snap Candidate.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-24 00:52:42 +03:00
Lauri Ojansivu 0ff3952a8b Updated ChangeLog. 2024-09-24 00:27:50 +03:00
Lauri Ojansivu e32d2daa45 Try 5 to fix apparmor denied in syslog at Snap Candidate.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-24 00:26:15 +03:00
Lauri Ojansivu 57780801aa Updated ChangeLog. 2024-09-24 00:03:42 +03:00
Lauri Ojansivu ecdfc68170 Try 4 to fix apparmor denied in syslog at Snap Candidate.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-24 00:02:00 +03:00
Lauri Ojansivu 3b29678ef1 Updated ChangeLog. 2024-09-23 23:11:53 +03:00
Lauri Ojansivu 6c54b38cdf Try 3 to fix apparmor denied in syslog at Snap Candidate. Changed MongoDB --host back to --bind_ip.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-23 23:08:47 +03:00
Lauri Ojansivu dfcabc5a36 v7.60 2024-09-23 22:00:47 +03:00
Lauri Ojansivu 5c8cf2ebbd Updated ChangeLog. 2024-09-23 21:18:54 +03:00
Lauri Ojansivu a9d41217bd Removed outdated dependency page. To be seen, does anything break.
Thanks to xet7 !
2024-09-23 21:15:19 +03:00
Lauri Ojansivu 75f44a821c Merge branch 'feature/ostrio-flow-router-extra' of https://github.com/majus/wekan 2024-09-23 20:52:11 +03:00
Lauri Ojansivu 0ab16764d1 Updated ChangeLog. 2024-09-23 20:28:13 +03:00
Lauri Ojansivu b6e7e03c95 Added to Docs CNAME DNS info about CloudFlare and Sandstorm.
Thanks to xet7 !
2024-09-23 20:26:20 +03:00
Denis Perov 718c1a393d Switch from kadira:flow-router to ostrio:flow-router-extra 2024-09-23 19:25:55 +03:00
Lauri Ojansivu 50f3316088 Removed old models files that caused problems with login.
Thanks to xet7 !
2024-09-15 19:40:49 +03:00
Lauri Ojansivu 2727651897 Comment out not in use old attachments models code. 2024-09-08 17:42:04 +03:00
Lauri Ojansivu e72646a4d4 Add back old attachments models for attachment migrations.
Thanks to xet7 !
2024-09-08 16:46:17 +03:00
Lauri Ojansivu 8ef8d546c5 v7.59 2024-09-04 21:06:53 +03:00
Lauri Ojansivu a8b2d7a6bd Updated ChangeLog. 2024-09-04 21:00:19 +03:00
Lauri Ojansivu 0a1074ca6e Try 2 to fix apparmor denied in syslog at Snap Candidate. Newest MongoDB uses --host, not anymore --bind_ip.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-04 20:56:32 +03:00
Lauri Ojansivu 019d7c92c3 v7.58 2024-09-04 19:08:01 +03:00
Lauri Ojansivu cb653e03f2 Updated ChangeLog. 2024-09-04 19:04:18 +03:00
Lauri Ojansivu a6c8833f65 Try to fix apparrmor denied in syslog at Snap Candidate.
Thanks to webenefits and xet7 !

Fixes #4855
2024-09-04 19:01:41 +03:00
Lauri Ojansivu f00b39d154 v7.57 2024-09-04 11:57:53 +03:00
Lauri Ojansivu 39597e04ac Updated ChangeLog. 2024-09-04 10:57:49 +03:00
Lauri Ojansivu 1610eff0e9 Updated dependencies.
Thanks to developers of dependencies.
2024-09-04 10:55:48 +03:00
Lauri Ojansivu c944f9fdff Updated ChangeLog. 2024-09-04 10:37:38 +03:00
Lauri Ojansivu 9b4d4c5953 Merge pull request #5523 from walster001/main
Large updates to UI
2024-09-04 10:32:13 +03:00
walster001 a8f09011e9 Exodark Margin Fix
Added 10px margin to ExoDark lists also (following on from Clearblue fix) as with those rounded backgrounded lists I feel it looks nicer to give it some padding. 

Open to other contributors perspective however.
2024-09-04 14:17:11 +09:30
walster001 2e1675969a Clearblue Margin - comment
Add comment to explain changes to margin in case someone wants to revert in future
2024-09-04 14:10:31 +09:30
walster001 a71973cc80 Clearblue Margin Fix
Fix ClearBlue lists being butted up against the left hand side of the screen when viewed from a non-editor account (IE comment only).
2024-09-04 14:09:28 +09:30
walster001 608ec63899 Large updates to UI
- Added a wide range of updates/tweaks to various board themes
- Better defined theme start/endpoints in code
- Added modern scrollbars matching each theme
- Added styling to scrollbars in pop-over and horizontally across screen
- Tweaks to opacity/themes to work better with board backgrounds.
2024-09-04 13:56:06 +09:30
Lauri Ojansivu 52bdba8e85 Updated ChangeLog. 2024-09-01 19:15:00 +03:00
Lauri Ojansivu f5b11b15ce Merge pull request #5519 from LanetNetwork/templ_upd
Update templates
2024-08-28 14:45:24 +03:00
Dmytro Novash 3359559ad2 Merge branch 'wekan:main' into templ_upd 2024-08-28 14:24:28 +03:00
Dmytro Novash b4aa464473 use label instead of span 2024-08-28 14:23:35 +03:00
Lauri Ojansivu dbe31a86b7 Update LICENSE 2024-08-28 05:27:49 +03:00
Lauri Ojansivu bd283ff4e2 Merge pull request #5517 from walster001/main
Rework fix for mobile devices to incorporate all themes/list headers
2024-08-27 20:58:27 +03:00
walster001 c020ce8895 Remove vertical-align - doesn't fix for all board themes 2024-08-27 19:53:19 +09:30
walster001 f3562525db Create boardColors.css 2024-08-27 19:50:01 +09:30
walster001 cc89c35c8d Merge branch 'main' of https://github.com/walster001/wekan-atlanz 2024-08-27 19:38:38 +09:30
walster001 2457084db2 Update padding values/display for Mobile Devices
Have modified this in my test dev server, it appears this is the property that defines the spacing/containment of text for lists. When tested on iOS device this appears to work correctly. 

Last commit removing vertical align, and iinitial commit unsetting line height for ModernDark fixes an issue where text was super spaced out on ModernDark theme only.
2024-08-27 19:31:13 +09:30
walster001 508a2d7103 Revert vertical-align. Left line-height unset.
Didn't fix issue as its more than just modern-dark theme. Have played around on dev server and found its in the list css itself.
2024-08-27 19:28:06 +09:30
Lauri Ojansivu 3d7fef67d8 v7.56 2024-08-26 17:39:24 +03:00
Lauri Ojansivu d63d445b7d Upgraded Snap Candidate MongoDB to 6.0.17.
Thanks to MongoDB developers !
2024-08-26 17:30:05 +03:00
Lauri Ojansivu 8d3fe29c68 Update Browser-compatibility-matrix.md 2024-08-23 15:29:46 +03:00
Lauri Ojansivu ad3ecbfd96 Update Browser-compatibility-matrix.md 2024-08-23 15:28:21 +03:00
Lauri Ojansivu 51ec43e7bc Update Browser-compatibility-matrix.md 2024-08-23 15:27:24 +03:00
Lauri Ojansivu 88dfc57e7e Update Browser-compatibility-matrix.md 2024-08-23 15:25:13 +03:00
Lauri Ojansivu 7409c366f6 Update Browser-compatibility-matrix.md 2024-08-23 15:24:01 +03:00
Lauri Ojansivu b99b2a6d66 Update Browser-compatibility-matrix.md 2024-08-23 15:21:21 +03:00
walster001 fa21b00bb6 Merge branch 'wekan:main' into main 2024-08-23 00:27:31 +09:30
walster001 f061b5e12a Clean up theme descriptions, add scrollbars
- Cleaned up theme descriptions as many themes weren't labelled/or had mismatched descriptions.
- Began adding scrollbars to default themes/board canvases.
- Test removal of lines/editing margins on nephritis theme
2024-08-23 00:25:29 +09:30
Lauri Ojansivu 8ca642edc8 Updated ChangeLog. 2024-08-21 00:55:31 +03:00
Lauri Ojansivu c3909edc5e Fix apparmor denied in syslog at Snap Candidate.
Thanks to webenefits and xet7 !

Fixes #4855
2024-08-21 00:52:15 +03:00
Lauri Ojansivu f4cf09d394 Merge pull request #5511 from wekan/dependabot/github_actions/docker/build-push-action-6.7.0
Bump docker/build-push-action from 6.6.1 to 6.7.0
2024-08-19 23:37:54 +03:00
dependabot[bot] 6aa4f9fb86 Bump docker/build-push-action from 6.6.1 to 6.7.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.6.1 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/16ebe778df0e7752d2cfcbd924afdbbd89c1a755...5cd11c3a4ced054e52742c5fd54dca954e0edd85)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 20:10:48 +00:00
Lauri Ojansivu a31545824e Updated ChangeLog. 2024-08-19 22:23:18 +03:00
Lauri Ojansivu a94cfd5b91 Update Docker.md for docker compose commands and building custom docker image
Update Docker.md for docker compose commands and building custom docker image
2024-08-19 11:03:58 +03:00
Lauri Ojansivu 6d6d51310e Update docker-compose.yml docker compose command
Update docker-compose.yml docker compose command
2024-08-19 11:00:47 +03:00
Lauri Ojansivu c9cf2971de Merge pull request #5505 from wekan/dependabot/github_actions/docker/build-push-action-6.6.1
Bump docker/build-push-action from 6.5.0 to 6.6.1
2024-08-12 23:47:53 +03:00
dependabot[bot] 54c481e3d8 Bump docker/build-push-action from 6.5.0 to 6.6.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.5.0 to 6.6.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/5176d81f87c23d6fc96624dfdbcd9f3830bbe445...16ebe778df0e7752d2cfcbd924afdbbd89c1a755)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 20:46:26 +00:00
Lauri Ojansivu 8b4fbd266d Merge pull request #5503 from walster001/main
Fix ModernDark Mobile View List Titles
2024-08-12 22:56:01 +03:00
Lauri Ojansivu 3c5241b007 Updated ChangeLog. 2024-08-12 22:09:48 +03:00
Lauri Ojansivu 42a1f94931 Updated ChangeLog. 2024-08-12 22:04:43 +03:00
Lauri Ojansivu cae6f38b80 Updated code of conduct. 2024-08-12 21:59:01 +03:00
walster001 25722e5e9d Tweaks to exodark for board backgrounds
Removed drop shadow on exodark cards, as when background applied to board it looks a bit rough design wise. 

Added background-color that will disappear when background is applied, and when background is not applied gives exodark a bit of a smoother cleaner look IMO
2024-08-12 23:49:12 +09:30
walster001 1d339ec17e Update boardColors.css 2024-08-12 21:28:14 +09:30
Lauri Ojansivu ec534c8cca Update Browser-compatibility-matrix.md 2024-08-11 19:15:15 +03:00
Lauri Ojansivu cab285c34d Update Browser-compatibility-matrix.md 2024-08-11 19:12:36 +03:00
Lauri Ojansivu 975993dd6d v7.55 2024-08-08 17:32:35 +03:00
Lauri Ojansivu 43084eb664 Updated ChangeLog. 2024-08-08 17:25:16 +03:00
Lauri Ojansivu 0e770ac3b3 Merge pull request #5501 from walster001/main
Fix board backgrounds not showing correctly after V7.54
2024-08-08 17:20:08 +03:00
walster001 206abc8c68 Fix board backgrounds not showing correctly.
Fixed board backgrounds not showing correctly on the following themes. Various code modified as different themes have used different code to implement the background.

Have tried to stick with board-wrapper as a standard to apply the background colour to.
Board background image will override board-wrapper colour every time.

Dark
Relax
Natural
Modern
ModernDark
Exodark
CleanDark
CleanLight

- Updated pull due to original file I had stored on my pc 139 commits behind! So synced that and then redid code changes to bring it all up to date.
2024-08-08 23:34:09 +09:30
walster001 62b13cc343 Merge branch 'main' of https://github.com/walster001/wekan-atlanz 2024-08-08 23:23:00 +09:30
walster001 7822dd3b75 Fix board backgrounds not showing correctly
Fixed board backgrounds not showing correctly on the following themes.
Various code modified as different themes have used different code to implement the background.

Have tried to stick with board-wrapper as a standard to apply the background colour to.

Board background image will override this every time.

- Dark
- Relax
- Natural
- Modern
- ModernDark
- Exodark
- CleanDark
- CleanLight
2024-08-08 22:51:07 +09:30
Lauri Ojansivu a214cd64b6 v7.54 2024-08-07 17:51:01 +03:00
Lauri Ojansivu 8839a8ea39 Updated ChangeLog. 2024-08-07 17:26:47 +03:00
Lauri Ojansivu a4169f3da7 Fix LDAP login fails after upgrade.
Thanks to juppees !

Fixes #5499
2024-08-07 17:24:14 +03:00
Lauri Ojansivu 19d59b3ab4 Updated ChangeLog. 2024-08-07 00:25:57 +03:00
Lauri Ojansivu 27b2e2384c Merge pull request #5498 from mfilser/master
Bugfix, edit description didn't work if it was clicked
2024-08-07 00:24:58 +03:00
Lauri Ojansivu 49d2cbc2c1 Updated ChangeLog. 2024-08-07 00:23:49 +03:00
Martin Filser bf2b3b40cd Bugfix, edit description didn't work if it was clicked
- introduced by commit: 0cc63b810c
2024-08-06 23:22:58 +02:00
Lauri Ojansivu 1541c6ca23 Merge pull request #5497 from mfilser/master
listHeader, simpler code logic at collapsed if conditions
2024-08-07 00:22:23 +03:00
Lauri Ojansivu 42c1ff94e2 Updated ChangeLog. 2024-08-07 00:13:13 +03:00
Martin Filser 53aa5ebc17 listHeader, simpler code logic at collapsed if conditions 2024-08-06 23:12:31 +02:00
Lauri Ojansivu 0f43818757 Merge pull request #5496 from mfilser/master
Bugfix, Cards Count on mobile view was missing
2024-08-07 00:12:11 +03:00
Lauri Ojansivu f3c5b1eb07 Updated ChangeLog. 2024-08-07 00:11:36 +03:00
Martin Filser 517d1bb7fa Bugfix, Cards Count on mobile view was missing
introduced by:
a601ba542a
2024-08-06 23:10:30 +02:00
Lauri Ojansivu 6ee0919ead Merge pull request #5495 from mfilser/master
Editor, Bugfix, copy text is now at each editor (textarea) again
2024-08-07 00:10:03 +03:00
Martin Filser 13eb1a58e0 Editor, migrate to markdown at same line than copy text icon 2024-08-06 23:06:51 +02:00
Martin Filser 08f9c09484 Editor, Bugfix, copy text is now at each editor (textarea) again 2024-08-06 23:05:54 +02:00
Lauri Ojansivu 3f3abe26ee Updated ChangeLog. 2024-08-07 00:05:09 +03:00
Lauri Ojansivu e31c5b6d42 Merge pull request #5494 from mfilser/master
Minicard, show creator, defaultValue of schema and other code is now the same
2024-08-07 00:03:47 +03:00
Martin Filser 7bf77fa7cb Minicard, show creator, defaultValue of schema and other code is now the same 2024-08-06 23:00:42 +02:00
Lauri Ojansivu a2662f1366 Updated ChangeLog. 2024-08-06 23:57:40 +03:00
Lauri Ojansivu 116cf6aa21 Merge pull request #5493 from mfilser/master
board view, first column a bit smaller to save screen space
2024-08-06 23:56:20 +03:00
Lauri Ojansivu 79bb6d0c55 Updated ChangeLog. 2024-08-06 23:55:12 +03:00
Martin Filser c157ecec38 board view, first column to add a new list was too large 2024-08-06 22:53:53 +02:00
Martin Filser 28893cf637 Bugfix, in View "Lists" the first column only showed the first 10 minicards, now all minicards again 2024-08-06 22:53:53 +02:00
Lauri Ojansivu 73ffc99f37 Merge pull request #5492 from mfilser/master
sidebar xmark icon, add padding and background color
2024-08-06 23:53:24 +03:00
Martin Filser 35802c7c62 sidebar xmark-icon, background color on hover the icon 2024-08-06 22:45:51 +02:00
Martin Filser bc44fdf89c sidebar xmark icon, add padding to easier click 2024-08-06 22:45:51 +02:00
Lauri Ojansivu 030c3dd587 Updated ChangeLog. 2024-08-06 23:38:33 +03:00
Lauri Ojansivu 498be2759e Merge pull request #5491 from mfilser/master
fix empty parentId in cards
2024-08-06 23:37:38 +03:00
Lauri Ojansivu 649d00733a Updated ChangeLog. 2024-08-06 23:36:07 +03:00
Martin Filser 8a7a4f3033 fix empty parentId in cards
- if the parentId is undefined or empty, the code run in a infinite loop and
  the browser "hangs"
2024-08-06 22:35:16 +02:00
Lauri Ojansivu b6ce81dc79 Merge pull request #5490 from mfilser/master
change Meteor.user() to ReactiveCache.getCurrentUser()
2024-08-06 23:35:07 +03:00
Lauri Ojansivu 490c417cee Updated ChangeLog. 2024-08-06 23:33:59 +03:00
Martin Filser 2dfeb3924b reactiveCache, removing commented out code 2024-08-06 22:33:03 +02:00
Martin Filser bff96f6ae2 change Meteor.user() to ReactiveCache.getCurrentUser()
- see also: https://github.com/wekan/wekan/issues/5000
2024-08-06 22:33:03 +02:00
Lauri Ojansivu 4801e26b2f Merge pull request #5489 from mfilser/master
attachment popup back was broken since new attachment viewer, now fixed
2024-08-06 23:32:53 +03:00
Lauri Ojansivu 027997f7b3 Updated ChangeLog. 2024-08-06 23:32:29 +03:00
Martin Filser 76aaefbde1 attachment popup back was broken since new attachment viewer, now fixed 2024-08-06 22:30:51 +02:00
Lauri Ojansivu a01bc0f325 Merge pull request #5488 from mfilser/master
remove attachment storage name from attachment list
2024-08-06 23:30:23 +03:00
Martin Filser f6f4f5660e remove attachment storage name from attachment list
- this was for debugging, now not necessary anymore
2024-08-06 22:26:00 +02:00
Lauri Ojansivu 956925889a Updated ChangeLog. 2024-08-06 23:23:42 +03:00
Lauri Ojansivu 0bd49326d8 Merge pull request #5487 from mfilser/master
little opacity to minicards to see the background image a little bit
2024-08-06 23:22:32 +03:00
Lauri Ojansivu 64c4e8eca8 Updated ChangeLog. 2024-08-06 23:22:04 +03:00
Lauri Ojansivu 55fc342f6d Added info how with Caddy webserver config, PWA and Android app override icons, showing toolbars, etc.
Thanks to xet7 !
2024-08-06 23:19:43 +03:00
Martin Filser 3ae0d96760 little opacity to minicards to see the background image a little bit 2024-08-06 22:03:16 +02:00
Lauri Ojansivu fc1e55cc19 Updated ChangeLog. 2024-08-06 22:58:13 +03:00
Lauri Ojansivu 58fc810a43 Merge pull request #5486 from mfilser/master
Bugfix, variable "color" didn't exist
2024-08-06 22:55:58 +03:00
Martin Filser 3c477e9783 Bugfix, variable "color" didn't exist
- background-color is maybe wrong too, but better than throwing an exception
2024-08-06 21:50:57 +02:00
Lauri Ojansivu f2247ed86d Updated ChangeLog. 2024-08-06 22:48:32 +03:00
Lauri Ojansivu 0d9a9d1ed8 Merge branch 'main' of github.com:wekan/wekan 2024-08-06 22:46:00 +03:00
Lauri Ojansivu ca5a579e22 PWA, move to standalone (standard) to display the status bar.
Thanks to mfilser !

Related https://github.com/wekan/wekan/pull/5484
2024-08-06 22:44:51 +03:00
Lauri Ojansivu 53d97a593f Merge pull request #5485 from mfilser/master
don't set background image in .board-canvas too
2024-08-06 22:38:27 +03:00
Martin Filser 3641a8f389 don't set background image in .board-canvas too 2024-08-06 21:30:27 +02:00
Lauri Ojansivu 1dea1bd09d Merge pull request #5483 from mfilser/master
fix error on console when user logout
2024-08-06 19:09:22 +03:00
Martin Filser 3db265d57f fix error on console when user logout (Part 2) 2024-08-06 17:24:43 +02:00
Martin Filser 38a32824ea fix error on console when user logout (Part 1) 2024-08-06 17:24:43 +02:00
Lauri Ojansivu b0c94f7ff2 Updated ChangeLog. 2024-08-05 13:06:51 +03:00
Lauri Ojansivu 2415aa3d2b v7.53 2024-08-03 22:16:18 +03:00
Lauri Ojansivu 1af1844f37 Updated Snap Candidate to MongoDB 6.0.16.
Thanks to MongoDB developers !
2024-08-03 22:13:08 +03:00
Lauri Ojansivu 75bb247c2b Updated ChangeLog. 2024-08-03 21:52:34 +03:00
Lauri Ojansivu 5a1b517733 Merge pull request #5481 from mfilser/master
reducing card size in database if no planning poker was started
2024-08-03 21:50:27 +03:00
Lauri Ojansivu 0fbc8754f7 Updated ChangeLog. 2024-08-03 21:49:12 +03:00
Lauri Ojansivu aaca60b676 Copied changes from wiki to docs.
Thanks to xet7 !
2024-08-03 21:47:10 +03:00
Martin Filser a929d1e3a4 reducing card size in database if no planning poker was started
reducing:
- cards collection size
- database size
- size to transfer from server to client (publish / subscribe)
2024-08-03 20:40:29 +02:00
Lauri Ojansivu 4a7fa7c396 Updated ChangeLog. 2024-08-03 21:36:22 +03:00
Lauri Ojansivu 45674806d7 Fix dragscroll package name.
Thanks to xet7 !
2024-08-03 21:35:04 +03:00
Lauri Ojansivu 8905bc7dfe Updated ChangeLog. 2024-08-03 21:21:19 +03:00
Lauri Ojansivu dd6aec1ba9 Merge pull request #5480 from mfilser/master
changing card color now closes the popup and doesn't refresh the whole boards page
2024-08-03 21:12:05 +03:00
Lauri Ojansivu aca5fa4d0a Merge branch 'main' of github.com:wekan/wekan 2024-08-03 21:11:23 +03:00
Lauri Ojansivu 0d1f45b8a2 Updated ChangeLog. 2024-08-03 21:11:01 +03:00
Lauri Ojansivu 3f9ae57144 Updated dependencies.
Thanks to developers of dependencies.
2024-08-03 21:09:30 +03:00
Martin Filser 45c2f1007b changing card color now closes the popup and doesn't refresh the whole boards page 2024-08-03 20:06:51 +02:00
Lauri Ojansivu 83adaa3074 Merge pull request #5479 from mfilser/master
fixing of "mode is undefined" on first activity component creation
2024-08-03 21:06:33 +03:00
Martin Filser 1951b279c0 fixing of "mode is undefined" on first activity component creation 2024-08-03 20:03:46 +02:00
Lauri Ojansivu 50406ad683 Merge pull request #5478 from mfilser/master
Board Menu Popup's were opened twice because of 2 same event creation
2024-08-03 21:03:15 +03:00
Martin Filser 95740eaa01 Board Menu Popup's were opened twice because of 2 same event creation 2024-08-03 19:58:25 +02:00
Lauri Ojansivu 08f2c1c735 Merge pull request #5477 from mfilser/dragscroll
adding Dragscroll to scroll the board
2024-08-03 20:54:03 +03:00
Martin Filser 32459ec405 No dragscroll on card details 2024-08-03 19:45:55 +02:00
Martin Filser c7ac0cbce1 No dragscroll while sorting swimlanes 2024-08-03 19:45:55 +02:00
Martin Filser 711fb5754e No dragscroll while sorting checklists 2024-08-03 19:45:55 +02:00
Martin Filser 24fffd8bfa Dragscroll, change cursor while scrolling + support summernote compatibily 2024-08-03 19:45:55 +02:00
Martin Filser 52556aff68 Dragscroll, disable scroll on input, textarea and select 2024-08-03 19:45:55 +02:00
Martin Filser c76959ff25 Dragscroll possible, scroll the screen with the mouse at desktop view
- click on a empty list area and drag the view left/right to scroll
2024-08-03 19:45:45 +02:00
Lauri Ojansivu a141871e60 Updated ChangeLog. 2024-08-03 20:42:30 +03:00
Lauri Ojansivu 5e639a7c2d Updated release script: New install webpage location.
Thanks to xet7 !
2024-08-03 20:39:49 +03:00
Lauri Ojansivu f9654d17d5 Updated ChangeLog. 2024-08-03 20:21:42 +03:00
Lauri Ojansivu c89f3ba3da Revert forking ldapjs.
Thanks to xet7 !
2024-08-03 20:18:53 +03:00
Lauri Ojansivu 1dc5ae444e Merge branch 'update' 2024-08-03 19:55:22 +03:00
Lauri Ojansivu 5db67e47a8 v7.52 2024-08-03 19:43:07 +03:00
Lauri Ojansivu 3877e5feb9 Updated ChangeLog. 2024-08-03 16:56:08 +03:00
Lauri Ojansivu 7456186265 Updated WeKan app webmanifest.
Thanks to xet7 !
2024-08-03 16:53:46 +03:00
Lauri Ojansivu 952f7feb49 Updates 2024-08-03 02:24:49 +03:00
Lauri Ojansivu 3983d750f3 Updated ChangeLog. 2024-08-03 01:38:17 +03:00
Lauri Ojansivu b4f2a8ab5b Updated ChangeLog. 2024-08-03 01:20:47 +03:00
Lauri Ojansivu e8a4554789 Updated ChangeLog. 2024-08-03 01:04:49 +03:00
Lauri Ojansivu de3bc9cb4d Fix typos at attachments code. 2024-08-03 00:52:51 +03:00
Lauri Ojansivu e09f028cd1 Merge pull request #5473 from wekan/dependabot/npm_and_yarn/fast-xml-parser-4.4.1
Bump fast-xml-parser from 4.3.2 to 4.4.1
2024-08-03 00:46:38 +03:00
Lauri Ojansivu ea9f597685 Merge pull request #5476 from mfilser/activities_add_back_created_at_field
Activities, adding back "created at" field
2024-08-03 00:46:01 +03:00
Martin Filser e538fb9514 Activities, adding back "created at" field
Fixes #5459
2024-08-02 23:27:03 +02:00
dependabot[bot] 32fed3d048 Bump fast-xml-parser from 4.3.2 to 4.4.1
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.3.2 to 4.4.1.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.3.2...v4.4.1)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 21:43:29 +00:00
Lauri Ojansivu c6b6d1aa40 Updated translations. 2024-07-28 22:26:54 +03:00
Lauri Ojansivu b9615ccbad Merge pull request #5471 from wekan/dependabot/github_actions/docker/build-push-action-6.5.0
Bump docker/build-push-action from 6.4.0 to 6.5.0
2024-07-23 12:11:31 +03:00
Lauri Ojansivu 0032a91f66 Merge pull request #5470 from wekan/dependabot/github_actions/docker/login-action-3.3.0
Bump docker/login-action from 3.2.0 to 3.3.0
2024-07-23 12:11:20 +03:00
dependabot[bot] 88f6076422 Bump docker/build-push-action from 6.4.0 to 6.5.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/a254f8ca60a858f3136a2f1f23a60969f2c402dd...5176d81f87c23d6fc96624dfdbcd9f3830bbe445)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 20:53:03 +00:00
dependabot[bot] 8e11ecf799 Bump docker/login-action from 3.2.0 to 3.3.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/0d4c9c5ea7693da7b068278f7b52bda2a190a446...9780b0c442fbb1117ed29e0efdff1e18412f7567)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 20:52:59 +00:00
Lauri Ojansivu d04c5c9846 Merge pull request #5469 from wekan/dependabot/github_actions/docker/build-push-action-6.4.0
Bump docker/build-push-action from 6.3.0 to 6.4.0
2024-07-16 21:31:52 +03:00
Lauri Ojansivu e46a66904f Removed old PGP key.
Thanks to xet7 !
2024-07-16 13:56:57 +03:00
dependabot[bot] d038cb4a2d Bump docker/build-push-action from 6.3.0 to 6.4.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/1a162644f9a7e87d8f4b053101d1d9a712edc18c...a254f8ca60a858f3136a2f1f23a60969f2c402dd)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 20:34:56 +00:00
Lauri Ojansivu 78e68c7fea Merge pull request #5464 from wekan/dependabot/github_actions/docker/build-push-action-6.3.0
Bump docker/build-push-action from 6.2.0 to 6.3.0
2024-07-11 16:04:28 +03:00
dependabot[bot] 700f345576 Bump docker/build-push-action from 6.2.0 to 6.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/15560696de535e4014efeff63c48f16952e52dd1...1a162644f9a7e87d8f4b053101d1d9a712edc18c)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 20:16:21 +00:00
Lauri Ojansivu 22067198ab Updated ChangeLog. 2024-07-05 11:59:56 +03:00
Lauri Ojansivu 21d6dfd790 Added RepoCloud.svg .
Related https://github.com/wekan/wekan/pull/5463
2024-07-05 10:43:07 +03:00
Lauri Ojansivu e663ce038a Added RepoCloud.
Related https://github.com/wekan/wekan/pull/5463
2024-07-05 10:38:58 +03:00
Lauri Ojansivu 367b7778fd Merge pull request #5460 from wekan/dependabot/github_actions/docker/build-push-action-6.2.0
Bump docker/build-push-action from 6.1.0 to 6.2.0
2024-07-02 22:55:51 +03:00
dependabot[bot] 989e0a5326 Bump docker/build-push-action from 6.1.0 to 6.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/31159d49c0d4756269a0940a750801a1ea5d7003...15560696de535e4014efeff63c48f16952e52dd1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 20:21:29 +00:00
Lauri Ojansivu 13940f0663 Merge pull request #5458 from abramchikd/clean-theme
Clean theme fixes
2024-06-29 16:05:54 +03:00
Dmitrij Abramov 09e87f207c Some tweaks to clean light and clean dark themes 2024-06-28 00:38:45 +03:00
Lauri Ojansivu f9884b7782 v7.51 2024-06-27 15:16:25 +03:00
Lauri Ojansivu cca5f81c65 Updated ChangeLog. 2024-06-27 14:12:59 +03:00
Lauri Ojansivu c863428aa2 Reorganized docs. 2024-06-27 14:12:06 +03:00
Lauri Ojansivu 2104b853ef Updated ChangeLog. 2024-06-27 14:09:04 +03:00
Lauri Ojansivu 00a56f6aaa Reorganize files. 2024-06-27 14:08:24 +03:00
Lauri Ojansivu 67e7a75b9c Updated ChangeLog. 2024-06-27 14:06:57 +03:00
Lauri Ojansivu 52375df783 Reorganized docs. 2024-06-27 14:06:29 +03:00
Lauri Ojansivu 77fad0e7c6 Reorganized docs. 2024-06-27 14:04:44 +03:00
Lauri Ojansivu 802341384e Updated changelog. 2024-06-27 14:02:44 +03:00
Lauri Ojansivu 057ac4031e Reorganize docs. 2024-06-27 14:01:26 +03:00
Lauri Ojansivu ea5d0999c4 Copy Emoji page to Build from source. 2024-06-27 13:51:14 +03:00
Lauri Ojansivu 7b21650003 Updated ChangeLog. 2024-06-27 13:31:27 +03:00
Lauri Ojansivu 1cfaddff9c Reorganized docs. 2024-06-27 13:30:40 +03:00
Lauri Ojansivu 7690d91771 Updated ChangeLog. 2024-06-27 13:25:52 +03:00
Lauri Ojansivu 6b7b66801b Reorganized docs. 2024-06-27 13:25:06 +03:00
Lauri Ojansivu d671071758 Updated ChangeLog. 2024-06-27 13:21:45 +03:00
Lauri Ojansivu e9c1c620eb Reorganize docs. 2024-06-27 13:20:36 +03:00
Lauri Ojansivu b17a8757fb Updated ChangeLog. 2024-06-27 13:12:44 +03:00
Lauri Ojansivu 2b04cef50b Merge pull request #5455 from walster001/main
Fix ModernDark Cards not showing correctly.
2024-06-27 13:10:33 +03:00
Lauri Ojansivu 16060108b4 Updated ChangeLog. 2024-06-27 13:09:28 +03:00
Lauri Ojansivu 0fb2f7fdd6 Reorganize docs. 2024-06-27 13:07:52 +03:00
walster001 c002cf759e Fix ModernDark Card Alignment
Fix position from absolute to fixed, so it moves with the viewport when horizonally scrolling. 

Fix card top border due to changing position, adjust top border px to 82px
2024-06-27 18:49:01 +09:30
walster001 5fee0b05e0 Fix ModernDark Card Alignment 2024-06-27 18:39:48 +09:30
walster001 48bc176bdf Merge branch 'wekan:main' into main 2024-06-27 18:10:43 +09:30
walster001 ec56dc73c4 Merge branch 'main' of https://github.com/walster001/wekan-atlanz 2024-06-27 18:09:59 +09:30
walster001 83e9d681d7 Fix ModernDark Card Alignment
Fix cards not showing up properly in ModernDark theme, when more lists are created than will fit on a single screen, inciting a horizontal scrollbar, and then scrolling across trying to open cards.

Due to position being absolute, this then opened the card off-screen
2024-06-27 18:09:51 +09:30
Lauri Ojansivu e0b9e80698 Updated ChangeLog. 2024-06-27 11:16:53 +03:00
Lauri Ojansivu 449c02c42a Updated Snap docs from wiki. 2024-06-27 11:12:49 +03:00
Lauri Ojansivu ce89ff4833 Reorganized Docs. In Progress. 2024-06-27 11:08:43 +03:00
Lauri Ojansivu 1961e22cbd Added changes from wiki to wekan repo. 2024-06-27 10:31:35 +03:00
Lauri Ojansivu b95ee7cf4d Updated ChangeLog. 2024-06-26 18:57:10 +03:00
Lauri Ojansivu 14b2291590 Merge pull request #5452 from wekan/dependabot/github_actions/docker/build-push-action-6.1.0
Bump docker/build-push-action from 6.0.0 to 6.1.0
2024-06-25 09:13:44 +03:00
Dmitrij Abramov 954ec05d41 Clean themes tweaks 2024-06-25 01:57:31 +03:00
dependabot[bot] 4c25b40b2d Bump docker/build-push-action from 6.0.0 to 6.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/c382f710d39a5bb4e430307530a720f50c2d3318...31159d49c0d4756269a0940a750801a1ea5d7003)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 20:30:46 +00:00
Lauri Ojansivu 1792e3d884 v7.50 2024-06-22 09:12:23 +03:00
Lauri Ojansivu 3c35a6400b Updated docs for WeKan version for Windows. Part 2. 2024-06-22 08:58:18 +03:00
Lauri Ojansivu 2a4ba31a9e Updated ChangeLog. 2024-06-21 03:51:26 +03:00
Lauri Ojansivu 99a8afd6c3 Updated dependencies. 2024-06-21 03:48:52 +03:00
Lauri Ojansivu cc9ff4c8db Updated ChangeLog. 2024-06-21 03:31:52 +03:00
Lauri Ojansivu ed4189cc5e Merge pull request #5449 from abramchikd/theme-clean
Added "Clean dark" and "Clean light" themes
2024-06-21 03:08:30 +03:00
Dmitrij Abramov 6d66e60830 Fixes for clean light theme 2024-06-19 02:33:02 +03:00
Dmitrij Abramov 930f0a7f82 Added clean dark and clean light themes 2024-06-19 01:37:55 +03:00
Lauri Ojansivu 89347e2a56 Merge pull request #5446 from wekan/dependabot/github_actions/docker/build-push-action-6.0.0
Bump docker/build-push-action from 5.4.0 to 6.0.0
2024-06-18 19:55:37 +03:00
dependabot[bot] 09a08cd074 Bump docker/build-push-action from 5.4.0 to 6.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/ca052bb54ab0790a636c9b5f226502c73d547a25...c382f710d39a5bb4e430307530a720f50c2d3318)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 20:59:11 +00:00
Lauri Ojansivu c344474d9e Merge pull request #5443 from Hekatomb/bugfix/CardOverflow
Update cardDetails.css
2024-06-13 16:52:22 +03:00
Hekatomb d13d169768 Update cardDetails.css
Bugfix, task card may overflow below the screen when maximized, making the bottom part not viewable.

Reason: Top position is set to 97px, Height of the element is set to calc(100% - 20px).

Fix: Set the height to be lower than 100% - Top position
2024-06-13 09:45:31 +02:00
Lauri Ojansivu e3929973d1 Updated ChangeLog. 2024-06-11 02:05:57 +03:00
Lauri Ojansivu 9b428150a4 Updated docs for WeKan version for Windows.
Thanks to xet7.
2024-06-11 02:04:12 +03:00
Lauri Ojansivu 8ba565042f v7.49 2024-06-11 01:40:43 +03:00
Lauri Ojansivu 6df03294bd Updated ChangeLog. 2024-06-11 01:34:19 +03:00
Lauri Ojansivu 4a40ac3ced Merge pull request #5441 from wekan/dependabot/github_actions/docker/build-push-action-5.4.0
Bump docker/build-push-action from 5.3.0 to 5.4.0
2024-06-11 01:31:44 +03:00
dependabot[bot] 2f34d65164 Bump docker/build-push-action from 5.3.0 to 5.4.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/2cdde995de11925a030ce8070c3d77a52ffcf1c0...ca052bb54ab0790a636c9b5f226502c73d547a25)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 20:33:21 +00:00
Lauri Ojansivu 7c68d6a710 Updated ChangeLog. 2024-06-10 16:27:51 +03:00
Lauri Ojansivu 55fb7a8f27 Merge pull request #5440 from Hekatomb/bugfix/TeamsOrgAdminCard
Fill out Org and Team in adminReports
2024-06-10 16:19:48 +03:00
Lauri Ojansivu bb9fb1187e Updated ChangeLog. 2024-06-10 14:54:13 +03:00
Lauri Ojansivu f0170c576c Updated ChangeLog. 2024-06-10 14:52:35 +03:00
Lauri Ojansivu 02caaafc52 Merge branch 'main' of github.com:wekan/wekan 2024-06-10 14:49:51 +03:00
Lauri Ojansivu 168b17ac4e Updated ChangeLog. 2024-06-10 14:47:13 +03:00
Lauri Ojansivu e3214c874e Changed back to original icon of Edit Description.
Thanks to saschafoerster, C0rn3j and xet7 !

Fixes #5413,
related https://github.com/wekan/wekan/commit/1f2fb2ccce38e9cac348f1c459784d6e5a949ded
2024-06-10 14:40:49 +03:00
hekatomb 91444cce9b Fill out Org and Team in adminReports 2024-06-07 19:58:12 +02:00
Lauri Ojansivu c952aaadec Merge pull request #5435 from Hekatomb/bugfix/TeamsOrgStrikethrough 2024-06-07 01:11:37 +03:00
hekatomb 77ab5c1690 Bugfix: Strikethrough inactive Teams and orginizations rather than strikethrough active teams and orgs 2024-06-06 23:25:16 +02:00
Lauri Ojansivu 37857935f3 Updated ChangeLog. 2024-06-06 04:58:47 +03:00
Lauri Ojansivu e5c7650fc8 WeKan new release version number from wiki to WeKan repo docs.
Thanks to xet7 !
2024-06-06 04:55:45 +03:00
Lauri Ojansivu f42e0fe507 v7.48 2024-06-06 02:12:09 +03:00
Lauri Ojansivu 58dbd78997 Updated ChangeLog. 2024-06-06 02:07:32 +03:00
Lauri Ojansivu 04b995e77f Allow Normal user to add new swimlane, list and label.
Thanks to RyanHecht, norrig and xet7 !

Fixes #4276,
fixes #4785
2024-06-06 02:03:29 +03:00
Lauri Ojansivu 82aa3fb7ee Updated ChangeLog. 2024-06-06 01:44:56 +03:00
Lauri Ojansivu ec0e88ad2e Try to show more of title of collapsed list.
Thanks to C0rn3j and xet7 !

Related #5428
2024-06-06 01:39:57 +03:00
Lauri Ojansivu cac28fde4d Updated ChangeLog. 2024-06-04 23:45:46 +03:00
Lauri Ojansivu e65a8c9017 Add changes from wiki to docs. Part 2.
Thanks to xet7 !
2024-06-04 23:44:35 +03:00
Lauri Ojansivu 4a26f80fb1 Updated ChangeLog. 2024-06-04 23:30:57 +03:00
Lauri Ojansivu bca8a72a0f Merge branch 'main' of github.com:wekan/wekan 2024-06-04 23:28:59 +03:00
Lauri Ojansivu 13be8160d5 Add changes from wiki to docs.
Thanks to xet7 !
2024-06-04 23:27:55 +03:00
Lauri Ojansivu 8efea6c4e2 Updated ChangeLog. 2024-06-04 16:05:52 +03:00
Lauri Ojansivu 36bb5e099e Fix Admin Panel pages Organizations and Teams, where HTML Tables were broken.
Thanks to Hekatomb and xet7 !

Fixes #5429
2024-06-04 16:02:03 +03:00
Lauri Ojansivu b86a24d97a Merge pull request #5430 from wekan/dependabot/github_actions/docker/login-action-3.2.0
Bump docker/login-action from 3.1.0 to 3.2.0
2024-06-04 15:17:18 +03:00
dependabot[bot] 3febe80329 Bump docker/login-action from 3.1.0 to 3.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 20:32:31 +00:00
Lauri Ojansivu b11a2103a4 Updated ChangeLog. 2024-06-03 05:16:50 +03:00
Lauri Ojansivu 4a9d881e47 Updated release scripts.
Thanks to xet7 !
2024-06-03 05:14:58 +03:00
Lauri Ojansivu 8e5c6af612 v7.47 2024-06-03 05:07:30 +03:00
Lauri Ojansivu ca588a4b54 Updated translations. 2024-06-03 05:00:33 +03:00
Lauri Ojansivu 258032acb0 Updated ChangeLog. 2024-06-03 04:39:55 +03:00
Lauri Ojansivu 2c9c9c4356 Updated release scripts.
Thanks to xet7 !
2024-06-03 04:38:55 +03:00
Lauri Ojansivu 88d4e8a4d9 Updated ChangeLog. 2024-06-03 04:35:16 +03:00
Lauri Ojansivu 4e2a8735bc Updated to MongoDB 6.0.15 at Snap Candidate.
Thanks to MongoDB developers !
2024-06-03 04:33:40 +03:00
Lauri Ojansivu b72d24f6d0 Updated ChangeLog. 2024-06-03 04:30:24 +03:00
Lauri Ojansivu 1f2fb2ccce Fix Edit Description button is wildly out of place.
Thanks to C0rn3j and xet7 !

Fixes #5413
2024-06-03 04:23:09 +03:00
Lauri Ojansivu 5e2b423ef8 Only show Board name edit button to BoardAdmin.
Thanks to xet7 !
2024-06-03 04:03:31 +03:00
Lauri Ojansivu 79e2001708 Update Docker base images to Ubuntu 24.04.
Thanks to xet7 !
2024-06-03 03:06:58 +03:00
Lauri Ojansivu 2ea96518ad v7.46 2024-06-03 01:16:20 +03:00
Lauri Ojansivu 2666001226 Updated ChangeLog. 2024-05-30 23:22:48 +03:00
Lauri Ojansivu 1bd30bc121 For development, only recommend Debian 12 amd64, because Sandstorm works at Debian 12.
Sandstorm does not work at Ubuntu 24.04.

Thanks to xet7 !

Related https://github.com/sandstorm-io/sandstorm/issues/3712
2024-05-30 23:19:55 +03:00
Lauri Ojansivu d6d8144476 Updated dependencies. 2024-05-29 01:03:18 +03:00
Lauri Ojansivu 68e7818c1d Updated ChangeLog. 2024-05-29 00:58:05 +03:00
Lauri Ojansivu e0e5f4514b Merge pull request #5424 from Dexus/patch-1
Update exporter.js with fix for #5416
2024-05-28 18:04:57 +03:00
Josef Fröhle c2942fa269 Update exporter.js with fix for #5416
This should fix #5416
2024-05-28 16:42:44 +02:00
Lauri Ojansivu 6f31240c74 Updated ChangeLog. 2024-05-27 23:47:50 +03:00
Lauri Ojansivu 5124265142 Updated GitHub issue template for issue instructions to be more visible.
Related #5422
2024-05-27 14:00:49 +03:00
Lauri Ojansivu f0bd5eaca9 Updated ChangeLog. 2024-05-27 00:15:42 +03:00
Lauri Ojansivu 8589f85907 Merge pull request #5420 from mfilser/remove_second_created_at_on_activities
Remove second created at on activities
2024-05-26 23:17:34 +03:00
Martin Filser 66d739b3b1 Removed second "created at" text at activites / card comment
- the same text is already at line start, it makes no sense to print it
  again at line end
2024-05-26 22:05:51 +02:00
Lauri Ojansivu 2206e34ab6 Merge pull request #5419 from mfilser/dockerfile_production_and_dev_same_build
Dockerfile production and dev same build
2024-05-26 22:06:09 +03:00
Martin Filser cc1ca4a1bb Dockerfile for production and development same build (part 2) 2024-05-26 19:55:19 +02:00
Martin Filser c8b1ef8ea6 Dockerfile for production and development same build (part 1) 2024-05-26 19:49:31 +02:00
Lauri Ojansivu f836faad48 Merge pull request #5418 from mfilser/devcontainer_reduce_image_size_and_other_dev_updates
Devcontainer, reduce image size and other necessary changes for development
2024-05-26 00:26:45 +03:00
Lauri Ojansivu 7e27b916aa Updated ChangeLog. 2024-05-25 23:59:41 +03:00
Lauri Ojansivu ae9963c1f7 Merge pull request #5412 from e-gaulue/e-gaulue-patch-1
Remove notification while copying board
2024-05-25 22:40:58 +03:00
Martin Filser 2b4f4c8d4d .devcontainer/Dockerfile, updated RUN statements to heredoc style 2024-05-25 19:53:33 +02:00
Martin Filser 68104fe578 .devcontainer/Dockerfile, use Debian 11 because Ubuntu 21.10 can not build 2024-05-25 19:53:33 +02:00
Martin Filser 6f2c46a747 .devcontainer/Dockerfile, make is needed by "meteor npm update" 2024-05-25 19:53:30 +02:00
Martin Filser e7e1f1b667 .devcontainer/Dockerfile, don't remove ca-certificates because it's needed for "meteor npm install" 2024-05-25 19:53:25 +02:00
Martin Filser 7dc20616a7 .devcontainer/Dockerfile, don't remove curl/python3 because it's needed for "meteor npm" 2024-05-25 19:53:20 +02:00
Martin Filser b5b323000a .devcontainer/Dockerfile, reduce build a bit + image size to 3.42 GB
- on a test system it reduced from 11m36s to 9m34s
2024-05-25 19:53:07 +02:00
Martin Filser 19d204c7a8 .devcontainer/Dockerfile, 3.49 GB image size 2024-05-25 19:50:16 +02:00
Martin Filser 672c279b0a .devcontainer/Dockerfile, 4.12 GB image size 2024-05-25 19:50:16 +02:00
Martin Filser 669e31ea64 .devcontainer/Dockerfile, 4.16 GB image size 2024-05-25 19:50:16 +02:00
Martin Filser 4ab72170e3 .devcontainer/Dockerfile, 4.16 GB image size 2024-05-25 19:50:16 +02:00
Martin Filser 9ca39696b3 .devcontainer/Dockerfile, 5.64 GB image size
- first copy all files, then install to make it possible to install everything
  in one RUN section
2024-05-25 19:50:16 +02:00
Martin Filser 7c36279308 .devcontainer/Dockerfile, 5.64 GB image size 2024-05-25 19:50:16 +02:00
Martin Filser 89e5b3a979 .devcontainer/Dockerfile, 6.02 GB image size 2024-05-25 19:50:14 +02:00
Martin Filser 58782c9a89 .devcontainer/Dockerfile contained duplicated logic 2024-05-25 19:49:30 +02:00
Martin Filser c3824dcbd2 .devcontainer, added missing environments 2024-05-25 19:49:30 +02:00
Lauri Ojansivu cead2bc00f Merge pull request #5417 from LanetNetwork/fix-cards-load
fixed loading of cards if there are more than 20 of them on one swimlane
2024-05-24 17:50:24 +03:00
Dmytro Novash 0d5380466a fix cards load if cards > 20 on swimlane 2024-05-24 17:15:52 +03:00
e-gaulue 58f6acbc48 Remove notification while copying board
1. It takes too long while server stops after 2 minutes (#5371).
2. It is useless, because when you copy a board, most of the time your users don't want to be notified of every copied cards.
2024-05-15 22:17:54 +02:00
Lauri Ojansivu db73fb4e37 Updated translations. 2024-05-08 18:00:31 +03:00
Lauri Ojansivu a3d4c3d948 Merge pull request #5405 from LanetNetwork/uk_upd
Update ukrainian translation
2024-05-08 17:45:41 +03:00
Dmytro Novash f9dc5c6f80 upd 2024-05-07 18:57:48 +03:00
Dmitriy Novash 96b763fb89 Merge branch 'wekan:main' into uk_upd 2024-05-07 16:51:49 +03:00
Lauri Ojansivu 98a75305e7 Merge pull request #5404 from C0rn3j/fix-deprecated-grep
Swap deprecated `egrep` for `grep -E`
2024-05-06 17:09:58 +03:00
Lauri Ojansivu 0d8739327e Merge pull request #5403 from C0rn3j/image-optim
Optimize SVGs and PNGs to save 550KB~
2024-05-06 16:54:30 +03:00
Martin Rys 7dc4d9bb71 Swap deprecated egrep for grep -E
also remove some extra whitespace in MD doc
2024-05-06 11:19:59 +02:00
Martin Rys c814221185 Run SVG logos through svgo to reduce their filesize 2024-05-06 11:16:17 +02:00
Martin Rys f2f6b57944 Losslessly optimize PNGs (-522KB)
oxipng --zopfli --opt max
2024-05-06 11:12:54 +02:00
Lauri Ojansivu f50c2af914 v7.45 2024-05-06 01:38:35 +03:00
Lauri Ojansivu 5b7442436d Updated ChangeLog. 2024-05-06 01:33:54 +03:00
Lauri Ojansivu 9cebee7347 Fix Can't set a Due Date that has a leading zero in time, errors with invalid time.
Thanks to C0rn3j and xet7 !

Fixes #5395
2024-05-06 01:30:49 +03:00
Lauri Ojansivu f311359373 Updated ChangeLog. 2024-05-04 23:17:22 +03:00
Lauri Ojansivu 31b9970c04 Merge pull request #5401 from C0rn3j/set-silver
Allow `silver` color to be set in List and Swimlane
2024-05-04 23:14:06 +03:00
Martin Rys baf0edc51e Allow silver color to be set in List and Swimlane 2024-05-04 22:09:04 +02:00
Lauri Ojansivu 69a2a76b2e Merge pull request #5400 from C0rn3j/fix-white-list-color
Fix white List color and define Silver in CSS instead of leaving it unset
2024-05-04 23:01:05 +03:00
Martin Rys 7fd894f33d Do not leave silver color unset in Swimlane and List CSS 2024-05-04 21:59:05 +02:00
Martin Rys 3f366844e2 Fix white List color 2024-05-04 21:58:08 +02:00
Lauri Ojansivu 4156b6f932 Temporarily revert collapse per user that did not work yet.
Thanks to xet7 !

Related #5388
2024-05-04 22:57:13 +03:00
Lauri Ojansivu ed801f7082 Collapse Swimlane. In Progress.
Thanks to xet7 !

Related #5388
2024-05-04 22:50:13 +03:00
Lauri Ojansivu cedd10e067 Updated translations. 2024-05-02 00:06:30 +03:00
Lauri Ojansivu 86b756b6bc Updated ChangeLog. 2024-05-02 00:04:42 +03:00
Lauri Ojansivu 259a12acf9 Merge branch 'main' of github.com:wekan/wekan 2024-05-02 00:00:43 +03:00
Lauri Ojansivu 902f86d363 Collapse Lists to be per user, not per board. In Progress.
Related #5388

Thanks to xet7 !
2024-05-01 23:58:57 +03:00
Lauri Ojansivu d5fc75e345 Merge pull request #5392 from wekan/dependabot/github_actions/meteorengineer/setup-meteor-2
Bump meteorengineer/setup-meteor from 1 to 2
2024-04-30 17:56:10 +03:00
Lauri Ojansivu 5650bd829a Merge pull request #5393 from LanetNetwork/fix_tables
fix display of tables with a large number of rows
2024-04-30 17:55:46 +03:00
Dmitriy Novash f9ad46180e upd 2024-04-30 17:43:06 +03:00
Dmitriy Novash 6e534d7543 fix display of tables with a large number of rows 2024-04-30 15:54:28 +03:00
Dmitriy Novash 9aa56a8e42 update ukr translation 2024-04-30 15:49:48 +03:00
Dmitriy Novash 4ed67832d2 remove deprecated & invalid translation 2024-04-30 15:48:32 +03:00
dependabot[bot] 3409de9ed1 Bump meteorengineer/setup-meteor from 1 to 2
Bumps [meteorengineer/setup-meteor](https://github.com/meteorengineer/setup-meteor) from 1 to 2.
- [Release notes](https://github.com/meteorengineer/setup-meteor/releases)
- [Commits](https://github.com/meteorengineer/setup-meteor/compare/v1...v2)

---
updated-dependencies:
- dependency-name: meteorengineer/setup-meteor
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 20:50:33 +00:00
Lauri Ojansivu e73a44d15b Updated translations. 2024-04-28 16:22:55 +03:00
Lauri Ojansivu 5cf30f05fd Updated ChangeLog. 2024-04-28 16:21:49 +03:00
Lauri Ojansivu 63117e87e7 Update Docker base container to Ubuntu 24.04, and update software versions.
Thanks to developers of dependencies !
2024-04-28 16:19:14 +03:00
Lauri Ojansivu a8e520e7f0 v7.44 2024-04-26 14:35:54 +03:00
Lauri Ojansivu e14bb16d60 Updated ChangeLog. 2024-04-26 14:29:31 +03:00
Lauri Ojansivu b704d58f0f Collapse Swimlane. In Progress, does not work yet, not visible yet.
Thanks to xet7 !
2024-04-26 14:27:09 +03:00
Lauri Ojansivu 246e9a7764 Updated translations. 2024-04-26 14:23:46 +03:00
Lauri Ojansivu 1c7b63f583 Updated ChangeLog. 2024-04-26 08:00:15 +03:00
Lauri Ojansivu e6476319bc Fix board not visible.
Thanks to xet7 !
2024-04-26 07:57:16 +03:00
Lauri Ojansivu c954934b33 Updated translations. 2024-04-26 07:41:38 +03:00
Lauri Ojansivu a72a6886f6 Updated ChangeLog. 2024-04-26 07:35:15 +03:00
Lauri Ojansivu a601ba542a Collapse Lists.
Thanks to xet7 !
2024-04-26 07:33:06 +03:00
Lauri Ojansivu f22f470ba4 Updated translations. 2024-04-19 15:04:23 +03:00
Lauri Ojansivu 3faeeac126 v7.43 2024-04-18 04:53:26 +03:00
Lauri Ojansivu 40be1d416b Updated translations. 2024-04-18 04:44:10 +03:00
Lauri Ojansivu 9ef82458b7 Updated ChangeLog. 2024-04-18 04:21:38 +03:00
Lauri Ojansivu da99e363cd Updated dependencies.
Thanks to developers of dependencies !
2024-04-18 04:20:04 +03:00
Lauri Ojansivu 3110bb48fd Updated ChangeLog. 2024-04-18 03:47:22 +03:00
Lauri Ojansivu 08e2f2f273 Updated dependencies.
Thanks to developers of dependencies !
2024-04-18 03:45:48 +03:00
Lauri Ojansivu 6636d12215 Updated ChangeLog. 2024-04-18 03:30:39 +03:00
Lauri Ojansivu 5f243d173a Updated translations. 2024-04-18 03:23:07 +03:00
Lauri Ojansivu 5ea8d3a4c6 Merge pull request #5381 from tvogel/localized-timestamps
By default, use localized long date-time format
2024-04-17 22:25:00 +03:00
Tilman Vogel dad3fd22ec By default, use localized long date-time format
because ISO 8601 is not easy to the eye (at least for non-tech people).
2024-04-17 16:52:10 +02:00
Lauri Ojansivu f381402e8f Merge pull request #5380 from verdel/fix-debug-env-check
Fix DEBUG environment variable check
2024-04-17 15:40:31 +03:00
Vadim Aleksandrov f010235ff2 Fix DEBUG environment variable check 2024-04-17 14:06:15 +03:00
Lauri Ojansivu 09f6dcbde1 Updated translations. 2024-04-14 22:50:16 +03:00
Lauri Ojansivu 224b8e3492 Updated ChangeLog. 2024-04-14 22:47:25 +03:00
Martin Rys 28612bbc8a Dockerfile: Switch RUN commands to heredoc to avoid an insane amount of ANDs and escapes 2024-04-14 17:31:19 +02:00
Martin Rys dfe4f7bb56 docker-compose.yml: Remove obsolete version parameter 2024-04-14 17:24:56 +02:00
Lauri Ojansivu 3f28c0dd22 Merge pull request #5372 from wekan/dependabot/npm_and_yarn/tar-6.2.1
Bump tar from 6.2.0 to 6.2.1
2024-04-11 20:56:35 +03:00
dependabot[bot] 959dd1a95a Bump tar from 6.2.0 to 6.2.1
Bumps [tar](https://github.com/isaacs/node-tar) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.2.0...v6.2.1)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-11 12:34:10 +00:00
Lauri Ojansivu d5297cd1df Updated translations. 2024-04-11 06:41:33 +03:00
Lauri Ojansivu 95404f43b7 Updated ChangeLog. 2024-04-07 18:46:08 +03:00
Lauri Ojansivu 9838af5e56 Updated Transifex URL. 2024-04-07 18:44:43 +03:00
Lauri Ojansivu dab656f8ca Updated ChangeLog. 2024-04-07 18:35:52 +03:00
Lauri Ojansivu 802eeb1e6b Updated release script for Windows On-Premise, that is without container like Docker and Snap.
Thanks to xet7 !
2024-04-07 18:33:23 +03:00
Lauri Ojansivu 98dd28818a Updated wiki. 2024-04-07 16:49:05 +03:00
Lauri Ojansivu f705373cc4 v7.42 2024-04-03 01:20:29 +03:00
Lauri Ojansivu 5bc60a8dab Updated ChangeLog. 2024-04-03 01:17:13 +03:00
Lauri Ojansivu 1c8f783767 Updated dependencies.
Thanks to developers of dependencies !
2024-04-03 01:15:08 +03:00
Lauri Ojansivu 24d3075c85 Updated ChangeLog. 2024-04-03 01:13:20 +03:00
Lauri Ojansivu c461adff11 Fixed CRITICAL SECURITY ISSUE by updating meteor-node-stubs.
Thanks to Meteor developers !
2024-04-03 00:53:47 +03:00
Lauri Ojansivu b172f7207d Merge pull request #5363 from jghaanstra/main
Small tweaks to moderndark theme
2024-04-01 17:27:31 +03:00
Jelger Haanstra ef31fffa40 Small tweaks to moderndark theme 2024-03-28 19:27:35 +01:00
Lauri Ojansivu 426632a307 Updated translations. 2024-03-27 20:59:32 +02:00
Lauri Ojansivu 2c708b6df6 Updated translations. 2024-03-25 14:10:34 +02:00
Lauri Ojansivu b555d0ccc8 Merge pull request #5360 from dyercode/patch-1
Update README.md
2024-03-21 22:05:55 +02:00
Jon Dyer e1724c8a12 Update README.md
change link to the thing you're talking about (presumably) instead of cyclically linking to the page the link is on
2024-03-21 08:30:32 -04:00
Lauri Ojansivu cd35574c0b Merge pull request #5356 from wekan/dependabot/github_actions/docker/login-action-3.1.0
Bump docker/login-action from 3.0.0 to 3.1.0
2024-03-19 07:50:28 +02:00
Lauri Ojansivu d016cbcffc Merge pull request #5355 from wekan/dependabot/github_actions/docker/build-push-action-5.3.0
Bump docker/build-push-action from 5.2.0 to 5.3.0
2024-03-19 07:50:13 +02:00
dependabot[bot] 7e4b672888 Bump docker/login-action from 3.0.0 to 3.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/343f7c4344506bcbf9b4de18042ae17996df046d...e92390c5fb421da1463c202d546fed0ec5c39f20)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 20:06:55 +00:00
dependabot[bot] 06d9abf6f6 Bump docker/build-push-action from 5.2.0 to 5.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/af5a7ed5ba88268d5278f7203fb52cd833f66d6e...2cdde995de11925a030ce8070c3d77a52ffcf1c0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 20:06:52 +00:00
Lauri Ojansivu a1a6dae5c6 v7.41 2024-03-18 02:32:43 +02:00
Lauri Ojansivu c5f40f1be9 Updated ChangeLog. 2024-03-18 02:26:26 +02:00
Lauri Ojansivu 4358cb5e57 Merge pull request #5350 from lorodoes/main
Update mongodb-control
2024-03-18 01:46:46 +02:00
lorodoes a591bf05e0 Update mongodb-control
Missed a few mongosh lines.
2024-03-17 19:28:50 -04:00
Lauri Ojansivu 568b7538ad Merge pull request #5349 from lorodoes/main
Update mongodb-control
2024-03-18 01:06:54 +02:00
lorodoes bbd7765432 Update mongodb-control
Fixes for mongosh to allow snap packages to update to the edge/candidate version
2024-03-17 19:04:07 -04:00
Lauri Ojansivu 558024785f v7.40 2024-03-17 04:03:51 +02:00
Lauri Ojansivu 76043cc5b6 Updated ChangeLog. 2024-03-17 03:53:50 +02:00
Lauri Ojansivu 583fca1814 Fixed In RTL, hamburger margin is too much in mobile.
Thanks to mohammadZahedian and xet7 !

Fixes #5337
2024-03-17 03:49:46 +02:00
Lauri Ojansivu 806201b8cb Updated ChangeLog. 2024-03-17 03:38:26 +02:00
Lauri Ojansivu 24c89aeb64 Fixed centering of text below custom login logo.
Thanks to xet7 !
2024-03-17 03:36:05 +02:00
Lauri Ojansivu 8f0d88d9e0 v7.39 2024-03-16 15:08:24 +02:00
Lauri Ojansivu e92d8dc127 Updated ChangeLog. 2024-03-16 14:59:15 +02:00
Lauri Ojansivu 8a99e8f796 Merge pull request #5346 from kuba-orlik/patch-1
Make the contents of the cards grow to the list width
2024-03-14 20:38:18 +02:00
Kuba Orlik c0246c6834 Make the contents of the cards grow to the list width 2024-03-14 11:42:56 +01:00
Lauri Ojansivu 42ed92f346 Merge pull request #5344 from wekan/dependabot/github_actions/VeryGoodOpenSource/very_good_coverage-3.0.0
Bump VeryGoodOpenSource/very_good_coverage from 2.2.0 to 3.0.0
2024-03-13 16:06:19 +02:00
Lauri Ojansivu df0bd90fae Merge pull request #5343 from wekan/dependabot/github_actions/docker/build-push-action-5.2.0
Bump docker/build-push-action from 5.1.0 to 5.2.0
2024-03-13 16:05:57 +02:00
dependabot[bot] 3453f94b43 Bump VeryGoodOpenSource/very_good_coverage from 2.2.0 to 3.0.0
Bumps [VeryGoodOpenSource/very_good_coverage](https://github.com/verygoodopensource/very_good_coverage) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/verygoodopensource/very_good_coverage/releases)
- [Changelog](https://github.com/VeryGoodOpenSource/very_good_coverage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/verygoodopensource/very_good_coverage/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: VeryGoodOpenSource/very_good_coverage
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 20:01:56 +00:00
dependabot[bot] ca537e266d Bump docker/build-push-action from 5.1.0 to 5.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/4a13e500e55cf31b7a5d59a38ab2040ab0f42f56...af5a7ed5ba88268d5278f7203fb52cd833f66d6e)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 20:01:53 +00:00
Lauri Ojansivu 8f3c948614 Updated docs. 2024-03-11 15:53:23 +02:00
Lauri Ojansivu 059743ad34 Merge pull request #5341 from e-gaulue/e-gaulue-wiki-1
Clarify usage of api.py
2024-03-11 15:29:04 +02:00
e-gaulue 33ccf68e17 Update New-card-with-Python3-and-REST-API.md 2024-03-11 14:17:20 +01:00
e-gaulue b6f22712f9 Update New-card-with-Python3-and-REST-API.md
Clarify usage, at least for me.
2024-03-11 14:14:42 +01:00
Lauri Ojansivu 9e413b3961 Merge pull request #5340 from e-gaulue/ED1 2024-03-11 11:49:55 +02:00
Lauri Ojansivu 5dd318a481 v7.38 2024-03-10 23:47:29 +01:00
Lauri Ojansivu 1783257c0e v7.38 2024-03-10 08:42:04 +02:00
Lauri Ojansivu 966852c212 Updated ChangeLog. 2024-03-10 08:37:21 +02:00
Lauri Ojansivu 07d6c1e514 Upgraded to MongoDB 6.0.14 at Snap Candidate.
Thanks to MongoDB developers !
2024-03-10 08:35:55 +02:00
Lauri Ojansivu 09be915ea5 Updated ChangeLog. 2024-03-10 08:34:27 +02:00
Lauri Ojansivu abd3c95dfa Fixed In RTL, hamburger needs margin.
Thanks to mohammadZahedian and xet7 !

Fixes #5337
2024-03-10 08:31:33 +02:00
Lauri Ojansivu 3fa61ac23c Updated ChangeLog. 2024-03-10 08:21:10 +02:00
Lauri Ojansivu 00bbc26698 Fixed text below custom login logo not visible.
Thanks to xet7 !
2024-03-10 08:18:50 +02:00
Lauri Ojansivu 3004f54b5d Updated ChangeLog. 2024-03-08 23:14:20 +02:00
Lauri Ojansivu ef5b888779 Add info about GitHub top committers at Finland.
Thanks to xet7 !
2024-03-08 23:02:41 +02:00
Lauri Ojansivu 835e33bf09 Added script to count lines of code changed per committer email address, because GitHub removed that feature from web UI.
Thanks to bgwines and xet7 !
2024-03-08 22:57:38 +02:00
Lauri Ojansivu 8ba3a05648 Updated contributing to wiki. 2024-03-08 21:36:29 +02:00
Lauri Ojansivu 73ae73d4c3 Added docs from wekan.wiki and wekan-snap.wiki 2024-03-08 21:24:14 +02:00
Lauri Ojansivu 76175a711a Merge pull request #5336 from xator91/patch-12
Update api.py
2024-03-08 14:18:55 +02:00
Mirko Genovese 574acd6744 Update api.py
#5322 Fix error during delete.
2024-03-08 11:45:34 +01:00
Lauri Ojansivu 9e0e052bba Updated ChangeLog. 2024-03-07 20:18:51 +02:00
Lauri Ojansivu ffafb30b9b Fixed API get_all_cards doesn't return SwimlaneId. Please test.
Thanks to mohammadZahedian, xator91 and xet7.

Fixes #5319
2024-03-07 13:36:42 +02:00
Lauri Ojansivu 9c4e402e6c v7.37 2024-03-07 13:27:49 +02:00
Lauri Ojansivu f6f9dbb5e3 Updated ChangeLog. 2024-03-07 13:14:23 +02:00
Lauri Ojansivu 7beced1e68 Fixed API get swimlane cards wrong order. Please test.
Thanks to mohammadZahedian, xator91 and xet7.

Fixes #5319
2024-03-07 13:10:41 +02:00
Lauri Ojansivu c8921b77f0 v7.36 2024-03-06 12:14:54 +02:00
Lauri Ojansivu 482ce0a265 Updated ChangeLog. 2024-03-06 12:10:03 +02:00
Lauri Ojansivu c570405d02 Try to fix API get cards wrong order. Please test.
Thanks to mohammadZahedian, xator91 and xet7.

Fixes #5319
2024-03-06 12:07:18 +02:00
Lauri Ojansivu 35ed465e10 Updated ChangeLog. 2024-03-06 11:57:26 +02:00
Lauri Ojansivu 747bc4c088 Fixed Card image cover should be margin-top:6px since hamburger menu and due date at the top.
Thanks to e-gaulue and xet7 !

Fixes #5331
2024-03-06 11:54:10 +02:00
Lauri Ojansivu 7c156927e4 Updated ChangeLog. 2024-02-28 23:08:10 +02:00
Lauri Ojansivu 13f0c77fb6 Merge pull request #5326 from xator91/patch-11
Update api.py
2024-02-28 23:03:03 +02:00
Mirko Genovese 82d9f77eb3 Update api.py
Added new 4 command. 

checklistid, checklistinfo, get_list_cards_count and get_board_cards_count
2024-02-28 07:58:19 +01:00
Lauri Ojansivu 151699ceb9 v7.35 2024-02-27 14:56:48 +02:00
Lauri Ojansivu cc5d5bdd01 Updated ChangeLog. 2024-02-27 14:50:30 +02:00
Lauri Ojansivu f43dadc068 Added back Mathjax that has bug of showing math twice.
Thanks to macthecadillac, Dexus and xet7 !

Related https://github.com/wekan/wekan/commit/19703fed311c894b61e9269cc0b973d0b0275a6a#commitcomment-139091804,
opens #5117
2024-02-27 14:36:51 +02:00
Lauri Ojansivu b24694bea3 Updated translations. 2024-02-27 14:28:13 +02:00
Lauri Ojansivu f4b31aa771 v7.34 2024-02-23 22:18:24 +02:00
Lauri Ojansivu 3cd5d00b0b Updated translations. 2024-02-23 22:05:58 +02:00
Lauri Ojansivu 7112584139 v7.33 2024-02-23 08:52:59 +02:00
Lauri Ojansivu 639b9c8f56 Updated translations. 2024-02-23 08:46:56 +02:00
Lauri Ojansivu 791ebc6406 Updated translations. 2024-02-22 20:07:31 +02:00
Lauri Ojansivu 059134d3d0 Updated ChangeLog. 2024-02-22 19:44:23 +02:00
Lauri Ojansivu 3b0616c150 Updated docs for WeKan 7.32. 2024-02-22 19:39:15 +02:00
Lauri Ojansivu ad5c4fdca2 Updated ChangeLog. 2024-02-22 19:38:32 +02:00
Lauri Ojansivu b219b8fb65 Merge pull request #5321 from bentiss/fix-docs
openapi: fix breakage introduced with blank return
2024-02-22 19:35:27 +02:00
Benjamin Tissoires 73a170a388 openapi: fix breakage introduced with blank return
Introduced by commit f8ef2e33de ("cards.js Added a control to check
error if card is not updated"), a blank return was added at line 3914.

The generate_openapi script assumed a return statement always has an
argument, and this was crashing.

Fixes #5320
2024-02-22 16:31:11 +01:00
Lauri Ojansivu e55e9c73b9 v7.32 2024-02-22 16:10:40 +02:00
Lauri Ojansivu 71ed5d3427 Updated translations. 2024-02-22 16:10:17 +02:00
Lauri Ojansivu 8b7bdfe0c7 Updated translations. 2024-02-22 15:45:24 +02:00
Lauri Ojansivu ed6018fad1 Updated ChangeLog. 2024-02-22 15:34:26 +02:00
Lauri Ojansivu b5f4be36d4 Fixed Error 500 when adding user to a board and multiple same avatar icons by revert back from Meteor 2.15 to 2.14.
Thanks to xator91 and xet7 !

Fixes #5302,
fixes #5317
2024-02-22 15:19:51 +02:00
Lauri Ojansivu 5c0a46b006 Updated ChangeLog. 2024-02-22 15:07:15 +02:00
Lauri Ojansivu 54ed46447a Updated translations. 2024-02-22 14:59:48 +02:00
Lauri Ojansivu 84fe3c2f40 Merge pull request #5318 from DevOpsNB/main
Add shortcut to filter by assignees
2024-02-22 14:50:11 +02:00
nikolaj.bassauer e30329a18c Add text to new shortcut 2024-02-22 13:32:59 +01:00
nikolaj.bassauer 22b40aab5d Set Shortcut to filter assignees 2024-02-22 13:21:52 +01:00
Lauri Ojansivu c3c8b1eb70 Merge pull request #5313 from xator91/patch-10
Update api.py Deleteallcards
2024-02-22 11:37:51 +02:00
Lauri Ojansivu ce82ee8d0d Merge pull request #5312 from xator91/patch-9
cards.js Added a control to check error if card is not updated
2024-02-22 11:36:40 +02:00
Mirko Genovese 04f0967b18 Update api.py Deleteallcards
Will delete all cards from Swimlanes automatically, will retrieve automatically all list id and delete everything.
2024-02-22 07:55:09 +01:00
Mirko Genovese f8ef2e33de cards.js Added a control to check error if card is not updated 2024-02-22 07:50:21 +01:00
Lauri Ojansivu 20a8ac7c98 Updated ChangeLog. 2024-02-22 08:46:08 +02:00
Lauri Ojansivu 37e9236bde Merge pull request #5311 from xator91/patch-8
Update api.py Addchecklist with multiple items also or just title
2024-02-22 08:43:44 +02:00
Mirko Genovese fc11ff13c5 Update api.py Addchecklist command with multiple items also or just title 2024-02-22 07:22:24 +01:00
Lauri Ojansivu c92586ee64 Updated ChangeLog. 2024-02-21 17:29:50 +02:00
Lauri Ojansivu 38e2308d94 Merge pull request #5309 from xator91/patch-7
Update api.py EDITCARDCOLOR
2024-02-21 17:28:13 +02:00
Mirko Genovese 03044250a3 Update api.py EDITCARDCOLOR 2024-02-21 12:03:14 +01:00
Lauri Ojansivu ebe7ec40e4 Updated ChangeLog. 2024-02-21 11:59:20 +02:00
Lauri Ojansivu 412626052b Merge pull request #5308 from xator91/patch-6
Update api.py Add createlabel
2024-02-21 11:55:43 +02:00
Mirko Genovese 2a0af154c6 Update api.py Add createlabel 2024-02-21 08:17:38 +01:00
Lauri Ojansivu 87debbd26b Updated translations. 2024-02-19 18:20:33 +02:00
Lauri Ojansivu 10e88fccd6 v7.31 2024-02-17 18:03:09 +02:00
Lauri Ojansivu cc781c0082 Updated ChangeLog. 2024-02-16 17:16:08 +02:00
Lauri Ojansivu 5198ee997c Updated to Meteor 2.15.
Thanks to Meteor developers !
2024-02-16 17:14:34 +02:00
Lauri Ojansivu 4843d6cdc1 Updated ChangeLog. 2024-02-16 17:00:14 +02:00
Lauri Ojansivu 8ca0b2d9c3 Merge pull request #5301 from xator91/patch-4
Update api.py EDIT BOARD TITLE
2024-02-16 16:22:45 +02:00
Mirko Genovese cf589cb792 Update api.py EDIT BOARD TITLE 2024-02-16 11:29:20 +01:00
Lauri Ojansivu eda05e0157 Merge pull request #5300 from xator91/patch-3
Update boards.js - New update board title function
2024-02-16 12:01:33 +02:00
Mirko Genovese 4ae8a0308e Update boards.js - New update board title function 2024-02-16 10:50:52 +01:00
Lauri Ojansivu 88c6ce1c7e Updates. 2024-02-12 22:34:09 +02:00
Lauri Ojansivu b714e2fca0 Updated readme. 2024-02-12 22:29:53 +02:00
Lauri Ojansivu ce3a931c59 Updated ChangeLog. 2024-02-09 14:53:10 +02:00
Lauri Ojansivu 69f5d90e91 Merge pull request #5293 from xator91/patch-2
Update api.py
2024-02-09 14:45:20 +02:00
Mirko Genovese 1a6ab68752 Update api.py
Typo error on instructions
2024-02-09 08:17:59 +01:00
Lauri Ojansivu f13001e53a Updated ChangeLog. 2024-02-07 17:47:24 +02:00
Lauri Ojansivu 824b537db0 Merge pull request #5290 from xator91/patch-1
Update api.py
2024-02-07 17:44:50 +02:00
Mirko Genovese 42e4bc3105 Update api.py
Add card with label and add a label to a card
2024-02-07 16:03:03 +01:00
Lauri Ojansivu ebcedcffec Updated ChangeLog. 2024-02-07 15:56:25 +02:00
Lauri Ojansivu b8cc84261f Merge pull request #5287 from xator91/xator91-patch-2
Update api.py
2024-02-07 15:51:16 +02:00
xator91 4e2475502a Update api.py
Added getcard and cardsbyswimlane
2024-02-07 14:38:49 +01:00
Lauri Ojansivu 7dd9bcce2b Updated translations. 2024-02-07 12:15:55 +02:00
Lauri Ojansivu 620628dca3 Merge pull request #5284 from wekan/dependabot/github_actions/docker/metadata-action-5.5.1
Bump docker/metadata-action from 5.5.0 to 5.5.1
2024-02-05 22:31:17 +02:00
dependabot[bot] 5ee7d52e8c Bump docker/metadata-action from 5.5.0 to 5.5.1
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/dbef88086f6cef02e264edb7dbf63250c17cef6c...8e5442c4ef9f78752691e2d8f8d19755c6f78e81)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 20:28:06 +00:00
Lauri Ojansivu 26004b1f73 Updated ChangeLog. 2024-02-03 21:09:23 +02:00
Lauri Ojansivu 59c42bc1a3 Updated to Meteor 2.15-rc.1 and removed duplicate nodemailer package because of some errors.
Thanks to Meteor developers !
2024-02-03 21:03:34 +02:00
Lauri Ojansivu c8a7d539f3 Updated translations. 2024-02-01 13:17:45 +02:00
Lauri Ojansivu 98c86bcc0f Updated translations. 2024-01-29 21:56:38 +02:00
Lauri Ojansivu 1b138e14c3 Updated ChangeLog. 2024-01-28 14:16:20 +02:00
Lauri Ojansivu a54e52d34b Try to fix Snap.
Thanks to xet7 !
2024-01-28 14:11:38 +02:00
Lauri Ojansivu 67218fb61d Updated ChangeLog. 2024-01-28 13:39:41 +02:00
Lauri Ojansivu 4eb0085243 Release scripts: Commented out not currently in use builds of WeKan bundle.
Thanks to xet7 !
2024-01-28 13:36:50 +02:00
Lauri Ojansivu 38a8fcb69a v7.30 2024-01-28 13:33:17 +02:00
Lauri Ojansivu 64592d734c Back to MongoDB 6.
Thanks to xet7 1
2024-01-28 13:17:44 +02:00
Lauri Ojansivu abddc8a864 v7.29 2024-01-27 22:50:39 +02:00
Lauri Ojansivu 09b45aca4f Updated ChangeLog. 2024-01-27 20:44:06 +02:00
Lauri Ojansivu f624211620 Upgraded to MongoDB 7.0.5 at Snap Candidate and Docker.
Thanks to MongoDB developers !
2024-01-27 20:39:29 +02:00
Lauri Ojansivu c19cde53d6 Updated ChangeLog. 2024-01-27 20:39:07 +02:00
Lauri Ojansivu cf8694fcd1 Updated translations. 2024-01-27 20:28:44 +02:00
Lauri Ojansivu 28d640afb4 Updated to Meteor 2.14.1-beta.0 .
Thanks to Meteor developers !
2024-01-25 12:28:05 +02:00
Lauri Ojansivu 7b432078a0 Updated ChangeLog. 2024-01-23 23:36:19 +02:00
Lauri Ojansivu 19703fed31 Removed markdown-it-mathjax3.
Fixes #5117

Thanks to Dexus and xet7 !
2024-01-23 23:32:46 +02:00
Lauri Ojansivu b01e127cc3 v7.28 2024-01-23 00:51:09 +02:00
Lauri Ojansivu f0c2d81352 Updated ChangeLog. 2024-01-23 00:44:30 +02:00
Lauri Ojansivu 67896adefc Updated dependencies.
Thanks to developers of dependencies !
2024-01-23 00:42:54 +02:00
Lauri Ojansivu d1b29b6e61 Updated translations. 2024-01-23 00:36:55 +02:00
Lauri Ojansivu ef93aad659 Updated ChangeLog. 2024-01-23 00:35:31 +02:00
Lauri Ojansivu 616b433409 Updated ChangeLog. 2024-01-23 00:26:39 +02:00
Lauri Ojansivu 515d96eef0 Merge pull request #5271 from wekan/dependabot/github_actions/actions/cache-4
Bump actions/cache from 3 to 4
2024-01-23 05:46:23 +08:00
Lauri Ojansivu 85963cc58d Merge pull request #5270 from wekan/dependabot/github_actions/actions/dependency-review-action-4
Bump actions/dependency-review-action from 3 to 4
2024-01-23 05:45:56 +08:00
Lauri Ojansivu e15611a0ea Merge pull request #5265 from gustavengstrom/master
Added archive option to  of Wekan API
2024-01-23 05:45:30 +08:00
dependabot[bot] f89a2ab91d Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 21:00:40 +00:00
dependabot[bot] 18d3fb75ac Bump actions/dependency-review-action from 3 to 4
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 3 to 4.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 21:00:32 +00:00
Gustav Engström f5bc2b08f9 Added archive option to of Wekan API 2024-01-15 12:32:24 +01:00
Lauri Ojansivu 80e5916394 Merge pull request #5263 from wekan/dependabot/github_actions/docker/metadata-action-5.5.0
Bump docker/metadata-action from 5.4.0 to 5.5.0
2024-01-08 23:50:02 +02:00
dependabot[bot] 48c47f9911 Bump docker/metadata-action from 5.4.0 to 5.5.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/9dc751fe249ad99385a2583ee0d084c400eee04e...dbef88086f6cef02e264edb7dbf63250c17cef6c)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 20:41:32 +00:00
Lauri Ojansivu c3f5849f11 Updated translations. 2024-01-02 23:02:29 +02:00
Lauri Ojansivu c73346eda0 v7.27 2024-01-02 14:59:38 +02:00
Lauri Ojansivu d976455a12 Updated ChangeLog. 2024-01-02 14:54:39 +02:00
Lauri Ojansivu f10f80f655 Fix missing maximize card.
Thanks to xet7 !
2024-01-02 14:52:13 +02:00
Lauri Ojansivu b680d03da2 v7.26 2024-01-02 13:24:21 +02:00
Lauri Ojansivu 9590fec3fc Updated translations. 2024-01-02 13:18:28 +02:00
Lauri Ojansivu e9fc5537e4 Updated ChangeLog. 2024-01-02 13:16:58 +02:00
Lauri Ojansivu 8ae47cb2f8 Fix some public board buttons.
Thanks to xet7 !
2024-01-02 13:14:24 +02:00
Lauri Ojansivu 2fefaf1b5b Updated translations. 2024-01-02 12:30:58 +02:00
Lauri Ojansivu 5554cd7567 v7.25 2023-12-30 22:32:29 +02:00
Lauri Ojansivu 442ea7595a Updated ChangeLog. 2023-12-30 21:29:50 +02:00
Lauri Ojansivu 0e6d83c085 Updated dependencies.
Thanks to developers of dependencies !
2023-12-30 21:27:50 +02:00
Lauri Ojansivu 3199da4b3d Updated ChangeLog. 2023-12-30 20:22:11 +02:00
Lauri Ojansivu 23c2a2bc22 Translations: Added German (Germany) (de_DE) and Odia (India) (or_IN).
Thanks to translators !
2023-12-30 20:19:12 +02:00
Lauri Ojansivu 554bec4f1e Merge pull request #5252 from Lewiscowles1986/fix/export-html-popup
Fix: export html popup
2023-12-30 15:59:01 +02:00
Lewis Cowles 4d6e6a85e0 feat: download webfonts as well
Prior to this I was manually saving the fonts, and I don't remember documenting either.

Now there should be no documentation needed.
2023-12-30 06:41:10 +00:00
Lewis Cowles fe887b7b5e fix: export HTML currently exports JS popups 2023-12-30 06:26:53 +00:00
Lauri Ojansivu d954b97aac Updated ChangeLog. 2023-12-19 01:28:37 +02:00
Lauri Ojansivu 374e673107 Snap: Added MongoDB 3 binaries for migrating to MongoDB 6. Part 3.
Thanks to xet7 !
2023-12-19 01:27:05 +02:00
Lauri Ojansivu 68c0d3fbe5 Updated ChangeLog. 2023-12-19 01:22:30 +02:00
Lauri Ojansivu 335f0451e0 Snap: Added MongoDB 3 binaries for migrating to MongoDB 6. Part 2.
Thanks to xet7 !
2023-12-19 01:20:31 +02:00
Lauri Ojansivu b5a071f51e Updated ChangeLog. 2023-12-19 01:12:29 +02:00
Lauri Ojansivu 805458a763 Snap: Added MongoDB 3 binaries for migrating to MongoDB 6.
Thanks to xet7 !
2023-12-19 01:09:15 +02:00
Lauri Ojansivu 4f8e711a5f Updated ChangeLog. 2023-12-19 00:51:37 +02:00
Lauri Ojansivu 06397e9e11 Updated percolate:synced-cron.
Thanks to developers of percolate:synced-cron !
2023-12-19 00:44:57 +02:00
Lauri Ojansivu 94be762f68 Merge pull request #5245 from wekan/dependabot/github_actions/actions/download-artifact-4
Bump actions/download-artifact from 3 to 4
2023-12-19 00:42:32 +02:00
Lauri Ojansivu ccb48d0711 Merge pull request #5244 from wekan/dependabot/github_actions/docker/metadata-action-5.4.0
Bump docker/metadata-action from 5.3.0 to 5.4.0
2023-12-19 00:42:06 +02:00
Lauri Ojansivu b6014ca992 Merge pull request #5243 from wekan/dependabot/github_actions/actions/upload-artifact-4
Bump actions/upload-artifact from 3 to 4
2023-12-19 00:41:32 +02:00
Lauri Ojansivu 02c5f2e3cf Updated ChangeLog. 2023-12-19 00:33:38 +02:00
Lauri Ojansivu 84a228fc1a Snap: Organized file locations.
Thanks to xet7 !
2023-12-19 00:30:21 +02:00
dependabot[bot] 356fddc182 Bump actions/download-artifact from 3 to 4
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 20:11:05 +00:00
dependabot[bot] c4853b9aa7 Bump docker/metadata-action from 5.3.0 to 5.4.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/31cebacef4805868f9ce9a0cb03ee36c32df2ac4...9dc751fe249ad99385a2583ee0d084c400eee04e)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 20:11:02 +00:00
dependabot[bot] d6cb460186 Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 20:10:57 +00:00
Lauri Ojansivu a0f9b81113 v7.24 2023-12-17 14:10:52 +02:00
Lauri Ojansivu 15b9497a72 Updated ChangeLog. 2023-12-17 14:02:45 +02:00
Lauri Ojansivu 93be112a94 Azure AD B2C login using OAuth2. https://github.com/wekan/wekan/wiki/B2C
Thanks to snowsky and xet7 !

Fixes #5242
2023-12-17 13:54:55 +02:00
Lauri Ojansivu 5a9a5df448 Updated ChangeLog. 2023-12-13 15:56:28 +02:00
Lauri Ojansivu 75383fe477 Upgrade to Meteor 2.14 .
Thanks to Meteor developers !
2023-12-13 15:54:01 +02:00
Lauri Ojansivu 3f0109e810 v7.23 2023-12-11 23:44:57 +02:00
Lauri Ojansivu c21db857fb Updated ChangeLog. 2023-12-11 23:40:45 +02:00
Lauri Ojansivu e3a0a480ed Updated dependencies.
Thanks to developers of dependencies !
2023-12-11 23:39:08 +02:00
Lauri Ojansivu 3917d8c4a3 Updated ChangeLog. 2023-12-11 23:37:32 +02:00
Lauri Ojansivu 6a3b8a668b Upgraded to Meteor 2.14-rc.3 .
Thanks to Meteor developers !
2023-12-11 23:35:08 +02:00
Lauri Ojansivu edfa9783c3 Updated ChangeLog. 2023-12-07 14:54:40 +02:00
Lauri Ojansivu b4c9c1df9a Updated security.md about mitm.
Thanks to xet7 !
2023-12-07 14:52:20 +02:00
Lauri Ojansivu 85353d9f90 Merge pull request #5234 from wekan/dependabot/github_actions/docker/metadata-action-5.3.0
Bump docker/metadata-action from 5.0.0 to 5.3.0
2023-12-04 23:01:42 +02:00
dependabot[bot] 905f0316b6 Bump docker/metadata-action from 5.0.0 to 5.3.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.0.0 to 5.3.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/96383f45573cb7f253c731d3b3ab81c87ef81934...31cebacef4805868f9ce9a0cb03ee36c32df2ac4)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 20:52:10 +00:00
Lauri Ojansivu b3961609e1 Updated translations. 2023-12-04 18:39:11 +02:00
Lauri Ojansivu 8ad4a1aa96 v7.22 2023-12-01 14:01:23 +02:00
Lauri Ojansivu 3fd1f4f5ec Updated ChangeLog. 2023-12-01 13:57:02 +02:00
Lauri Ojansivu 31ca78c17b Upgraded to MongoDB 6.0.12 at Snap Candidate.
Thanks to MongoDB developers !
2023-12-01 13:55:06 +02:00
Lauri Ojansivu a628c0fc03 Updated ChangeLog. 2023-12-01 13:52:50 +02:00
Lauri Ojansivu 3cc10c77f9 Fixed Markdown and copy buttons on top of text.
Thanks to mueller-ma and xet7 !

Fixes #5230
2023-12-01 13:49:59 +02:00
Lauri Ojansivu a727f8a62c Updated ChangeLog. 2023-12-01 13:35:02 +02:00
Lauri Ojansivu f324286911 New feature: Sidebar / Card Settings / Creator at minicard.
Thanks to Roemer and xet7 !

Related https://github.com/wekan/wekan/discussions/5217
2023-12-01 13:31:16 +02:00
Lauri Ojansivu 7f7d06be65 Updated translations. 2023-12-01 13:17:23 +02:00
Lauri Ojansivu c9f1278651 Updated translations 2023-12-01 13:13:54 +02:00
Lauri Ojansivu dd69966def Updated ChangeLog. 2023-12-01 13:03:23 +02:00
Lauri Ojansivu 2f2a039e3c At right sidebar, moved Minicard Settings to Card Settings popup.
Thanks to xet7 !
2023-12-01 12:59:29 +02:00
Lauri Ojansivu 80db4cd645 v7.21 2023-11-27 00:36:10 +02:00
Lauri Ojansivu ed9338608e Updated ChangeLog. 2023-11-27 00:32:37 +02:00
Lauri Ojansivu fef0c0e490 Updated dependencies.
Thanks to developers of dependencies !
2023-11-27 00:30:38 +02:00
Lauri Ojansivu e0e703dc72 Updated translations. 2023-11-27 00:23:43 +02:00
Lauri Ojansivu 8aca32179e Updated translations. 2023-11-26 23:37:10 +02:00
Lauri Ojansivu ab823795cf v7.20 2023-11-26 19:07:41 +02:00
Lauri Ojansivu d90ab03bbe Upgraded to Meteor 2.14-beta.4.
Thanks to Meteor developers !
2023-11-26 19:00:22 +02:00
Lauri Ojansivu bf053e0018 Updated ChangeLog. 2023-11-26 10:40:25 +02:00
Lauri Ojansivu 46c911bb2a Removed extra text. 2023-11-26 10:36:52 +02:00
Lauri Ojansivu 2bc8df9188 Updated translations. 2023-11-24 09:31:16 +02:00
Lauri Ojansivu 6367b18f4f Updated readme. 2023-11-24 09:29:58 +02:00
Lauri Ojansivu a307bfa1ec Added standard for public code. 2023-11-24 08:28:30 +02:00
Lauri Ojansivu cfb3caf504 Updated future.md 2023-11-22 23:57:33 +02:00
Lauri Ojansivu daf524238b Updated future.md 2023-11-22 22:50:13 +02:00
Lauri Ojansivu 5435604448 Updated future.md. 2023-11-22 22:48:45 +02:00
Lauri Ojansivu 64500f1f73 Updated future.md 2023-11-22 22:38:17 +02:00
Lauri Ojansivu d5ee0b567a Added future.md 2023-11-22 22:35:20 +02:00
Lauri Ojansivu 5ec4988efe Added FUTURE.md 2023-11-22 22:08:56 +02:00
Lauri Ojansivu e41072dcdf Updated ChangeLog. 2023-11-21 02:50:43 +02:00
Lauri Ojansivu 126ddda45d Upgraded to Meteor 2.14-beta.2.
Thanks to Meteor developers!
2023-11-21 02:48:19 +02:00
Lauri Ojansivu bec460f77e Merge pull request #5215 from wekan/dependabot/github_actions/docker/build-push-action-5.1.0
Bump docker/build-push-action from 5.0.0 to 5.1.0
2023-11-21 01:32:21 +02:00
Lauri Ojansivu fd56d4c63c Merge pull request #5214 from wekan/dependabot/github_actions/VeryGoodOpenSource/very_good_coverage-2.2.0
Bump VeryGoodOpenSource/very_good_coverage from 2.1.0 to 2.2.0
2023-11-21 01:31:53 +02:00
dependabot[bot] d9cefb84b8 Bump docker/build-push-action from 5.0.0 to 5.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/0565240e2d4ab88bba5387d719585280857ece09...4a13e500e55cf31b7a5d59a38ab2040ab0f42f56)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 20:49:16 +00:00
dependabot[bot] 3013114c1f Bump VeryGoodOpenSource/very_good_coverage from 2.1.0 to 2.2.0
Bumps [VeryGoodOpenSource/very_good_coverage](https://github.com/verygoodopensource/very_good_coverage) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/verygoodopensource/very_good_coverage/releases)
- [Changelog](https://github.com/VeryGoodOpenSource/very_good_coverage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/verygoodopensource/very_good_coverage/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: VeryGoodOpenSource/very_good_coverage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 20:49:11 +00:00
Lauri Ojansivu 095dfdb24f Updated ChangeLog. 2023-11-20 22:31:02 +02:00
Lauri Ojansivu a032586aaf v7.19 2023-11-20 21:57:18 +02:00
Lauri Ojansivu d16c141821 Updated translations. 2023-11-20 21:51:30 +02:00
Lauri Ojansivu dcf75f0bcd Updated ChangeLog. 2023-11-20 21:50:05 +02:00
Lauri Ojansivu 282a9e3097 Merge pull request #5213 from scout-ch/feature/default-board-for-users
Permissions for default board
2023-11-20 21:39:24 +02:00
Diego Steiner 0e4b121209 Merge branch 'main' into feature/default-board-for-users 2023-11-20 16:59:38 +01:00
Diego Steiner 3e469c5a44 feature: add permissions for default boards 2023-11-20 16:01:18 +01:00
Lauri Ojansivu e760a4140b Updated ChangeLog. 2023-11-20 14:22:18 +02:00
Lauri Ojansivu 2048975e92 Snap: Disable apparmor="DENIED" in syslog.
Thanks to diegargon, webenefits and xet7 !

Fixes #4855
2023-11-20 14:18:38 +02:00
Lauri Ojansivu cf5312ed2e Updated ChangeLog. 2023-11-20 02:37:27 +02:00
Lauri Ojansivu 8f33ab3487 Updated ChangeLog. 2023-11-20 01:31:04 +02:00
Lauri Ojansivu d4d6a5f96d Fix to not anymore require website for Organization and Team.
Thanks to xet7 !
2023-11-20 01:28:14 +02:00
Lauri Ojansivu a55992276d Updated ChangeLog. 2023-11-20 01:23:48 +02:00
Lauri Ojansivu 6405c35bc0 Fix to not anymore show confusing Organization Id and Team Id fields at Admin Panel / People / People / Edit user.
Thanks to xet7 !
2023-11-20 01:20:30 +02:00
Lauri Ojansivu bd3d7ec9c9 Updated ChangeLog. 2023-11-20 00:55:01 +02:00
Lauri Ojansivu cd51ad7508 Fix typos at oidc_server.js .
Thanks to xet7 !
2023-11-20 00:53:37 +02:00
Lauri Ojansivu bd5bb2a8a9 Updated ChangeLog. 2023-11-20 00:03:28 +02:00
Lauri Ojansivu 9bc6366993 When user logins, "Automatically add user with the domain name" (at Admin Panel / Organizations) to Organization. Part 2.
Thanks to xet7 !
2023-11-20 00:02:19 +02:00
Lauri Ojansivu b6c7737f73 Updated translations. 2023-11-19 23:55:58 +02:00
Lauri Ojansivu 6a9d738348 Updated ChangeLog. 2023-11-19 23:47:30 +02:00
Lauri Ojansivu 6e2f84673e When user logins, "Automatically add user with the domain name" (at Admin Panel / Organizations) to Organization. Part 1.
Thanks to xet7 !
2023-11-19 23:33:40 +02:00
Diego Steiner 63201e992c feature: add permissions for default boards 2023-11-19 14:08:16 +01:00
Lauri Ojansivu f512047ac6 Updates. 2023-11-16 15:59:01 +02:00
Lauri Ojansivu c4293ecd95 Updates. 2023-11-16 15:49:39 +02:00
Lauri Ojansivu f047c6da29 Updated security.md 2023-11-16 15:38:53 +02:00
Lauri Ojansivu 59874d16b9 Updated. 2023-11-16 15:37:40 +02:00
Lauri Ojansivu 026236edc9 Updated. 2023-11-16 15:36:40 +02:00
Lauri Ojansivu e91e68c48c Updated contributing. 2023-11-16 15:35:50 +02:00
Lauri Ojansivu d840cb3be7 Updated contributing. 2023-11-16 15:23:29 +02:00
Lauri Ojansivu 2b1d2222cc Added governance. 2023-11-16 15:09:29 +02:00
Lauri Ojansivu b6fdbbd2bb Updated ChangeLog. 2023-11-14 05:44:55 -05:00
Lauri Ojansivu 0c54c1540c Removed console.log.
Thanks to xet7 !
2023-11-14 05:42:03 -05:00
Lauri Ojansivu fae5f6d64a Merge pull request #5205 from gustavengstrom/master
Updated swimlane (restore and changed title) and board (changed title) webhooks
2023-11-14 12:41:26 +02:00
gustavengstrom 17c4c44426 Merge branch 'wekan:main' into master 2023-11-14 09:50:28 +01:00
Gustav Engström 67835e3421 Added change board title to available webhooks 2023-11-14 09:49:10 +01:00
Gustav Engström 832bd6187c Added restore swimlane and swimlane title to webhooks 2023-11-14 08:16:40 +01:00
Lauri Ojansivu 6507d2be71 v7.18 2023-11-14 02:26:23 +02:00
Lauri Ojansivu 21785a9322 Updated ChangeLog. 2023-11-13 19:17:39 -05:00
Lauri Ojansivu fc387d0ddf Merge pull request #5198 from gustavengstrom/master
Added restore list and changing list title to outgoing webhooks
2023-11-14 02:15:39 +02:00
Lauri Ojansivu 27e749abb8 Updated ChangeLog. 2023-11-13 19:15:10 -05:00
Lauri Ojansivu 83143ee570 Updated ChangeLog. 2023-11-13 19:12:46 -05:00
Lauri Ojansivu d4252f3056 Updated release scripts. 2023-11-13 19:10:54 -05:00
Gustav Engström 1dd97ebd49 Added restore list and change list title to webhooks 2023-11-12 20:42:25 +01:00
Gustav Engström bfa15d4719 Added missing activity Type: restoredList 2023-11-12 09:59:35 +01:00
Lauri Ojansivu 4b22f29826 Merge pull request #5196 from mueller-ma/add-source-label
Add label org.opencontainers.image.source
2023-11-10 14:40:55 +02:00
mueller-ma 0f14bd3358 Add label org.opencontainers.image.source
Closes #5191
2023-11-10 13:32:26 +01:00
Lauri Ojansivu f7d5d65c0c v7.17 2023-11-09 21:23:01 +02:00
Lauri Ojansivu 86fbfd3c50 Updated ChangeLog. 2023-11-09 21:09:54 +02:00
Lauri Ojansivu cfde9d5a61 Merge pull request #5194 from mfilser/reactiveMiniMonIndex_for_server_side
ReactiveMiniMongoIndex for Server-Side
2023-11-09 21:04:34 +02:00
Martin Filser a9932823c4 ReactiveMiniMongoIndex for Server-Side
- fixes: #5069 (move card rule on checklist complete doesn't work)
2023-11-09 19:45:22 +01:00
Lauri Ojansivu 67b99a88fc Updated translations. 2023-11-09 17:43:16 +02:00
Lauri Ojansivu 455ec8c3d8 v7.16 2023-11-09 17:20:46 +02:00
Lauri Ojansivu 42ece21fa1 Fix users.save is not a function.
Thanks to xet7 !
2023-11-09 17:16:02 +02:00
Lauri Ojansivu 663ecab51e v7.15 2023-11-09 13:09:53 +02:00
Lauri Ojansivu dbae718f4d Updated ChangeLog. 2023-11-09 12:59:46 +02:00
Lauri Ojansivu 52e76c5496 Add more Docker Labels to Dockerfile.
Thanks to mueller-ma and xet7 !

Fixes #5191
2023-11-09 12:57:41 +02:00
Lauri Ojansivu 71b6cd630a Updated ChangeLog. 2023-11-09 12:47:52 +02:00
Lauri Ojansivu 2c36fe3d45 Commented out links at My Cards Table, because they unexpectly caused to go elsewhere from current view.
Thanks to xet7 !
2023-11-09 12:45:21 +02:00
Lauri Ojansivu 28b14777c2 Updated ChangeLog. 2023-11-09 12:15:29 +02:00
Lauri Ojansivu 4e97a5351a Fix missing profile/avatar pictures.
Thanks to kovacs-andras and xet7 !

Fixes #5147
2023-11-09 12:11:36 +02:00
Lauri Ojansivu 2ab5009de7 v7.14 2023-11-09 07:17:55 +02:00
Lauri Ojansivu 65668e91fe Updated translations. 2023-11-09 07:13:38 +02:00
Lauri Ojansivu d6098dbedf Updated ChangeLog. 2023-11-09 07:06:27 +02:00
Lauri Ojansivu fe6b94e539 Merge pull request #5189 from mfilser/notifications_are_now_displayed_correctly_again
Notifications are now displayed correctly again
2023-11-09 07:03:32 +02:00
Martin Filser 00e60ff855 notifications are now always ordered from newest to oldest activity 2023-11-08 23:23:10 +01:00
Martin Filser c4882707e9 use ReactiveMiniMongoIndex for notifications 2023-11-08 23:23:10 +01:00
Martin Filser 402528d97e notifications are now displayed correctly again 2023-11-08 23:23:10 +01:00
Lauri Ojansivu 4e25e335a9 Updated ChangeLog. 2023-11-08 12:57:18 +02:00
Lauri Ojansivu 972981a579 Removed double edit text from card description.
Thanks to derbolle and xet7 !

Fixes #5187
2023-11-08 12:54:34 +02:00
Lauri Ojansivu ce5abf8299 Updated translations. 2023-11-08 12:38:57 +02:00
Lauri Ojansivu 8bb31861a7 Merge pull request #5184 from wekan/dependabot/github_actions/helm/chart-releaser-action-1.6.0
Bump helm/chart-releaser-action from 1.5.0 to 1.6.0
2023-11-06 23:04:26 +00:00
dependabot[bot] 7d2e40ee47 Bump helm/chart-releaser-action from 1.5.0 to 1.6.0
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](https://github.com/helm/chart-releaser-action/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 20:54:17 +00:00
Lauri Ojansivu f0de48a3c4 Updated translations. 2023-11-05 21:47:33 +02:00
Lauri Ojansivu 799e66c078 Updated ChangeLog. 2023-11-05 21:46:08 +02:00
Lauri Ojansivu 55903472aa Upgraded to Meteor 2.14-beta.0.
Thanks to Meteor developers!
2023-11-05 21:40:19 +02:00
Lauri Ojansivu 22c7d3b07f v7.12 2023-11-03 01:20:40 +02:00
Lauri Ojansivu 485737f6b0 Updated ChangeLog. 2023-11-03 01:15:05 +02:00
Lauri Ojansivu b756150f76 Fix Add List button too wide at themes: Clearblue, Modern, Exodark.
Thanks to xet7 !

Fixes #5179
2023-11-03 01:12:18 +02:00
Lauri Ojansivu 40108d63bb Updated API docs for WeKan v7.11 2023-11-03 00:15:36 +02:00
Lauri Ojansivu 8f3103e329 Updated ChangeLog. 2023-11-02 19:58:50 +00:00
Lauri Ojansivu 9bf1478587 Updated ChangeLog. 2023-11-02 21:20:47 +02:00
Lauri Ojansivu 91cf377948 Merge branch 'main' of github.com:wekan/wekan 2023-11-02 21:18:41 +02:00
Lauri Ojansivu ff4c8a5d23 Updated Snap Candidate MongoDb to 6.0.11.
Thanks to MongoDB developers!
2023-11-02 21:17:34 +02:00
Lauri Ojansivu 439f76e48a Updated ChangeLog. 2023-11-02 19:12:35 +00:00
Lauri Ojansivu 720d4223e2 Fix Windows build bundle script.
Thanks to xet7 !
2023-11-02 19:10:54 +00:00
Lauri Ojansivu 4518e2d23c v7.11 2023-11-02 19:49:56 +02:00
Lauri Ojansivu c9a24c38d4 Updated ChangeLog. 2023-11-02 05:40:52 +02:00
Lauri Ojansivu b54d17467c Updated dependencies.
Thanks to exceljs developers!
2023-11-02 05:39:07 +02:00
Lauri Ojansivu 5c93de8911 Updated ChangeLog. 2023-11-01 21:39:16 +02:00
Lauri Ojansivu 8323649cf0 Updated dependencies.
Thanks to zodern.
2023-11-01 21:37:51 +02:00
Lauri Ojansivu 75fbf00eb7 Updated translations. 2023-11-01 21:17:37 +02:00
Lauri Ojansivu 820908ab05 Updated ChangeLog. 2023-10-31 16:07:04 +02:00
Lauri Ojansivu 4fe168b03b Fix Security issue: Hyperlink injection.
Thanks to mc-marcy and xet7 !

Fixes #5176
2023-10-31 16:04:25 +02:00
Lauri Ojansivu 4825bcec8d Updated ChangeLog. 2023-10-31 15:13:15 +02:00
Lauri Ojansivu 0f99f22fa5 Docker base image to Ubuntu 23.10.
Thanks to Ubuntu developers!
2023-10-31 15:11:47 +02:00
Lauri Ojansivu 051d1670b7 For reporting secrity issues, mention a way at top, trying to make it more clear.
Related #5176
2023-10-30 11:16:49 -04:00
Lauri Ojansivu ef0e1f9089 Updated ChangeLog. 2023-10-27 10:58:32 -04:00
Lauri Ojansivu 974c177237 Updated dependencies. 2023-10-27 10:53:47 -04:00
Lauri Ojansivu 75de7b119d Updated translations. 2023-10-27 10:53:19 -04:00
Lauri Ojansivu b088763272 Updated dependencies. 2023-10-25 16:17:42 -04:00
Lauri Ojansivu c45bf4e368 Updated dependencies.
Thanks to developers of dependencies !
2023-10-25 10:40:07 -04:00
Lauri Ojansivu af5054e7fb Updated translations. 2023-10-25 10:30:17 -04:00
Lauri Ojansivu 9529d71732 Updated translations. 2023-10-23 03:49:20 -04:00
Lauri Ojansivu 74ea237c2a Updated ChangeLog. 2023-10-20 08:39:31 +03:00
Lauri Ojansivu c8f1d99fe6 Merge pull request #5168 from mfilser/open_card_details_always_in_the_middle_of_the_screen
Open card details always in the middle of the screen
2023-10-20 01:38:37 +03:00
Martin Filser a22631915b remove old open card code to scroll the screen 2023-10-19 21:51:43 +02:00
Martin Filser 05df419a46 maximized card is now always visible 2023-10-19 21:51:43 +02:00
Martin Filser 0f1b57fee4 remove old open card code 2023-10-19 21:51:43 +02:00
Martin Filser e69a9f17b8 open card details always in the center of the screen 2023-10-19 21:51:43 +02:00
Lauri Ojansivu de3467a6d5 Updated translations. 2023-10-16 09:12:22 -04:00
Lauri Ojansivu 7214f6d49a Updated ChangeLog. 2023-10-16 08:50:38 -04:00
Lauri Ojansivu c1bc6d4733 Updated translations. 2023-10-11 10:59:44 -04:00
Lauri Ojansivu 3d4f97364c Updated ChangeLog. 2023-10-11 09:50:34 -04:00
Lauri Ojansivu 2c74240bcb Updated security.md 2023-10-11 09:46:24 -04:00
Lauri Ojansivu 90da40fde0 Updated security.md 2023-10-11 08:56:36 -04:00
Lauri Ojansivu fe985e219a Updated security.md. 2023-10-11 08:16:08 -04:00
Lauri Ojansivu f5355422ee Added dot. 2023-10-11 08:10:33 -04:00
Lauri Ojansivu aae7960f25 Updated security.md.
Thanks to xet7 !
2023-10-11 08:07:45 -04:00
Lauri Ojansivu b99f878c98 Merge pull request #5161 from faburem/main
Fixes issue #5131 (at least partly)
2023-10-11 11:39:44 +03:00
Fabian Kromer 4b61f38cba Fixes issue #5131 (at least partly)
You still have to click on "Template" twice to trigger the popup but IMHO it's better than the feature being completely broken.
2023-10-10 14:48:15 +02:00
Lauri Ojansivu 4085a98bcd Updated ChangeLog. 2023-10-09 09:20:19 -04:00
Lauri Ojansivu 524e3b098f Merge pull request #5159 from faburem/main
Fix LDAP login (#issue 5156)
2023-10-09 16:17:25 +03:00
Fabian Kromer dc8595ad68 Fully replace bunyan with meteor/logging for the LDAP logger (fixes issue #5156) 2023-10-09 11:45:44 +02:00
Lauri Ojansivu a76067abfa Updated translations. 2023-10-06 16:18:59 +03:00
Lauri Ojansivu 6ef10a54bd Updated ChangeLog. 2023-10-03 14:15:44 -04:00
Lauri Ojansivu c9e80eaa03 Added info to docker-compose.yml about newest docker image of newest git commit automatic build.
Thanks to xet7 !
2023-10-03 14:13:54 -04:00
Lauri Ojansivu e47dcf734a Updated ChangeLog. 2023-10-03 11:18:10 -04:00
Lauri Ojansivu 4dfcc31506 Updated translations. 2023-10-03 11:10:59 -04:00
Lauri Ojansivu 14e5c96f73 Updated ChangeLog. 2023-10-03 09:59:23 -04:00
Lauri Ojansivu 53e569d285 Fixed can not close sidebar at Modern theme.
Thanks to xet7 !
2023-10-03 09:56:37 -04:00
Lauri Ojansivu 71381dce95 Updated ChangeLog. 2023-10-03 09:37:50 -04:00
Lauri Ojansivu 0cc63b810c Feature: Copy Card Details code block to clipboard.
Thanks to C0rn3j and xet7 !

Fixes #5149
2023-10-03 09:35:18 -04:00
Lauri Ojansivu 7724b0d5bb Updated translations. 2023-10-03 07:09:12 -04:00
Lauri Ojansivu 6206eca725 Updated ChangeLog. 2023-10-03 06:46:16 -04:00
Lauri Ojansivu 069e2c69b2 Feature: Convert to Markdown button at editor of Card Description and Comment. Useful when there is no WYSIWYG editor.
Thanks to BabyFnord and xet7 !

Fixes #5012,
fixes #3003,
fixes #3399,
fixes #2968,
fixes #2933
2023-10-03 06:38:15 -04:00
Lauri Ojansivu 0e902d73a8 Updated year at license. 2023-10-01 18:37:38 -04:00
Lauri Ojansivu be72274ca5 Updated screenshot at readme. 2023-10-01 16:25:38 -04:00
Lauri Ojansivu ab0dacc65a Updated ChangeLog. 2023-09-29 13:24:02 +03:00
Lauri Ojansivu cfa0a063ce docker-compose.yml back to latest docker image tag.
Thanks to xet7 !
2023-09-29 13:21:28 +03:00
Lauri Ojansivu 26abb2d99d v7.10 2023-09-29 08:31:52 +03:00
Lauri Ojansivu 396ca6967e Updated ChangeLog. 2023-09-29 08:20:43 +03:00
Lauri Ojansivu 52ce6da32c Updated dependencies.
Thanks to developers of dependencies !
2023-09-29 08:18:40 +03:00
Lauri Ojansivu e64942a909 Updated translations. 2023-09-29 08:17:17 +03:00
Lauri Ojansivu b38e2fa35f Updated ChangeLog. 2023-09-29 07:38:43 +03:00
Lauri Ojansivu 16991498fb Merge pull request #5146 from cloudron-io/fix-password-change-regression
Fix password change regression
2023-09-29 07:35:27 +03:00
Johannes Zellner 7ebdd1b68b Do not close form for immediate visual feedback on password change 2023-09-28 13:00:17 +02:00
Johannes Zellner 79e61f6d64 Fix regression which hides the password change form
This came in via https://github.com/wekan/wekan/pull/5032/files as I
wasn't aware the class name was reused. Unfortunately I couldn't find
how to create an explicit new class name for only the password change
form, so we show the form in code now.

Fixes #5144
2023-09-28 13:00:04 +02:00
Lauri Ojansivu a130e9b52b Updated ChangeLog. 2023-09-26 00:10:59 +03:00
Lauri Ojansivu e103bf46dd Added docker-compose.yml for arm64.
Thanks to xet7 !
2023-09-26 00:08:47 +03:00
Lauri Ojansivu 92375c3c2b Updated ChangeLog. 2023-09-25 23:22:52 +03:00
Lauri Ojansivu eacb310e59 Added Dockerfile for s390x.
Thanks to xet7 !
2023-09-25 23:21:11 +03:00
Lauri Ojansivu 4dbbb29573 Updated ChangeLog. 2023-09-25 21:45:03 +03:00
Lauri Ojansivu 73e690a5fe Fixed arm64 Dockerfile.
Thanks to manfromdownunder and xet7 !

Related #4607,
related #4505
2023-09-25 21:41:26 +03:00
Lauri Ojansivu f2acf67cb6 Updated ChangeLog. 2023-09-25 21:08:18 +03:00
Lauri Ojansivu 637442563e Updated versions at Dockerfile. arm64 Dockerfile does not work yet.
Thanks to xet7.
2023-09-25 21:06:29 +03:00
Lauri Ojansivu 8ae70ed0c0 Updated ChangeLog. 2023-09-25 19:06:23 +03:00
Lauri Ojansivu 240e05ba16 Removed disabled codeql-analysis workflow.
Thanks to xet7 !
2023-09-25 19:04:21 +03:00
Lauri Ojansivu 028dd9f0be Updated ChangeLog. 2023-09-25 19:02:42 +03:00
Lauri Ojansivu 33c2b4b74a Updated ChangeLog. 2023-09-25 19:01:39 +03:00
Lauri Ojansivu 8cba42efbe Use newest Docker build from newest main branch commit at docker-compose.yml .
Thanks to xet7 !
2023-09-25 18:58:01 +03:00
Lauri Ojansivu be2e002720 Try to fix WeKan Docker build.
Thanks to xet7 !
2023-09-25 18:25:34 +03:00
Lauri Ojansivu 59c0b378a1 Updated ChangeLog. 2023-09-25 18:13:28 +03:00
Lauri Ojansivu b68493b009 Renamed WeKan repo branch master to main. Part 3.
Thanks to xet7.
2023-09-25 18:12:10 +03:00
Lauri Ojansivu c777bf39d1 Updated ChangeLog. 2023-09-25 18:08:40 +03:00
Lauri Ojansivu fa32010a65 Renamed WeKan repo branch master to main. Part 2.
Thanks to xet7 !
2023-09-25 18:06:55 +03:00
Lauri Ojansivu a29e40359a Updated ChangeLog. 2023-09-25 18:01:34 +03:00
Lauri Ojansivu 549982b5e1 Renamed WeKan repo branch master to main.
Thanks to xet7 !
2023-09-25 17:59:55 +03:00
Lauri Ojansivu 110030ac60 Updated translations. 2023-09-24 09:57:48 +03:00
Lauri Ojansivu 676591c317 Merge pull request #5139 from wekan/dependabot/github_actions/docker/build-push-action-5.0.0
Bump docker/build-push-action from 4.2.1 to 5.0.0
2023-09-20 21:25:08 +03:00
Lauri Ojansivu 22469ba18b Merge pull request #5138 from wekan/dependabot/github_actions/docker/login-action-3.0.0
Bump docker/login-action from 2.2.0 to 3.0.0
2023-09-20 21:24:40 +03:00
Lauri Ojansivu 6425e5bf04 Merge pull request #5137 from wekan/dependabot/github_actions/docker/metadata-action-5.0.0
Bump docker/metadata-action from 4.6.0 to 5.0.0
2023-09-20 21:24:06 +03:00
dependabot[bot] eb62c7a0e4 Bump docker/build-push-action from 4.2.1 to 5.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.2.1 to 5.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/0a97817b6ade9f46837855d676c4cca3a2471fc9...0565240e2d4ab88bba5387d719585280857ece09)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 20:36:07 +00:00
dependabot[bot] 2c20f7c6db Bump docker/login-action from 2.2.0 to 3.0.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/465a07811f14bebb1938fbed4728c6a1ff8901fc...343f7c4344506bcbf9b4de18042ae17996df046d)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 20:36:02 +00:00
dependabot[bot] 44e0f897c9 Bump docker/metadata-action from 4.6.0 to 5.0.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.6.0 to 5.0.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/818d4b7b91585d195f67373fd9cb0332e31a7175...96383f45573cb7f253c731d3b3ab81c87ef81934)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 20:35:58 +00:00
Lauri Ojansivu 3a6f99f47c Updated ChangeLog. 2023-09-18 19:10:13 +03:00
Lauri Ojansivu 31f8c54571 Merge pull request #5136 from Dexus/patch-1
Make sessinAffinity stickable to clientIP
2023-09-18 16:28:52 +03:00
Josef Fröhle f516f12b13 Make sessinAffinity stickable to clientIP
This would help, but not fix #5120. It's now supports the running of multiple pods for scaling, without the issue that the session will not known on the backend pod.
2023-09-18 12:12:35 +02:00
Lauri Ojansivu 8a37cabec4 Updated ChangeLog. 2023-09-16 15:54:57 +03:00
Lauri Ojansivu d0a04522d0 Merge pull request #5134 from mfilser/font_awesome_6.4.2-adding_missing_icons
Font awesome 6.4.2 adding missing icons
2023-09-16 15:52:25 +03:00
Martin Filser 7ada41e741 FontAwesome 6.4.2, fixing font-size at fa-comment-o icon on minicard 2023-09-16 13:12:47 +02:00
Martin Filser ea39cfbf5a FontAwesome 6.4.2, adding back the previous icons because now all icons are included into Wekan 2023-09-16 13:12:47 +02:00
Martin Filser 7eea0207e4 FontAwesome 6.4.2, adding all available css files
e.g. comment-o was missing
2023-09-16 13:12:47 +02:00
Lauri Ojansivu 68d2b470a7 Updated ChangeLog. 2023-09-16 02:53:26 +03:00
Lauri Ojansivu 47478ee2b4 Merge pull request #5133 from helioguardabaxo/fontawesome
Fix missing fontawesome icons
2023-09-16 02:51:22 +03:00
helioguardabaxo 3b49f10897 Fix missing fontawesome icons. 2023-09-15 20:48:21 -03:00
Lauri Ojansivu 1f778a5d89 Updated ChangeLog. 2023-09-16 02:39:44 +03:00
Lauri Ojansivu 522ab40f43 Upgrade Snap Candidate to MongoDB 6.0.10.
Thanks to MongoDB developers!
2023-09-16 02:36:59 +03:00
Lauri Ojansivu e431ce8405 Updated ChangeLog. 2023-09-15 21:37:36 +03:00
Lauri Ojansivu b40654cdfe Try to get some label outgoing webhooks working.
Thanks to xet7 !

Related #4898
2023-09-15 21:34:31 +03:00
Lauri Ojansivu b64715f70a Updated ChangeLog. 2023-09-15 16:53:37 +03:00
Lauri Ojansivu c27a00a4a8 Fixed typo at ldap.js.
Thanks to xet7 !
2023-09-15 16:51:45 +03:00
Lauri Ojansivu f5eccc1605 Updated ChangeLog. 2023-09-15 00:38:20 +03:00
Lauri Ojansivu 05c6e101ff Fix mini width of add list also to moderndark theme.
Thanks to xet7 !
2023-09-15 00:33:40 +03:00
Lauri Ojansivu 1ed057daf3 Updated ChangeLog. 2023-09-14 23:21:28 +03:00
Lauri Ojansivu ab944e51c7 Fix minicard description text color to black, so that it is visible at light grey background.
Thanks to xet7 !
2023-09-14 23:18:16 +03:00
Lauri Ojansivu d11082385f Updated ChangeLog. 2023-09-14 23:00:58 +03:00
Lauri Ojansivu 22d98fec38 Fix allow normal user to view subtasks.
Thanks to xet7 !
2023-09-14 22:58:44 +03:00
Lauri Ojansivu 870fd3d526 Updated ChangeLog. 2023-09-14 21:19:46 +03:00
Lauri Ojansivu 73a25775e1 Fix Swimlane Default title from "key default returned an object instead of string" to translated title of "Default".
Thanks to titho85, hpvb and xet7 !

Fixes #4763,
fixes #4742
2023-09-14 21:10:18 +03:00
Lauri Ojansivu 9a9dbd26f9 Updated translations. 2023-09-14 21:09:05 +03:00
Lauri Ojansivu 09bdc666c6 Updated ChangeLog. 2023-09-13 19:26:02 +03:00
Lauri Ojansivu cd8aa91aa8 Merge pull request #5129 from wekan/dependabot/github_actions/docker/build-push-action-4.2.1
Bump docker/build-push-action from 4.1.1 to 4.2.1
2023-09-12 03:53:50 +03:00
dependabot[bot] fcb9e99528 Bump docker/build-push-action from 4.1.1 to 4.2.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 4.2.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/2eb1c1961a95fc15694676618e422e8ba1d63825...0a97817b6ade9f46837855d676c4cca3a2471fc9)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 20:50:29 +00:00
Lauri Ojansivu c6a8b4bcbc Updated ChangeLog. 2023-09-11 16:51:04 +03:00
Lauri Ojansivu 6b88ae2ba2 Upgraded to Meteor 2.13.3.
Thanks to Meteor developers!
2023-09-11 16:49:18 +03:00
Lauri Ojansivu e1478f2f45 Updated ChangeLog. 2023-09-11 12:09:29 +03:00
Lauri Ojansivu a45b101193 Merge pull request #5128 from helioguardabaxo/fontawesome
Add all characters
2023-09-10 14:31:50 +03:00
helioguardabaxo 8610f7356c Add all characters 2023-09-10 08:26:33 -03:00
Lauri Ojansivu 3aedc24c2b Updated ChangeLog. 2023-09-10 04:40:03 +03:00
Lauri Ojansivu 7d1ab0a388 Fix createCardWithDueDate Error: User id is required.
Thanks to xet7!

Fixes #5114,
fixes #5111
2023-09-10 04:37:53 +03:00
Lauri Ojansivu 56a1617c7e Updated ChangeLog. 2023-09-10 04:18:37 +03:00
Lauri Ojansivu 7baa95fcab Stop using /etc/timezone in Docker. Only use /etc/localtime.
Thanks to dabiao2008 and xet7 !

Fixes #5123
2023-09-10 04:16:07 +03:00
Lauri Ojansivu 8f70ae1cd0 Updated translations. 2023-09-10 04:07:35 +03:00
Lauri Ojansivu 32fb38e539 Updated ChangeLog. 2023-09-10 04:02:02 +03:00
Lauri Ojansivu dfe05cc924 Removed non-existing sw translation and not needed files from bootstrap-datepicker.
Thanks to xet7 !
2023-09-10 03:58:55 +03:00
Lauri Ojansivu 3e77e27d7b Merge branch 'bootstrap-datepicker' of https://github.com/helioguardabaxo/wekan 2023-09-10 03:31:53 +03:00
Lauri Ojansivu c138212592 Updated ChangeLog. 2023-09-10 03:17:58 +03:00
Lauri Ojansivu 473e2c28c6 Removed Font Awesome not in use directories svgs, scss and less.
Thanks to xet7 !
2023-09-10 03:14:17 +03:00
helioguardabaxo 8d9df72114 Update Bootstrap Datepicker version to 1.10.0 2023-09-09 10:49:06 -03:00
helioguardabaxo ffdeed099e Update Font Awesome version to 6.4.2 2023-09-08 20:23:58 -03:00
Lauri Ojansivu f56ac1d45e Updated ChangeLog. 2023-09-05 14:03:13 -04:00
Lauri Ojansivu c898a3f5ea Fixed Can't login via LDAP because of some Node.js issues.
Thanks to Danny-Graf and xet7 !

Fixes #5113
2023-09-05 14:01:13 -04:00
Lauri Ojansivu 941fccd10a Updated ChangeLog. 2023-09-05 13:53:59 -04:00
Lauri Ojansivu d971428f49 Merge pull request #5119 from wekan/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-05 20:51:58 +03:00
dependabot[bot] 688de96615 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 20:07:06 +00:00
Lauri Ojansivu ecfce447be Updated ChangeLog. 2023-09-04 12:13:01 +03:00
Lauri Ojansivu 4933bf8203 Updated dependencies.
Thanks to developers of dependencies !
2023-09-04 12:11:40 +03:00
Lauri Ojansivu adaa3dcc58 Updated translations. 2023-09-04 10:00:38 +03:00
Lauri Ojansivu e3a85df053 Updated translations. 2023-09-02 00:55:31 +03:00
Lauri Ojansivu d72b436542 Updated ChangeLog. 2023-09-01 13:13:26 +03:00
Lauri Ojansivu 7f9aa75093 Removed limit when setting Swimlane max height.
Thanks to Meeques, mark-i-m and xet7 !

Fixes #4904
2023-09-01 13:07:25 +03:00
Lauri Ojansivu 451f860b5d Updated ChangeLog. 2023-08-31 22:13:55 +03:00
Lauri Ojansivu ee4a3b5b35 Update translations. Added Afrikaans (af), Afrikaans (South africa)(af_ZA), English (South Africa)(en_ZA).
Thanks to translators!
2023-08-31 22:11:19 +03:00
Lauri Ojansivu e1e2461e21 Updated ChangeLog. 2023-08-29 22:56:00 +03:00
Lauri Ojansivu 74b98a5ee4 Added assetlinks.json.
Thanks to xet7 !
2023-08-29 22:54:08 +03:00
Lauri Ojansivu e67f5b3967 Updated ChangeLog. 2023-08-28 04:44:46 +03:00
Lauri Ojansivu 6fdd3d6c53 Merge pull request #5107 from helioguardabaxo/active-members
Active members list now is ordered
2023-08-28 00:01:51 +03:00
helioguardabaxo 089913ff4c Active members list now is ordered. 2023-08-27 17:41:43 -03:00
Lauri Ojansivu 55f084dc7d Updated ChangeLog. 2023-08-25 22:31:22 +03:00
Lauri Ojansivu 36cf471e69 Updated ChangeLog. 2023-08-25 22:23:42 +03:00
Lauri Ojansivu ed03a9ccaf Merge pull request #5106 from ipyramiddev/master
Added a condition to filter unwanted webhooks
2023-08-25 20:10:52 +03:00
Yevhenii Pertiaka b9f74c5add added a condition to filter unwanted webhooks 2023-08-26 01:07:02 +09:00
Lauri Ojansivu 4a45d32d4f Updated ChangeLog. 2023-08-25 17:18:46 +03:00
Lauri Ojansivu b818f0e5cd Merge pull request #5105 from DimDz/master
Fix for CalendarView, Create Card without Refresh
2023-08-25 16:42:49 +03:00
DimDz 0be4eff3f4 Update boardBody.js
Fix for create card.
2023-08-25 12:42:28 +03:00
Lauri Ojansivu 18087f756e Updated ChangeLog. 2023-08-25 00:16:18 +03:00
Lauri Ojansivu 30f50fc705 Updated dependencies. 2023-08-25 00:13:36 +03:00
Lauri Ojansivu 47468a4750 Add back some parts of Show checklist at minicard feature.
Thanks to xet7 !
2023-08-25 00:12:08 +03:00
Lauri Ojansivu 968a32164b Updated ChangeLog. 2023-08-24 23:11:08 +03:00
Lauri Ojansivu 3b936ff6e7 Removed CollectionFS and and attachment migrations. 2023-08-24 23:01:18 +03:00
Lauri Ojansivu 75d524f615 Hide incomplete feature Show checklist at minicard. 2023-08-24 23:00:52 +03:00
Lauri Ojansivu fac3ff9c37 Updated ChangeLog. 2023-08-24 07:21:53 +03:00
Lauri Ojansivu f4e315cf52 Merge pull request #5103 from ipyramiddev/master
make available translation text to set empty string
2023-08-24 10:16:53 +03:00
Yevhenii Pertiaka 021db14a43 make available translation text to set empty string 2023-08-23 23:52:07 +09:00
Lauri Ojansivu 6215e3b584 Updated ChangeLog. 2023-08-23 06:28:56 +03:00
Lauri Ojansivu a781c0e7dc Added DEFAULT_BOARD_ID environment variable setting to all WeKan platforms.
Thanks to xet7 !
2023-08-23 06:27:06 +03:00
Lauri Ojansivu 922452fe41 Updated ChangeLog. 2023-08-23 05:57:06 +03:00
Lauri Ojansivu c22e71e3a2 Removed old demo API key to silence GitHub secret scanning warning.
Thanks to xet7 !
2023-08-23 05:54:33 +03:00
Lauri Ojansivu e01fd2b158 Updated ChangeLog. 2023-08-23 05:45:25 +03:00
Lauri Ojansivu 2d652df176 Renamed directory packages/meteor-fullcalendar to packages/wekan-fullcalendar.
Thanks to xet7 !
2023-08-23 05:40:48 +03:00
Lauri Ojansivu 777c8c1ae1 Merge branch 'fullcalendar' of https://github.com/helioguardabaxo/wekan 2023-08-23 05:22:35 +03:00
Lauri Ojansivu edcc937a6b Updated ChangeLog. 2023-08-23 04:13:14 +03:00
Lauri Ojansivu 873d8f16d8 Updated translations. 2023-08-23 02:29:48 +03:00
helioguardabaxo 9a505c7ccc Update FullCalendar version to 3.10.5 2023-08-22 18:51:03 -03:00
Lauri Ojansivu 65a231a040 Merge pull request #5098 from scout-ch/feature/default-board-for-users
Proposal: default board for users
2023-08-23 00:08:37 +03:00
Lauri Ojansivu daa57fd05e Updated translations. 2023-08-22 18:50:38 +03:00
Diego Steiner 72fa2972f0 fix: revert debugging output 2023-08-22 14:09:51 +02:00
Diego Steiner 00826660b4 feature: add user to default board after login 2023-08-22 14:06:49 +02:00
Lauri Ojansivu 8b12018e26 Updated ChangeLog. 2023-08-22 05:11:35 +03:00
Lauri Ojansivu 86814a0fd8 At opened card, toggle to show checklist at minicard. Part 4.
Thanks to xet7 !
2023-08-22 05:10:02 +03:00
Lauri Ojansivu 1a35db62b1 Updated translations. 2023-08-22 02:25:06 +03:00
Lauri Ojansivu 894ce65a79 Updated ChangeLog. 2023-08-22 02:19:38 +03:00
Lauri Ojansivu e60eddda04 Added show-subtasks-field to be translateable at Board Settings / Subtasks Settings.
Thanks to xet7 !
2023-08-22 02:18:08 +03:00
Lauri Ojansivu d9c26c7c49 Updated translations. 2023-08-22 01:34:41 +03:00
Lauri Ojansivu e5ddee13c1 Updated ChangeLog. 2023-08-22 01:33:18 +03:00
Lauri Ojansivu a415becbf7 Updated ChangeLog. 2023-08-22 01:31:52 +03:00
Lauri Ojansivu 80312d3052 At opened card, toggle to show checklist at minicard. Part 3.
Thanks to xet7 !
2023-08-22 01:30:58 +03:00
Lauri Ojansivu 1f216f5bff Updated ChangeLog. 2023-08-21 23:57:57 +03:00
Lauri Ojansivu 2c99d1cecb At opened card, toggle to show checklist at minicard. Part 2.
Thanks to xet7 !
2023-08-21 23:57:03 +03:00
Lauri Ojansivu 427eb8ebd1 Updated dependencies. 2023-08-21 23:28:34 +03:00
Lauri Ojansivu ac67a25891 Updated ChangeLog. 2023-08-21 22:42:31 +03:00
Lauri Ojansivu a5cb55935b Updated translations. 2023-08-21 22:40:15 +03:00
Lauri Ojansivu 2a190fdc19 At opened card, toggle to show checklist at minicard. Part 1.
Thanks to xet7 !
2023-08-21 22:34:59 +03:00
Lauri Ojansivu 66fa59d715 Updated ChangeLog. 2023-08-21 21:08:15 +03:00
Lauri Ojansivu 7f91055d8c Comment out warning about unset variable at ldap.js.
Thanks to xet7 !
2023-08-21 21:06:18 +03:00
Lauri Ojansivu 29f153d71d Updated ChangeLog. 2023-08-21 21:01:51 +03:00
Lauri Ojansivu 7c80a34cf2 In rebuild-wekan.sh, option 9 to Save Meteor dependency chain to ../meteor-deps.txt .
Thanks to xet7 !
2023-08-21 21:00:09 +03:00
Lauri Ojansivu 41cdfa4496 Updated ChangeLog. 2023-08-21 20:45:39 +03:00
Lauri Ojansivu e83945c1a6 Replaced ldap logger https://www.npmjs.com/package/bunyan with https://docs.meteor.com/packages/logging.html, because bunyan did show dtrace errors when building WeKan.
Thanks to xet7 !
2023-08-21 20:39:16 +03:00
Lauri Ojansivu a15c54833f Merge pull request #5097 from VidVidex/master
Correctly display preview for very tall images
2023-08-21 19:54:31 +03:00
Vid Smole cb2a683f0a Reformat file 2023-08-21 18:22:14 +02:00
Vid Smole db0c91fee5 Fix image sizing when image is very tall 2023-08-21 18:18:41 +02:00
Lauri Ojansivu 7d754a137c Updated release scripts.
Thanks to xet7 !
2023-08-21 01:15:06 +03:00
Lauri Ojansivu 8ea9780140 v7.09 2023-08-21 00:44:23 +03:00
Lauri Ojansivu 925099a1ee Merge pull request #5095 from mfilser/attachments-display_images_full_width
Attachments, big images are now fully displayed
2023-08-21 00:34:57 +03:00
Martin Filser 16a2cc6ba9 Attachments, big images are now fully displayed 2023-08-20 23:30:28 +02:00
Lauri Ojansivu 94bc6d8e45 Updated ChangeLog. 2023-08-20 23:58:47 +03:00
Lauri Ojansivu da28af516d Merge pull request #5094 from mfilser/reactiveCache-full_implementation_collection_translation
ReactiveCache, full implementation of the collection "Translation"
2023-08-20 23:01:09 +03:00
Martin Filser 73b5bbfc9e ReactiveCache, full implementation of the collection "Translation" 2023-08-20 21:37:25 +02:00
Lauri Ojansivu e2dde19db2 Merge pull request #5093 from mfilser/translation_client_side
Translations are working on the client side again
2023-08-20 22:20:48 +03:00
Martin Filser f421d135a6 Translations are working on the client side again 2023-08-20 19:31:48 +02:00
Lauri Ojansivu ae4232465b Updated ChangeLog. 2023-08-20 19:28:37 +03:00
Lauri Ojansivu 112b628a99 Merge pull request #5092 from mfilser/reactiveCache-use_ejson
ReactiveCache, serialize and parse json with EJSON
2023-08-20 19:24:39 +03:00
Martin Filser bf313ca842 ReactiveCache, serialize and parse json with EJSON
- date object wasn't serialized and parsed right
- fixes #5086
2023-08-20 18:21:18 +02:00
Lauri Ojansivu a0da05c660 Merge pull request #5091 from mfilser/reactiveCache-use_default_parameters
ReactiveCache, use default parameters
2023-08-20 18:48:46 +03:00
Martin Filser 394149b2e0 ReactiveCache, use default parameters
- it's not related to any known bug (as far as I know)
- it's only a good coding style to have default parameters
2023-08-20 16:21:04 +02:00
Lauri Ojansivu 9ce51d8db2 Updated translations. 2023-08-18 17:35:14 +03:00
Lauri Ojansivu 76591632c5 Updated ChangeLog. 2023-08-18 17:19:06 +03:00
Lauri Ojansivu b03ea37944 Merge pull request #5090 from DimDz/master
Move card to other boards API
2023-08-18 17:16:18 +03:00
Lauri Ojansivu 6e490b0f8d Updated translations. 2023-08-18 16:45:20 +03:00
DimDz 32e50b869d Added moveCard to editCard API 2023-08-18 15:48:49 +03:00
Lauri Ojansivu 6a38b9fb0f Updated translations. 2023-08-18 03:25:29 +03:00
Lauri Ojansivu 1f059898ca Updated translations. 2023-08-18 02:16:11 +03:00
Lauri Ojansivu cb4ce5cddf Updated ChangeLog. 2023-08-18 02:04:56 +03:00
Lauri Ojansivu 7dfb1eb6ce Fixed building s390x release. Part 2.
Thanks to xet7 !
2023-08-18 02:03:22 +03:00
Lauri Ojansivu 9857d4a5bf Updated ChangeLog. 2023-08-18 02:01:36 +03:00
Lauri Ojansivu 73f943f89a Fixed building s390x release.
Thanks to xet7 !
2023-08-18 02:00:12 +03:00
Lauri Ojansivu d5308d2d04 Updated translations. 2023-08-18 01:39:52 +03:00
Lauri Ojansivu b62221504d Updated ChangeLog. 2023-08-18 01:38:25 +03:00
Lauri Ojansivu 9d5af24e7b Upgraded Snap Candidate MongoDB to 6.0.9
Thanks to MongoDB developers !
2023-08-18 01:36:07 +03:00
Lauri Ojansivu fe20a5b54e Merge newest changes. 2023-08-18 01:08:36 +03:00
Lauri Ojansivu b068d07ce5 Updated release and startup scripts.
Thanks to xet7 !
2023-08-18 01:05:18 +03:00
Lauri Ojansivu a494c768f2 Merge newest changes. 2023-08-17 23:15:58 +03:00
Lauri Ojansivu 7b94188f64 Update release scripts. Part 5. 2023-08-17 23:14:23 +03:00
Lauri Ojansivu 249d3b0739 Merge branch 'master' of github.com:wekan/wekan 2023-08-17 23:09:27 +03:00
Lauri Ojansivu e181f3a385 v7.08 2023-08-17 23:08:48 +03:00
Lauri Ojansivu 90797066e7 Merge newest changes. 2023-08-17 23:07:33 +03:00
Lauri Ojansivu 13711f02b6 Updated translations. 2023-08-17 23:02:15 +03:00
Lauri Ojansivu f8adc3605a Updated ChangeLog. 2023-08-17 22:32:08 +03:00
Lauri Ojansivu f75fd82339 Merge pull request #5088 from VidVidex/master
Fix broken attachment preview in safari
2023-08-17 22:29:16 +03:00
Lauri Ojansivu 45edeccef9 Updated ChangeLog. 2023-08-17 22:24:19 +03:00
Vid Smole 6ffde36d84 Fix navigation between attachments 2023-08-17 21:21:56 +02:00
Vid Smole 17aa702860 Fix attachment viewer in safari 2023-08-17 21:21:31 +02:00
Lauri Ojansivu 4c7f1090fd v7.08 2023-08-17 21:48:00 +03:00
Lauri Ojansivu baf1ddc8e5 Merge pull request #5087 from ipyramiddev/master
Corrected source code so that it works correctly with reactiveCache
2023-08-17 21:24:32 +03:00
Yevhenii Pertiaka 38b1301258 Corrected source code so that it works correctly with reactiveCache #5000 2023-08-18 03:20:45 +09:00
Lauri Ojansivu f295f42363 Updated translations. 2023-08-17 21:02:50 +03:00
Lauri Ojansivu 0716eba84e Updated ChangeLog. 2023-08-17 20:25:12 +03:00
Lauri Ojansivu c47d5ca64e Update release scripts. Part 4. 2023-08-17 20:20:54 +03:00
Lauri Ojansivu 7d48fe4c23 Updated translations. 2023-08-17 20:15:59 +03:00
Lauri Ojansivu f4a6ce9f31 Updated ChangeLog. 2023-08-17 19:53:42 +03:00
Lauri Ojansivu c769bed7dd Added remaining translations to feature custom transaltion strings on Admin Panel.
Thanks to xet7 !
2023-08-17 19:49:29 +03:00
Yevhenii Pertiaka b1525d4221 Added new function to add cumstom translation strings on Admin panel 2023-08-17 21:54:14 +09:00
Lauri Ojansivu 4153fe7d0d Updated ChangeLog. 2023-08-17 00:23:16 +03:00
Lauri Ojansivu c570e426a1 Updated release scripts. Part 3. 2023-08-17 00:22:17 +03:00
Lauri Ojansivu 271877565b Updated ChangeLog. 2023-08-17 00:03:25 +03:00
Lauri Ojansivu d6b960f79a Updated release scripts. Part 2.
Thanks to xet7 !
2023-08-17 00:01:53 +03:00
Lauri Ojansivu be938ebd4b Updated ChangeLog. 2023-08-16 23:52:51 +03:00
Lauri Ojansivu 558d406148 Updated release scripts.
Thanks to xet7 !
2023-08-16 23:51:50 +03:00
Lauri Ojansivu f61b9239de v7.07 2023-08-16 22:51:44 +03:00
Lauri Ojansivu 409bd50d67 Updated ChangeLog. 2023-08-16 22:33:26 +03:00
Lauri Ojansivu 48dcd11af0 Add some filename, if there is no filename after sanitize.
Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/5083
2023-08-16 22:32:40 +03:00
Lauri Ojansivu 08afc05c38 Updated ChangeLog. 2023-08-16 21:28:33 +03:00
Lauri Ojansivu 28e97808f5 Add warning to beginning of sanitized filename.
Thanks to xet7!

Related https://github.com/wekan/wekan/pull/5083
2023-08-16 21:28:03 +03:00
Lauri Ojansivu 8a1c2e8860 Merge pull request #5083 from VidVidex/master
Fix downloading attachments with unusual filenames [WIP]
2023-08-16 20:30:43 +03:00
Lauri Ojansivu 4b22174183 Updated ChangeLog. 2023-08-16 20:14:07 +03:00
Lauri Ojansivu 9bf3b960a1 s390x disabled, because there is problem adding fibers.
Thanks to xet7 !
2023-08-16 20:12:22 +03:00
Vid Smole fa58d0ec3b Rename files with possible XSS
Previously upload of such files would fail silently.
Now they are renamed to a sanitized version and a warning is printed in the console.
2023-08-16 18:51:40 +02:00
Lauri Ojansivu 03f7fd6340 Updated ChangeLog. 2023-08-16 19:44:06 +03:00
Lauri Ojansivu d48068f63c Update Windows bundle build script.
Thanks to xet7 !
2023-08-16 19:42:06 +03:00
Lauri Ojansivu 998f3fe8a7 v7.06 2023-08-15 14:46:59 +03:00
Lauri Ojansivu 81ece7cec2 Merge pull request #5080 from VidVidex/5074-swiping
Add attachment swiping
2023-08-14 16:46:42 +03:00
Vid Smole 30073ce1d6 Add attachment swiping 2023-08-14 15:38:13 +02:00
Lauri Ojansivu fc9fb9132c Updated translations. 2023-08-13 02:48:42 +03:00
Lauri Ojansivu 2f8c01eccf Updated ChangeLog. 2023-08-13 02:45:54 +03:00
Lauri Ojansivu 6d1705af34 Update building Windows bundle.
Thanks to xet7 !
2023-08-13 02:44:17 +03:00
Lauri Ojansivu fa6db6118d Updated translations. 2023-08-12 16:27:48 +03:00
Lauri Ojansivu f555acee6f Updated ChangeLog. 2023-08-09 22:24:08 +03:00
Lauri Ojansivu 4bc5799b4f Merge pull request #5075 from mfilser/label_drag_drop_and_reorder
label drag/drop (reorder labels) works now again
2023-08-09 21:26:49 +03:00
Martin Filser b2b8a99899 label drag/drop (reorder labels) works now again 2023-08-09 20:11:16 +02:00
Lauri Ojansivu 9641ac7ee8 Updated ChangeLog. 2023-08-09 16:56:35 +03:00
Lauri Ojansivu f9823f67bd Updated exceljs and jszip.
Thanks to developers of dependencies !
2023-08-09 16:54:27 +03:00
Lauri Ojansivu af14ff6e89 Updated translations. 2023-08-09 16:54:10 +03:00
Lauri Ojansivu 323f1b1d87 Updated ChangeLog. 2023-08-09 02:49:27 +03:00
Lauri Ojansivu 3e23a5ddce Merge pull request #5071 from chrisi51/alphabetic-order
Alphabetic ordered member lists on assigne and member lists
2023-08-09 02:40:45 +03:00
Christian 037bba83d6 Alphabetic ordered member lists on assigne and member lists 2023-08-08 23:24:35 +00:00
Lauri Ojansivu a60acac51a Updated ChangeLog. 2023-08-08 15:45:32 +03:00
Lauri Ojansivu eea0b1afc4 v7.05 2023-08-08 12:08:01 +03:00
Lauri Ojansivu 9a6d0c4aad Updated ChangeLog. 2023-08-08 11:58:39 +03:00
Lauri Ojansivu 1c530632ac Merge branch 'master' of https://github.com/chrisi51/wekan 2023-08-08 11:49:55 +03:00
Christian 18c49695b1 Optimize member list popups 2023-08-08 08:31:23 +00:00
Christian c8a743bb8e Fixing positioning of opened cards 2023-08-08 00:05:19 +00:00
Lauri Ojansivu 7e92068955 Updated dependencies. 2023-08-07 22:42:13 +03:00
Lauri Ojansivu 8c84254392 Updated ChangeLog. 2023-08-07 17:43:01 +03:00
Lauri Ojansivu 6b1403984f Fixed Normal (non-admin) board users cannot adjust swimlane height.
Thanks to mgdbbrt and xet7 !

Fixes #5063
2023-08-07 17:41:33 +03:00
Lauri Ojansivu c965cc9b76 Updated ChangeLog. 2023-08-07 17:15:28 +03:00
Lauri Ojansivu ab40737211 Show option b) -1 for disabling swimlane height at swimlane height popup.
Thanks to xet7 !
2023-08-07 17:12:49 +03:00
Lauri Ojansivu 950b477d9d Updated ChangeLog. 2023-08-07 17:02:13 +03:00
Lauri Ojansivu 529a43fa0e Updated dependencies. 2023-08-07 16:59:17 +03:00
Lauri Ojansivu eb16cd19bb Merge branch 'swimlane-default' of https://github.com/mark-i-m/wekan 2023-08-07 16:30:59 +03:00
Lauri Ojansivu fbd64a6a9e Updated translations. 2023-08-07 16:23:02 +03:00
mark 7536c7b532 allow -1 as 'auto' 2023-08-03 22:03:30 -05:00
mark 406766a82b make default swimlane auto-height 2023-08-03 22:03:30 -05:00
Lauri Ojansivu 5bb794e3bb v7.04 2023-08-03 22:21:18 +03:00
Lauri Ojansivu ee73e04004 Updated ChangeLog. 2023-08-03 22:18:37 +03:00
Lauri Ojansivu 672be413f7 Updated translations. 2023-08-03 22:17:03 +03:00
Lauri Ojansivu b0ba57a165 Updated ChangeLog. 2023-08-03 22:15:50 +03:00
Lauri Ojansivu 79c2301ad5 Updated dependencies. 2023-08-03 22:15:25 +03:00
Lauri Ojansivu b2c7be244e Updated translations. 2023-08-03 21:37:09 +03:00
Lauri Ojansivu 8f8c045930 Merge pull request #5058 from VidVidex/master
Do not open preview for attachments that cannot be previewed
2023-08-03 20:12:05 +03:00
Vid Smole 21ffff3977 Do not open preview for attachments that cannot be previewed 2023-08-03 18:57:12 +02:00
Lauri Ojansivu 7d1bca3702 Merge pull request #5056 from cloudron-io/login-layout-fixes-2
Login layout fixes 2
2023-08-03 18:38:29 +03:00
Johannes Zellner d93a58d892 Do not show OAuth2 in auth method dropdown as it has its own button 2023-08-03 17:17:08 +02:00
Johannes Zellner 99d9291a28 Never show the login form OR separator
So many states for with password enabled/disabled treated async
separately. Might be easier to bring back once password login is treated
like saml/ldap/... while still using the very same form elements
regardless
2023-08-03 17:00:34 +02:00
Johannes Zellner bda166ba50 Ensure we subscribe to currentSettings in login view 2023-08-03 16:53:23 +02:00
Johannes Zellner f190a102f9 formAuthenticationMethods is an array
part of #5051
2023-08-03 16:41:27 +02:00
Lauri Ojansivu d0ba89d913 Updated translations. 2023-08-03 12:53:38 +02:00
Lauri Ojansivu cb4f3c8895 Updated ChangeLog. 2023-08-03 12:50:44 +02:00
Lauri Ojansivu fd003f4402 Merge pull request #5055 from Pandetthe/master
Fix edit_swimlane
2023-08-03 13:46:27 +03:00
Jakub Jurczyk 3a22d4efdc Fix edit_swimlane 2023-08-03 12:44:22 +02:00
Lauri Ojansivu 48c763dbe3 v7.03 2023-08-02 20:27:39 +03:00
Lauri Ojansivu 10a9aef974 Updated translations. 2023-08-02 20:24:03 +03:00
Lauri Ojansivu eecb143977 Updated ChangeLog. 2023-08-02 20:22:33 +03:00
Lauri Ojansivu 767bbc5195 Merge pull request #5049 from cloudron-io/displayAuthenticationMethod-only-refers-to-select
Move authentication UI handling in correct place
2023-08-02 20:13:39 +03:00
Johannes Zellner b107fb0017 Move authentication UI handling in correct place
The connectionMethod component only deals with the authentication method
select input.

Fixes #5048
2023-08-02 18:36:15 +02:00
Lauri Ojansivu a94cc5351f Merge pull request #5047 from Pandetthe/master
Fix return value of edit_custom_field_dropdown_item
2023-08-02 15:26:45 +03:00
Jakub Jurczyk 7865368153 Fix return value of edit_custom_field_dropdown_item 2023-08-02 14:11:47 +02:00
Lauri Ojansivu 1be3a5c918 v7.02 2023-08-02 07:35:51 +03:00
Lauri Ojansivu 10d90046b9 Updated dependencies. 2023-08-02 07:16:41 +03:00
Lauri Ojansivu 16eb499806 Updated translations. 2023-08-02 07:07:50 +03:00
Lauri Ojansivu ef39dfc051 Updated ChangeLog. 2023-08-02 07:04:25 +03:00
Lauri Ojansivu 9f6e6bdc81 Upgrade to Node.js 14.21.4 at build scripts and remaining Docker containers.
Thanks to Meteor and xet7 !
2023-08-02 06:58:45 +03:00
Lauri Ojansivu a60102f6c6 Updated ChangeLog. 2023-08-02 06:10:43 +03:00
Lauri Ojansivu f0620ce880 Upgrade WeKan StackSmith to Node.js 14.21.4 .
Thanks to Meteor and xet7 !
2023-08-02 06:09:24 +03:00
Lauri Ojansivu c40b27d9ad Updated ChangeLog. 2023-08-02 06:02:25 +03:00
Lauri Ojansivu 0161f19ba7 Upgrade WeKan Snap Candidate to Node.js 14.21.4 .
Thanks to Meteor and xet7 !
2023-08-02 06:01:00 +03:00
Lauri Ojansivu 4885934477 Updated translations. 2023-08-02 04:05:39 +03:00
Lauri Ojansivu f7b34bc85b Updated ChangeLog. 2023-08-02 04:04:01 +03:00
Lauri Ojansivu f9ed7e1baf Merge pull request #5043 from Pandetthe/master
Fix assignees description
2023-08-01 18:45:03 +03:00
Jakub Jurczyk aca6ba5270 Fix assignees description 2023-08-01 17:30:14 +02:00
Lauri Ojansivu 31636eb0c0 Updated ChangeLog. 2023-08-01 16:49:08 +03:00
Lauri Ojansivu a773abaf2f Upgrade to MongoDB 6.0.8 in Snap Candidate.
Thanks to MongoDB developers!
2023-08-01 16:47:17 +03:00
Lauri Ojansivu 7001f8edaf Updated ChangeLog. 2023-08-01 16:45:10 +03:00
Lauri Ojansivu 7b607b2aaf Fixed v7.01.0 fresh install in listview first column small.
Thanks to intellekta and xet7 !

Fixes #5034
2023-08-01 16:42:58 +03:00
Lauri Ojansivu f3845549fe Updated translations. 2023-08-01 16:38:16 +03:00
Lauri Ojansivu d3a87beef1 Updated ChangeLog. 2023-08-01 16:27:21 +03:00
Lauri Ojansivu 62c2d59f46 Drag board made translateable.
Thanks to xet7 !
2023-08-01 16:25:41 +03:00
Lauri Ojansivu b73e65d63e Updated translations. 2023-08-01 15:30:53 +03:00
Lauri Ojansivu 0b1f906576 Updated ChangeLog. 2023-08-01 15:28:15 +03:00
Lauri Ojansivu e5423989a1 Merge pull request #5041 from cloudron-io/login-layout-code-cleanup
Login layout code cleanup
2023-08-01 15:27:03 +03:00
Lauri Ojansivu a8197a990e Updated ChangeLog. 2023-08-01 15:25:53 +03:00
Lauri Ojansivu e4ae57bf7f Merge pull request #5040 from Pandetthe/master
Fix get_board_cards_count
2023-08-01 15:23:55 +03:00
Lauri Ojansivu 6ad5ede317 Updated ChangeLog. 2023-08-01 15:22:56 +03:00
Johannes Zellner 1271409989 Avoid further UI flickering on load and show/hide OR in login screen if more than one is active
Fixes #5028
2023-08-01 12:58:38 +02:00
Johannes Zellner d17d12e719 The oidc button text is actually set in the DOM tree change later in the file 2023-08-01 12:58:38 +02:00
Johannes Zellner a5f918c670 Remove unneccary and dead code to handle case where custom logo is not set 2023-08-01 12:58:38 +02:00
Jakub Jurczyk 5d6367f404 Fix get_board_cards_count 2023-08-01 12:32:04 +02:00
Lauri Ojansivu 8dc7aa490a Update WeKan Docker to Node.js 14.21.4. Thanks to Meteor and xet7! 2023-08-01 10:36:05 +03:00
Lauri Ojansivu bf0187f2c4 Updated translations. 2023-08-01 07:00:41 +03:00
Lauri Ojansivu 6c34b75061 Updated ChangeLog. 2023-07-31 23:52:08 +03:00
Lauri Ojansivu c4fdc5987b Merge pull request #5037 from mfilser/first_registration_must_be_an_admin_user
first registration after installation must be an admin account
2023-07-31 23:44:40 +03:00
Martin Filser 70c2f0f89f first registration after installation must be an admin account 2023-07-31 21:41:00 +02:00
Lauri Ojansivu bcdad79621 Updated translations. 2023-07-31 17:27:23 +03:00
Lauri Ojansivu d9a4d7a521 Updated ChangeLog. 2023-07-31 17:21:57 +03:00
Lauri Ojansivu a50cc9fb8c Merge pull request #5032 from cloudron-io/stable-login-form
Only selectively show login elements once settings is loaded
2023-07-31 17:16:48 +03:00
Johannes Zellner ab19bbce8e Only selectively show login elements once settings is loaded
Fixes #5029
2023-07-30 13:43:03 +02:00
Lauri Ojansivu 25c8f07c62 Updated ChangeLog. 2023-07-30 02:15:19 +03:00
Lauri Ojansivu db40c94f02 Updated ChangeLog. 2023-07-30 02:10:12 +03:00
Lauri Ojansivu 871f68058e Updated dependencies. 2023-07-30 02:08:05 +03:00
Lauri Ojansivu 3f91dd23bc Updated translations. 2023-07-30 02:07:46 +03:00
Lauri Ojansivu 7baf7d2256 Don't translate width and height minimum value.
Thanks to xet7 !
2023-07-30 01:55:40 +03:00
Lauri Ojansivu 76b9ce4fe3 Merge branch 'mark-i-m-master' 2023-07-30 01:42:52 +03:00
Lauri Ojansivu a2f479f4bd Merge branch 'master' of https://github.com/mark-i-m/wekan into mark-i-m-master 2023-07-30 01:41:45 +03:00
Lauri Ojansivu fafd8a077f Updated ChangeLog. 2023-07-30 01:38:57 +03:00
Lauri Ojansivu caa8d08738 Upgrade to Meteor 2.13 and Node.js 14.21.4 .
Thanks to Meteor developers !
2023-07-30 01:36:01 +03:00
Lauri Ojansivu 13979389ca v7.01 2023-07-21 02:00:24 +03:00
Lauri Ojansivu 350a52935a Updated translations. 2023-07-21 01:56:26 +03:00
Lauri Ojansivu 945e57bb43 Updated ChangeLog. 2023-07-21 01:06:11 +03:00
Lauri Ojansivu 3c374a2891 Merge pull request #5023 from mfilser/attachment_rename_and_delete_for_non_board_admins
Attachment rename and delete works now again for non board admins
2023-07-21 01:05:17 +03:00
Lauri Ojansivu c9074bd8d9 Updated ChangeLog. 2023-07-21 01:03:56 +03:00
Martin Filser bc685c59e0 Attachment rename and delete works now again for non board admins 2023-07-20 23:44:22 +02:00
Lauri Ojansivu aa53ad38fc Merge pull request #5022 from mfilser/removing_utils_getCurrentSetting
removing Utils.getCurrentSetting() and use ReactiveCache directly
2023-07-21 00:41:37 +03:00
Martin Filser 875442f1ce removing Utils.getCurrentSetting() and use ReactiveCache directly 2023-07-20 21:11:29 +02:00
Lauri Ojansivu a8c071f04c Updated translations. 2023-07-20 21:35:44 +03:00
Lauri Ojansivu ef6c9c66af Updated ChangeLog. 2023-07-20 20:00:07 +03:00
Lauri Ojansivu 3df38447e9 Updated ChangeLog. 2023-07-20 19:55:35 +03:00
Lauri Ojansivu 338aabc02f Merge pull request #5021 from mfilser/minicard_show_assignee
Minicard didn't show the assignee
2023-07-20 19:53:59 +03:00
Martin Filser 912717ebf9 Minicard didn't show the assignee 2023-07-20 17:16:47 +02:00
Lauri Ojansivu 9f1a2ec625 Updated dependencies. 2023-07-20 14:44:52 +03:00
Lauri Ojansivu 93f0a69c53 Updated ChangeLog. 2023-07-20 14:44:26 +03:00
Lauri Ojansivu 2846522450 Merge pull request #5019 from DimDz/master
Fix for Calendar View Create Card
2023-07-20 14:34:44 +03:00
DimDz be8374d100 Update boardBody.js 2023-07-20 14:30:42 +03:00
DimDz 399f63cef6 Update boardBody.css 2023-07-20 14:28:31 +03:00
Lauri Ojansivu adf8f7b69a 7.00 2023-07-19 22:24:37 +03:00
Lauri Ojansivu 8e9206bdee Updated dependencies. 2023-07-19 22:07:09 +03:00
Lauri Ojansivu 1946ba150d v7.01 2023-07-19 22:03:24 +03:00
Lauri Ojansivu 60cb5fb017 Added missing @babel/runtime.
Thanks to xet7 !
2023-07-19 21:53:15 +03:00
Lauri Ojansivu 1892a17855 v7.00 2023-07-19 21:26:24 +03:00
Lauri Ojansivu 588e051f0f Updated translations. 2023-07-19 21:18:26 +03:00
Lauri Ojansivu 1c5857f064 Forked meteor-globals and meteor-reactive-cache to @wekanteam/meteor-globals and @wekanteam/meteor-reactive-cache to update to newest non-vulnerable dependencies.
Thanks to xet7 !
2023-07-19 21:08:21 +03:00
Martin Filser 1067542b94 Move every Attachments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser 538e197147 Move every Avatars.find(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:29 +02:00
Martin Filser 36db6c6e2d Move every CardCommentReactions.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser e53b63541e Move every Attachments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser d6ca13a61d Move every CardComments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 7caf817c81 Move every Activities.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 286617e7be Move every Integrations.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser a423f7883e Move every Triggers.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 6d949ccdb4 Move every Actions.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 0e0ac36788 Move every Rules.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 99ab6d13d4 Move every Team.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser dcf7232958 Move every Org.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser a4408b55ed Move every Checklists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 06f0ceebd1 Move every ChecklistItems.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 5fe78a477c removing Meteor.publish('customFields', ...) because it's not used (dead code) 2023-07-18 21:25:29 +02:00
Martin Filser 7ef8de50bd Move every CustomFields.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 6646b8638e Move every Users.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 46840c9373 Move every Swimlanes.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 76bd3bfe1d Move every Lists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 2a2ed1eb2c Move every Cards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser a533605608 Move every Boards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 7749c0bd9a server/publications files, adding return parameter for easier time measure (e.g. console.time()) 2023-07-18 21:25:29 +02:00
Martin Filser a37caf459e back to ReactiveCache.getCards and still fixing the flip "Card Drag/Drop" issue 2023-07-18 21:25:29 +02:00
Martin Filser 1c0a1e021a ReactiveCache, adding parameter "getCursor" 2023-07-18 21:25:29 +02:00
Martin Filser f483b162ce Speed up board loading, skip loading the full sidebar
- only load the sidebar when viewing
2023-07-18 21:25:29 +02:00
Martin Filser 42fad8fb98 ReactiveMiniMongoIndex, added getCardCommentsWithCardId 2023-07-18 21:25:29 +02:00
Martin Filser 316acd0366 ReactiveMiniMongoIndex, added getChecklistItemsWithChecklistId 2023-07-18 21:25:29 +02:00
Martin Filser f80ecded0a ReactiveMiniMongoIndex, added getChecklistsWithCardId 2023-07-18 21:25:29 +02:00
Martin Filser 40a5422e75 ReactiveMiniMongoIndex created, Javascript Index of MiniMongo Client Database
- I didn't find a solution to have indexes in MiniMongo on client. As i see /
  believe there isn't this feature yet in Meteor (v2.10).
- I got this and many more results while looking for an solution:

  https://forums.meteor.com/t/adding-indexing-to-minimongo/9130/12
  https://github.com/meteor/meteor-feature-requests/issues/66

So to speed up the MiniMongo i decided to create a own class for this,
currently per query. Of course, this isn't the best solution, but works for now
good.
2023-07-18 21:25:29 +02:00
Martin Filser 726fd5d60d Card Drag/Drop doesn't flip anymore
- .fetch() is causing a short flip after card dragging
2023-07-18 21:25:29 +02:00
Martin Filser 211656e9da removing unused method "activeMembers2()" 2023-07-18 21:25:29 +02:00
Martin Filser 5eb4eb04c4 Move every Attachments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser fb3b47e2bb Move every Attachments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser 14ac099e87 Move every Attachments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:29 +02:00
Martin Filser f83ee124d0 Move every Boards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser 59ee616304 Move every CardComments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser 25989b9736 Move every CardComments.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser fef6433b75 Move every Activities.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser ea72ce1fa2 Move every Integrations.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser 26e326a204 Move every Integrations.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:29 +02:00
Martin Filser ebb356cf2d Move every Triggers.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:29 +02:00
Martin Filser d6142e4b75 Move every Triggers.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:29 +02:00
Martin Filser c7b554afd9 Move every Actions.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 30c1b5cca8 Move every Rules.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 0c58bcf99c Move every Rules.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser f3d58339ae Move every Team.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 67c6dd7bee Move every Team.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser f2d52b55c8 Move every Org.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 8c72531e6d Move every Org.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser b2f19ed714 Move every Checklists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:28 +02:00
Martin Filser e5359dc838 Move every Checklists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 6fd3c0fa6b Move every ChecklistItems.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 981a641bce Move every CustomFields.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 47c70f03a2 Move every CustomFields.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser 030359aa0e Move every Users.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 81c9bb6899 Move every Users.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser 4d192a0165 Move every Swimlanes.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:28 +02:00
Martin Filser 33a8de7bb5 Move every Swimlanes.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 9125ab440d Move every Swimlanes.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser 1c966ed7b4 Move every Lists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:28 +02:00
Martin Filser 6a4b03324c Move every Lists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 4a8dcde8ee Move every Lists.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser c2139662cd Move every Cards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory server/) 2023-07-18 21:25:28 +02:00
Martin Filser c0ecfb87b0 Move every Cards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory models/) 2023-07-18 21:25:28 +02:00
Martin Filser 7673c77c57 Move every Cards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser 66c2140911 replace Array#forEach() ... Array#push with Array#map 2023-07-18 21:25:28 +02:00
Martin Filser ea3144492e board page didn't always show the list counters 2023-07-18 21:25:28 +02:00
Martin Filser 10a9306abd Move every Boards.find(idOrFirstObjectSelector, options) to the ReactiveCache (directory client/) 2023-07-18 21:25:28 +02:00
Martin Filser 76aae41637 Move every InvitationCodes.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 49071ca5fd Move every SessionData.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 08e3ca3435 Move every Activities.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 6b7b464acc Move every Integrations.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 767d8e66e7 Move every ImpersonatedUsers.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser e30edce73e Move every CardCommentReactions.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser f5796faa84 Move every Triggers.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser b48297df22 Move every Actions.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser c262620993 Move every Rules.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 41685536d7 removing comment code 2023-07-18 21:25:28 +02:00
Martin Filser 92052458f5 Move every Meteor.users.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 6c3170360b Move every Team.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser cd3a27941c Move every Org.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 8a98f03f1a Move every ChecklistItems.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 5552c17eba Move every Checklists.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 92733b24d1 Move every CardComments.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 806ad78637 Move every CustomFields.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 9e557f6887 Move every Lists.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser ad9daba60d Move every Users.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 2c92524cf4 Move every Boards.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 06e374f0ff Move every Cards.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 48ba81eb3d Move every Swimlanes.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 0767f50af8 Move every Users.findOne(idOrFirstObjectSelector, options) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 68610e5066 fix if userId in _meteorSession is undefined 2023-07-18 21:25:28 +02:00
Martin Filser ba9e2debe2 ReactiveCache, adding options to every method 2023-07-18 21:25:28 +02:00
Martin Filser 6c8a5cc580 ReactiveCache, adding methods for Mongo.Collection#find 2023-07-18 21:25:28 +02:00
Martin Filser 3a7eece244 ReactiveCache, id Methods can contain now selector to get the first object (findOne()) 2023-07-18 21:25:28 +02:00
Martin Filser bf27ffb92e Move every Checklists.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 3fc9c6efe7 Move every Attachments.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser fe2015735a Move every Team.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 2ab34d3b87 Move every Org.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 79ea4d6d1e Move every Activities.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 54f7361767 Move every CustomFields.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 0a7ffe4cb0 Move every CardComments.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 0e714a90e0 Move every ChecklistItems.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 5e3a9dc059 Move every Meteor.user() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 6e1ef3d94a Move every Users.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser bf48d4371c Move every Swimlanes.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 2f2aa7b08a insert linked card at search dialog set's now the next card number too 2023-07-18 21:25:28 +02:00
Martin Filser 20b0422024 insert linked board set's now the next card number too 2023-07-18 21:25:28 +02:00
Martin Filser dcb9fb7465 insert linked card set's now the next card number too 2023-07-18 21:25:28 +02:00
Martin Filser 3a287a494b insert linked card at search dialog also add the card at top/bottom 2023-07-18 21:25:28 +02:00
Martin Filser 0926943670 Move every Lists.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 06e26d8d89 insert linked card dialog, sort swimlanes, lists and cards by field "sort" 2023-07-18 21:25:28 +02:00
Martin Filser 94953a1c97 use card.getRealId() 2023-07-18 21:25:28 +02:00
Martin Filser 02e9795816 insert linked board at top/bottom 2023-07-18 21:25:28 +02:00
Martin Filser c29cff3822 insert linked card, move sortIndex to function 2023-07-18 21:25:28 +02:00
Martin Filser 29216599e4 insert linked card at top/bottom of list 2023-07-18 21:25:28 +02:00
Martin Filser 3b65113d05 Move every Cards.findOne() to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser a182482cfb Move every Boards.findOne(boardId) to the ReactiveCache (Part 2) 2023-07-18 21:25:28 +02:00
Martin Filser 9022e9949f Move every Boards.findOne(Session.get('currentBoard')) to the ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser cecf69af02 fix wrong function / variable name (currentSetting -> currentAnnouncements) 2023-07-18 21:25:28 +02:00
Martin Filser b7dbeba7de add currentSetting to ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser c6ee58ef88 add "currentList" to ReactiveCache 2023-07-18 21:25:28 +02:00
Martin Filser 1b3135a79f models/cards.js, use getRealId() for setter too 2023-07-18 21:25:28 +02:00
Martin Filser 131959e050 minicard.js, reduce this.data().board() call 2023-07-18 21:25:28 +02:00
Martin Filser 3f3b4746a9 adding ReactiveCache to other source code 2023-07-18 21:25:28 +02:00
Martin Filser 30d154724a currentBoard is very often called in jade files, so use there the cache too 2023-07-18 21:25:27 +02:00
Martin Filser 16130b3f73 Move ReactiveCache to imports
- so it's available for the Server too
2023-07-18 21:25:27 +02:00
Martin Filser 47427f89b0 Adding new ReactiveCache 2023-07-18 21:25:27 +02:00
Martin Filser 384d80a647 card.js, clean up redudant code 2023-07-18 21:25:27 +02:00
Martin Filser 43d11af631 Performance, improving page load about 40% faster 2023-07-18 21:25:27 +02:00
Martin Filser 9bda4372a5 insert meteor-reactive-cache npm module
$ meteor npm install --save meteor-reactive-cache
2023-07-18 21:25:27 +02:00
Lauri Ojansivu 61223503e3 v6.99.9 2023-07-18 01:18:33 +03:00
Lauri Ojansivu 4d2ad079dc Updated dependencies. 2023-07-17 01:20:48 +03:00
Lauri Ojansivu 50c071682b Updated translations. 2023-07-17 01:20:33 +03:00
Lauri Ojansivu 015ccb7a28 Updated ChangeLog. 2023-07-17 00:52:08 +03:00
Lauri Ojansivu b9aed314f3 Merge pull request #5011 from NotTheEvilOne/pr/fix-oidc-without-groups
Fix "PROPAGATE_OIDC_DATA" mechanism if "info.groups" is undefined
2023-07-17 00:50:07 +03:00
Tobias Wolf 452e2e2408 Fix "PROPAGATE_OIDC_DATA" mechanism if "info.groups" is undefined
This may happen if no group information is shared via OAuth2/OIDC but synchronization of user data is intended by WeKan administration. Without the patch the following exception is raised:
Error in OAuth Server: groups is not iterable
2023-07-16 23:13:46 +02:00
Lauri Ojansivu 9370c1d472 v6.99.8 2023-07-13 12:11:36 +03:00
Lauri Ojansivu 8143dc9196 Updated ChangeLog. 2023-07-13 10:48:20 +03:00
Lauri Ojansivu 98ba18b052 Merge pull request #5009 from helioguardabaxo/fix-csv-import
Fix card creation. Now date fields are checked if they are empty.
2023-07-13 10:06:32 +03:00
helioguardabaxo 9860f20be3 Fix card creation. Now date fields are checked if they are empty. 2023-07-12 11:14:41 -03:00
Lauri Ojansivu cfbb06ed1f Updated translations. 2023-07-12 00:57:38 +03:00
Lauri Ojansivu e39760eb19 v6.99.7 2023-07-11 18:20:22 +03:00
Lauri Ojansivu b3da55f85c Merge pull request #5008 from wekan/dependabot/npm_and_yarn/semver-6.3.1
Bump semver from 6.3.0 to 6.3.1
2023-07-11 18:15:03 +03:00
dependabot[bot] bc4b637f06 Bump semver from 6.3.0 to 6.3.1
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-11 15:13:49 +00:00
Lauri Ojansivu c993c8f47e v6.99.6 2023-07-11 18:13:18 +03:00
Lauri Ojansivu 40470bedb3 Updated ChangeLog. 2023-07-11 18:08:23 +03:00
Lauri Ojansivu 912479baa4 Added back datepicker.
Thanks to xet7 !

Fixes #5007
2023-07-11 18:06:19 +03:00
Lauri Ojansivu cfbf3e320c Updated ChangeLog. 2023-07-10 15:12:13 +03:00
Lauri Ojansivu 4431ec5a27 Added missing character.
Thanks to xet7 !
2023-07-10 15:04:46 +03:00
Lauri Ojansivu d7784a8d38 Merge pull request #5004 from VidVidex/master
Fix setting background image
2023-07-10 14:53:07 +03:00
Vid Smole 2c4ed5f298 Fix setting background image 2023-07-10 13:19:19 +02:00
Lauri Ojansivu 6a97aeb60c v6.99.5 2023-07-10 06:30:41 +03:00
Lauri Ojansivu c7dc912dd4 Reverted bold of minicard title.
Thanks to xet7 !
2023-07-10 06:25:37 +03:00
Lauri Ojansivu 0ee886692e v6.99.4 2023-07-10 05:07:02 +03:00
Lauri Ojansivu 34fef627a1 Disable migration attachment-cardCopy-fix-boardId-etc. Part 3.
Thanks to xet7 !
2023-07-10 05:02:04 +03:00
Lauri Ojansivu 52d36d3780 v6.99.3 2023-07-10 03:10:24 +03:00
Lauri Ojansivu 8555c24eb2 Fix migration attachment-cardCopy-fix-boardId-etc. Part 2.
Thanks to xet7 !
2023-07-10 03:05:55 +03:00
Lauri Ojansivu c41c26e5a1 v6.99.2 2023-07-10 01:34:37 +03:00
Lauri Ojansivu 35cc9b3fcc Merge pull request #5001 from wekan/dependabot/npm_and_yarn/semver-and-mapbox/node-pre-gyp-7.5.4
Bump semver and @mapbox/node-pre-gyp
2023-07-10 01:29:14 +03:00
dependabot[bot] dbfd219491 Bump semver and @mapbox/node-pre-gyp
Bumps [semver](https://github.com/npm/node-semver) to 7.5.4 and updates ancestor dependency [@mapbox/node-pre-gyp](https://github.com/mapbox/node-pre-gyp). These dependencies need to be updated together.


Updates `semver` from 6.3.0 to 7.5.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v7.5.4)

Updates `@mapbox/node-pre-gyp` from 1.0.10 to 1.0.10
- [Changelog](https://github.com/mapbox/node-pre-gyp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mapbox/node-pre-gyp/compare/v1.0.10...v1.0.10)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
- dependency-name: "@mapbox/node-pre-gyp"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-09 22:19:13 +00:00
Lauri Ojansivu 0da5f26668 Updated ChangeLog. 2023-07-10 01:18:14 +03:00
Lauri Ojansivu 8bf40e219a Added back npm packages: fibers and @mapbox/node-pre-gyp.
Thanks to xet7 !
2023-07-10 01:11:37 +03:00
Lauri Ojansivu 8f1f8c0fb9 v6.99.1 2023-07-10 00:39:29 +03:00
Lauri Ojansivu 386a65d6c6 Updated ChangeLog. 2023-07-10 00:34:22 +03:00
Lauri Ojansivu a73ce72e46 Merge pull request #4999 from mfilser/fix_migration_attachment-cardCopy-fix-boardId-etc
fix for migration "attachment-cardCopy-fix-boardId-etc"
2023-07-10 00:30:39 +03:00
Lauri Ojansivu d0616d8d67 Updated ChangeLog. 2023-07-10 00:21:57 +03:00
Martin Filser 6ad007a5f1 fix for migration "attachment-cardCopy-fix-boardId-etc"
- every card must have a boardId, listId and swimlaneId, if not, the database
  data is corrupt, but the migration should also not break wekan from startup
2023-07-09 23:20:37 +02:00
Lauri Ojansivu 95d3e5cdc6 Updated dependencies.
Thanks to developers of dependencies !
2023-07-10 00:19:18 +03:00
Lauri Ojansivu 08a3506f12 v6.99 2023-07-09 23:11:22 +03:00
Lauri Ojansivu 520f295733 Updated translations. 2023-07-09 23:01:44 +03:00
Lauri Ojansivu 7da5121ddd Updated translations. 2023-07-09 22:57:43 +03:00
Lauri Ojansivu 3222625286 Updated ChangeLog. 2023-07-08 21:05:32 +03:00
Lauri Ojansivu 05d952b864 Merge pull request #4997 from VidVidex/master
Fix attachment viewer not being hidden
2023-07-08 21:03:07 +03:00
Vid Smole a3837ccbc7 Fix attachment viewer not being hidden 2023-07-08 19:22:40 +02:00
Lauri Ojansivu ac8199177f Updated ChangeLog. 2023-07-08 04:00:27 +03:00
Lauri Ojansivu 140a134a11 Fixed maximum call stack exceeded by removing bootstrap 3, datepicker and summernote. Updated jquery. Disabled attachments viewer that opens empty when opening card. Fixes all npm audit errors.
Fixes #4994,
fixes #3614

Thanks to xet7 !
2023-07-08 03:52:42 +03:00
Lauri Ojansivu c1b3e5367c Updated ChangeLog. 2023-07-08 01:35:22 +03:00
Lauri Ojansivu b637a8e8ea Revert first list width change.
Related https://github.com/wekan/wekan/pull/4993

Thanks to xet7 !
2023-07-08 01:30:55 +03:00
Lauri Ojansivu 999323526c Merge pull request #4993 from VidVidex/master
Small UI improvements
2023-07-08 01:30:14 +03:00
Lauri Ojansivu 2e0168283e Updated translations. 2023-07-08 01:25:11 +03:00
Lauri Ojansivu 13039c895a Updated ChangeLog. 2023-07-08 01:23:39 +03:00
Lauri Ojansivu 4148238af3 Removed horka:swipebox.
Thanks to VidVidex and xet7 !
2023-07-08 01:20:35 +03:00
Vid Smole 7a98445370 Better attachment viewer 2023-07-06 20:35:49 +02:00
Vid Smole 7ef3bba9f7 Better attachment gallery 2023-07-06 20:29:36 +02:00
Vid Smole 492306453c Fix first list being narrower than others 2023-07-06 13:22:38 +02:00
Vid Smole e12353bd7e Merge branch 'wekan:master' into master 2023-07-06 12:57:29 +02:00
Vid Smole a3622ddc1d Display card title in bold 2023-07-06 12:57:06 +02:00
Lauri Ojansivu ac95be9e41 Updated ChangeLog. 2023-07-05 14:14:27 +03:00
Lauri Ojansivu 4a3fc42d1f Merge pull request #4992 from VidVidex/master
Fix attachment urls in PR #4991
2023-07-05 07:13:19 -04:00
Vid Smole 557f9709ac Fix attachment urls 2023-07-05 12:52:18 +02:00
Lauri Ojansivu 4468c71d98 Updated ChangeLog. 2023-07-05 12:14:49 +03:00
Lauri Ojansivu c8491749e0 Merge pull request #4991 from VidVidex/master
Fix /api/boards/{boardId}/attachments endpoint
2023-07-05 05:13:14 -04:00
Vid Smole e5123f2d81 Merge branch 'wekan:master' into master 2023-07-05 11:06:11 +02:00
Vid Smole 41664f16a3 Fix /api/board/{boardId}/attachments 2023-07-05 11:05:37 +02:00
Lauri Ojansivu 8c9c0e9316 Updated translations. 2023-07-04 22:09:29 +03:00
Lauri Ojansivu f21bd16cec Updated translations. 2023-07-03 10:27:21 +03:00
Lauri Ojansivu edc5a5b6a2 Updated translations. 2023-07-01 21:12:02 +03:00
Lauri Ojansivu 7d4de21be0 Updated ChangeLog. 2023-07-01 00:56:08 +03:00
Lauri Ojansivu 5babe0358d MongoDB 6.0.7 at Snap.
Thanks to MongoDB developers !
2023-07-01 00:54:05 +03:00
Lauri Ojansivu 62ef1fe7cc Updated ChangeLog. 2023-07-01 00:36:03 +03:00
Lauri Ojansivu 4be5727a18 Fix PDF preview to have full width, close at top, and improve viewing at mobile.
Thanks to xet7 !
2023-07-01 00:30:05 +03:00
Lauri Ojansivu e128a5775d Updated ChangeLog. 2023-06-30 18:08:26 +03:00
Lauri Ojansivu ba9f9705d4 Show Meteor dependency chain with rebuild-wekan.sh .
Thanks to xet7 !
2023-06-30 18:06:44 +03:00
Lauri Ojansivu 3aae07695c Updated translations. 2023-06-30 17:43:10 +03:00
Lauri Ojansivu 4393deb130 Updated ChangeLog. 2023-06-30 17:41:24 +03:00
Lauri Ojansivu 83ae1d4a19 Added translation to support viewing PDFs.
Thanks to xet7 !

Fixes https://github.com/wekan/wekan/pull/4989#pullrequestreview-1507053336
2023-06-30 17:31:17 +03:00
Lauri Ojansivu 94992fca44 Merge pull request #4989 from VidVidex/master
Add support for viewing pdfs
2023-06-30 10:03:20 -04:00
Vid Smole a8af5343a7 Fix typo 2023-06-30 12:48:23 +02:00
Vid Smole 070e8831b4 Add support for viewing pdfs 2023-06-30 12:48:18 +02:00
Lauri Ojansivu f177e416ee Updated ChangeLog. 2023-06-29 12:07:51 +03:00
Lauri Ojansivu ffea7aff99 If there is no Custom Field label at minicard, show value full width.
Thanks to koluka and xet7 !

Fixes #4988
2023-06-29 12:05:25 +03:00
Lauri Ojansivu 01b16566c8 Updated ChangeLog. 2023-06-29 00:32:27 +03:00
Lauri Ojansivu 549b15000b Set background color only if it exists. Part 3.
Thanks to xet7 !
2023-06-29 00:31:44 +03:00
Lauri Ojansivu d05b84dff9 Updated ChangeLog. 2023-06-29 00:23:28 +03:00
Lauri Ojansivu c6cad13f1e Set background color only if it exists. Part 2.
Thanks to xet7 !
2023-06-29 00:22:25 +03:00
Lauri Ojansivu a8d1210655 Updated ChangeLog. 2023-06-29 00:04:12 +03:00
Lauri Ojansivu 45d33fa2e4 Set background color only if it exists.
Thanks to xet7 !
2023-06-29 00:03:00 +03:00
Lauri Ojansivu 81ceb1ca0f Updated ChangeLog. 2023-06-28 23:34:37 +03:00
Lauri Ojansivu 923d26ad81 Merge pull request #4987 from mfilser/move_canModifyCard_and_canModifyBoard_to_utils_class
Utils of canModifyCard and canModifyBoard + move this general functions to Utils class
2023-06-28 16:32:02 -04:00
Martin Filser 583f114c68 Utils of canModifyCard and canModifyBoard + move this general functions to Utils class 2023-06-28 22:21:36 +02:00
Lauri Ojansivu b29ec93c34 Updated ChangeLog. 2023-06-28 23:14:09 +03:00
Lauri Ojansivu c7ee585a62 Merge pull request #4986 from mfilser/global_search_found_cards_count_is_now_substituted_by_the_translation_function_itself
Global search, found cards count is now substituted by the translation function itself
2023-06-28 16:13:17 -04:00
Martin Filser a7721b9048 Global search, found cards count is now substituted by the translation function itself 2023-06-28 22:08:58 +02:00
Lauri Ojansivu 184fd3abdd Updated ChangeLog. 2023-06-28 23:08:27 +03:00
Lauri Ojansivu 5fd2f1ee8a Merge pull request #4985 from mfilser/admin_report_fixing_filesize_if_not_a_number
Admin Report, fixing filesize if not a number
2023-06-28 16:07:26 -04:00
Martin Filser 23218d3808 Admin Report, fixing filesize if not a number 2023-06-28 22:02:28 +02:00
Lauri Ojansivu 9b8de53bfe Updated ChangeLog. 2023-06-28 23:02:04 +03:00
Lauri Ojansivu 9130410f09 Merge pull request #4984 from mfilser/global_search_limit_0_is_no_limit
Global Search, limit 0 is no limit
2023-06-28 15:54:34 -04:00
Martin Filser 1f57a3f62e Global Search, limit 0 is no limit 2023-06-28 21:49:44 +02:00
Lauri Ojansivu 6938cec583 Updated ChangeLog. 2023-06-28 22:45:33 +03:00
Lauri Ojansivu 3c2cc351f4 Added Snap MONGO_URL to rebuild-wekan.sh dev options. Part 2.
Thanks to xet7 !
2023-06-28 22:44:26 +03:00
Lauri Ojansivu ebeadeef60 Updated ChangeLog. 2023-06-28 22:42:47 +03:00
Lauri Ojansivu 7d59ae93f9 Added Snap MONGO_URL to rebuild-wekan.sh dev options.
Thanks to xet7 !
2023-06-28 22:41:11 +03:00
Lauri Ojansivu 59e15d262f Updated ChangeLog. 2023-06-28 22:37:14 +03:00
Lauri Ojansivu 712417b379 Merge pull request #4983 from mfilser/admin_attachment_view_was_missing_the_column_header_S3FileId
Admin attachment view was missing the column header "S3FileId"
2023-06-28 15:35:57 -04:00
Martin Filser cad55d57d7 Admin attachment view was missing the column header "S3FileId" 2023-06-28 21:30:01 +02:00
Lauri Ojansivu cca7e59eb2 Updated ChangeLog. 2023-06-28 22:27:49 +03:00
Lauri Ojansivu 59a358903a Merge pull request #4982 from mfilser/attachment_copy_changes_now_boardId_listId_and_swimlaneId
attachment copy changes now the boardId, listId and swimlaneId in the collection data
2023-06-28 15:25:52 -04:00
Martin Filser 2eadd3eb8b attachment copy changes now the boardId, listId and swimlaneId in the collection data
- fixing admin attachment view, copied card attachments were wrong if copied to another board / list / swimlane
2023-06-28 21:21:09 +02:00
Lauri Ojansivu 0261bb592e Updated ChangeLog. 2023-06-28 22:12:43 +03:00
Lauri Ojansivu 7862e280ec Merge pull request #4981 from mfilser/copy_checklist_only_copied_the_checklist_items_the_first_time
Copy Checklist only copied the checklist items at the first time, now always
2023-06-28 15:11:40 -04:00
Martin Filser 13fecfae27 Copy Checklist only copied the checklist items at the first time, now always 2023-06-28 21:05:25 +02:00
Lauri Ojansivu b7819cad69 Updated ChangeLog. 2023-06-28 21:39:24 +03:00
Lauri Ojansivu 028fba9996 Merge pull request #4980 from mfilser/copy_checklist_dialog_set_last_selected_board
Copy Checklist dialog now set's the last selected board
2023-06-28 14:36:00 -04:00
Martin Filser ce94433c46 Copy Checklist dialog now set's the last selected board 2023-06-26 18:28:07 +02:00
Lauri Ojansivu 442eefbe6b Updated ChangeLog. 2023-06-26 16:44:44 +03:00
Lauri Ojansivu 84c3b38052 Updated ChangeLog. 2023-06-26 16:42:08 +03:00
Martin Filser 8557d91468 new popup scrolls to top and restore it's previous position after closing again works now at attachments too 2023-06-25 10:44:20 +02:00
Martin Filser 949a3a1337 new popup scrolls to top and restore it's previous position after closing again 2023-06-25 10:44:20 +02:00
Lauri Ojansivu 24288919e2 Merge pull request #4977 from wekan/dependabot/npm_and_yarn/fast-xml-parser-4.2.5
Bump fast-xml-parser from 4.2.4 to 4.2.5
2023-06-22 16:57:53 -04:00
dependabot[bot] 92c57fc91e Bump fast-xml-parser from 4.2.4 to 4.2.5
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.2.4...v4.2.5)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 19:32:48 +00:00
Lauri Ojansivu 9d1e7abd07 v6.98 2023-06-22 22:32:19 +03:00
Lauri Ojansivu 8dfdbe7a16 Updated ChangeLog. 2023-06-22 22:24:09 +03:00
Lauri Ojansivu 15fbe7ca50 Merge pull request #4976 from mfilser/drag_drop_reduce_list_scroll_speed
reduce list scroll speed while drag/drop the minicard
2023-06-22 12:30:04 -04:00
Martin Filser 9aa8bc8921 reduce list scroll speed while drag/drop the minicard 2023-06-22 17:17:40 +02:00
Lauri Ojansivu e90791fdbc Merge pull request #4975 from mfilser/rounding_sort_number_to_next_integer
Rounding sort number to next integer
2023-06-21 17:35:58 -04:00
Martin Filser b869e3efb6 after moving, e.g. minicards, to the list start / end the index is rounded to the next index 2023-06-21 23:16:55 +02:00
Martin Filser 7e8073d621 after moving, e.g. the minicard, round the index to the next integer
- before: at index -1           and -9 the new index was -5
- now   : at index -1 (or -1.1) and -9 the new index is  -2
2023-06-21 23:16:55 +02:00
Martin Filser c10f7b6134 Utils#calculateIndex re-uses the logic of Utils#calculateIndexData
- nearly the same implementation, so use common code base
2023-06-21 23:16:55 +02:00
Lauri Ojansivu 1a71abbc1d Updated ChangeLog. 2023-06-22 00:16:12 +03:00
Lauri Ojansivu 0a46d06c1f Merge pull request #4974 from mfilser/add_checklistitem_at_top
Add checklist-item at top
2023-06-21 17:13:17 -04:00
Martin Filser 23595674cf Add checklist-item at top 2023-06-21 23:09:29 +02:00
Lauri Ojansivu 6fead14c11 Updated ChangeLog. 2023-06-22 00:03:38 +03:00
Martin Filser 52d54f35a3 Add checklist at top 2023-06-21 21:59:48 +02:00
Lauri Ojansivu 3c1eff6241 Updated translations. 2023-06-20 00:26:44 +03:00
Lauri Ojansivu fb2972396a Updated ChangeLog. 2023-06-20 00:24:30 +03:00
Lauri Ojansivu 4d9f76cc68 Merge pull request #4969 from nebulade/favicon-fix
Always fetch favicons from / path
2023-06-19 17:16:51 -04:00
Lauri Ojansivu 924c579680 Merge pull request #4971 from wekan/dependabot/github_actions/docker/build-push-action-4.1.1
Bump docker/build-push-action from 4.1.0 to 4.1.1
2023-06-19 17:15:58 -04:00
Lauri Ojansivu ca2ea2c13e Merge pull request #4970 from wekan/dependabot/github_actions/docker/metadata-action-4.6.0
Bump docker/metadata-action from 4.5.0 to 4.6.0
2023-06-19 17:15:34 -04:00
dependabot[bot] b579dc598b Bump docker/build-push-action from 4.1.0 to 4.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/44ea916f6c540f9302d50c2b1e5a8dc071f15cdf...2eb1c1961a95fc15694676618e422e8ba1d63825)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 20:58:45 +00:00
dependabot[bot] 04c5f60287 Bump docker/metadata-action from 4.5.0 to 4.6.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/2c0bd771b40637d97bf205cbccdd294a32112176...818d4b7b91585d195f67373fd9cb0332e31a7175)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 20:58:41 +00:00
Johannes Zellner 123789aff0 Always fetch favicons from / path 2023-06-19 14:33:36 +02:00
Lauri Ojansivu 74b66fdcaf Updated translations. 2023-06-18 03:31:48 +03:00
Lauri Ojansivu 3f09b54e04 Merge pull request #4968 from simon816/fix-language-not-persisting
Wait until user has logged in before fetching language preference
2023-06-17 20:26:54 -04:00
simon816 c39403c307 Wait until user has logged in before fetching language preference. Fixes #4967 2023-06-18 00:58:16 +01:00
Lauri Ojansivu 13ea7bf3d7 Updated ChangeLog. 2023-06-17 21:01:11 +03:00
Lauri Ojansivu dc2835d341 Added translations: Cantonese (China) (yue_CN) and Chinese Traditional (zh-Hant).
Thanks to translators !
2023-06-17 20:58:21 +03:00
Lauri Ojansivu 94ff2d6a9e Updated ChangeLog. 2023-06-16 12:24:37 +03:00
Lauri Ojansivu 6479c6a5c5 Update rebuild-wekan.sh to use local network IP address.
Thanks to xet7 !
2023-06-16 12:22:18 +03:00
mark 4b04af9a9c popup titles 2023-06-14 14:06:53 -05:00
mark 26d2efdedb make swimlane height adjustable 2023-06-13 13:43:09 -05:00
mark 0ec9c4c37b min working example with listWidth 2023-06-13 12:54:18 -05:00
mark f2e4a280d7 add listWidths to user profile 2023-06-12 22:14:06 -05:00
Lauri Ojansivu a1ddf8e6d2 Merge pull request #4961 from wekan/dependabot/github_actions/docker/login-action-2.2.0
Bump docker/login-action from 2.1.0 to 2.2.0
2023-06-13 00:24:50 +03:00
Lauri Ojansivu 102b39cd29 Merge pull request #4963 from wekan/dependabot/github_actions/docker/build-push-action-4.1.0
Bump docker/build-push-action from 4.0.0 to 4.1.0
2023-06-13 00:24:32 +03:00
Lauri Ojansivu b7373a27b8 Merge pull request #4962 from wekan/dependabot/github_actions/docker/metadata-action-4.5.0
Bump docker/metadata-action from 4.4.0 to 4.5.0
2023-06-13 00:24:16 +03:00
dependabot[bot] fb0b762293 Bump docker/build-push-action from 4.0.0 to 4.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/3b5e8027fcad23fda98b2e3ac259d8d67585f671...44ea916f6c540f9302d50c2b1e5a8dc071f15cdf)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:58:03 +00:00
dependabot[bot] 5b799b4536 Bump docker/metadata-action from 4.4.0 to 4.5.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/c4ee3adeed93b1fa6a762f209fb01608c1a22f1e...2c0bd771b40637d97bf205cbccdd294a32112176)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:58:00 +00:00
dependabot[bot] 8050d7353d Bump docker/login-action from 2.1.0 to 2.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/f4ef78c080cd8ba55a85445d5b36e214a81df20a...465a07811f14bebb1938fbed4728c6a1ff8901fc)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:57:57 +00:00
Lauri Ojansivu 66b1736bb3 Updated translations. 2023-06-12 14:23:04 -04:00
Lauri Ojansivu f33ea5baf0 v6.97 2023-06-10 11:50:16 +03:00
Lauri Ojansivu 5959fd1fd0 Updated ChangeLog. 2023-06-10 11:47:02 +03:00
Lauri Ojansivu c8ec8d456b Reverted Feature: Docker Health Check.
Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/4954
2023-06-10 11:43:59 +03:00
Lauri Ojansivu 87b394949e Updated ChangeLog. 2023-06-10 10:59:48 +03:00
Lauri Ojansivu d93481d840 Updated dependencies.
Thanks to developers of dependencies!
2023-06-10 10:57:57 +03:00
Lauri Ojansivu 20fa441cfe v6.96 2023-06-10 09:43:23 +03:00
Lauri Ojansivu 46281542c5 Updated translations. 2023-06-10 09:37:47 +03:00
Lauri Ojansivu 5de6d5954a Updated ChangeLog. 2023-06-10 09:35:45 +03:00
Lauri Ojansivu 7a3c340d65 Try to fix SVG image failed to render.
Thanks to xet7 !

Fixes #4830
2023-06-10 09:33:43 +03:00
Lauri Ojansivu 5e8669be4e Updated ChangeLog. 2023-06-10 05:13:47 +03:00
Lauri Ojansivu df40384200 Found and fixed more InvisibleBleed of WeKan. Part 2.
Thanks to xet7 !
2023-06-10 05:12:17 +03:00
Lauri Ojansivu 515556a784 Updated ChangeLog. 2023-06-10 03:04:30 +03:00
Lauri Ojansivu af63259f09 Fixed drag-drop at Ubuntu Touch Morph Browser and WeKan OpenStore app by changing jquery-ui-touch-punch to newer updated @rwap/jquery-ui-touch-punch.
Thanks to xet7 !
2023-06-10 02:59:35 +03:00
Lauri Ojansivu bb807d53ba Merge branch 'master' of github.com:wekan/wekan 2023-06-10 00:56:50 +03:00
Lauri Ojansivu 38279e2a32 Updated ChangeLog. 2023-06-10 00:56:21 +03:00
Lauri Ojansivu 3e6b396d09 Clarified required settings for start-wekan.bat and start-wekan.sh .
Thanks to xet7 !
2023-06-10 00:55:00 +03:00
Lauri Ojansivu 42fc182832 Merge pull request #4956 from mfilser/fix_docker_build_of_pr_4954_part_2
fix docker build of PR 4954 (part 2)
2023-06-09 21:26:35 +03:00
Lauri Ojansivu 3f1bba4f1a Updated ChangeLog. 2023-06-09 21:24:31 +03:00
Lauri Ojansivu b008986122 Try to fix Docker build by removing empty continuation lines.
Thanks to xet7 !
2023-06-09 21:23:17 +03:00
Martin Filser 26b30c817c fix docker build of PR 4954 (part 2) 2023-06-09 20:23:04 +02:00
Lauri Ojansivu b1083607d4 Updated ChangeLog. 2023-06-09 21:08:25 +03:00
Lauri Ojansivu 78f9a3303e Merge pull request #4955 from mfilser/fix_docker_build_of_pr_4954
docker build was broken because of wrong curl install
2023-06-09 21:06:57 +03:00
Martin Filser a5519983fe docker build was broken because of wrong curl install
- curl is already installed at the top of Dockerfile
2023-06-09 20:01:33 +02:00
Lauri Ojansivu bc0a879ca1 Updated ChangeLog. 2023-06-09 20:11:46 +03:00
Lauri Ojansivu 4c016169c5 Found and fixed more InvisibleBleed of WeKan.
Thanks to xet7 !
2023-06-09 20:08:25 +03:00
Lauri Ojansivu 46c29a0b97 Updated ChangeLog. 2023-06-09 18:24:26 +03:00
Lauri Ojansivu 9ab0efe87a Fixed Bug Board icons random dance. Hide disabled buggy features of All Boards settings: Cards Count and Board Members.
Thanks to xet7 !

Fixes #4214
2023-06-09 18:22:07 +03:00
Lauri Ojansivu 6638d8215f Updated ChangeLog. 2023-06-09 18:07:12 +03:00
Lauri Ojansivu e1a00090ba Fixed Rare bug: All Boards page icons random dance. Reverted changing migrations. Fixed reordering cards. Part 2.
Fixes #4214

Thanks to xet7 !
2023-06-09 18:03:28 +03:00
Lauri Ojansivu 44bfe89ea8 Updated ChangeLog. 2023-06-09 16:33:28 +03:00
Lauri Ojansivu b75e16f104 Fixed Rare bug: All Boards page icons random dance. Commented out All Boards show members, cards counts, and some migrations.
Fixes #4214

Thanks to xet7 !
2023-06-09 16:27:04 +03:00
Lauri Ojansivu 695cdfcc4e Updated translations. 2023-06-09 12:15:14 +03:00
Lauri Ojansivu 285ef2e36d Updated ChangeLog. 2023-06-09 12:12:52 +03:00
Lauri Ojansivu fb3aa6ef4f Merge pull request #4954 from luketainton/feature/docker-healthcheck
Feature: Docker Health Check
2023-06-09 12:05:00 +03:00
Luke Tainton 0eb5cd05f5 Merge branch 'master' into feature/docker-healthcheck 2023-06-09 09:56:02 +01:00
Lauri Ojansivu 3d1c70b96b Merge pull request #4953 from helioguardabaxo/due-date-card-filter
Fix due date filter for next and this week.
2023-06-08 19:37:53 +03:00
helioguardabaxo 946c288925 Fix due date filter for next and this week. 2023-06-08 12:43:26 -03:00
Lauri Ojansivu 04464dcdb3 Updated translations. 2023-06-08 14:06:58 +03:00
Luke Tainton 8a4f25527e Add health checks to Wekan container 2023-06-08 09:22:59 +01:00
Lauri Ojansivu 581fd9c9fb v6.95 2023-06-07 22:46:24 +03:00
Lauri Ojansivu fbce80a4c8 Updated ChangeLog. 2023-06-07 12:51:18 -04:00
Lauri Ojansivu 1ee3215cf3 Merge branch 'master' of github.com:wekan/wekan 2023-06-07 12:48:39 -04:00
Lauri Ojansivu 95efcbe717 Revert smaller swimlane height.
Thanks to kovacs-andras and xet7 !

Related #4904,
related https://github.com/wekan/wekan/commit/04aaa6f30cfe59769c9b1c75cf8921fcc99b1977
2023-06-07 12:46:40 -04:00
Lauri Ojansivu 594d8a8ba1 v6.94 2023-06-07 16:43:36 +03:00
Lauri Ojansivu 9933f3a583 Updated ChangeLog. 2023-06-07 09:12:18 -04:00
Lauri Ojansivu 23bcf88aa2 Merge pull request #4949 from wekan/dependabot/npm_and_yarn/fast-xml-parser-4.2.4
Bump fast-xml-parser from 4.2.2 to 4.2.4
2023-06-07 16:10:28 +03:00
Lauri Ojansivu 21009f5ffe Updated ChangeLog. 2023-06-07 09:09:21 -04:00
Lauri Ojansivu 2810520612 Merge pull request #4950 from DimDz/master
Edit the title of a swimlane using API
2023-06-07 16:06:27 +03:00
DimDz 3e088b4eb1 add edit swimlane 2023-06-07 16:02:07 +03:00
dependabot[bot] 8e98eebe03 Bump fast-xml-parser from 4.2.2 to 4.2.4
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.2 to 4.2.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 20:54:01 +00:00
Lauri Ojansivu 1f11f8add5 Updated translations. 2023-06-06 14:31:04 -04:00
Lauri Ojansivu 7192bc944b Updated ChangeLog. 2023-06-03 20:40:43 -04:00
Lauri Ojansivu 04aaa6f30c Fix 6.93 with brackground image breaks scrolling on lists within swimlanes.
Thanks to xet7 !

Fixes #4936
2023-06-03 20:38:03 -04:00
Lauri Ojansivu 4405693b1f Updated ChangeLog. 2023-06-03 17:55:09 -04:00
Lauri Ojansivu 47380244b8 Set card attachment as background image. Part 4.
Thanks to xet7 !

Related #486
2023-06-03 17:53:56 -04:00
Lauri Ojansivu 4640effb16 Updated ChangeLog. 2023-06-03 17:28:08 -04:00
Lauri Ojansivu 01a1eb177e Set card attachment as background image. Part 3.
Thanks to xet7 !

Related #486
2023-06-03 17:27:00 -04:00
Lauri Ojansivu 0afac8bbff Updated translations. 2023-06-03 12:45:49 -04:00
Lauri Ojansivu 0a59e9732e Updated ChangeLog. 2023-06-03 12:44:23 -04:00
Lauri Ojansivu ed92db87bc Set card attachment as background image. Part 2.
Thanks to xet7 !

Related #486
2023-06-03 12:43:10 -04:00
Lauri Ojansivu e892a6104a Updated translations. 2023-06-03 09:52:57 -04:00
Lauri Ojansivu d489b4bf23 Updated ChangeLog. 2023-06-03 09:45:40 -04:00
Lauri Ojansivu 8c6df7f20c Set card attachment as background image. In Progress.
Thanks to xet7 !

Related #486
2023-06-03 09:43:27 -04:00
Lauri Ojansivu 49d0fb2eae Updated ChangeLog. 2023-06-03 09:23:47 -04:00
Lauri Ojansivu edf08c8cd4 Updated dependencies.
Thanks to developers of dependencies !
2023-06-03 09:22:23 -04:00
Lauri Ojansivu ebe6946233 Updated translations. 2023-06-03 09:21:14 -04:00
Lauri Ojansivu 54aad2d067 Updated translations. 2023-06-02 10:11:52 -04:00
Lauri Ojansivu d06d22fd65 Updated ChangeLog. 2023-06-02 10:06:35 -04:00
Lauri Ojansivu 940fbda494 Updated translations. 2023-06-02 10:03:51 -04:00
Lauri Ojansivu 58cd17468c Merge pull request #4945 from DimDz/master
Added translations to Sort
2023-06-02 14:01:19 +00:00
DimDz 977c63eb2f Update boardHeader.jade 2023-06-02 12:01:32 +03:00
DimDz b9cbab2577 Update en.i18n.json 2023-06-02 11:59:47 +03:00
Lauri Ojansivu 2dafd52610 Updated translations. 2023-06-01 22:48:35 -04:00
Lauri Ojansivu 3b95728567 Updated ChangeLog. 2023-06-01 20:25:06 -04:00
Lauri Ojansivu 825742359e Renamed Badge to Count of attachments on minicard. Changed icons to Cover image on minicard.
Thanks to xet7 !

Related #4944,
related https://github.com/wekan/wekan/pull/4940
2023-06-01 20:14:58 -04:00
Lauri Ojansivu 56e29dae33 Updated translations. 2023-06-01 19:18:02 -04:00
Lauri Ojansivu 4b005b4b39 Updated ChangeLog. 2023-06-01 12:19:55 -04:00
Lauri Ojansivu 8fb1a45cee Merge pull request #4943 from helioguardabaxo/swimlane-action-icons
Added icons to swimlane action popup
2023-06-01 16:14:16 +00:00
helioguardabaxo 41c1dde504 Added icons to swimlane action popup 2023-06-01 10:12:04 -03:00
Lauri Ojansivu 985ee3df91 Updated ChangeLog. 2023-06-01 08:51:29 -04:00
Lauri Ojansivu 467835192f Changed Add List to be at left. Before it was at right.
Thanks to xet7 !
2023-06-01 08:49:20 -04:00
Lauri Ojansivu 7a929024f2 Updated ChangeLog. 2023-06-01 08:10:56 -04:00
Lauri Ojansivu 6698c34dbb Updated translations. 2023-06-01 08:05:57 -04:00
Lauri Ojansivu 3fbf9ab98f Merge pull request #4941 from helioguardabaxo/add-list-with-position
Added conditional to show after list field only if board has at least…
2023-06-01 11:53:09 +00:00
helioguardabaxo bd747cea24 Added conditional to show after list field only if board has at least one list. Now after list shows the last list by default. 2023-06-01 08:50:04 -03:00
Lauri Ojansivu be61e7c10c Updated translations. 2023-05-31 15:47:30 -04:00
Lauri Ojansivu 515275583e Updated ChangeLog. 2023-05-31 15:18:49 -04:00
Lauri Ojansivu e386c16a7f Merge pull request #4940 from helioguardabaxo/badges-show-minicard
Badges show minicard
2023-05-31 19:16:59 +00:00
Lauri Ojansivu 3bba30cc1e Updated ChangeLog. 2023-05-31 15:13:38 -04:00
Lauri Ojansivu 85f02a1b7c Merge pull request #4939 from helioguardabaxo/attachment-cover-show-minicard
Added option to show/hide cover attachment on minicard
2023-05-31 19:09:59 +00:00
Lauri Ojansivu 528c5f2627 Updated ChangeLog. 2023-05-31 15:08:28 -04:00
Lauri Ojansivu 780e453cf5 Merge pull request #4938 from helioguardabaxo/add-list-with-position
Added list position when create a new list on board
2023-05-31 18:58:02 +00:00
helioguardabaxo f3ebc4a28e Added option to show/hide some badges on minicard 2023-05-31 14:49:02 -03:00
helioguardabaxo 7df32ff4ac Merge branch 'attachment-cover-show-minicard' 2023-05-31 13:47:32 -03:00
helioguardabaxo 985882a4ad Added option to show/hide cover attachment on minicard 2023-05-31 11:52:20 -03:00
helioguardabaxo 986bc27001 Added list position when create a new list on board 2023-05-31 09:12:35 -03:00
Lauri Ojansivu 053f944691 Updated translations. 2023-05-30 12:08:04 -04:00
Lauri Ojansivu 85080519a1 Updated translations. 2023-05-29 21:07:46 -04:00
Lauri Ojansivu 7569cc54ab v6.93 2023-05-29 20:31:25 +03:00
Lauri Ojansivu 923f5d6bb1 Updated ChangeLog. 2023-05-29 20:28:39 +03:00
Lauri Ojansivu c8b82576a3 Merge pull request #4935 from jghaanstra/master
Layout fixes for modern-dark after shuffling labels and date field on minicard
2023-05-29 17:22:50 +00:00
Jelger Haanstra aa8926e61c Layout fixes for modern-dark after shuffling labels and date field on minicard 2023-05-29 19:16:45 +02:00
Lauri Ojansivu 6d6b9c831a v6.92 2023-05-29 19:31:34 +03:00
Lauri Ojansivu 650ed70f92 Updated ChangeLog. 2023-05-29 19:26:38 +03:00
Lauri Ojansivu a3d37e621c Changed Due Date etc dates to be at top of Minicard.
Thanks to xet7 !
2023-05-29 19:22:56 +03:00
Lauri Ojansivu 06799b19b0 Updated ChangeLog. 2023-05-29 17:18:46 +03:00
Lauri Ojansivu e6a13d7220 Merge pull request #4934 from DimDz/master
Fixes for Create Card at Calendar
2023-05-29 14:16:17 +00:00
Lauri Ojansivu 45e2827516 Updated translations. 2023-05-29 17:14:40 +03:00
Lauri Ojansivu 0b395d03f6 Updated ChangeLog. 2023-05-29 17:13:24 +03:00
Lauri Ojansivu 2d8ac3bf80 Fix Docker latest tags at Docker Hub, Quay and GitHub.
Fixes #4933

Thanks to rikhuijzer and xet7 !
2023-05-29 17:09:48 +03:00
DimDz 301580d61a css fixes for modal 2023-05-29 16:38:50 +03:00
DimDz b0a2c590fe Made X close button 2023-05-29 16:38:08 +03:00
Lauri Ojansivu 9bb56d3fc0 Updated translations. 2023-05-28 01:05:47 +03:00
Lauri Ojansivu 8162654d6f Updated ChangeLog. 2023-05-27 22:41:44 +03:00
Lauri Ojansivu b33a3ef254 Moved minicard labels from above minicard title to below minicard title.
Thanks to xet7 !
2023-05-27 22:38:46 +03:00
Lauri Ojansivu a89c52cfdb v6.91 2023-05-27 19:13:39 +03:00
Lauri Ojansivu 06aaf7cb8d Updated translations. 2023-05-27 19:10:06 +03:00
Lauri Ojansivu f929cdae9c Updated translations. 2023-05-27 03:29:48 -04:00
Lauri Ojansivu 20eb6338de Updated translations. 2023-05-27 03:26:44 -04:00
Lauri Ojansivu 6c76c277c7 Updated ChangeLog. 2023-05-27 03:15:54 -04:00
Lauri Ojansivu 49ef80ab6c BoardAdmin and Admin can now set board background image URL.
Thanks to xet7 !

Related #486
2023-05-27 03:10:41 -04:00
Lauri Ojansivu 8b4193149b Updated ChangeLog. 2023-05-27 00:44:06 -04:00
Lauri Ojansivu 2b4dd3b5ce v6.90 2023-05-24 12:28:45 +03:00
Lauri Ojansivu 006560b96d Updated ChangeLog. 2023-05-24 12:21:13 +03:00
Lauri Ojansivu 32ec95ffa8 Sync Docker Registries.
Thanks to xet7 !
2023-05-24 12:19:38 +03:00
Lauri Ojansivu 10c2512d74 Updated ChangeLog. 2023-05-24 11:41:21 +03:00
Lauri Ojansivu 28e5b0bd5b Use GitHub Docker Registry. Updated release scripts.
Thanks to xet7 !
2023-05-24 11:39:26 +03:00
Lauri Ojansivu 87fc4f936a Upgrade Snap Candidate to MongoDB 6.0.6.
Thanks to MongoDB developers !
2023-05-24 11:36:38 +03:00
Lauri Ojansivu 71d3135bd2 Updated ChangeLog. 2023-05-24 10:30:53 +03:00
Lauri Ojansivu 6052b0d042 Updated ChangeLog. 2023-05-21 10:59:54 -04:00
Lauri Ojansivu e83b0ac651 Update docker-compose.yml for better description of Docker images.
Thanks to xet7 !
2023-05-21 10:57:06 -04:00
Lauri Ojansivu 30ada60862 Update docker-compose.yml info about Docker images used.
Thanks to xet7 !
2023-05-21 10:53:10 -04:00
Lauri Ojansivu d136a5206c Updated ChangeLog. 2023-05-18 09:31:10 -04:00
Lauri Ojansivu ea908adbf9 Added Edit Custom Field Value to api.py .
Thanks to RazvanTinca and xet7 !

Fixes #4927
2023-05-18 09:27:59 -04:00
Lauri Ojansivu 97d0eada57 Updated translations. 2023-05-17 15:49:18 +03:00
Lauri Ojansivu 352546f554 Updated translations. 2023-05-16 02:10:05 +03:00
Lauri Ojansivu b583e67ae8 Updated ChangeLog. 2023-05-15 23:48:31 +03:00
Lauri Ojansivu 9de7040401 Moved new_checklist_item API to correct file where is other checklist item API.
Thanks to xet7 !
2023-05-15 23:43:42 +03:00
Lauri Ojansivu 8951d0aa57 v6.89 2023-05-12 20:24:33 +03:00
Lauri Ojansivu 582bc3a4c4 Updated ChangeLog. 2023-05-12 19:59:25 +03:00
Lauri Ojansivu 5f21823c43 Merge pull request #4926 from Aman-Maheshwari/fix-broken-migration-attachements-collectionFs-to-ostrioFiles
Fixed broken migration migrate-attachments-collectionFS-to-ostrioFiles
2023-05-12 19:13:02 +03:00
Aman-Maheshwari 11162585ca fixed broken migration 2023-05-12 21:40:12 +05:30
Lauri Ojansivu dad5d2a905 Fix typo.
Thanks to xet7 !

Related #2687,
related https://github.com/wekan/wekan/pull/4923
2023-05-12 17:07:45 +03:00
Lauri Ojansivu 2d683ea198 Merge pull request #4923 from DimDz/master
Fix for the Create Card at Calendar
2023-05-12 17:05:44 +03:00
DimDz c082a48e67 bugfix for calendar month view 2023-05-12 09:40:05 +03:00
DimDz ba387bcc84 createCardWithDueDate 2023-05-12 09:39:23 +03:00
Lauri Ojansivu c8d1a576b0 v6.88 2023-05-11 23:50:36 +03:00
Lauri Ojansivu 3e691f8b25 Updated ChangeLog. 2023-05-11 23:16:38 +03:00
Lauri Ojansivu f700970cd4 Updated ChangeLog. 2023-05-11 20:04:30 +03:00
Lauri Ojansivu 2828027cc8 Merge pull request #4922 from DimDz/master
Create Card on Calendar View
2023-05-11 19:52:09 +03:00
DimDz 4a5d05a19f Fix typo 2023-05-11 13:15:38 +03:00
DimDz 0867f728d1 Calendar Modal 2023-05-11 12:48:50 +03:00
DimDz 0bd8b298d7 Create Card from Calendar View 2023-05-11 12:48:11 +03:00
Lauri Ojansivu 6d8cf57868 Updated OpenAPI docs.
Thanks to bentiss !

Fixes #4917
2023-05-09 17:29:33 +03:00
Lauri Ojansivu 4790d31ff7 Merge pull request #4918 from bentiss/fix-docs
openapi: also ignores ThrowStatement
2023-05-09 17:27:23 +03:00
Benjamin Tissoires d7243bba77 openapi: also ignores ThrowStatement
This gives an error in the resulting file, which makes it not OpenAPI
compatible (not yaml actually).

Fixes #4917

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2023-05-09 10:13:23 +02:00
Lauri Ojansivu 0225eefa66 Updated ChangeLog. 2023-05-08 23:23:52 +03:00
Lauri Ojansivu 18240c9d07 v6.87 2023-05-08 23:05:56 +03:00
Lauri Ojansivu 4b4fcda66d Updated ChangeLog. 2023-05-08 22:49:34 +03:00
Lauri Ojansivu 97c6b65315 Tried to fix building WeKan OpenAPI docs using Ubuntu 23.04 amd64 with XFCE desktop, but it did not work, still getting error: Failed to parse the source OpenAPI document.
Thanks to xet7 !
2023-05-08 22:46:53 +03:00
Lauri Ojansivu 8f176421da Updated ChangeLog. 2023-05-08 21:54:04 +03:00
Lauri Ojansivu 0bd9f309a1 Added trace warnings options.
Thanks to xet7 !
2023-05-08 21:52:42 +03:00
Lauri Ojansivu 6fb9529518 Updated ChangeLog. 2023-05-08 21:45:37 +03:00
Lauri Ojansivu e6c59fc9b0 Comment out tracing warnings, only to use them when fixing them.
Thanks to xet7 !
2023-05-08 21:42:54 +03:00
Lauri Ojansivu a12d465881 Updated ChangeLog. 2023-05-08 21:36:40 +03:00
Lauri Ojansivu a921bde6ac Merge pull request #4911 from DimDz/master
Add @operation new_checklist_item
2023-05-08 21:30:48 +03:00
Lauri Ojansivu 8fbfd5ad0a Updated ChangeLog. 2023-05-08 21:29:44 +03:00
Lauri Ojansivu acaefab0f4 Merge pull request #4910 from deniszulic/master
Added X for closing
2023-05-08 21:27:18 +03:00
Lauri Ojansivu 952affc6df Updated ChangeLog. 2023-05-08 21:26:37 +03:00
Lauri Ojansivu 521e840b54 Combine commands to one line so that all options work correctly.
Thanks to xet7 !
2023-05-08 21:24:01 +03:00
Lauri Ojansivu 752a558b30 Updated ChangeLog. 2023-05-08 21:21:19 +03:00
Lauri Ojansivu 40c077101a Updated translations. xet7 fixed all translations of advanced filter description. 2023-05-08 21:17:54 +03:00
Lauri Ojansivu f7075f4ccb Updated ChangeLog. 2023-05-08 21:16:43 +03:00
Lauri Ojansivu 9fc5283856 Added to meteor development options for logging also to ../wekan-log.txt, and showing deprecated API that is Meteor v2.12 new feature.
Thanks to Meteor developers and xet7 !
2023-05-08 21:12:36 +03:00
Lauri Ojansivu e0d63db1ab Updated ChangeLog. 2023-05-08 20:59:12 +03:00
Lauri Ojansivu d519429ea1 Upgraded to Meteor 2.12 .
Thanks to Meteor developers !
2023-05-08 20:57:45 +03:00
Lauri Ojansivu e4d3ae4c3f Updated translations. 2023-05-04 02:36:54 +03:00
Lauri Ojansivu f7e45273a1 Try to fix translations. 2023-05-04 00:45:37 +03:00
Lauri Ojansivu f57fc3cd6e Updated translations. 2023-05-03 23:05:54 +03:00
Lauri Ojansivu 033b8c5d48 Updated translations. 2023-05-02 17:24:13 -04:00
DimDz ad26e57e78 @operation edit_card_custom_field 2023-05-02 16:39:49 +03:00
DimDz e9e3e14695 Update checklists.js
https://github.com/wekan/wekan/issues/4562
2023-05-02 15:08:14 +03:00
deniszulic e127c33bae junk removed 2023-05-01 01:18:19 +02:00
deniszulic 5192f4a326 xmark added 2023-05-01 01:08:45 +02:00
Lauri Ojansivu 2260f214ed Updated ChangeLog. 2023-04-29 11:44:38 +03:00
Lauri Ojansivu 2b91557ad2 Updated dependencies.
Thanks to developers of dependencies !
2023-04-29 11:43:09 +03:00
Lauri Ojansivu c1f0017867 Updated translations. 2023-04-29 11:30:42 +03:00
Lauri Ojansivu 20ea0dba95 v6.86 2023-04-26 23:33:37 +03:00
Lauri Ojansivu 712dbb8e73 Add back node-gyp related dependencies. 2023-04-26 23:29:32 +03:00
Lauri Ojansivu f9b760bfc4 v6.86 2023-04-25 03:44:46 +03:00
Lauri Ojansivu 14d2209587 Updated ChangeLog. 2023-04-25 03:38:28 +03:00
Lauri Ojansivu bcd43629cc Update Docker Ubuntu base image and Meteor version.
Thanks to xet7 !
2023-04-25 03:37:06 +03:00
Lauri Ojansivu 8985799c20 Updated ChangeLog. 2023-04-25 03:33:43 +03:00
Lauri Ojansivu 3300bbe9e7 Revert some migration filename changes.
Thanks to xet7 !
2023-04-25 03:32:31 +03:00
Lauri Ojansivu 14bd59a101 Updated ChangeLog. 2023-04-25 03:09:48 +03:00
Lauri Ojansivu c0bdde26cf Remove extra debug message and disable some rarely used feature that produces errors.
Thanas to xet7 !
2023-04-25 03:07:11 +03:00
Lauri Ojansivu 01edbb2351 Updated ChangeLog. 2023-04-25 01:57:16 +03:00
Lauri Ojansivu cbad4cf594 Security Fix: Fix AdminBleed in WeKan, so that non-admin can not change to Admin.
Thanks to Christian Pöschl of usd AG Responsible Disclosure Team for reporting and xet7 for fixing !
2023-04-25 01:54:53 +03:00
Lauri Ojansivu 11b61b8fe2 Merge pull request #4903 from wekan/dependabot/github_actions/docker/metadata-action-4.4.0
Bump docker/metadata-action from 4.3.0 to 4.4.0
2023-04-25 00:06:18 +03:00
dependabot[bot] 1d0da28d9e Bump docker/metadata-action from 4.3.0 to 4.4.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/507c2f2dc502c992ad446e3d7a5dfbe311567a96...c4ee3adeed93b1fa6a762f209fb01608c1a22f1e)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 20:59:06 +00:00
Lauri Ojansivu 23f6c107c6 Updated ChangeLog. 2023-04-24 23:43:54 +03:00
Lauri Ojansivu 95f8a05cbd Updated ChangeLog. 2023-04-24 21:34:02 +03:00
Lauri Ojansivu 167863d957 Escape HTML comment tags so that HTML comments are visible.
Thanks to xet7 !
2023-04-24 21:29:49 +03:00
Lauri Ojansivu 22fc643f25 Updated ChangeLog. 2023-04-24 19:55:20 +03:00
Lauri Ojansivu 4d9d4a9dfd Upgrade to Meteor 2.12-beta.2 .
Thanks to Meteor developers!
2023-04-24 19:52:53 +03:00
Lauri Ojansivu 93766fe6ed Updated ChangeLog. 2023-04-21 22:05:38 +03:00
Lauri Ojansivu aef6967d4c Fix Exception in callback of async function: TypeError: this._now is not a function. Part 2.
Thanks to xet7 !
2023-04-21 22:03:47 +03:00
Lauri Ojansivu 0d4ec25593 Updated ChangeLog. 2023-04-21 21:39:50 +03:00
Lauri Ojansivu 2b13158fcd Feature: Show plus sign in front of attachments.
Thanks to Meeques and xet7 !

Fixes #4900
2023-04-21 21:23:38 +03:00
Lauri Ojansivu a1ff7b9673 Updated ChangeLog. 2023-04-21 21:17:42 +03:00
Lauri Ojansivu aeb0f1e6d8 Fix Exception in callback of async function: TypeError: this._now is not a function.
Thanks to xet7 !
2023-04-21 21:15:00 +03:00
Lauri Ojansivu 5034c957ba Updated translations. 2023-04-19 15:12:58 +03:00
Lauri Ojansivu 620f932dcd Updated ChangeLog. 2023-04-18 03:07:44 +03:00
Lauri Ojansivu 5f5c75bb0f Updated ChangeLog. 2023-04-18 03:01:47 +03:00
Lauri Ojansivu 7184f4c66e v6.85 2023-04-18 01:52:40 +03:00
Lauri Ojansivu 1d5c2c63b9 Updated ChangeLog. 2023-04-18 01:40:21 +03:00
Lauri Ojansivu f660aa13d1 Updated ChangeLog. 2023-04-18 01:36:19 +03:00
Lauri Ojansivu 47ac33d6c2 Security fix to ReactionBleed in WeKan. It is XSS in feature "Reaction to comment".
Thanks to Alexander Starikov at Jet Infosystems (https://jetinfosystems.com/).
2023-04-18 01:30:54 +03:00
Lauri Ojansivu ce35799506 Updated ChangeLog. 2023-04-18 00:41:55 +03:00
Lauri Ojansivu 418fe725e5 Fix Card opens full width by opening at left.
Thanks to xet7 !

Fixes #4886
2023-04-18 00:38:09 +03:00
Lauri Ojansivu ba7818c51e Updated ChangeLog. 2023-04-18 00:25:00 +03:00
Lauri Ojansivu 9af03b0416 Fixed count of found cards in Global Search.
Thanks to xet7 !
2023-04-18 00:21:34 +03:00
Lauri Ojansivu 0defe76fe3 Updated ChangeLog. 2023-04-17 23:43:57 +03:00
Lauri Ojansivu 76ac070f9b Save files serverside with filename ObjectID, without filename.
Thanks to g-roliveira, iamabrantes, Floaz, koelle25, scott-dunt, mfilser and xet7 !

Fixes #4416
2023-04-17 23:42:56 +03:00
Lauri Ojansivu f0a6fa68ea Updated ChangeLog. 2023-04-17 22:40:25 +03:00
Lauri Ojansivu 2da7b1d542 Fix LDAP Group Filtering does not work.
Thanks to emilburggraf, psteinforth, craig-silva, Daniel-H76, benh57, falkheiland and xet7 !

Fixes wekan/ldap#64
2023-04-17 22:33:34 +03:00
Lauri Ojansivu 053e817393 Updated ChangeLog. 2023-04-14 15:18:28 +03:00
Lauri Ojansivu f11650ece1 Added more descriptive times of attachment migrations and uploads.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4891
2023-04-14 15:16:50 +03:00
Lauri Ojansivu aff94a6770 Updated ChangeLog. 2023-04-14 15:05:31 +03:00
Lauri Ojansivu 0090734cd8 Added uploadedAt and copies to be migrated when migrating CollectionFS to ostrio-files.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4891
2023-04-14 15:02:57 +03:00
Lauri Ojansivu af816fe50f Updated ChangeLog. 2023-04-14 14:24:27 +03:00
Lauri Ojansivu e7122a9b36 Disable file validation temporarily, because it causes data loss of some attachments when upgrading.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4891
2023-04-14 14:20:39 +03:00
Lauri Ojansivu 1db4161538 Updated translations. 2023-04-13 22:24:31 +03:00
Lauri Ojansivu 2295b218e3 Updated translations. 2023-04-12 08:25:50 +03:00
Lauri Ojansivu 0053ce2708 Updated ChangeLog. 2023-04-12 08:24:44 +03:00
Lauri Ojansivu fb37f48a86 Updated dependencies. 2023-04-12 08:23:22 +03:00
Lauri Ojansivu 974ad26f06 v6.84 2023-04-11 15:43:26 +03:00
Lauri Ojansivu 5539653492 Updated translations. 2023-04-11 15:33:10 +03:00
Lauri Ojansivu 11e8cbf66f Update transifex URLs. 2023-04-11 11:37:46 +03:00
Lauri Ojansivu a45feacd3f Updated ChangeLog. 2023-04-11 11:25:59 +03:00
Lauri Ojansivu 9aeb5b4f05 Merge pull request #4884 from helioguardabaxo/master
Added 'next week' due date filter
2023-04-11 11:22:16 +03:00
Lauri Ojansivu ed0fa5df5c Merge pull request #4883 from mfilser/drag_drop_card_empty_swimlanes
get card drag/drop working for empty swimlanes
2023-04-11 11:15:28 +03:00
helioguardabaxo 70de2d48be Added 'next week' due date filter 2023-04-10 20:54:22 -03:00
Martin Filser c0acc336cc get card drag/drop working for empty swimlanes
fixes this issues:
- #4033
- #4032
- #3415
- #1887

related to this discussion:
- #4868
2023-04-08 10:21:36 +02:00
Lauri Ojansivu c068dfe87b v6.83 2023-04-08 02:25:07 +03:00
Lauri Ojansivu 21f37db562 Updated ChangeLog. 2023-04-08 02:20:51 +03:00
Lauri Ojansivu 030faf918e Fix open card position by opening card to fullscreen.
Thanks to SmartPhoneLover, BabyFnord and xet7 !

Fixes #4882
2023-04-08 02:10:31 +03:00
Lauri Ojansivu 8df318bced v6.82 2023-04-07 00:24:34 +03:00
Lauri Ojansivu bbf1f3a43f Updated ChangeLog. 2023-04-07 00:17:14 +03:00
Lauri Ojansivu f258d8d517 Try to fix card open position.
Thanks to xet7 !

Fixes #4572
2023-04-07 00:15:49 +03:00
Lauri Ojansivu 0985438df5 Updated ChangeLog. 2023-04-06 16:59:27 +03:00
Lauri Ojansivu 9d0956511d Merge pull request #4880 from gustavengstrom/master
Fixes broken add_board_member API and return value for remove_board_member
2023-04-06 16:57:58 +03:00
Lauri Ojansivu d6b8c76cc7 Updated translations. 2023-04-06 16:52:51 +03:00
Gustav Engström 7d69bd5c46 Fixes broken add_board_member API call and fixes return value for remove_board_member. 2023-04-05 22:10:11 +02:00
Lauri Ojansivu cfd283e7e3 Merge pull request #4876 from mfilser/fix_avatar_user_undefined
fix avatar if Meteor.user() is undefined
2023-04-04 11:09:34 +03:00
Martin Filser 999c20f3fa fix avatar if Meteor.user() is undefined 2023-04-01 10:45:06 +02:00
Lauri Ojansivu 85f9996b41 Updated readme. 2023-03-29 20:48:15 +03:00
Lauri Ojansivu c4e07d6a53 Updated translations. 2023-03-27 23:28:01 +03:00
Lauri Ojansivu 2aba1e3bf9 Added missing docs of Snap avatars max size etc.
Thanks to xet7 !
2023-03-27 22:05:08 +03:00
Lauri Ojansivu 5e5847c5e4 Updated translations. 2023-03-27 03:04:15 +03:00
Lauri Ojansivu 224c257c4f v6.81 2023-03-26 20:36:49 +03:00
Lauri Ojansivu 28a0a97ca4 Updated translations. 2023-03-26 20:24:28 +03:00
Lauri Ojansivu 662a4a5f00 Updated ChangeLog. 2023-03-26 14:05:18 +03:00
Lauri Ojansivu df152e292d Disable MongoDB telemetry and free monitoring in WeKan Snap.
Thanks to webenefits and xet7 !

Related #4855
2023-03-26 14:03:17 +03:00
Lauri Ojansivu d92a97ff1e Updated translations. 2023-03-26 13:51:02 +03:00
Lauri Ojansivu 115cb016a0 Updated translations. 2023-03-26 13:31:12 +03:00
Lauri Ojansivu 7cda243b42 Updated translations. 2023-03-26 12:48:06 +03:00
Lauri Ojansivu 46b573462f Updated ChangeLog. 2023-03-26 12:44:52 +03:00
Lauri Ojansivu 5b3bd8ff2a Add some info about allowed filesizes and filetypes for attachments and avatars.
Thanks to Meeques and xet7 !

Fixes #4863
2023-03-26 12:41:44 +03:00
Lauri Ojansivu 6faae766a8 Updated ChangeLog. 2023-03-26 11:22:38 +03:00
Lauri Ojansivu bf636725e8 Fix Bug: Cardoptions disappear behind scrollbar in german.
Thanks to Meeques and xet7 !

Fixes #4865
2023-03-26 11:20:15 +03:00
Lauri Ojansivu bafba7aa6a Updated jquery. 2023-03-25 02:29:40 +00:00
Lauri Ojansivu e1984831bd Updated ChangeLog. 2023-03-24 21:34:38 +02:00
Lauri Ojansivu c826438328 v6.80 2023-03-23 22:18:18 +02:00
Lauri Ojansivu e39390ab92 Updated ChangeLog. 2023-03-23 22:14:16 +02:00
Lauri Ojansivu 120f57894f Merge pull request #4864 from mfilser/custom_fields_hide_grid_button_if_1_field
Custom Fields, display Grid Button only if more than 1 custom field
2023-03-22 20:10:41 +00:00
Martin Filser b89a01fddf Custom Fields, display Grid Button only if more than 1 custom field 2023-03-22 07:49:55 +01:00
Lauri Ojansivu 21e4a64dc7 v6.79 2023-03-22 00:07:24 +02:00
Lauri Ojansivu 4aeab872de Use MongoDB 6.
Thanks to xet7 !
2023-03-21 23:59:17 +02:00
Lauri Ojansivu a0a2c9375e Updated translations. 2023-03-21 07:50:10 +02:00
Lauri Ojansivu d1dd9ba955 Updated ChangeLog. 2023-03-21 07:49:45 +02:00
Lauri Ojansivu e48db7d7ea Upgraded to Meteor 2.11.0 .
Thanks to Meteor developers !
2023-03-21 07:48:22 +02:00
Lauri Ojansivu 239dea793a Updated ChangeLog. 2023-03-21 07:32:26 +02:00
Lauri Ojansivu b0ce378629 Merge pull request #4857 from mfilser/avatar_broken_if_no_size_is_configured
Avatar upload was broken if no size is configured
2023-03-16 16:22:59 +01:00
Martin Filser 7de50c0f4b Bugfix, Avatar upload message "avatar-too-big" shows now the configured max filesize 2023-03-15 19:43:02 +01:00
Martin Filser 07926386ea Bugfix, Avatar Upload didn't work if AVATARS_UPLOAD_MAX_SIZE wasn't defined or lower or equal to 0 2023-03-15 19:43:02 +01:00
Lauri Ojansivu f1c962fbbc v6.78 2023-02-28 14:21:46 +02:00
Lauri Ojansivu 5d79c231ed Try to fix some security issue.
Thanks to Responsible Security Disclousure contributors and xet7 !
2023-02-28 14:16:08 +02:00
Lauri Ojansivu 972f0481e5 v6.77 2023-02-27 17:29:57 +02:00
Lauri Ojansivu 49781aae17 Updated ChangeLog. 2023-02-27 17:26:08 +02:00
Lauri Ojansivu 51f22f48dc Use MongoDB 5 at docker-compose.yml .
Thanks to xet7 !
2023-02-27 17:24:54 +02:00
Lauri Ojansivu a64381153f MongoDB to 5 for beta Snap. MongoDB 5 does not seem to show some errors that only MongoDB 6 has. 2023-02-27 17:03:47 +02:00
Lauri Ojansivu 10280966ac Updated ChangeLog. 2023-02-27 17:01:23 +02:00
Lauri Ojansivu 16ad6bf9fc Try to fix attachment migrations to ostrioFiles, allow existing files to be migrated. Part 2.
Thanks to xet7 !

Related #4780,
related https://github.com/wekan/wekan/pull/4648
2023-02-27 16:58:12 +02:00
Lauri Ojansivu 1aa5c23bba Updated ChangeLog. 2023-02-27 16:44:00 +02:00
Lauri Ojansivu 9216a69c05 Temporarily disable file validation, because it prevents migrating some attachments at wekan/server/migrations.js to ostrio Meteor-Files.
Thanks to xet7 !

Related #4780,
related https://github.com/wekan/wekan/pull/4648
2023-02-27 16:38:16 +02:00
Lauri Ojansivu 7b2cff4c5e Fix attachment migration error about avatarUrl startsWith undefined.
Thanks to xet7 !

Related #4780
2023-02-27 16:31:43 +02:00
Lauri Ojansivu bf42958059 Updated ChangeLog. 2023-02-26 01:38:01 +02:00
Lauri Ojansivu 1deccf2f4b Added "Move card to archive" to minicard ☰ menu.
Thanks to mohammadZahedian and xet7 !

Fixes #4303
2023-02-26 01:35:42 +02:00
Lauri Ojansivu 57755ef413 Updated ChangeLog. 2023-02-26 00:50:46 +02:00
Lauri Ojansivu c2cf850179 Made ☰ menu buttons bigger at minicard and list.
Thanks to mohammadZahedian and xet7 !

Fixes #4303
2023-02-26 00:47:59 +02:00
Lauri Ojansivu 67838ae29e Updated translations. 2023-02-26 00:47:02 +02:00
Lauri Ojansivu 4d22477477 Updated ChangeLog. 2023-02-26 00:26:45 +02:00
Lauri Ojansivu 96b5ed1df6 Merge pull request #4846 from Entepotenz/master
fix indentation for image  size and compression
2023-02-26 00:24:07 +02:00
Florian Kretschmer b9ec43c0f7 fix indentation for image size and compression 2023-02-25 23:00:13 +01:00
Lauri Ojansivu 8a0899a819 Updated ChangeLog. 2023-02-23 17:00:16 +02:00
Lauri Ojansivu e390852a67 Updated release scripts. 2023-02-23 16:56:55 +02:00
Lauri Ojansivu c4083c23d6 Back to Snap Candidate MongoDB 6.x 2023-02-22 02:47:42 +02:00
Lauri Ojansivu bdc751ac24 MongoDB 5.x to WeKan Snap Beta channel only. 2023-02-22 02:31:01 +02:00
Lauri Ojansivu 0e23975964 Updated ChangeLog. 2023-02-22 01:56:41 +02:00
Lauri Ojansivu ad53414c4d Updated release scripts.
Thanks to xet7 !
2023-02-22 01:52:57 +02:00
Lauri Ojansivu 23e01130e9 Updated release scripts.
Thanks to xet7 !
2023-02-22 01:20:42 +02:00
Lauri Ojansivu f779c35d0e Updated ChangeLog. 2023-02-22 00:44:07 +02:00
Lauri Ojansivu 6e5d260fd2 v6.76 2023-02-22 00:38:20 +02:00
Lauri Ojansivu 691efb7843 Updated ChangeLog. 2023-02-22 00:09:37 +02:00
Lauri Ojansivu 67500abcd4 Removed Mermaid, because newest Mermaid does not work anymore.
Thanks to xet7 !
2023-02-22 00:07:59 +02:00
Lauri Ojansivu 092b121c38 Updated ChangeLog. 2023-02-21 23:52:06 +02:00
Lauri Ojansivu c27a2b22c6 Part 2. Fix at bottom of list Add button to be higher, so that text Add is not over button borders.
Thanks to WeKan commercial support customer and xet7.
2023-02-21 23:50:22 +02:00
Lauri Ojansivu 9213451dca Updated ChangeLog. 2023-02-21 21:55:42 +02:00
Lauri Ojansivu 139a1c0f78 Fix at bottom of list Add button to be higher, so that text Add is not over button borders.
Thanks to WeKan commercial support customer and xet7.
2023-02-21 21:49:20 +02:00
Lauri Ojansivu 41d5ecd605 Updated ChangeLog. 2023-02-21 21:30:23 +02:00
Lauri Ojansivu fd9478dc57 Try to fix build errors on some platforms.
Thanks to xet7 !

Related #4842
2023-02-21 21:27:34 +02:00
Lauri Ojansivu f1092c6f40 Back to Snap Candidate MongoDB 6.x 2023-02-21 04:47:50 +02:00
Lauri Ojansivu 51b31df2c8 Snap Beta channel MongoDB 5.x 2023-02-21 04:11:22 +02:00
Lauri Ojansivu 2f46f2a888 Updated ChangeLog. 2023-02-21 02:54:26 +02:00
Lauri Ojansivu cae0b29500 Updated release scripts.
Thanks to xet7 !
2023-02-21 02:52:40 +02:00
Lauri Ojansivu aa0e1955b0 v6.75 2023-02-21 02:43:03 +02:00
Lauri Ojansivu 78bac6ca99 Updated ChangeLog. 2023-02-20 16:49:08 -05:00
Lauri Ojansivu 382168a5b4 Try to fix some security issues. Part 2.
Thanks to responsible security disclosure contributors and xet7 !
2023-02-20 16:48:02 -05:00
Lauri Ojansivu e34cfad06b Merge pull request #4840 from robert-scheck/typo
Fix typo
2023-02-20 15:25:18 +02:00
Lauri Ojansivu 71f6697f55 Updated ChangeLog. 2023-02-20 01:26:08 +02:00
Lauri Ojansivu ff993e7c91 Try to fix some security issues.
Thanks to responsible security disclosure contributors and xet7 !
2023-02-20 01:21:33 +02:00
Lauri Ojansivu b349ecbdf7 Updated ChangeLog. 2023-02-20 01:03:59 +02:00
Lauri Ojansivu c3577aa434 Swipebox slide background gradient of black to blue, so that back SVG images are visible.
Thanks to xet7 !
2023-02-20 01:02:02 +02:00
Lauri Ojansivu ed5ab735b4 Updated ChangeLog. 2023-02-20 00:34:43 +02:00
Lauri Ojansivu ed058914b5 Updated webmanifest to have PWA as fullscreen.
Thanks to xet7 !
2023-02-20 00:13:48 +02:00
Robert Scheck c730dd1523 Fix typo 2023-02-19 03:34:51 +01:00
Lauri Ojansivu ba418cb0e7 Updated ChangeLog. 2023-02-18 01:22:41 +02:00
Lauri Ojansivu dd6e7372b7 Updated to Node.js v14.21.3. Thanks to Node.js developers. 2023-02-18 01:21:28 +02:00
Lauri Ojansivu 32bce898f4 Updated contributing 2023-02-16 00:22:52 +02:00
Lauri Ojansivu aca50e7dda Updated contributing 2023-02-16 00:19:39 +02:00
Lauri Ojansivu 42550c2637 Updated contributing. 2023-02-16 00:16:00 +02:00
Lauri Ojansivu 7cd4271881 Updated ChangeLog. 2023-02-15 12:51:55 +02:00
Lauri Ojansivu b04f504adc Merge pull request #4835 from garciadavy/garciadavy-fix-top10-metric
Fix "Top 10 boards" metric order
2023-02-15 12:49:42 +02:00
garciadavy f8bc186252 Fix "Top 10 boards" metric order 2023-02-15 11:27:59 +01:00
Lauri Ojansivu 3083302e14 Updated ChangeLog. 2023-02-14 01:14:51 +02:00
Lauri Ojansivu 6f3e187dfb Updated ChangeLog. 2023-02-14 01:12:48 +02:00
Lauri Ojansivu bc61e6c4f0 And back. 2023-02-14 01:09:25 +02:00
Lauri Ojansivu 3bdbc80c30 MongoDB 5 to Snap Beta Channel for Meridiana.
Thanks to Meridiana and xet7 !
2023-02-13 22:16:44 +02:00
Lauri Ojansivu d7554fc585 v6.74 2023-02-10 14:56:07 +02:00
Lauri Ojansivu a909ddfca8 Updated ChangeLog. 2023-02-10 14:52:41 +02:00
Lauri Ojansivu 7ca4894789 Fix typos in Snap config.
Thanks to urmel1960 and xet7 !

Fixes #4824
2023-02-10 14:50:43 +02:00
Lauri Ojansivu e2b94c9bcb v6.73 2023-02-10 13:00:15 +02:00
Lauri Ojansivu c16f7eaf22 Updated ChangeLog. 2023-02-10 12:56:16 +02:00
Lauri Ojansivu d9a7e135d3 Try to fix building WeKan. 2023-02-10 12:49:12 +02:00
Lauri Ojansivu 4bb63a147e Updated ChangeLog. 2023-02-10 12:34:00 +02:00
Lauri Ojansivu 10c1df7af4 Updated dependencies.
Thanks to developers of dependencies !
2023-02-10 12:32:09 +02:00
Lauri Ojansivu fbd2b7e46b Updated translations. 2023-02-10 12:31:25 +02:00
Lauri Ojansivu 11151b2359 Updated ChangeLog. 2023-02-10 12:30:47 +02:00
Lauri Ojansivu b5d35d4645 Back to MongoDB 6.x
Thanks to urmel1960 and xet7 !

Fixes #4824
2023-02-10 12:29:09 +02:00
Lauri Ojansivu 953a355e63 Merge pull request #4831 from garciadavy/garciadavy-fix-metrics-label
Fix double quotes around metric label
2023-02-10 12:07:09 +02:00
garciadavy 962fb70b16 Fix double quotes around metric label 2023-02-09 17:20:17 +01:00
Lauri Ojansivu 27971e6a66 Updated ChangeLog. 2023-02-07 04:58:17 -05:00
Lauri Ojansivu 3c5ab1ad72 Merge pull request #4829 from q16marvin/master
Update docker-compose.yml
2023-02-07 09:10:28 +02:00
q16marvin b7b8b05661 Update docker-compose.yml 2023-02-07 07:52:59 +01:00
Lauri Ojansivu d8bbcd8e03 Try to fix Snap. 2023-02-02 16:08:32 +02:00
Lauri Ojansivu 9946cb60fa Try to fix Snap. 2023-02-02 16:03:42 +02:00
Lauri Ojansivu a22319f3ab v6.72 2023-02-02 15:05:40 +02:00
Lauri Ojansivu 7a00f3628a Try to fix Snap plugins. 2023-02-02 14:51:29 +02:00
Lauri Ojansivu de49900961 Fix snapcraft plugins. 2023-02-02 14:50:29 +02:00
Lauri Ojansivu 1733203f8e Try MongoDB 5, shell and tool.
Thanks to xet7 !
2023-02-02 14:48:04 +02:00
Lauri Ojansivu e3f4049943 Updated translations. 2023-02-02 14:25:49 +02:00
Lauri Ojansivu 2ae344e685 Updated translations. 2023-02-02 14:18:22 +02:00
Lauri Ojansivu f049a44280 Updated dependencies.
Thanks to developers of dependencies !
2023-02-01 21:05:14 +02:00
Lauri Ojansivu d8593c68e9 Updated translations. 2023-02-01 20:54:36 +02:00
Lauri Ojansivu c1261baaee Updated translations. 2023-02-01 15:54:44 +02:00
Lauri Ojansivu c78ed0828f Updated translations. 2023-02-01 15:50:36 +02:00
Lauri Ojansivu 9b31604c0c Updated ChangeLog. 2023-02-01 15:39:19 +02:00
Lauri Ojansivu a9c66d1883 Updated ChangeLog. 2023-02-01 15:37:23 +02:00
Lauri Ojansivu 362fb66b84 Updated dependencies.
Thanks to developers of dependencies !
2023-02-01 15:36:19 +02:00
Lauri Ojansivu a3e3e70a3a Merge pull request #4818 from wekan/dependabot/github_actions/docker/build-push-action-4.0.0
Bump docker/build-push-action from 3.3.0 to 4.0.0
2023-01-30 22:31:37 +02:00
dependabot[bot] b4963d872b Bump docker/build-push-action from 3.3.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/37abcedcc1da61a57767b7588cb9d03eb57e28b3...3b5e8027fcad23fda98b2e3ac259d8d67585f671)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 20:10:05 +00:00
Lauri Ojansivu e108dbd02c Updated translations. 2023-01-30 15:11:33 +02:00
Lauri Ojansivu 2442e2a372 Updated translations. 2023-01-30 15:11:05 +02:00
Lauri Ojansivu cfbbab6b86 Updated ChangeLog. 2023-01-30 15:08:24 +02:00
Lauri Ojansivu d32d46d22d Updated ChangeLog. 2023-01-30 14:53:26 +02:00
Lauri Ojansivu 0043fe010f Upgrade Snap Candidate to MongoDB 6.0.4.
Thanks to MongoDB developers.
2023-01-30 14:51:54 +02:00
Lauri Ojansivu b13ebcea12 Updated ChangeLog. 2023-01-30 14:25:28 +02:00
Lauri Ojansivu 38af077a94 Upgraded to Meteor 2.11.0-beta.0 for MongoDB 6.x support https://github.com/meteor/meteor/pull/12470.
Thanks to Meteor developers!
2023-01-30 14:17:15 +02:00
Lauri Ojansivu bed2669ff8 Updated translations. 2023-01-30 14:15:22 +02:00
Lauri Ojansivu 7d7c45c33f Updated translations. 2023-01-30 14:10:07 +02:00
Lauri Ojansivu c7330a47a0 Updated translations. 2023-01-30 14:08:05 +02:00
Lauri Ojansivu 2d7639262f Updated translations. 2023-01-23 03:57:08 +02:00
Lauri Ojansivu f93219c293 Merge pull request #4813 from jghaanstra/master
Small improvements modern-dark theme
2023-01-22 17:36:23 +02:00
Jelger Haanstra 1124117f0c Small improvements modern-dark theme 2023-01-21 09:53:26 +01:00
Jelger Haanstra 133a81b08c Small improvements modern-dark theme 2023-01-21 09:46:03 +01:00
Lauri Ojansivu 0609629d75 v6.71 2023-01-17 23:29:40 +02:00
Lauri Ojansivu 1362f0f58d Updated ChangeLog. 2023-01-17 23:12:41 +02:00
Lauri Ojansivu beaa50551d Fix Customfields are not added to new cards created with the API.
Thanks to HEMGDevelopment and xet7 !

Fixes #4810
2023-01-17 23:09:51 +02:00
Lauri Ojansivu de67f4fdc7 Updated ChangeLog. 2023-01-17 21:34:14 +02:00
Lauri Ojansivu eda2b3b406 Fix API Edit card function does nothing.
Thanks to gu1ll0me, HEMGDevelopment and xet7 !

Fixes #4701
2023-01-17 21:31:16 +02:00
Lauri Ojansivu c38cbf920c Updated ChangeLog. 2023-01-17 20:18:36 +02:00
Lauri Ojansivu 434ce9f7c4 Upgraded to Meteor 2.10.0.
Thanks to Meteor developers!
2023-01-17 20:17:13 +02:00
Lauri Ojansivu bd0b539183 Merge pull request #4809 from wekan/dependabot/github_actions/docker/metadata-action-4.3.0
Bump docker/metadata-action from 4.1.1 to 4.3.0
2023-01-16 22:07:29 +02:00
Lauri Ojansivu 1e73f9b909 Merge pull request #4808 from wekan/dependabot/github_actions/docker/build-push-action-3.3.0
Bump docker/build-push-action from 3.2.0 to 3.3.0
2023-01-16 22:07:07 +02:00
dependabot[bot] e0aad13fef Bump docker/metadata-action from 4.1.1 to 4.3.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.1.1 to 4.3.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/57396166ad8aefe6098280995947635806a0e6ea...507c2f2dc502c992ad446e3d7a5dfbe311567a96)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 20:05:52 +00:00
dependabot[bot] 05139ed553 Bump docker/build-push-action from 3.2.0 to 3.3.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/c56af957549030174b10d6867f20e78cfd7debc5...37abcedcc1da61a57767b7588cb9d03eb57e28b3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 20:05:48 +00:00
Lauri Ojansivu 93845a00eb Updated ChangeLog. 2023-01-16 15:15:21 +02:00
Lauri Ojansivu cd1750f368 Forked minio npm package to @wekanteam/minio to update package dependencies. S3/MinIO support In Progress.
Thanks to xet7 !

Related #142
2023-01-16 15:11:31 +02:00
Lauri Ojansivu 617d4f9fbf v6.70 2023-01-13 22:23:40 +02:00
Lauri Ojansivu cc90291192 Try to fix User API. Part 2.
Thanks to xet7 !

Fixes #4039
2023-01-13 22:14:39 +02:00
Lauri Ojansivu 8092f8be28 Try to fix User API.
Thanks to xet7 !

Fixes #4039
2023-01-13 21:50:39 +02:00
Lauri Ojansivu c817deef9e Merge pull request #4805 from wekan/dependabot/github_actions/helm/chart-releaser-action-1.5.0
Bump helm/chart-releaser-action from 1.4.1 to 1.5.0
2023-01-09 22:24:52 +02:00
dependabot[bot] 5379541733 Bump helm/chart-releaser-action from 1.4.1 to 1.5.0
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](https://github.com/helm/chart-releaser-action/compare/v1.4.1...v1.5.0)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 20:07:28 +00:00
Lauri Ojansivu 83fb18b868 v6.69 2023-01-09 17:16:55 +02:00
Lauri Ojansivu a7fb36bebb Updated ChangeLog. 2023-01-09 17:10:15 +02:00
Lauri Ojansivu 17a06ad1b1 Updated dependencies.
Thanks to developers of dependencies !
2023-01-09 17:08:28 +02:00
Lauri Ojansivu 733c0e1710 Updated translations. 2023-01-09 14:58:22 +02:00
Lauri Ojansivu 1511009c6f 6.68 2023-01-07 02:18:41 +02:00
Lauri Ojansivu 2baaf6bea5 v6.68 2023-01-07 02:15:23 +02:00
Lauri Ojansivu e7d5879ef4 Updated ChangeLog. 2023-01-07 01:46:45 +02:00
Lauri Ojansivu a0318e59c1 Upgraded to Meteor 2.9.1. Thanks to Meteor developers. 2023-01-07 01:45:28 +02:00
Lauri Ojansivu e5ad06d7f1 Updated translations. 2023-01-07 01:35:53 +02:00
Lauri Ojansivu 608059b1ce Updated ChangeLog. 2023-01-07 01:35:34 +02:00
Lauri Ojansivu bc67b5c3bc Fix OIDC login loop for integer user ID.
Thanks to danielkaiser !

Fixes #4795,
related https://github.com/wekan/wekan/commit/f2a92be01a753c5752284d221706c6efb0dd60a7
2023-01-07 01:33:28 +02:00
Lauri Ojansivu 38e8aad9cf Updated ChangeLog. 2023-01-07 01:23:52 +02:00
Lauri Ojansivu 4a5cd5b001 Merge pull request #4801 from markormesher/patch-1
add "use-credentials" directive to site.webmanifest request
2023-01-07 01:22:15 +02:00
Mark Ormesher e2cbe751ec add "use-credentials" directive to site.webmanifest request 2023-01-04 13:52:49 +00:00
Lauri Ojansivu f7e2267498 v6.67 2023-01-03 17:31:49 +02:00
Lauri Ojansivu 4c814ce3fe Updated dependencies.
Thanks to developers of dependencies !
2023-01-03 17:25:19 +02:00
Lauri Ojansivu ec51e4cf39 Updated translations. 2023-01-03 17:21:45 +02:00
Lauri Ojansivu dda37688ad Updated ChangeLog. 2023-01-03 16:53:38 +02:00
Lauri Ojansivu f2a92be01a Fix OIDC login loop for integer user ID.
Thanks to danielkaiser and xet7 !

Fixes #4795
2023-01-03 16:51:35 +02:00
Lauri Ojansivu 5591319259 Updated ChangeLog. 2022-12-28 10:32:41 +02:00
Lauri Ojansivu f20656909b Updated dependencies.
Thanks to developers of dependencies !
2022-12-28 10:30:27 +02:00
Lauri Ojansivu d184779cc3 v6.65 2022-12-27 22:23:12 +02:00
Lauri Ojansivu 0ae8e4912b Updated dependencies.
Thanks to developers of dependencies !
2022-12-27 22:18:39 +02:00
Lauri Ojansivu 67742c8070 Updated ChangeLog. 2022-12-27 21:49:18 +02:00
Lauri Ojansivu 391607ec79 Store files to S3. Part 4. In Progress.
Thanks to xet7 !
2022-12-27 21:42:06 +02:00
Lauri Ojansivu fc68b68069 Updated ChangeLog. 2022-12-26 20:17:30 +02:00
Lauri Ojansivu f1ff6d1e1f Fixed Windows bundle build script and updated newest Windows WeKan release.
Thanks to xet7 !

Fixes #4707
2022-12-26 20:14:49 +02:00
Lauri Ojansivu 8aaabb5a3a Updated translations. 2022-12-26 15:21:07 +02:00
Lauri Ojansivu a8498e3990 Updated translations. 2022-12-26 06:23:52 +02:00
Lauri Ojansivu 52355b4cfe Updated ChangeLog. 2022-12-26 06:09:48 +02:00
Lauri Ojansivu fb6f618917 More S3 code.
Thanks to xet7 !

Related #142
2022-12-26 05:45:32 +02:00
Lauri Ojansivu 028633b00a Fix some S3 typos. 2022-12-26 05:01:15 +02:00
Lauri Ojansivu 3d6e77dba9 Merge branch 'master' into feature-s3 2022-12-26 04:21:05 +02:00
Lauri Ojansivu 246163a5d3 Updated ChangeLog. 2022-12-25 03:42:03 +02:00
Lauri Ojansivu 015b1428b0 Updated ChangeLog. 2022-12-25 02:52:37 +02:00
Lauri Ojansivu 62dc63c033 Moved helm charts to https://github.com/wekan/charts
Thanks to xet7 !
2022-12-25 02:50:56 +02:00
Lauri Ojansivu c1a9d62cf9 Updated ChangeLog. 2022-12-24 23:21:12 +02:00
Lauri Ojansivu 182e1d4bf4 Updated readme. 2022-12-24 23:19:50 +02:00
Lauri Ojansivu d65f8cda1b Update readme. 2022-12-24 23:18:56 +02:00
Lauri Ojansivu 3846b130d8 Updated ChangeLog. 2022-12-24 23:15:35 +02:00
Lauri Ojansivu 9a838e7990 Reorganize readme links. 2022-12-24 23:13:41 +02:00
Lauri Ojansivu b31eba7481 Updated ChangeLog. 2022-12-24 23:09:36 +02:00
Lauri Ojansivu 2b2bb5d6e2 Update badges to be only links, and not load remote images.
Thanks to xet7 !
2022-12-24 23:07:20 +02:00
Lauri Ojansivu 161b20834f Merge branch 'master' into feature-s3 2022-12-24 11:52:03 +02:00
Lauri Ojansivu d6322100c9 v6.64 2022-12-24 11:07:01 +02:00
Lauri Ojansivu f22fe5497b Upgrade to MongoDB 6.0.3. Part 2.
Thanks to MongoDB developers!
2022-12-24 11:00:02 +02:00
Lauri Ojansivu 62242b4a96 Upgrade to MongoDB 6.0.3.
Thanks to MongoDB developers!
2022-12-24 10:58:28 +02:00
Lauri Ojansivu 3c6d66f86b Updated ChangeLog. 2022-12-24 09:50:23 +02:00
Lauri Ojansivu a4f99a3a55 Merge pull request #4788 from Viehlieb/4786_fix_group_routine
4786 fix group routine
2022-12-24 09:42:32 +02:00
viehlieb 1914422181 remove Meteor call for starting group routine onLogin - since hook is not called 2022-12-23 11:48:30 +01:00
viehlieb d90e78e417 move logic for group routine to wekan-oidc package 2022-12-23 11:47:33 +01:00
Lauri Ojansivu 02fe918388 Updated translations. 2022-12-23 00:35:12 +02:00
Lauri Ojansivu e0b1c0018c Updated ChangeLog. 2022-12-22 23:31:47 +02:00
Lauri Ojansivu 6e99a0cb25 Merge branch 'master' of github.com:wekan/wekan 2022-12-22 23:29:35 +02:00
Lauri Ojansivu ec0967b859 Updated ChangeLog. 2022-12-22 23:28:35 +02:00
Lauri Ojansivu 558093ff0c Update webmanifest for WeKan Android Play Store app. 2022-12-22 23:23:48 +02:00
Lauri Ojansivu 6d77172d54 Merge pull request #4787 from helioguardabaxo/master
Fix: changing list color reloads webpage
2022-12-22 22:58:43 +02:00
helioguardabaxo 209d946f94 Fix: changing list color reloads webpage 2022-12-22 17:42:07 -03:00
Lauri Ojansivu 160add6d73 Updated ChangeLog. 2022-12-22 01:05:33 +02:00
Lauri Ojansivu 71d35b0525 Updated release scripts.
Thanks to xet7 !
2022-12-22 01:03:52 +02:00
Lauri Ojansivu 21e2eabd60 Store files to S3. In Progress.
Thanks to xet7 !

Related #142
2022-12-21 23:48:47 +02:00
1084 changed files with 493833 additions and 154917 deletions

No files matched your search

+105 -91
View File
@@ -1,25 +1,30 @@
FROM ubuntu:21.10
LABEL maintainer="sgr"
FROM ubuntu:24.04
LABEL maintainer="wekan"
LABEL org.opencontainers.image.ref.name="ubuntu"
LABEL org.opencontainers.image.version="24.04"
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
# 2022-04-25:
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
ENV BUILD_DEPS="gnupg gosu libarchive-tools wget curl bzip2 g++ build-essential python3 git ca-certificates iproute2"
ENV DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ iproute2 apt-transport-https libarchive-tools"
ENV DEV_DEPS="curl python3 ca-certificates build-essential git"
ARG DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v14.21.2 \
METEOR_RELEASE=1.10.2 \
NODE_VERSION=v14.21.4 \
METEOR_RELEASE=METEOR@2.14 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
NPM_VERSION=latest \
NPM_VERSION=6.14.17 \
FIBERS_VERSION=4.0.1 \
ARCHITECTURE=linux-x64 \
SRC_PATH=./ \
WITH_API=true \
RESULTS_PER_PAGE="" \
DEFAULT_BOARD_ID="" \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
@@ -27,15 +32,14 @@ ENV \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \
ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS=90 \
RICHER_CARD_COMMENT_EDITOR=false \
CARD_OPENED_WEBHOOK_ENABLED=false \
ATTACHMENTS_STORE_PATH="" \
ATTACHMENTS_UPLOAD_EXTERNAL_PROGRAM="" \
ATTACHMENTS_UPLOAD_MIME_TYPES="" \
ATTACHMENTS_UPLOAD_MAX_SIZE=0 \
AVATARS_UPLOAD_EXTERNAL_PROGRAM="" \
AVATARS_UPLOAD_MIME_TYPES="" \
AVATARS_UPLOAD_MAX_SIZE=0 \
RICHER_CARD_COMMENT_EDITOR=false \
CARD_OPENED_WEBHOOK_ENABLED=false \
MAX_IMAGE_PIXEL="" \
IMAGE_COMPRESS_RATIO="" \
NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE="" \
@@ -47,12 +51,15 @@ ENV \
MATOMO_SITE_ID="" \
MATOMO_DO_NOT_TRACK=true \
MATOMO_WITH_USERNAME=false \
METRICS_ALLOWED_IP_ADDRESSES="" \
BROWSER_POLICY_ENABLED=true \
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OIDC_REDIRECTION_ENABLED=false \
OAUTH2_CA_CERT="" \
OAUTH2_ADFS_ENABLED=false \
OAUTH2_B2C_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
OAUTH2_SECRET="" \
@@ -69,6 +76,9 @@ ENV \
LDAP_ENABLE=false \
LDAP_PORT=389 \
LDAP_HOST="" \
LDAP_AD_SIMPLE_AUTH="" \
LDAP_USER_AUTHENTICATION=false \
LDAP_USER_AUTHENTICATION_FIELD=uid \
LDAP_BASEDN="" \
LDAP_LOGIN_FALLBACK=false \
LDAP_RECONNECT=true \
@@ -86,8 +96,6 @@ ENV \
LDAP_ENCRYPTION=false \
LDAP_CA_CERT="" \
LDAP_REJECT_UNAUTHORIZED=false \
LDAP_USER_AUTHENTICATION=false \
LDAP_USER_AUTHENTICATION_FIELD=uid \
LDAP_USER_SEARCH_FILTER="" \
LDAP_USER_SEARCH_SCOPE="" \
LDAP_USER_SEARCH_FIELD="" \
@@ -142,64 +150,32 @@ ENV \
SAML_IDENTIFIER_FORMAT="" \
SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE="" \
SAML_ATTRIBUTES="" \
DEFAULT_WAIT_SPINNER=""
# \
# NODE_OPTIONS="--max_old_space_size=4096"
ORACLE_OIM_ENABLED=false \
WAIT_SPINNER="" \
WRITABLE_PATH=/data \
S3=""
#---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
# Add more Node heap:
# NODE_OPTIONS="--max_old_space_size=4096"
# Add more stack:
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
#---------------------------------------------
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#- OIDC_REDIRECTION_ENABLED=true
#---------------------------------------------------------------------
# Install OS
RUN set -o xtrace \
&& useradd --user-group -m --system --home-dir /home/wekan wekan \
&& apt-get update \
&& apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \
&& apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
# Install NodeJS
RUN set -o xtrace \
&& cd /tmp \
&& curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$ARCHITECTURE.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/SHASUMS256.txt.asc" \
&& grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \
&& tar -xJf "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt.asc \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
&& mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config \
&& npm install -g npm@${NPM_VERSION} \
&& chown wekan:wekan --recursive /home/wekan/.config
ENV DEBIAN_FRONTEND=dialog
USER wekan
# Install Meteor
RUN set -o xtrace \
&& cd /home/wekan \
&& curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \
# Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39
&& sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \
&& sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \
&& printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \
&& sh /home/wekan/install-meteor.sh
ENV PATH=$PATH:/home/wekan/.meteor/
USER root
RUN echo "export PATH=$PATH" >> /etc/environment
USER wekan
RUN <<EOR
echo "export PATH=$PATH" >> /etc/environment
EOR
# Copy source dir
RUN set -o xtrace \
&& mkdir -p /home/wekan/app/.meteor \
&& mkdir -p /home/wekan/app/packages
RUN <<EOR
set -o xtrace
mkdir -p /home/wekan/app/.meteor
mkdir -p /home/wekan/app/packages
EOR
COPY \
.meteor/.finished-upgraders \
@@ -224,44 +200,83 @@ COPY \
packages \
/home/wekan/app/packages/
USER root
# Install OS
RUN <<EOR
set -o xtrace
RUN set -o xtrace \
&& chown -R wekan:wekan /home/wekan/app /home/wekan/.meteor
# Add non-root user wekan
useradd --user-group --system --home-dir /home/wekan wekan
# OS dependencies
apt-get update --assume-yes
apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} ${DEV_DEPS}
USER wekan
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
cp $(which tar) $(which tar)~
ln -sf $(which bsdtar) $(which tar)
RUN \
set -o xtrace && \
# Build app
cd /home/wekan/app && \
/home/wekan/.meteor/meteor add standard-minifier-js && \
/home/wekan/.meteor/meteor npm install && \
/home/wekan/.meteor/meteor build --directory /home/wekan/app_build
# Install NodeJS
cd /tmp
RUN \
set -o xtrace && \
cd /home/wekan/app_build/bundle/programs/server/ && \
chmod u+w package.json npm-shrinkwrap.json && \
npm install && \
cd node_modules/fibers && \
node build.js
# Download nodejs
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz"
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
# Verify nodejs authenticity
grep "node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz" "SHASUMS256.txt" | shasum -a 256 -c -
rm -f "SHASUMS256.txt"
# Install Node
tar xzf "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" -C /usr/local --strip-components=1 --no-same-owner
rm "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" "SHASUMS256.txt"
ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
# Install node dependencies
npm install -g npm@${NPM_VERSION}
chown --recursive wekan:wekan /home/wekan/.config
# Install Meteor
cd /home/wekan
chown --recursive wekan:wekan /home/wekan
echo "Starting meteor ${METEOR_RELEASE} installation... \n"
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh
mv /root/.meteor /home/wekan/
chown --recursive wekan:wekan /home/wekan/.meteor
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js
cd /home/wekan/.meteor
gosu wekan:wekan /home/wekan/.meteor/meteor -- help
# Build app (Development)
cd /home/wekan/app
gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js
gosu wekan:wekan /home/wekan/.meteor/meteor npm install
# Put back the original tar
mv $(which tar)~ $(which tar)
USER root
# Cleanup
RUN \
set -o xtrace && \
apt-get clean -y && \
apt-get autoremove -y && \
rm -Rf /tmp/* && \
rm -Rf /home/wekan/app_build && \
rm -Rf /var/cache/apt /var/lib/apt/lists && \
rm -Rf /var/lib/apt/lists/*
apt-get remove --purge --assume-yes ${BUILD_DEPS}
apt-get install --assume-yes --no-install-recommends build-essential
apt-get autoremove --assume-yes
apt-get clean --assume-yes
rm -Rf /tmp/*
rm -Rf /var/lib/apt/lists/*
rm -Rf /var/cache/apt
rm -Rf /var/lib/apt/lists
rm -Rf /home/wekan/app_build
mkdir /data
chown wekan --recursive /data
EOR
USER wekan
ENV PORT=3000
EXPOSE $PORT
STOPSIGNAL SIGKILL
WORKDIR /home/wekan/app
#---------------------------------------------------------------------
@@ -271,7 +286,6 @@ WORKDIR /home/wekan/app
# Add more stack:
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
#---------------------------------------------------------------------
#TODO:
#CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
#
CMD ["/home/wekan/.meteor/meteor", "run", "--verbose", "--settings", "settings.json"]
+1 -1
View File
@@ -3,7 +3,7 @@ version: '3.7'
services:
wekandb-dev:
image: mongo:5.0
image: mongo:6
container_name: wekan-dev-db
restart: unless-stopped
command: mongod --oplogSize 128
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 14.21.2
node-engine: 14.21.3
node-packages:
- node-gyp
- node-pre-gyp
+34 -14
View File
@@ -1,18 +1,26 @@
## Issue
<!--
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest WeKan ® before reporting an issue.
Please report these issues elsewhere:
- SECURITY ISSUES, PGP EMAIL: https://github.com/wekan/wekan/blob/main/SECURITY.md
- UCS: https://github.com/wekan/univention/issues
If WeKan Snap is slow, try this: https://github.com/wekan/wekan/wiki/Cron
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest
WeKan ® before reporting an issue, if possible.
Please search existing Open and Closed issues, most questions have already been answered.
If you can not login for any reason: https://github.com/wekan/wekan/wiki/Forgot-Password
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
The following types of issues should be reported separately:
- SECURITY ISSUES: https://github.com/wekan/wekan/blob/master/SECURITY.md
- UCS: https://github.com/wekan/univention/issues
-->
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use:
https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
### Server Setup Information
<!-- Please anonymize info, and do not any of your Wekan board URLs, passwords, API tokens etc to this public issue. -->
Please anonymize info, and do not any of your Wekan board URLs, passwords,
API tokens etc to this public issue.
* Did you test in newest Wekan?:
* Did you configure root-url correctly so Wekan cards open correctly (see https://github.com/wekan/wekan/wiki/Settings)?
* Operating System:
@@ -23,13 +31,25 @@ The following types of issues should be reported separately:
* What webbrowser version are you using (Wekan should work on all modern browsers that support Javascript)?
### Problem description
<!-- Add a recorded animated gif (e.g. with https://github.com/phw/peek) about how it works currently, and screenshot mockups how it should work. -->
Add a recorded animated gif (e.g. with https://github.com/phw/peek) about
how it works currently, and screenshot mockups how it should work.
#### Reproduction Steps
#### Logs
<!-- Check Right Click>Inspect>Console in you browser - generally Chrome shows more detailed info than Firefox. -->
<!-- Please anonymize logs.
#### Logs
Check Right Click / Inspect / Console in you browser - generally Chromium
based browsers show more detailed info than Firefox based browsers.
Please anonymize logs.
Snap: sudo snap logs wekan.wekan
Docker: sudo docker logs wekan-app
If logs are very long, attach them in .zip file -->
If logs are very long, attach them in .zip file
-69
View File
@@ -1,69 +0,0 @@
name: "CodeQL"
on:
push:
branches: [master]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
schedule:
- cron: '0 16 * * 3'
permissions:
contents: read
jobs:
analyze:
permissions:
actions: read # for github/codeql-action/init to get workflow details
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/autobuild to send a status report
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript', 'python']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
+2 -2
View File
@@ -9,6 +9,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Dependency Review'
uses: actions/dependency-review-action@v3
uses: actions/dependency-review-action@v4
+6 -6
View File
@@ -9,11 +9,11 @@ on:
schedule:
- cron: '28 23 * * *'
push:
branches: [ master ]
branches: [ main ]
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
pull_request:
branches: [ master ]
branches: [ main ]
env:
# Use docker.io for Docker Hub if empty
@@ -32,13 +32,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -48,14 +48,14 @@ jobs:
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@57396166ad8aefe6098280995947635806a0e6ea
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
+2 -2
View File
@@ -3,7 +3,7 @@ name: Docker Image CI
on:
push:
branches:
- master
- main
permissions:
contents: read
@@ -15,6 +15,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build the Docker image
run: docker build . --file Dockerfile --tag wekan:$(date +%s)
+3 -3
View File
@@ -3,7 +3,7 @@ name: Release Charts
on:
push:
branches:
- master
- main
permissions:
contents: read
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -25,6 +25,6 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.1
uses: helm/chart-releaser-action@v1.6.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
+13 -13
View File
@@ -3,7 +3,7 @@ name: Test suite
on:
push:
branches:
- master
- main
pull_request:
permissions:
@@ -18,7 +18,7 @@ jobs:
# runs-on: ubuntu-latest
# steps:
# - name: checkout
# uses: actions/checkout@v3
# uses: actions/checkout@v4
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -42,7 +42,7 @@ jobs:
# needs: [lintcode]
# steps:
# - name: checkout
# uses: actions/checkout@v3
# uses: actions/checkout@v4
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -65,7 +65,7 @@ jobs:
# needs: [lintcode,lintstyle]
# steps:
# - name: checkout
# uses: actions/checkout@v3
# uses: actions/checkout@v4
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -90,12 +90,12 @@ jobs:
# CHECKOUTS
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
# CACHING
- name: Install Meteor
id: cache-meteor-install
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.meteor
key: v1-meteor-${{ hashFiles('.meteor/versions') }}
@@ -104,7 +104,7 @@ jobs:
- name: Cache NPM dependencies
id: cache-meteor-npm
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.npm
key: v1-npm-${{ hashFiles('package-lock.json') }}
@@ -113,7 +113,7 @@ jobs:
- name: Cache Meteor build
id: cache-meteor-build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
.meteor/local/resolver-result-cache.json
@@ -125,7 +125,7 @@ jobs:
v1-meteor_build_cache-
- name: Setup meteor
uses: meteorengineer/setup-meteor@v1
uses: meteorengineer/setup-meteor@v2
with:
meteor-release: '2.2'
@@ -136,7 +136,7 @@ jobs:
run: sh ./test-wekan.sh -cv
- name: Upload coverage
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: coverage-folder
path: .coverage/
@@ -147,17 +147,17 @@ jobs:
needs: [tests]
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Download coverage
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: coverage-folder
path: .coverage/
- name: Coverage Report
uses: VeryGoodOpenSource/very_good_coverage@v2.1.0
uses: VeryGoodOpenSource/very_good_coverage@v3.0.0
with:
path: ".coverage/lcov.info"
min_coverage: 1 # TODO add tests and increase to 95!
+21 -69
View File
@@ -6,7 +6,7 @@
meteor-base@1.5.1
# Build system
ecmascript@0.16.4
ecmascript@0.16.8
standard-minifier-js@2.8.1
mquandalle:jade
coffeescript@2.4.1!
@@ -16,16 +16,15 @@ es5-shim@4.8.0
# Collections
aldeed:collection2
cfs:standard-packages
cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
easy:search
mongo@1.16.3
mongo@1.16.8
mquandalle:collection-mutations
# Account system
accounts-password@2.3.2
accounts-password@2.4.0
useraccounts:core
useraccounts:flow-routing
useraccounts:unstyled
@@ -39,39 +38,34 @@ wekan-accounts-oidc
# Utilities
check@1.3.2
jquery@1.11.10
jquery@3.0.0!
random@1.2.1
reactive-dict@1.3.1
session@1.2.1
tracker@1.2.1
underscore@1.0.11
tracker@1.3.3
underscore@1.0.13
arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
kadira:dochead
mquandalle:autofocus
ongoworks:speakingurl
raix:handlebar-helpers
http@2.0.0! # force new http package
# Datepicker
wekan-bootstrap-datepicker
# UI components
blaze
ostrio:i18n
reactive-var@1.0.12
fortawesome:fontawesome
mousetrap:mousetrap
mquandalle:jquery-textcomplete
mquandalle:mousetrap-bindglobal
peerlibrary:blaze-components
templates:tabs
meteor-autosize
rajit:bootstrap3-datepicker
shell-server@0.5.0
email@2.2.3
horka:swipebox
dynamic-import@0.7.2
cfs:gridfs
rzymek:fullcalendar
email@2.2.5
dynamic-import@0.7.3
msavin:usercache
# Keep stylus in 1.1.0, because building v2 takes extra 52 minutes.
meteorhacks:subs-manager
@@ -79,58 +73,8 @@ meteorhacks:aggregate@1.3.0
wekan-markdown
konecty:mongo-counter
percolate:synced-cron
cfs:filesystem
ostrio:cookies
ostrio:files@2.3.0
rajit:bootstrap3-datepicker-fi
rajit:bootstrap3-datepicker-ar
rajit:bootstrap3-datepicker-bg
rajit:bootstrap3-datepicker-br
rajit:bootstrap3-datepicker-ca
rajit:bootstrap3-datepicker-cs
rajit:bootstrap3-datepicker-da
rajit:bootstrap3-datepicker-de
rajit:bootstrap3-datepicker-el
rajit:bootstrap3-datepicker-en-gb
rajit:bootstrap3-datepicker-eo
rajit:bootstrap3-datepicker-es
rajit:bootstrap3-datepicker-eu
rajit:bootstrap3-datepicker-fa
rajit:bootstrap3-datepicker-fr
rajit:bootstrap3-datepicker-gl
rajit:bootstrap3-datepicker-he
rajit:bootstrap3-datepicker-hi
rajit:bootstrap3-datepicker-hu
rajit:bootstrap3-datepicker-hy
rajit:bootstrap3-datepicker-id
rajit:bootstrap3-datepicker-it
rajit:bootstrap3-datepicker-ja
rajit:bootstrap3-datepicker-ka
rajit:bootstrap3-datepicker-km
rajit:bootstrap3-datepicker-ko
rajit:bootstrap3-datepicker-lv
rajit:bootstrap3-datepicker-mk
rajit:bootstrap3-datepicker-mn
rajit:bootstrap3-datepicker-nb
rajit:bootstrap3-datepicker-nl
rajit:bootstrap3-datepicker-oc
rajit:bootstrap3-datepicker-pl
rajit:bootstrap3-datepicker-pt-br
rajit:bootstrap3-datepicker-pt
rajit:bootstrap3-datepicker-ro
rajit:bootstrap3-datepicker-ru
rajit:bootstrap3-datepicker-sl
rajit:bootstrap3-datepicker-sr
rajit:bootstrap3-datepicker-sv
rajit:bootstrap3-datepicker-sw
rajit:bootstrap3-datepicker-ta
rajit:bootstrap3-datepicker-th
rajit:bootstrap3-datepicker-tr
rajit:bootstrap3-datepicker-uk
rajit:bootstrap3-datepicker-vi
rajit:bootstrap3-datepicker-zh-cn
rajit:bootstrap3-datepicker-zh-tw
easylogic:summernote
pascoual:pdfkit
lmieulet:meteor-coverage
meteortesting:mocha@2.0.3
@@ -139,6 +83,14 @@ matb33:collection-hooks
simple:json-routes
kadira:flow-router
spacebars
service-configuration@1.3.1
service-configuration@1.3.2
communitypackages:picker
minifier-css@1.6.2
minifier-css@1.6.4
blaze
kadira:blaze-layout
peerlibrary:blaze-components
ejson@1.1.3
logging@1.3.3
wekan-fullcalendar
momentjs:moment@2.29.3
wekan-fontawesome
+1 -1
View File
@@ -1 +1 @@
METEOR@2.9.0
METEOR@2.14
+47 -115
View File
@@ -1,6 +1,6 @@
accounts-base@2.2.6
accounts-oauth@1.4.2
accounts-password@2.3.2
accounts-base@2.2.10
accounts-oauth@1.4.3
accounts-password@2.4.0
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -10,63 +10,42 @@ allow-deny@1.1.1
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.8.0
babel-compiler@7.10.1
babel-compiler@7.10.5
babel-runtime@1.5.1
base64@1.0.12
binary-heap@1.0.11
blaze@2.6.1
blaze@2.7.1
blaze-tools@1.1.3
boilerplate-generator@1.7.1
boilerplate-generator@1.7.2
caching-compiler@1.2.2
caching-html-compiler@1.2.1
callback-hook@1.4.0
cfs:access-point@0.1.49
cfs:base-package@0.0.30
cfs:collection@0.5.5
cfs:collection-filters@0.2.4
cfs:data-man@0.0.6
cfs:file@0.1.17
cfs:filesystem@0.1.2
cfs:gridfs@0.0.34
cfs:http-methods@0.0.32
cfs:http-publish@0.0.13
cfs:power-queue@0.9.11
cfs:reactive-list@0.0.9
cfs:reactive-property@0.0.4
cfs:standard-packages@0.5.10
cfs:storage-adapter@0.2.4
cfs:tempstore@0.1.6
cfs:upload-http@0.0.20
cfs:worker@0.1.5
callback-hook@1.5.1
check@1.3.2
coffeescript@2.4.1
coffeescript@2.7.0
coffeescript-compiler@2.4.1
communitypackages:picker@1.1.0
communitypackages:picker@1.1.1
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.4.1
ddp-client@2.6.1
ddp-common@1.4.0
ddp-rate-limiter@1.1.1
ddp-server@2.6.0
ddp-rate-limiter@1.2.1
ddp-server@2.7.0
deps@1.0.12
diff-sequence@1.1.2
dynamic-import@0.7.2
dynamic-import@0.7.3
easy:search@2.2.1
easylogic:summernote@0.8.8
easysearch:components@2.2.2
easysearch:core@2.2.2
ecmascript@0.16.4
ecmascript-runtime@0.8.0
ecmascript@0.16.8
ecmascript-runtime@0.8.1
ecmascript-runtime-client@0.12.1
ecmascript-runtime-server@0.11.0
ejson@1.1.3
email@2.2.3
email@2.2.5
es5-shim@4.8.0
fetch@0.1.2
fortawesome:fontawesome@4.7.0
fetch@0.1.4
geojson-utils@1.0.11
horka:swipebox@1.0.2
hot-code-push@1.0.4
html-tools@1.1.3
htmljs@1.1.1
@@ -74,36 +53,35 @@ http@2.0.0
id-map@1.1.1
idmontie:migrations@1.0.3
inter-process-messaging@0.1.1
jquery@1.11.11
jquery@3.0.0
kadira:blaze-layout@2.3.0
kadira:dochead@1.5.0
kadira:flow-router@2.12.1
konecty:mongo-counter@0.0.5_3
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.3.1
matb33:collection-hooks@1.1.4
logging@1.3.3
matb33:collection-hooks@1.3.0
mdg:validation-error@0.5.1
meteor@1.10.3
meteor@1.11.5
meteor-autosize@5.0.1
meteor-base@1.5.1
meteorhacks:aggregate@1.3.0
meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteortesting:browser-tests@1.3.5
meteortesting:mocha@2.0.3
meteortesting:browser-tests@1.4.2
meteortesting:mocha@2.1.0
meteortesting:mocha-core@8.0.1
minifier-css@1.6.2
minifier-css@1.6.4
minifier-js@2.7.5
minifiers@1.1.8-faster-rebuild.0
minimongo@1.9.1
modern-browsers@0.1.9
modules@0.19.0
minimongo@1.9.3
modern-browsers@0.1.10
modules@0.20.0
modules-runtime@0.13.1
momentjs:moment@2.29.3
mongo@1.16.3
mongo@1.16.8
mongo-decimal@0.1.3
mongo-dev-server@1.1.0
mongo-id@1.0.8
@@ -116,16 +94,16 @@ mquandalle:jade-compiler@0.4.5
mquandalle:jquery-textcomplete@0.8.0_1
mquandalle:mousetrap-bindglobal@0.0.1
msavin:usercache@1.8.0
npm-mongo@4.12.1
oauth@2.1.3
npm-mongo@4.17.2
oauth@2.2.1
oauth2@1.3.2
observe-sequence@1.0.20
observe-sequence@1.0.21
ongoworks:speakingurl@1.1.0
ordered-dict@1.1.0
ostrio:cookies@2.7.2
ostrio:cstorage@4.0.1
ostrio:files@2.3.2
ostrio:i18n@3.2.0
ostrio:files@2.3.3
ostrio:i18n@3.2.1
pascoual:pdfkit@1.0.7
peerlibrary:assert@0.3.0
peerlibrary:base-component@0.17.1
@@ -133,79 +111,29 @@ peerlibrary:blaze-components@0.23.0
peerlibrary:computed-field@0.10.0
peerlibrary:data-lookup@0.3.0
peerlibrary:reactive-field@0.6.0
percolate:synced-cron@1.3.2
percolate:synced-cron@1.5.2
promise@0.12.2
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
rajit:bootstrap3-datepicker@1.7.1_1
rajit:bootstrap3-datepicker-ar@1.7.1
rajit:bootstrap3-datepicker-bg@1.7.1
rajit:bootstrap3-datepicker-br@1.7.1
rajit:bootstrap3-datepicker-ca@1.7.1
rajit:bootstrap3-datepicker-cs@1.7.1
rajit:bootstrap3-datepicker-da@1.7.1
rajit:bootstrap3-datepicker-de@1.7.1
rajit:bootstrap3-datepicker-el@1.7.1
rajit:bootstrap3-datepicker-en-gb@1.7.1
rajit:bootstrap3-datepicker-eo@1.7.1
rajit:bootstrap3-datepicker-es@1.7.1
rajit:bootstrap3-datepicker-eu@1.7.1
rajit:bootstrap3-datepicker-fa@1.7.1
rajit:bootstrap3-datepicker-fi@1.7.1
rajit:bootstrap3-datepicker-fr@1.7.1
rajit:bootstrap3-datepicker-gl@1.7.1
rajit:bootstrap3-datepicker-he@1.7.1
rajit:bootstrap3-datepicker-hi@1.7.1
rajit:bootstrap3-datepicker-hu@1.7.1
rajit:bootstrap3-datepicker-hy@1.7.1
rajit:bootstrap3-datepicker-id@1.7.1
rajit:bootstrap3-datepicker-it@1.7.1
rajit:bootstrap3-datepicker-ja@1.7.1
rajit:bootstrap3-datepicker-ka@1.7.1
rajit:bootstrap3-datepicker-km@1.7.1
rajit:bootstrap3-datepicker-ko@1.7.1
rajit:bootstrap3-datepicker-lv@1.7.1
rajit:bootstrap3-datepicker-mk@1.7.1
rajit:bootstrap3-datepicker-mn@1.7.1
rajit:bootstrap3-datepicker-nb@1.7.1
rajit:bootstrap3-datepicker-nl@1.7.1
rajit:bootstrap3-datepicker-oc@1.7.1
rajit:bootstrap3-datepicker-pl@1.7.1
rajit:bootstrap3-datepicker-pt@1.7.1
rajit:bootstrap3-datepicker-pt-br@1.7.1
rajit:bootstrap3-datepicker-ro@1.7.1
rajit:bootstrap3-datepicker-ru@1.7.1
rajit:bootstrap3-datepicker-sl@1.7.1
rajit:bootstrap3-datepicker-sr@1.7.1
rajit:bootstrap3-datepicker-sv@1.7.1
rajit:bootstrap3-datepicker-sw@1.7.1
rajit:bootstrap3-datepicker-ta@1.7.1
rajit:bootstrap3-datepicker-th@1.7.1
rajit:bootstrap3-datepicker-tr@1.7.1
rajit:bootstrap3-datepicker-uk@1.7.1
rajit:bootstrap3-datepicker-vi@1.7.1
rajit:bootstrap3-datepicker-zh-cn@1.7.1
rajit:bootstrap3-datepicker-zh-tw@1.7.1
random@1.2.1
rate-limit@1.0.9
react-fast-refresh@0.2.3
rate-limit@1.1.1
react-fast-refresh@0.2.8
reactive-dict@1.3.1
reactive-var@1.0.12
reload@1.3.1
retry@1.1.0
routepolicy@1.1.1
rzymek:fullcalendar@3.8.0
service-configuration@1.3.1
service-configuration@1.3.3
session@1.2.1
sha@1.0.9
shell-server@0.5.0
simple:authenticate-user-by-token@1.2.1
simple:json-routes@2.3.1
simple:rest-accounts-password@1.2.1
simple:rest-accounts-password@1.2.2
simple:rest-bearer-token-parser@1.1.1
simple:rest-json-error-handler@1.1.1
socket-stream-client@0.5.0
spacebars@1.3.0
socket-stream-client@0.5.2
spacebars@1.4.1
spacebars-compiler@1.3.1
standard-minifier-js@2.8.1
templates:tabs@2.3.0
@@ -213,22 +141,26 @@ templating@1.4.1
templating-compiler@1.4.1
templating-runtime@1.5.0
templating-tools@1.2.2
tracker@1.2.1
twbs:bootstrap@3.3.6
tracker@1.3.3
typescript@4.9.5
ui@1.0.13
underscore@1.0.11
underscore@1.0.13
url@1.3.2
useraccounts:core@1.16.2
useraccounts:flow-routing@1.15.0
useraccounts:unstyled@1.14.2
webapp@1.13.2
webapp@1.13.6
webapp-hashing@1.1.1
wekan-accounts-cas@0.1.0
wekan-accounts-lockout@1.0.0
wekan-accounts-oidc@1.0.10
wekan-accounts-sandstorm@0.8.0
wekan-bootstrap-datepicker@1.10.0
wekan-fontawesome@6.4.2
wekan-fullcalendar@3.10.5
wekan-ldap@0.0.2
wekan-markdown@1.0.9
wekan-oidc@1.0.12
yasaricli:slugify@0.0.7
zimme:active-route@2.3.2
zodern:types@1.0.10
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 14.21.2
TRAVIS_NODE_VERSION: 14.21.3
TRAVIS_NPM_VERSION: latest
before_install:
+5 -51
View File
@@ -1,55 +1,9 @@
# This is the configuration of the Transifex tool that we use to manage the
# translations on Wekan. Documentation at: http://docs.transifex.com/client.
#
# Push
# ====
#
# It is recommended that contributors use the Transifex web UI to create and
# edit translated strings. However in case a contributor has directly jumped
# into the code and made its translations in the corresponding i18n.json file
# we can push it using
#
# > tx push -t -l ar
#
# Where `ar` is the language identifier. In addition, the project maintainer
# should push the English source file to Transifex at least before each release
# candidate using:
#
# > tx push -s
#
# Pull
# ====
#
# The set of accepted language is directly managed in Transifex, the only
# restriction we define to bundle a new language in the application, is that its
# completion is at least at 75%.
#
# We use:
#
# > tx pull
#
# to download new versions of existing translations, and
#
# > tx pull -a --minimum-perc=75
#
# to download new sufficiently advanced translations.
[main]
host = https://www.transifex.com
# tap:i18n requires us to use `-` separator in the language identifiers whereas
# Transifex uses a `_` separator, without an option to customize it on one side
# or the other, so we need to do a Manual mapping.
lang_map = ar_DZ:ar-DZ, ar_EG:ar-EG, az_AZ:az-AZ, az@latin:az-LA, bg_BG:bg, cs_CZ:cs-CZ, cy_GB:cy-GB, de_AT:de-AT, de_CH:de-CH, en_BR:en-BR, en_DE:en-DE, en_IT:en-IT, en_GB:en-GB, en_MY:en-MY, et_EE:et-EE, ast_ES:ast-ES, es_AR:es-AR, en@ysv:en-YS, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el-GR, fa_IR:fa-IR, ja-Hira:ja-HI, ja_JP:ja, fi_FI:fi, fr_FR:fr-FR, fr_CH:fr-CH, fy_NL:fy-NL, gl_ES:gl-ES, gu_IN:gu-IN, he_IL:he-IL, hi_IN:hi-IN, hu_HU:hu, id_ID:id, mn_MN:mn, ms_MY:ms-MY, nl_NL:nl-NL, ko_KR:ko-KR, lv_LV:lv, pl_PL:pl-PL, pt_BR:pt-BR, ro_RO:ro-RO, ru_UA:ru-UA, sl_SI:sl, uk_UA:uk-UA, uz@Arab:uz-AR, uz@Latn:uz-LA, uz_UZ:uz-UZ, vec:ve-CC, vep:ve-PP, vls:vl-SS, war:wa-RR, vi_VN:vi-VN, zh_CN:zh-CN, zh_TW:zh-TW, zh_Hans:zh-Hans, zh_HK:zh-HK, zu_ZA:zu-ZA
host = https://www.transifex.com
lang_map = te_IN: te-IN, es_AR: es-AR, es_419: es-LA, es_TX: es-TX, he_IL: he-IL, zh_CN: zh-CN, ar_EG: ar-EG, cs_CZ: cs-CZ, fa_IR: fa-IR, ms_MY: ms-MY, nl_NL: nl-NL, de_CH: de-CH, en_IT: en-IT, uz_UZ: uz-UZ, fr_CH: fr-CH, hi_IN: hi-IN, et_EE: et-EE, es_PE: es-PE, es_MX: es-MX, gl_ES: gl-ES, mn_MN: mn, sl_SI: sl, zh_TW: zh-TW, ast_ES: ast-ES, es_CL: es-CL, ja_JP: ja, lv_LV: lv, ro_RO: ro-RO, az_AZ: az-AZ, cy_GB: cy-GB, gu_IN: gu-IN, pl_PL: pl-PL, vep: ve-PP, en_BR: en-BR, en@ysv: en-YS, hu_HU: hu, ko_KR: ko-KR, pt_BR: pt-BR, zh_HK: zh-HK, zu_ZA: zu-ZA, en_MY: en-MY, ja-Hira: ja-HI, fi_FI: fi, vec: ve-CC, vi_VN: vi-VN, fr_FR: fr-FR, id_ID: id, zh_Hans: zh-Hans, en_DE: en-DE, en_GB: en-GB, el_GR: el-GR, uk_UA: uk-UA, az@latin: az-LA, de_AT: de-AT, uz@Latn: uz-LA, vls: vl-SS, ar_DZ: ar-DZ, bg_BG: bg, es_PY: es-PY, fy_NL: fy-NL, uz@Arab: uz-AR, ru_UA: ru-UA, war: wa-RR, zh_CN.GB2312: zh-GB
[wekan.application]
[o:wekan:p:wekan:r:application]
file_filter = imports/i18n/data/<lang>.i18n.json
source_file = imports/i18n/data/en.i18n.json
source_lang = en
type = KEYVALUEJSON
# We might have a dedicated second resource later to translate the “Welcome
# Board” data.
#
# [wekan.welcomeBoard]
# file_filter = private/welcomeBoard/<lang>.json
# source_lang = en
# type = KEYVALUEJSON
type = KEYVALUEJSON
+48 -36
View File
@@ -1,45 +1,57 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Meteor: Chrome",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
{
"type": "node",
"request": "launch",
"name": "Meteor: Node",
"runtimeExecutable": "meteor",
"runtimeArgs": [
"--port=4000",
"--exclude-archs=web.browser.legacy,web.cordova",
"--raw-logs"
],
"env": {
"WRITABLE_PATH": "/tmp/uploads",
},
{
"type": "node",
"request": "launch",
"name": "Meteor: Node",
"runtimeExecutable": "/home/wekan/.meteor/meteor",
"runtimeArgs": ["run", "--inspect-brk=9229"],
"outputCapture": "std",
"port": 9229,
"timeout": 60000
"outputCapture": "std",
"restart": true,
"timeout": 60000
},
{
"type": "chrome",
"request": "launch",
"name": "Meteor: Chrome",
"url": "http://localhost:4000",
"sourceMapPathOverrides": {
"meteor://💻app/*": "${workspaceFolder}/*"
},
{
"type": "node",
"request": "launch",
"name": "Test: Node",
"runtimeExecutable": "meteor",
"runtimeArgs": [
"test",
"--inspect-brk=9229",
"--port=4040",
"--exclude-archs=web.browser.legacy,web.cordova",
"--driver-package=meteortesting:mocha",
"--settings=settings.json"
],
"outputCapture": "std",
"port": 9229,
"timeout": 60000
}
"userDataDir": "${env:HOME}/.vscode/chrome"
},
{
"type": "node",
"request": "launch",
"name": "Test: Node",
"runtimeExecutable": "meteor",
"runtimeArgs": [
"test",
"--port=4040",
"--exclude-archs=web.browser.legacy,web.cordova",
"--driver-package=meteortesting:mocha",
"--settings=settings.json",
"--raw-logs"
],
"env": {
"TEST_WATCH": "1"
},
"outputCapture": "std",
"timeout": 60000
}
],
"compounds": [
{
"name": "Meteor: All",
"configurations": ["Meteor: Node", "Meteor: Chrome"]
}
{
"name": "Meteor: All",
"configurations": ["Meteor: Node", "Meteor: Chrome"]
}
]
}
+2503 -8
View File
File diff suppressed because it is too large. Load diff
+22
View File
@@ -0,0 +1,22 @@
# Code of Conduct
For all code at WeKan GitHub Organization https://github.com/wekan
- All code in pull requests need to have permission already to add it to WeKan with MIT license, and will become MIT license.
- All code xet7 add is MIT license.
- For any dependencies, permissive licenses like https://copyfree.org are preferred
- For anything currently that is non-permissive (like GPL, AGPL, SSPL), those will be replaced with permissive-licensed alternatives
# Reporting about violations or something else
## Private reports
- Email support@wekan.team
- Security issues: [SECURITY.md](SECURITY.md)
- License violations
- Anything private, sensitive or negative
## Public
- Feature Requests and Bug Reports https://github.com/wekan/wekan/issues
- Anything happy, positive, encouraging, helping, at friendly WeKan Global FOSS Community
+64 -12
View File
@@ -1,24 +1,66 @@
## Contributing to wiki
## About money
Please clone wiki:
```
git clone https://github.com/wekan/wekan.wiki
```
Edit .md files, and add changed files in .zip attachment
directly to comment of new issue at
https://github.com/wekan/wekan/issues
Not paid:
- Money is not paid for these, everyone uses their own time at their own cost:
- Security reports, see [SECURITY.md](SECURITY.md)
- Pull requests
- xet7 checking pull requests
- Public Community Support
- https://github.com/wekan/wekan/issues
Paid by customers of WeKan Team:
- Commercial Support at https://wekan.team/commercial-support/
- Support
- Private Chat
- Features
- Fixes
- Hosting
## Contributing Security related
For responsible security disclosure, please follow this process:
https://github.com/wekan/wekan/blob/main/SECURITY.md
CVE Hall of Fame is at https://wekan.github.io/hall-of-fame/
## Contributing to Documentation Wiki
Fork WeKan repo https://github.com/wekan/wekan ,
edit `docs` directory content at GitHub web interface,
and click send PR.
## Contributing code
[Building WeKan and sending PR](https://github.com/wekan/wekan/wiki/Emoji).
Also see other docs at wiki.
WeKan code contributors Hall of Fame is at ChangeLog, where
GitHub usernames are mentioned with changes added:
Do not use code formattung or linting like eslist
or prettier.
https://github.com/wekan/wekan/blob/main/CHANGELOG.md
Changes can be like typo fixes, bugfixes, features, or anything else
like for example at open GitHub issues https://github.com/wekan/wekan/issues .
Closed issues are already fixed or implemented.
Also see other docs at wiki, for example:
https://github.com/wekan/wekan/wiki/Developer-Documentation
Do not use code formatting or linting like eslist or prettier.
Only send minimal changed code lines, that are related to feature or fix.
WeKan code has MIT license.
About 300 persons have contributed to WeKan, stats at:
https://www.openhub.net/p/wekan
WeKan maintainer xet7 reviews PR for typos etc before accepting to WeKan,
so that WeKan code will still work OK.
## Contributing translations
Non-English translations are contributed only at
@@ -27,9 +69,19 @@ https://transifex.com/wekan/wekan
When adding new features, in your PR to
https://github.com/wekan/wekan/pulls
only add new English source language strings
to https://github.com/wekan/wekan/blob/master/imports/i18n/data/en.i18n.json
to https://github.com/wekan/wekan/blob/main/imports/i18n/data/en.i18n.json
Maintainer of WeKan xet7 downloads all newest
translations from Transifex and adds
them to WeKan repo before making
new release.
## About WeKan Organization https://github.com/wekan
Only xet7 has write access to WeKan Organization.
xet7 reviews all PRs before merging.
There has been over 300 contributors to WeKan, newest stats at:
https://www.openhub.net/p/wekan
+102 -138
View File
@@ -1,36 +1,78 @@
FROM --platform=linux/amd64 ubuntu:22.10 as wekan
FROM scratch AS downloads
# Download NodeJS bundle
ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz
# Download Meteor bundle
ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz
FROM ubuntu:24.04 AS build
# Install node from official archive
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner
# Install meteor from official archive
RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \
tar xzf meteor.tar.gz -C $HOME --no-same-owner
# Update the npm version
RUN npm install -g npm@6.14.17
# Install several build dependencies
RUN apt update && \
apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \
rm -r /var/lib/apt/lists
# Change to temporary working directory
WORKDIR /workdir
# Copy package.json and package-lock.json to install application dependencies
COPY package.json .
COPY package-lock.json .
# Install build dependencies
RUN $HOME/.meteor/meteor npm install --production
# Copy meteor application configurations
COPY .meteor .meteor
# Copy application sources
COPY packages packages
COPY imports imports
COPY config config
COPY models models
COPY public public
COPY server server
COPY client client
# Build the application
RUN $HOME/.meteor/meteor build --directory /build --allow-superuser
# Enter server bundle directory
WORKDIR /build/bundle/programs/server
# Install server dependencies
RUN $HOME/.meteor/meteor npm install --production
# Enter installation directory of fibers
WORKDIR /build/bundle/programs/server/node_modules/fibers
# Build fibers integrations
RUN node build.js
FROM ubuntu:24.04 AS wekan
# Add metadata to image
LABEL maintainer="wekan"
LABEL org.opencontainers.image.ref.name="ubuntu"
LABEL org.opencontainers.image.version="24.04"
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
# 2022-09-04:
# - above "--platform=linux/amd64 ubuntu:22.04 as wekan" is needed to build Dockerfile
# correctly on Mac M1 etc, to not get this error:
# https://stackoverflow.com/questions/71040681/qemu-x86-64-could-not-open-lib64-ld-linux-x86-64-so-2-no-such-file-or-direc
# 2022-04-25:
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
# 2021-09-18:
# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825
# to Quay to avoid Docker Hub rate limits.
# Set the environment variables (defaults where required)
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v14.21.2 \
METEOR_RELEASE=2.8.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
NPM_VERSION=latest \
FIBERS_VERSION=4.0.1 \
ARCHITECTURE=linux-x64 \
SRC_PATH=./ \
WITH_API=true \
# Set default environment variables
ENV WITH_API=true \
RESULTS_PER_PAGE="" \
DEFAULT_BOARD_ID="" \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \
@@ -65,6 +107,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
OIDC_REDIRECTION_ENABLED=false \
OAUTH2_CA_CERT="" \
OAUTH2_ADFS_ENABLED=false \
OAUTH2_B2C_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
OAUTH2_CLIENT_ID="" \
OAUTH2_SECRET="" \
@@ -157,118 +200,39 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
SAML_ATTRIBUTES="" \
ORACLE_OIM_ENABLED=false \
WAIT_SPINNER="" \
WRITABLE_PATH=/data
WRITABLE_PATH=/data \
S3=""
# NODE_OPTIONS="--max_old_space_size=4096" \
#---------------------------------------------
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#- OIDC_REDIRECTION_ENABLED=true
#---------------------------------------------------------------------
# Copy the app to the image
COPY ${SRC_PATH} /home/wekan/app
RUN \
set -o xtrace && \
# Add non-root user wekan
useradd --user-group --system --home-dir /home/wekan wekan && \
\
# OS dependencies
apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
\
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
cp $(which tar) $(which tar)~ && \
ln -sf $(which bsdtar) $(which tar) && \
\
# Download nodejs
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#---------------------------------------------------------------------------------------------
\
# Verify nodejs authenticity
grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
rm -f SHASUMS256.txt.asc && \
\
# Install Node
tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
rm node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
ln -s /opt/nodejs/bin/node /usr/bin/node && \
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config && \
chown wekan --recursive /home/wekan/.config && \
\
#DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
#paxctl -mC `which node` && \
\
# Install Node dependencies. Python path for node-gyp.
npm install -g npm@${NPM_VERSION} && \
\
# Change user to wekan and install meteor
cd /home/wekan/ && \
chown wekan --recursive /home/wekan && \
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh && \
mv /root/.meteor /home/wekan/ && \
chown wekan --recursive /home/wekan/.meteor && \
\
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js && \
cd /home/wekan/.meteor && \
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
\
# Build app
cd /home/wekan/app && \
mkdir -p /home/wekan/.npm && \
chown wekan --recursive /home/wekan/.npm /home/wekan/.config /home/wekan/.meteor && \
chmod u+w *.json && \
gosu wekan:wekan npm install && \
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
cd /home/wekan/app_build/bundle/programs/server/ && \
chmod u+w *.json && \
gosu wekan:wekan npm install && \
cd node_modules/fibers && \
node build.js && \
cd ../.. && \
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy && \
mv /home/wekan/app_build/bundle /build && \
\
# Put back the original tar
mv $(which tar)~ $(which tar) && \
\
# Cleanup
apt-get remove --purge -y ${BUILD_DEPS} && \
apt-get autoremove -y && \
npm uninstall -g api2html &&\
rm -R /tmp/* && \
rm -R /var/lib/apt/lists/* && \
rm -R /home/wekan/.meteor && \
rm -R /home/wekan/app && \
rm -R /home/wekan/app_build && \
# Install node and application sources from build stage
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
--mount=type=bind,from=build,source=/build,target=/build \
# Install NodeJS
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \
# Add the wekan user
useradd --uid 999 --user-group --system wekan && \
# Copy wekan bundle
cp -r /build/bundle /wekan && \
# Remove the web.browser.legacy platform
rm -r /wekan/programs/web.browser.legacy && \
# Change ownership of wekan directory
chown wekan:wekan -R /wekan && \
# Create the data directory
mkdir /data && \
chown wekan --recursive /data
#cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
#rm -R /home/wekan/python
#rm /home/wekan/install_meteor.sh
# Change ownership of data directory
chown wekan:root -R /data
ENV PORT=8080
EXPOSE $PORT
# Change to the wekan user
USER wekan
STOPSIGNAL SIGKILL
# Set the port to listen on
ENV PORT=8080
EXPOSE ${PORT}
#---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
# Add more Node heap:
# NODE_OPTIONS="--max_old_space_size=4096"
# Add more stack:
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
#---------------------------------------------------------------------
#
# CMD ["node", "/build/main.js"]
# Define the stop signal for node
STOPSIGNAL SIGINT
#CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"]
# Declare a volume on /data
VOLUME /data
# Set startup command
CMD ["node", "/wekan/main.js"]
+29 -34
View File
@@ -1,24 +1,18 @@
FROM amd64/alpine:3.7 AS builder
FROM arm64v8/ubuntu:23.04 AS builder
#FROM amd64/alpine:latest AS builder
# Set the environment variables for builder
ENV QEMU_VERSION=v4.2.0-6 \
ENV QEMU_VERSION=v7.2.0-1 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v14.21.2 \
NODE_VERSION=v14.21.4 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64 \
NODE_OPTIONS="--max_old_space_size=4096"
#---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
# Add more Node heap:
# NODE_OPTIONS="--max_old_space_size=4096"
# Add more stack:
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
#---------------------------------------------------------------------
WEKAN_ARCHITECTURE=arm64
# Install dependencies
RUN apk update && apk add ca-certificates outils-sha1 && \
#RUN apk update && apk add ca-certificates outils-sha1 && \
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt update && apt install ca-certificates wget unzip -y && \
\
# Download qemu static for our architecture
wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-${QEMU_ARCHITECTURE}-static.tar.gz -O - | tar -xz && \
@@ -33,23 +27,27 @@ RUN apk update && apk add ca-certificates outils-sha1 && \
unzip wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \
\
# Download node and shasums
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
\
# Verify nodejs authenticity
grep node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | sha256sum -c - && \
grep node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz SHASUMS256.txt | sha256sum -c - && \
\
# Extract node and remove tar.gz
tar xvzf node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz
# Build wekan dockerfile
FROM arm64v8/ubuntu:19.10
FROM --platform=linux/arm64 arm64v8/ubuntu:23.04
LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v14.21.2 \
NODE_VERSION=v14.21.4 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
@@ -75,24 +73,21 @@ RUN \
ln -s /opt/nodejs/bin/node /usr/bin/node && \
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.1 /home/wekan/.config && \
chown wekan --recursive /home/wekan/.config && \
\
# Install Node dependencies
npm install -g npm@${NPM_VERSION}
chown wekan --recursive /home/wekan/.config
# \
# # Install Node dependencies
# #npm install -g npm@${NPM_VERSION} && \
# \
# # Install Health Check dependencies
# #apk add curl
#
#HEALTHCHECK --start-period=30s --interval=30s --timeout=10s --retries=3 \
# CMD curl --fail "http://localhost:$PORT" || exit 1
EXPOSE $PORT
USER wekan
#---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
# Add more Node heap:
# NODE_OPTIONS="--max_old_space_size=4096"
# Add more stack:
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
#---------------------------------------------------------------------
#
#CMD ["node", "/home/wekan/bundle/main.js"]
#CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /home/wekan/bundle/main.js"]
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /home/wekan/bundle/main.js"]
CMD ["bash", "-c", "ulimit -s 65500; exec node /home/wekan/bundle/main.js"]
+94
View File
@@ -0,0 +1,94 @@
FROM arm64v8/ubuntu:23.04 AS builder
#FROM --platform=linux/amd64 amd64/ubuntu:23.04 AS builder
#FROM --platform=linux/amd64 ghcr.io/wekan/wekan:main AS builder
#FROM arm64v8/ubuntu:23.04 AS builder
#FROM amd64/alpine:latest AS builder
# Set the environment variables for builder
ENV QEMU_VERSION=v7.2.0-1 \
QEMU_ARCHITECTURE=s390x \
NODE_ARCHITECTURE=linux-s390x \
NODE_VERSION=v14.21.4 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=s390x
# Install dependencies
#RUN apk update && apk add ca-certificates outils-sha1 && \
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt update && apt install ca-certificates wget unzip -y && \
\
# Download qemu static for our architecture
wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-${QEMU_ARCHITECTURE}-static.tar.gz -O - | tar -xz && \
\
# Download wekan and shasum
wget https://releases.wekan.team/${WEKAN_ARCHITECTURE}/wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \
wget https://releases.wekan.team/${WEKAN_ARCHITECTURE}/SHA256SUMS.txt && \
# Verify wekan
grep wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip SHA256SUMS.txt | sha256sum -c - && \
\
# Unzip wekan
unzip wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \
\
# Download node and shasums
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
\
# Verify nodejs authenticity
grep node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz SHASUMS256.txt | sha256sum -c - && \
\
# Extract node and remove tar.gz
tar xvzf node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz
# Build wekan dockerfile
FROM --platform=linux/s390x s390x/ubuntu:23.04
LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=s390x \
NODE_ARCHITECTURE=linux-s390x \
NODE_VERSION=v14.21.4 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
PORT=8080 \
ROOT_URL=http://localhost \
MONGO_URL=mongodb://127.0.0.1:27017/wekan
# Copy qemu-static to image
COPY --from=builder qemu-${QEMU_ARCHITECTURE}-static /usr/bin
# Copy the app to the image
COPY --from=builder bundle /home/wekan/bundle
# Copy
COPY --from=builder node-${NODE_VERSION}-${NODE_ARCHITECTURE} /opt/nodejs
RUN \
set -o xtrace && \
# Add non-root user wekan
useradd --user-group --system --home-dir /home/wekan wekan && \
\
# Install Node
ln -s /opt/nodejs/bin/node /usr/bin/node && \
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
mkdir -p /opt/nodejs/lib/node_modules/fibers/.node-gyp /root/.node-gyp/8.16.1 /home/wekan/.config && \
chown wekan --recursive /home/wekan/.config
# \
# # Install Node dependencies
# #npm install -g npm@${NPM_VERSION} && \
# \
# # Install Health Check dependencies
# #apk add curl
#
#HEALTHCHECK --start-period=30s --interval=30s --timeout=10s --retries=3 \
# CMD curl --fail "http://localhost:$PORT" || exit 1
EXPOSE $PORT
USER wekan
CMD ["bash", "-c", "ulimit -s 65500; exec node /home/wekan/bundle/main.js"]
+40
View File
@@ -0,0 +1,40 @@
# Future
## Moved Import/Export/Sync issues to Big Picture Roadmap wiki page
This change is limited to only Import/Export/Sync issues, while those are In Progress of being fixed.
2023-11-21 xet7 closed 261 issues that are linked at https://github.com/wekan/wekan/wiki/Sync ,
that is Roadmap of Import/Export/Sync in WeKan. It means, that those issues progress will be
updated at that wiki page, when xet7 and other WeKan contributors fix those.
Many of those issues are In Progress of being fixed and added.
## Platform Updates
Issues related to platforms are being closed, because only list of working platforms is mentioned now
at WeKan website https://wekan.github.io Install section and at [ChangeLog](https://github.com/wekan/wekan/blob/main/CHANGELOG.md)
where is this new text:
> Newest WeKan at amd64 platforms: Linux bundle, Snap Candidate, Docker, Kubernetes. Fixing other platforms In Progress.
Platform support changes often, because:
- There are many dependencies, that update or break or change often
- Node.js segfaults at some CPU/OS
- Some platforms have build errors
Roadmap is to update all existing platforms, and add more platforms.
Upcoming platform upgrades:
- Fix migrations, so that newest WeKan can be released to Snap Stable. (Currently newest is at Snap Candidate).
## WeKan features
Most Meteor WeKan features are listed here:
https://github.com/wekan/wekan/wiki/Deep-Dive-Into-WeKan
Remaining features and all changes are listed here:
https://github.com/wekan/wekan/blob/main/CHANGELOG.md
+10
View File
@@ -0,0 +1,10 @@
# Governance
Anyone can send pull request to https://github.com/wekan/wekan/wiki/pulls ,
if there is permission to add code to WeKan with MIT license.
As maintainer, xet7 checks all pull requests and merges them.
Only xet7 has write access to repo https://github.com/wekan/wekan
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2014-2019 The Wekan Team
Copyright (c) 2014-2024 The Wekan Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+34 -22
View File
@@ -1,21 +1,35 @@
[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/wekan/wekan)
[Gitpod Ready-to-Code](https://gitpod.io/#https://github.com/wekan/wekan)
# WeKan ® - Open Source kanban
[![Contributors](https://img.shields.io/github/contributors/wekan/wekan.svg "Contributors")](https://github.com/wekan/wekan/graphs/contributors)
[![Docker Repository on Quay](https://quay.io/repository/wekan/wekan/status "Docker Repository on Quay")](https://quay.io/repository/wekan/wekan)
[![Docker Hub container status](https://img.shields.io/docker/build/wekanteam/wekan.svg "Docker Hub container status")](https://hub.docker.com/r/wekanteam/wekan)
[![Docker Hub pulls](https://img.shields.io/docker/pulls/wekanteam/wekan.svg "Docker Hub Pulls")](https://hub.docker.com/r/wekanteam/wekan)
[![Wekan Build Status][travis_badge]][travis_status]
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/02137ecec4e34c5aa303f57637196a93 "Codacy Badge")](https://www.codacy.com/app/xet7/wekan?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=wekan/wekan&amp;utm_campaign=Badge_Grade)
[![Code Climate](https://codeclimate.com/github/wekan/wekan/badges/gpa.svg "Code Climate")](https://codeclimate.com/github/wekan/wekan)
[![Project Dependencies](https://david-dm.org/wekan/wekan.svg "Project Dependencies")](https://david-dm.org/wekan/wekan)
[![Code analysis at Open Hub](https://img.shields.io/badge/code%20analysis-at%20Open%20Hub-brightgreen.svg "Code analysis at Open Hub")](https://www.openhub.net/p/wekan)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4619/badge)](https://bestpractices.coreinfrastructure.org/projects/4619)
## Downloads
## [Translate WeKan ® at Transifex](https://transifex.com/wekan/wekan)
https://wekan.github.io / Install WeKan ® Server
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
## Docker Containers
- [GitHub](https://github.com/wekan/wekan/pkgs/container/wekan)
- [Quay](https://quay.io/repository/wekan/wekan)
- [Docker Hub](https://hub.docker.com/r/wekanteam/wekan)
docker-compose.yml at https://github.com/wekan/wekan/blob/main/docker-compose.yml
## Standards
- [WeKan and Standard for Public Code](https://wekan.github.io/standard-for-public-code/) assessment was made at 2023-11.
Currently Wekan meets 8 out of 16 criteria out of the box.
Some others could be met with small changes.
## Code stats
- [CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4619)
- [Code Climate](https://codeclimate.com/github/wekan/wekan)
- [Open Hub](https://www.openhub.net/p/wekan)
- [OSS Insight](https://ossinsight.io/analyze/wekan/wekan)
## [Translate WeKan ® at Transifex](https://app.transifex.com/wekan/)
Translations to non-English languages are accepted only at [Transifex](https://app.transifex.com/wekan/wekan) using webbrowser.
New English strings of new features can be added as PRs to master branch file wekan/imports/i18n/data/en.i18n.json .
## [WeKan ® feature requests and bugs](https://github.com/wekan/wekan/issues)
@@ -55,8 +69,8 @@ install Wekan on your own computer or server. In fact we encourage you to do
that by providing one-click installation on various platforms.
- WeKan ® is used in [most countries of the world](https://snapcraft.io/wekan).
- WeKan ® largest user has 22k users using WeKan ® in their company.
- WeKan ® has been [translated](https://transifex.com/wekan/wekan) to about 105 languages.
- WeKan ® largest user has 30k users using WeKan ® in their company.
- WeKan ® has been [translated](https://app.transifex.com/wekan/) to about 105 languages.
- [Features][features]: WeKan ® has real-time user interface.
- [Platforms][platforms]: WeKan ® supports many platforms.
WeKan ® is critical part of new platforms Wekan is currently being integrated to.
@@ -67,14 +81,14 @@ that by providing one-click installation on various platforms.
[Mac](https://github.com/wekan/wekan/wiki/Mac) / [Windows](https://github.com/wekan/wekan/wiki/Install-Wekan-from-source-on-Windows).
[More Platforms](https://github.com/wekan/wekan/wiki/Platforms), bundle for RasPi3 ARM and other CPUs where Node.js and MongoDB exists.
- 1 GB RAM minimum free for WeKan ®. Production server should have minimum total 4 GB RAM.
For thousands of users, for example with [Docker](https://github.com/wekan/wekan/blob/master/docker-compose.yml): 3 frontend servers,
For thousands of users, for example with [Docker](https://github.com/wekan/wekan/blob/main/docker-compose.yml): 3 frontend servers,
each having 2 CPU and 2 wekan-app containers. One backend wekan-db server with many CPUs.
- Enough disk space and alerts about low disk space. If you run out disk space, MongoDB database gets corrupted.
- SECURITY: Updating to newest WeKan ® version very often. Please check you do not have automatic updates of Sandstorm or Snap turned off.
Old versions have security issues because of old versions Node.js etc. Only newest WeKan ® is supported.
WeKan ® on Sandstorm is not usually affected by any Standalone WeKan ® (Snap/Docker/Source) security issues.
- [Reporting all new bugs immediately](https://github.com/wekan/wekan/issues).
New features and fixes are added to WeKan ® [many times a day](https://github.com/wekan/wekan/blob/master/CHANGELOG.md).
New features and fixes are added to WeKan ® [many times a day](https://github.com/wekan/wekan/blob/main/CHANGELOG.md).
- [Backups](https://github.com/wekan/wekan/wiki/Backup) of WeKan ® database once a day miminum.
Bugs, updates, users deleting list or card, harddrive full, harddrive crash etc can eat your data. There is no undo yet.
Some bug can cause WeKan ® board to not load at all, requiring manual fixing of database content.
@@ -86,7 +100,7 @@ that by providing one-click installation on various platforms.
[Developer Documentation][dev_docs]
- There is many companies and individuals contributing code to WeKan ®, to add features and bugfixes
[many times a day](https://github.com/wekan/wekan/blob/master/CHANGELOG.md).
[many times a day](https://github.com/wekan/wekan/blob/main/CHANGELOG.md).
- [Please add Add new Feature Requests and Bug Reports immediately](https://github.com/wekan/wekan/issues).
- [Commercial Support](https://wekan.team/commercial-support/).
@@ -106,16 +120,14 @@ with [Meteor](https://www.meteor.com).
[platforms]: https://github.com/wekan/wekan/wiki/Platforms
[dev_docs]: https://github.com/wekan/wekan/wiki/Developer-Documentation
[screenshot_wekan]: https://wekan.github.io/wekan-markdown.png
[screenshot_wekan]: https://wekan.github.io/wekan-dark-mode.png
[features]: https://github.com/wekan/wekan/wiki/Features
[roadmap_wekan]: https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license
[wekan_issues]: https://github.com/wekan/wekan/issues
[wekan_issues]: https://github.com/wekan/wekan/issues
[docker_image]: https://hub.docker.com/r/wekanteam/wekan/
[travis_badge]: https://travis-ci.org/wekan/wekan.svg?branch=devel
[travis_status]: https://travis-ci.org/wekan/wekan
[wekan_wiki]: https://github.com/wekan/wekan/wiki
[translate_wekan]: https://www.transifex.com/wekan/wekan/
[translate_wekan]: https://app.transifex.com/wekan/
[open_source]: https://en.wikipedia.org/wiki/Open-source_software
[free_software]: https://en.wikipedia.org/wiki/Free_software
[discussions]: https://github.com/wekan/wekan/discussions
+127 -31
View File
@@ -1,6 +1,7 @@
About money, see [CONTRIBUTING.md](CONTRIBUTING.md)
Security is very important to us. If you discover any issue regarding security, please disclose
the information responsibly by sending an email to support (at) wekan.team using
[this PGP public key](support-at-wekan.team_pgp-publickey.asc) and not by
the information responsibly by sending an email to security@wekan.team and not by
creating a GitHub issue. We will respond swiftly to fix verifiable security issues.
We thank you with a place at our hall of fame page, that is
@@ -29,7 +30,7 @@ added to the Wekan Hall of Fame.
## Which domains are in scope?
No public domains, because all those are donated to Wekan Open Source project,
and we don't have any permissions to do security scans on those donated servers
and we don't have any permissions to do security scans on those donated servers.
Please don't perform research that could impact other users. Secondly, please keep
the reports short and succinct. If we fail to understand the logics of your bug, we will tell you.
@@ -48,31 +49,132 @@ like Snap and Docker have their own specific sandboxing etc features.
Standalone Wekan by default does not load any files from Internet, like fonts, CSS, etc.
This also means all Standalone Wekan functionality works in offline local networks.
Wekan is used by companies that have [thousands of users](https://github.com/wekan/wekan/wiki/AWS) and at healthcare.
WeKan is used at most countries of the world https://snapcraft.io/wekan
and by by companies that have 30k users.
Wekan uses xss package for input fields like cards, as you can see from
[package.json](https://github.com/wekan/wekan/blob/master/package.json). Other used versions can be seen from
[Meteor versions file](https://github.com/wekan/wekan/blob/master/.meteor/versions).
Forms can include markdown links, html, image tags etc like you see at https://wekan.github.io .
It's possible to add attachments to cards, and markdown/html links to files.
- Wekan private board attachments are not accessible without logging in.
- There is feature to set board public, so that board is visible without logging in in readonly mode, with realtime updates.
- Admin Panel has feature to disable all public boards, so all boards are private.
Wekan attachments are not accessible without logging in. Import from Trello works by copying
Trello export JSON to Wekan Trello import page, and in Trello JSON file there is direct links to all publicly
accessible Trello attachment files, that Standalone Wekan downloads directly to Wekan MongoDB database in
[CollectionFS](https://github.com/wekan/wekan/pull/875) format. When Wekan board is exported in
Wekan JSON format, all board attachments are included in Wekan JSON file as base64 encoded text.
That Wekan JSON format file can be imported to Sandstorm Wekan with all the attachments, when we get
latest Wekan version working on Sandstorm, only couple of bugs are left before that. In Sandstorm it's not
possible yet to import from Trello with attachments, because Wekan does not implement Sandstorm-compatible
access to outside of Wekan grain.
## SSL/TLS
Standalone Wekan only has password auth currently, there is work in progress to add
[oauth2](https://github.com/wekan/wekan/pull/1578), [Openid](https://github.com/wekan/wekan/issues/538),
[LDAP](https://github.com/wekan/wekan/issues/119) etc. If you need more login security for Standalone Wekan now,
it's possible add additional [Google Auth proxybouncer](https://github.com/wekan/wekan/wiki/Let's-Encrypt-and-Google-Auth) in front of password auth, and then use Google Authenticator for Google Auth. Standalone Wekan does have [brute force protection with eluck:accounts-lockout and browser-policy clickjacking protection](https://github.com/wekan/wekan/blob/master/CHANGELOG.md#v080-2018-04-04-wekan-release). You can also optionally use some [WAF](https://en.wikipedia.org/wiki/Web_application_firewall)
like for example [AWS WAF](https://aws.amazon.com/waf/).
- SSL/TLS encrypts traffic between webbrowser and webserver.
- If you are thinking about TLS MITM, look at https://github.com/caddyserver/caddy/issues/2530
- Let's Encrypt TLS requires publicly accessible webserver, that Let's Encrypt TLS validation servers check.
- If firewall limits to only allowed IP addresses, you may need non-Let's Encrypt TLS cert.
- For On Premise:
- https://caddyserver.com/docs/automatic-https#local-https
- https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
- https://github.com/wekan/wekan/wiki/Azure
- https://github.com/wekan/wekan/wiki/Traefik-and-self-signed-SSL-certs
[All Wekan Platforms](https://github.com/wekan/wekan/wiki/Platforms)
## XSS
- Dompurify https://www.npmjs.com/package/dompurify
- WeKan uses dompurify npm package to filter for XSS at fields like cards, as you can see from
[package.json](https://github.com/wekan/wekan/blob/main/package.json). Other used versions can be seen from
[Meteor versions file](https://github.com/wekan/wekan/blob/main/.meteor/versions).
- Forms can include markdown links, html, image tags etc like you see at https://wekan.github.io .
- It's possible to add attachments to cards, and markdown/html links to files.
- Dompurify cleans up viewed code, so Javascript in input fields does not execute
- https://wekan.github.io/hall-of-fame/fieldbleed/
- Reaction in comment is now checked, that it does not have extra added code
- https://wekan.github.io/hall-of-fame/reactionbleed/
- https://github.com/wekan/wekan/blob/main/packages/markdown/src/template-integration.js#L76
## QA about PubSub
Q:
Hello,
I have just seen the Meteor DevTools Evolved extension and was wondering if anyone had asked themselves the question of security.
Insofar as all data is shown in the minimongo tab in plain text.
How can data be hidden from this extension?
A:
## PubSub
- It is not security issue to show some text or image, that user has permission to see. It is a security issue, if browserside is some text or image that user should not see.
- Meteor has browserside minimongo database, made with Javascript, updated with Publish/Subscribe, PubSub.
- Publish/Subscribe means, that realtime web framework reads database changes stream, and then immediately updates webpage,
like like dashboards, chat, kanban. That is the point in any realtime web framework in any programming language.
- Yes, you should check with Meteor DevTools Evolved Chromium/Firefox extension that at minimongo is only text that user has permission to see.
- Do checking as logged in user, and logged out user.
- Check permissions and sanitize before allowing some change, because someone could modify content of input field,
PubSub/websocket data (for example with Burp Suite Community Edition), etc.
- If you have REST API, also check that only those that have login token, and have permission, can view or edit text
- You should not include any data user is not allowed to see. Not to webpage text, not to websockets/PubSub, etc.
- Minimongo should not have password hashes PubSub https://wekan.github.io/hall-of-fame/userbleed/
- PubSub uses Websockets, so you need those to be enabled at webserver like Caddy/Nginx/Apache etc, examples of settings
at right menu of https://github.com/wekan/wekan/wiki
- Clientside https://github.com/wekan/wekan/tree/main/client/components subscribes to
PubSub https://github.com/wekan/wekan/tree/main/server/publications or calls meteor methods at https://github.com/wekan/wekan/tree/main/models
- For Admin:
- You can have input field for password https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
- You can save password to database https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
- Check that only current user or Admin can change password https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
- Note that currentUser uses code like Meteor.user() in .js file
- Do not have password hashes in PubSub https://github.com/wekan/wekan/blob/main/server/publications/users.js
- Only show Admin Panel to Admin https://github.com/wekan/wekan/blob/main/client/components/settings/settingBody.jade#L3
- If there is a lot of data, use pagination https://github.com/wekan/wekan/blob/main/client/components/settings/peopleBody.js
- Only have limited amount of data published in PubSub. Limit in MongoDB query in publications how much is published. Too much could make browser too slow.
- Use Environment variables for any email etc passwords.
- But what if you would like to remove minimongo? And only use Meteor methods for saving? In that case, you don't have realtime updates,
and you need to write much more code to load and save data yourself, handle any multi user data saving conflicts yourself,
and many Meteor Atmospherejs.com PubSub using packages would not work anymore https://github.com/wekan/we
## PubSub: Fix that user can not change to Admin
- With PubSub, there is checking, that someone modifying Websockets content, like permission isAdmin, can not change to Admin.
- https://github.com/wekan/wekan/commit/cbad4cf5943d47b916f64b4582f8ca76a9dfd743
- https://wekan.github.io/hall-of-fame/adminbleed/
## Permissions and Roles
- For any user permissions, it's best to use Meteor package package https://github.com/Meteor-Community-Packages/meteor-roles .
- Currently WeKan has custom hardcoded permissions, WeKan does not yet use that meteor-roles package.
- Using permissions at WeKan sidebar https://github.com/wekan/wekan/blob/main/client/components/sidebar/sidebar.js#L1854-L1875
- List of roles https://github.com/wekan/wekan/wiki/REST-API-Role . Change at board or Admin Panel. Also Organizations/Teams.
- Worker role: https://github.com/wekan/wekan/issues/2788
- Not implemented yet: Granular Roles https://github.com/wekan/wekan/issues/3022
- Check is user logged in, with `if (Meteor.user()) {`
- Check is code running at server `if (Meteor.isServer()) {` or client `if Meteor.isClient()) {` .
- Here is some authentication code https://github.com/wekan/wekan/blob/main/server/authentication.js
## Environment variables
- For any passwords, use environment variables, those are serverside
- Do not copy environment variable to public variable that is visible browserside https://github.com/wekan/wekan/blob/main/server/max-size.js
```
Meteor.startup(() => {
if (process.env.HEADER_LOGIN_ID) {
Meteor.settings.public.attachmentsUploadMaxSize = process.env.ATTACHMENTS_UPLOAD_MAX_SIZE;
Meteor.settings.public.attachmentsUploadMimeTypes = process.env.ATTACHMENTS_UPLOAD_MIME_TYPES;
Meteor.settings.public.avatarsUploadMaxSize = process.env.AVATARS_UPLOAD_MAX_SIZE;
```
- For serverside, you can set Meteor.settings.variablename, without text public
- For WeKan kanban, there is feature for setting board public, it can be viewed by anyone, there is realtime updates. But
- Some of those permissions are checked at users.js models at https://github.com/wekan/wekan/tree/main/models
- Environment variables are used for email server passwords, etc, at all platforms https://github.com/wekan/wekan/commit/a781c0e7dcfdbe34c1483ee83cec12455b7026f7
## Escape HTML comment tags so that HTML comments are visible
- Someone reported, that it is problem that content of HTML comments in edit mode, are not visible at at view mode, so this makes HTML comments visible.
- https://github.com/wekan/wekan/commit/167863d95711249e69bb3511175d73b34acbbdb3
- https://wekan.github.io/hall-of-fame/invisiblebleed/
## Attachments: XSS in filename is sanitized
- https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
- https://wekan.github.io/hall-of-fame/filebleed/
## Brute force login protection
- https://github.com/wekan/wekan/commit/23e5e1e3bd081699ce39ce5887db7e612616014d
- https://github.com/wekan/wekan/tree/main/packages/wekan-accounts-lockout
### Sandstorm Wekan Security
@@ -105,12 +207,6 @@ a security issue, we'd like to know about it, and also how to fix it:
Typical already known or "no impact" bugs such as:
- Brute force password guessign. Currently there is
[brute force protection with eluck:accounts-lockout](https://github.com/wekan/wekan/blob/master/CHANGELOG.md#v080-2018-04-04-wekan-release).
- Security issues related to that Wekan uses Meteor 1.6.0.1 related packages, and upgrading to newer
Meteor 1.6.1 is complicated process that requires lots of changes to many dependency packages.
Upgrading [has been tried many times, spending a lot of time](https://github.com/meteor/meteor/issues/9609)
but there still is issues. Helping with package upgrades is very welcome.
- [Wekan API old tokens not replaced correctly](https://github.com/wekan/wekan/issues/1437)
- Missing Cookie flags on non-session cookies or 3rd party cookies
- Logout CSRF
@@ -121,7 +217,7 @@ Typical already known or "no impact" bugs such as:
- Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server.
Wekan is Open Source with MIT license, and free to use also for commercial use.
We welcome all fixes to improve security by email to security (at) wekan.team .
We welcome all fixes to improve security by email to security@wekan.team
## Bonus Points
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v6.63.0"
appVersion: "v7.78.0"
files:
userUploads:
- README.md
+416 -48
View File
@@ -21,32 +21,55 @@ import sys
arguments = len(sys.argv) - 1
syntax = """=== Wekan API Python CLI: Shows IDs for addcard ===
# AUTHORID is USERID that writes card or custom field.
If *nix: chmod +x api.py => ./api.py users
Syntax:
User API:
python3 api.py user # Current user and list of current user boards
python3 api.py boards USERID # Boards of USERID
python3 api.py swimlanes BOARDID # Swimlanes of BOARDID
python3 api.py lists BOARDID # Lists of BOARDID
python3 api.py list BOARDID LISTID # Info of LISTID
python3 api.py createlist BOARDID LISTTITLE # Create list
python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py editcard BOARDID LISTID CARDID NEWCARDTITLE NEWCARDDESCRIPTION
python3 api.py customfields BOARDID # Custom Fields of BOARDID
python3 api.py customfield BOARDID CUSTOMFIELDID # Info of CUSTOMFIELDID
python3 api.py addcustomfieldtoboard AUTHORID BOARDID NAME TYPE SETTINGS SHOWONCARD AUTOMATICALLYONCARD SHOWLABELONMINICARD SHOWSUMATTOPOFLIST # Add Custom Field to Board
python3 api.py editcustomfield BOARDID LISTID CARDID CUSTOMFIELDID NEWCUSTOMFIELDVALUE # Edit Custom Field
python3 api.py listattachments BOARDID # List attachments
python3 api.py cardsbyswimlane SWIMLANEID LISTID # Retrieve cards list on a swimlane
python3 api.py getcard BOARDID LISTID CARDID # Get card info
python3 api.py addlabel BOARDID LISTID CARDID LABELID # Add label to a card
python3 api.py addcardwithlabel AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION LABELIDS # Add a card and a label
python3 api.py editboardtitle BOARDID NEWBOARDTITLE # Edit board title
python3 api.py copyboard BOARDID NEWBOARDTITLE # Copy a board
python3 api.py createlabel BOARDID LABELCOLOR LABELNAME (Color available: `white`, `green`, `yellow`, `orange`, `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`) # Create a new label
python3 api.py editcardcolor BOARDID LISTID CARDID COLOR (Color available: `white`, `green`, `yellow`, `orange`, `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`) # Edit card color
python3 api.py addchecklist BOARDID CARDID TITLE ITEM1 ITEM2 ITEM3 ITEM4 (You can add multiple items or just one, or also without any item, just TITLE works as well. * If items or Title contains spaces, you should add ' between them.) # Add checklist + item on a card
python3 api.py deleteallcards BOARDID SWIMLANEID ( * Be careful will delete ALL CARDS INSIDE the swimlanes automatically in every list * ) # Delete all cards on a swimlane
python3 api.py checklistid BOARDID CARDID # Retrieve Checklist ID attached to a card
python3 api.py checklistinfo BOARDID CARDID CHECKLISTID # Get checklist info
python3 api.py get_list_cards_count BOARDID LISTID # Retrieve how many cards in a list
python3 api.py get_board_cards_count BOARDID # Retrieve how many cards in a board
Admin API:
python3 api.py users # All users
python3 api.py boards # All Public Boards
python3 api.py newuser USERNAME EMAIL PASSWORD
"""
if arguments == 0:
print("=== Wekan API Python CLI: Shows IDs for addcard ===")
print("AUTHORID is USERID that writes card.")
print("If *nix: chmod +x api.py => ./api.py users")
print("Syntax:")
print(" python3 api.py users # All users")
print(" python3 api.py boards # All Public Boards")
print(" python3 api.py boards USERID # Boards of USERID")
print(" python3 api.py board BOARDID # Info of BOARDID")
print(" python3 api.py customfields BOARDID # Custom Fields of BOARDID")
print(" python3 api.py customfield BOARDID CUSTOMFIELDID # Info of CUSTOMFIELDID")
print(" python3 api.py addcustomfieldtoboard AUTHORID BOARDID NAME TYPE SETTINGS SHOWONCARD AUTOMATICALLYONCARD SHOWLABELONMINICARD SHOWSUMATTOPOFLIST # Add Custom Field to Board")
print(" python3 api.py swimlanes BOARDID # Swimlanes of BOARDID")
print(" python3 api.py lists BOARDID # Lists of BOARDID")
print(" python3 api.py list BOARDID LISTID # Info of LISTID")
print(" python3 api.py createlist BOARDID LISTTITLE # Create list")
print(" python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION")
print(" python3 api.py editcard BOARDID LISTID CARDID NEWCARDTITLE NEWCARDDESCRIPTION")
print(" python3 api.py listattachments BOARDID # List attachments")
print(" python3 api.py newuser USERNAME EMAIL PASSWORD")
print(syntax)
exit
# TODO:
# print(" python3 api.py attachmentjson BOARDID ATTACHMENTID # One attachment as JSON base64")
# print(" python3 api.py attachmentbinary BOARDID ATTACHMENTID # One attachment as binary file")
# print(" python3 api.py attachmentdownload BOARDID ATTACHMENTID # One attachment as file")
# print(" python3 api.py attachmentsdownload BOARDID # All attachments as files")
exit
# ------- SETTINGS START -------------
@@ -62,33 +85,6 @@ wekanurl = 'http://localhost:4000/'
# ------- SETTINGS END -------------
"""
EXAMPLE:
python3 api.py
OR:
chmod +x api.py
./api.py
=== Wekan API Python CLI: Shows IDs for addcard ===
AUTHORID is USERID that writes card.
Syntax:
python3 api.py users # All users
python3 api.py boards USERID # Boards of USERID
python3 api.py board BOARDID # Info of BOARDID
python3 api.py customfields BOARDID # Custom Fields of BOARDID
python3 api.py customfield BOARDID CUSTOMFIELDID # Info of CUSTOMFIELDID
python3 api.py addcustomfieldtoboard AUTHORID BOARDID NAME TYPE SETTINGS SHOWONCARD AUTOMATICALLYONCARD SHOWLABELONMINICARD SHOWSUMATTOPOFLIST # Add Custom Field to Board
python3 api.py swimlanes BOARDID # Swimlanes of BOARDID
python3 api.py lists BOARDID # Lists of BOARDID
python3 api.py list BOARDID LISTID # Info of LISTID
python3 api.py createlist BOARDID LISTTITLE # Create list
python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py editcard BOARDID LISTID CARDID NEWCARDTITLE NEWCARDDESCRIPTION
python3 api.py listattachments BOARDID # List attachments
python3 api.py attachmentjson BOARDID ATTACHMENTID # One attachment as JSON base64
python3 api.py attachmentbinary BOARDID ATTACHMENTID # One attachment as binary file
=== ADD CUSTOM FIELD TO BOARD ===
Type: text, number, date, dropdown, checkbox, currency, stringtemplate.
@@ -145,6 +141,8 @@ wekanloginurl = wekanurl + loginurl
apiboards = 'api/boards/'
apiattachments = 'api/attachments/'
apiusers = 'api/users'
apiuser = 'api/user'
apiallusers = 'api/allusers'
e = 'export'
s = '/'
l = 'lists'
@@ -153,10 +151,13 @@ sws = 'swimlanes'
cs = 'cards'
cf = 'custom-fields'
bs = 'boards'
apbs = 'allpublicboards'
atl = 'attachmentslist'
at = 'attachment'
ats = 'attachments'
users = wekanurl + apiusers
user = wekanurl + apiuser
allusers = wekanurl + apiallusers
# ------- API URL GENERATION END -----------
@@ -193,6 +194,52 @@ if arguments == 10:
print(body.text)
# ------- ADD CUSTOM FIELD TO BOARD END -----------
if arguments == 8:
if sys.argv[1] == 'addcardwithlabel':
# ------- ADD CARD WITH LABEL START -----------
authorid = sys.argv[2]
boardid = sys.argv[3]
swimlaneid = sys.argv[4]
listid = sys.argv[5]
cardtitle = sys.argv[6]
carddescription = sys.argv[7]
labelIds = sys.argv[8] # Aggiunto labelIds
cardtolist = wekanurl + apiboards + boardid + s + l + s + listid + s + cs
# Add card
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {
'authorId': '{}'.format(authorid),
'title': '{}'.format(cardtitle),
'description': '{}'.format(carddescription),
'swimlaneId': '{}'.format(swimlaneid),
'labelIds': labelIds
}
body = requests.post(cardtolist, data=post_data, headers=headers)
print(body.text)
# If ok id card
if body.status_code == 200:
card_data = body.json()
new_card_id = card_data.get('_id')
# Updating card
if new_card_id:
edcard = wekanurl + apiboards + boardid + s + l + s + listid + s + cs + s + new_card_id
put_data = {'labelIds': labelIds}
body = requests.put(edcard, data=put_data, headers=headers)
print("=== EDIT CARD ===\n")
body = requests.get(edcard, headers=headers)
data2 = body.text.replace('}', "}\n")
print(data2)
else:
print("Error obraining ID.")
else:
print("Error adding card.")
# ------- ADD CARD WITH LABEL END -----------
if arguments == 7:
if sys.argv[1] == 'addcard':
@@ -232,7 +279,72 @@ if arguments == 6:
print(data2)
# ------- EDIT CARD END -----------
if arguments == 4:
if sys.argv[1] == 'editcustomfield':
# ------- EDIT CUSTOMFIELD START -----------
boardid = sys.argv[2]
listid = sys.argv[3]
cardid = sys.argv[4]
customfieldid = sys.argv[5]
newcustomfieldvalue = sys.argv[6]
edfield = wekanurl + apiboards + boardid + s + l + s + listid + s + cs + s + cardid + s + 'customFields' + s + customfieldid
#print(edfield)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'_id': '{}'.format(customfieldid), 'value': '{}'.format(newcustomfieldvalue)}
#print(post_data)
body = requests.post(edfield, data=post_data, headers=headers)
print("=== EDIT CUSTOMFIELD ===\n")
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- EDIT CUSTOMFIELD END -----------
if arguments == 5:
if sys.argv[1] == 'addlabel':
# ------- EDIT CARD ADD LABEL START -----------
boardid = sys.argv[2]
listid = sys.argv[3]
cardid = sys.argv[4]
labelIds = sys.argv[5]
edcard = wekanurl + apiboards + boardid + s + l + s + listid + s + cs + s + cardid
print(edcard)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
put_data = {'labelIds': labelIds}
body = requests.put(edcard, data=put_data, headers=headers)
print("=== ADD LABEL ===\n")
body = requests.get(edcard, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- EDIT CARD ADD LABEL END -----------
if sys.argv[1] == 'editcardcolor':
# ------- EDIT CARD COLOR START -----------
boardid = sys.argv[2]
listid = sys.argv[3]
cardid = sys.argv[4]
newcolor = sys.argv[5]
valid_colors = ['white', 'green', 'yellow', 'orange', 'red', 'purple', 'blue', 'sky', 'lime', 'pink', 'black',
'silver', 'peachpuff', 'crimson', 'plum', 'darkgreen', 'slateblue', 'magenta', 'gold', 'navy',
'gray', 'saddlebrown', 'paleturquoise', 'mistyrose', 'indigo']
if newcolor not in valid_colors:
print("Invalid color. Choose a color from the list.")
sys.exit(1)
edcard = wekanurl + apiboards + boardid + s + l + s + listid + s + cs + s + cardid
print(edcard)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
put_data = {'color': '{}'.format(newcolor)}
body = requests.put(edcard, data=put_data, headers=headers)
print("=== EDIT CARD COLOR ===\n")
body = requests.get(edcard, headers=headers)
data2 = body.text.replace('}', "}\n")
print(data2)
# ------- EDIT CARD COLOR END -----------
if arguments >= 4:
if sys.argv[1] == 'newuser':
@@ -246,9 +358,155 @@ if arguments == 4:
print("=== CREATE NEW USER ===\n")
print(body.text)
# ------- CREATE NEW USER END -----------
if sys.argv[1] == 'getcard':
# ------- LIST OF CARD START -----------
boardid = sys.argv[2]
listid = sys.argv[3]
cardid = sys.argv[4]
listone = wekanurl + apiboards + boardid + s + l + s + listid + s + cs + s + cardid
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== INFO OF ONE LIST ===\n")
print("URL:", listone) # Stampa l'URL per debug
try:
response = requests.get(listone, headers=headers)
print("=== RESPONSE ===\n")
print("Status Code:", response.status_code) # Stampa il codice di stato per debug
if response.status_code == 200:
data2 = response.text.replace('}', "}\n")
print(data2)
else:
print(f"Error: {response.status_code}")
print(f"Response: {response.text}")
except Exception as e:
print(f"Error in the GET request: {e}")
# ------- LISTS OF CARD END -----------
if sys.argv[1] == 'createlabel':
# ------- CREATE LABEL START -----------
boardid = sys.argv[2]
labelcolor = sys.argv[3]
labelname = sys.argv[4]
label_url = wekanurl + apiboards + boardid + s + 'labels'
print(label_url)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
# Object to send
put_data = {'label': {'color': labelcolor, 'name': labelname}}
print("URL:", label_url)
print("Headers:", headers)
print("Data:", put_data)
try:
response = requests.put(label_url, json=put_data, headers=headers)
print("=== CREATE LABELS ===\n")
print("Response Status Code:", response.status_code)
print("Response Text:", response.text)
except Exception as e:
print("Error:", e)
# ------- CREATE LABEL END -----------
if sys.argv[1] == 'addchecklist':
# ------- ADD CHECKLIST START -----------
board_id = sys.argv[2]
card_id = sys.argv[3]
checklist_title = sys.argv[4]
# Aggiungi la checklist
checklist_url = wekanurl + apiboards + board_id + s + cs + s + card_id + '/checklists'
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
data = {'title': checklist_title}
response = requests.post(checklist_url, data=data, headers=headers)
response.raise_for_status()
result = json.loads(response.text)
checklist_id = result.get('_id')
print(f"Checklist '{checklist_title}' created. ID: {checklist_id}")
# Aggiungi gli items alla checklist
items_to_add = sys.argv[5:]
for item_title in items_to_add:
checklist_item_url = wekanurl + apiboards + board_id + s + cs + s + card_id + s + 'checklists' + s + checklist_id + '/items'
item_data = {'title': item_title}
item_response = requests.post(checklist_item_url, data=item_data, headers=headers)
item_response.raise_for_status()
item_result = json.loads(item_response.text)
checklist_item_id = item_result.get('_id')
print(f"Item '{item_title}' added. ID: {checklist_item_id}")
if sys.argv[1] == 'checklistinfo':
# ------- ADD CHECKLIST START -----------
board_id = sys.argv[2]
card_id = sys.argv[3]
checklist_id = sys.argv[4]
checklist_url = wekanurl + apiboards + board_id + s + cs + s + card_id + '/checklists' + s + checklist_id
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
response = requests.get(checklist_url, headers=headers)
response.raise_for_status()
checklist_info = response.json()
print("Checklist Info:")
print(checklist_info)
if arguments == 3:
if sys.argv[1] == 'editboardtitle':
# ------- EDIT BOARD TITLE START -----------
boardid = sys.argv[2]
boardtitle = sys.argv[3]
edboardtitle = wekanurl + apiboards + boardid + s + 'title'
print(edboardtitle)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'title': boardtitle}
body = requests.put(edboardtitle, json=post_data, headers=headers)
print("=== EDIT BOARD TITLE ===\n")
#body = requests.get(edboardtitle, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
if body.status_code == 200:
print("Succesfull!")
else:
print(f"Error: {body.status_code}")
print(body.text)
# ------- EDIT BOARD TITLE END -----------
if sys.argv[1] == 'copyboard':
# ------- COPY BOARD START -----------
boardid = sys.argv[2]
boardtitle = sys.argv[3]
edboardcopy = wekanurl + apiboards + boardid + s + 'copy'
print(edboardcopy)
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'title': boardtitle}
body = requests.post(edboardcopy, json=post_data, headers=headers)
print("=== COPY BOARD ===\n")
#body = requests.get(edboardcopy, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
if body.status_code == 200:
print("Succesfull!")
else:
print(f"Error: {body.status_code}")
print(body.text)
# ------- COPY BOARD END -----------
if sys.argv[1] == 'createlist':
# ------- CREATE LIST START -----------
@@ -288,6 +546,90 @@ if arguments == 3:
print(data2)
# ------- INFO OF CUSTOM FIELD END -----------
if sys.argv[1] == 'cardsbyswimlane':
# ------- RETRIEVE CARDS BY SWIMLANE ID START -----------
boardid = sys.argv[2]
swimlaneid = sys.argv[3]
cardsbyswimlane = wekanurl + apiboards + boardid + s + sws + s + swimlaneid + s + cs
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== CARDS BY SWIMLANE ID ===\n")
print("URL:", cardsbyswimlane) # Debug
try:
body = requests.get(cardsbyswimlane, headers=headers)
print("Status Code:", body.status_code) # Debug
data = body.text.replace('}', "}\n")
print("Data:", data)
except Exception as e:
print("Error GET:", e)
# ------- RETRIEVE CARDS BY SWIMLANE ID END -----------
if sys.argv[1] == 'deleteallcards':
boardid = sys.argv[2]
swimlaneid = sys.argv[3]
# ------- GET SWIMLANE CARDS START -----------
get_swimlane_cards_url = wekanurl + apiboards + boardid + s + "swimlanes" + s + swimlaneid + s + "cards"
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
try:
response = requests.get(get_swimlane_cards_url, headers=headers)
response.raise_for_status()
cards_data = response.json()
# Print the details of each card
for card in cards_data:
# ------- DELETE CARD START -----------
delete_card_url = wekanurl + apiboards + boardid + s + "lists" + s + card['listId'] + s + "cards" + s + card['_id']
try:
response = requests.delete(delete_card_url, headers=headers)
if response.status_code == 404:
print(f"Card not found: {card['_id']}")
else:
response.raise_for_status()
deleted_card_data = response.json()
print(f"Card Deleted Successfully. Card ID: {deleted_card_data['_id']}")
except requests.exceptions.RequestException as e:
print(f"Error deleting card: {e}")
# ------- DELETE CARD END -----------
except requests.exceptions.RequestException as e:
print(f"Error getting swimlane cards: {e}")
sys.exit(1)
# ------- GET SWIMLANE CARDS END -----------
if sys.argv[1] == 'get_list_cards_count':
# ------- GET LIST CARDS COUNT START -----------
boardid = sys.argv[2]
listid = sys.argv[3]
get_list_cards_count_url = wekanurl + apiboards + boardid + s + l + s + listid + s + "cards_count"
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
try:
response = requests.get(get_list_cards_count_url, headers=headers)
response.raise_for_status()
data = response.json()
print(f"List Cards Count: {data['list_cards_count']}")
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
# ------- GET LIST CARDS COUNT END -----------
if sys.argv[1] == 'checklistid':
# ------- ADD CHECKLIST START -----------
board_id = sys.argv[2]
card_id = sys.argv[3]
checklist_url = wekanurl + apiboards + board_id + s + cs + s + card_id + '/checklists'
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
response = requests.get(checklist_url, headers=headers)
response.raise_for_status()
checklists = response.json()
print("Checklists:")
for checklist in checklists:
print(checklist)
if arguments == 2:
# ------- BOARDS LIST START -----------
@@ -359,6 +701,22 @@ if arguments == 2:
print(data2)
# ------- LISTS OF ATTACHMENTS END -----------
if sys.argv[1] == 'get_board_cards_count':
# ------- GET BOARD CARDS COUNT START -----------
boardid = sys.argv[2]
get_board_cards_count_url = wekanurl + apiboards + boardid + s + "cards_count"
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
try:
response = requests.get(get_board_cards_count_url, headers=headers)
response.raise_for_status()
data = response.json()
print(f"Board Cards Count: {data['board_cards_count']}")
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
# ------- GET BOARD CARDS COUNT END -----------
if arguments == 1:
if sys.argv[1] == 'users':
@@ -372,6 +730,16 @@ if arguments == 1:
print(data2)
# ------- LIST OF USERS END -----------
if sys.argv[1] == 'user':
# ------- LIST OF ALL USERS START -----------
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print(user)
print("=== USER ===\n")
body = requests.get(user, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LIST OF ALL USERS END -----------
if sys.argv[1] == 'boards':
# ------- LIST OF PUBLIC BOARDS START -----------
@@ -49,43 +49,6 @@
margin-top: 5px;
padding: 5px;
}
.activities .activity .activity-desc .reactions {
display: flex;
margin-top: 5px;
gap: 5px;
}
.activities .activity .activity-desc .reactions .open-comment-reaction-popup {
display: flex;
align-items: center;
text-decoration: none;
height: 24px;
}
.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o {
font-size: 17px;
font-weight: 500;
margin-left: 2px;
}
.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-plus {
font-size: 8px;
margin-top: -7px;
margin-left: 1px;
}
.activities .activity .activity-desc .reactions .reaction {
cursor: pointer;
border: 1px solid #808080;
border-radius: 15px;
display: flex;
padding: 2px 5px;
}
.activities .activity .activity-desc .reactions .reaction.selected {
background-color: #b0c4de;
}
.activities .activity .activity-desc .reactions .reaction:hover {
background-color: #b0c4de;
}
.activities .activity .activity-desc .reactions .reaction .reaction-count {
font-size: 12px;
}
.activities .activity .activity-desc .activity-checklist {
display: block;
border-radius: 3px;
+21 -65
View File
@@ -1,11 +1,12 @@
template(name="activities")
.activities.js-sidebar-activities
//- We should use Template.dynamic here but there is a bug with
//- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30
if $eq mode "board"
+boardActivities
else
+cardActivities
if showActivities
.activities.js-sidebar-activities
//- We should use Template.dynamic here but there is a bug with
//- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30
if $eq mode "board"
+boardActivities
else
+cardActivities
template(name="boardActivities")
each activityData in currentBoard.activities
@@ -15,32 +16,6 @@ template(name="cardActivities")
each activityData in activities
+activity(activity=activityData card=card mode=mode)
template(name="editOrDeleteComment")
= ' - '
a.js-open-inlined-form {{_ "edit"}}
= ' - '
a.js-delete-comment {{_ "delete"}}
template(name="deleteCommentPopup")
p {{_ "comment-delete"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="commentReactions")
.reactions
each reaction in reactions
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
span.reaction-codepoint !{reaction.reactionCodepoint}
span.reaction-count #{reaction.userIds.length}
if (currentUser.isBoardMember)
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
i.fa.fa-smile-o
i.fa.fa-plus
template(name="addReactionPopup")
.reactions-popup
each codepoint in codepoints
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
template(name="activity")
.activity(data-id=activity._id)
+userAvatar(userId=activity.user._id)
@@ -130,39 +105,17 @@ template(name="activity")
| {{{_ 'activity-checklist-item-removed' (sanitize activity.checklist.title) cardLink}}}.
//- comment activity ----------------------------------------------------
if($eq mode 'card')
//- if we are in card mode we display the comment in a way that it
//- can be edited by the owner
if($eq activity.activityType 'addComment')
+inlinedForm(classNames='js-edit-comment')
+editor(autofocus=true)
= activity.comment.text
.edit-controls
button.primary(type="submit") {{_ 'edit'}}
.fa.fa-times-thin.js-close-inlined-form
else
.activity-comment
+viewer
= activity.comment.text
+commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id)
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
if($eq currentUser._id activity.comment.userId)
+editOrDeleteComment
else if currentUser.isBoardAdmin
+editOrDeleteComment
if($eq activity.activityType 'deleteComment')
| {{{_ 'activity-deleteComment' activity.commentId}}}.
if($eq activity.activityType 'deleteComment')
| {{{_ 'activity-deleteComment' activity.commentId}}}.
if($eq activity.activityType 'editComment')
| {{{_ 'activity-editComment' activity.commentId}}}.
if($eq activity.activityType 'editComment')
| {{{_ 'activity-editComment' activity.commentId}}}.
else
//- if we are not in card mode we only display a summary of the comment
if($eq activity.activityType 'addComment')
| {{{_ 'activity-on' cardLink}}}
a.activity-comment(href="{{ activity.card.originRelativeUrl }}")
+viewer
= activity.comment.text
if($eq activity.activityType 'addComment')
| {{{_ 'activity-on' cardLink}}}
a.activity-comment(href="{{ activity.card.originRelativeUrl }}")
+viewer
= activity.comment.text
//- date activity ------------------------------------------------
if($eq activity.activityType 'a-receivedAt')
@@ -208,6 +161,9 @@ template(name="activity")
if($eq activity.activityType 'archivedList')
| {{_ 'activity-archived' (sanitize listLabel)}}.
if($eq activity.activityType 'changedListTitle')
| {{_ 'activity-changedListTitle' (sanitize listLabel) boardLabelLink}}
//- member activity ----------------------------------------------------
if($eq activity.activityType 'joinMember')
if($eq user._id activity.member._id)
@@ -243,4 +199,4 @@ template(name="activity")
else if(currentData.timeValue)
| {{_ activity.activityType currentData.timeValue}}
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
div(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
+66 -76
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import DOMPurify from 'dompurify';
import { TAPi18n } from '/imports/i18n';
@@ -12,39 +13,41 @@ BlazeComponent.extendComponent({
const sidebar = Sidebar;
sidebar && sidebar.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
let mode = this.data().mode;
const capitalizedMode = Utils.capitalize(mode);
let searchId;
if (mode === 'linkedcard' || mode === 'linkedboard') {
searchId = Utils.getCurrentCard().linkedId;
mode = mode.replace('linked', '');
} else if (mode === 'card') {
searchId = Utils.getCurrentCardId();
} else {
searchId = Session.get(`current${capitalizedMode}`);
}
const limit = this.page.get() * activitiesPerPage;
const user = Meteor.user();
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
if (searchId === null) return;
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
this.loadNextPageLocked = false;
// TODO the guard can be removed as soon as the TODO above is resolved
if (!sidebar) return;
// If the sibear peak hasn't increased, that mean that there are no more
// activities, and we can stop calling new subscriptions.
// XXX This is hacky! We need to know excatly and reactively how many
// activities there are, we probably want to denormalize this number
// dirrectly into card and board documents.
const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak');
sidebar.calculateNextPeak();
const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak');
if (nextPeakBefore === nextPeakAfter) {
sidebar.callFirstWith(null, 'resetNextPeak');
let mode = this.data()?.mode;
if (mode) {
const capitalizedMode = Utils.capitalize(mode);
let searchId;
const showActivities = this.showActivities();
if (mode === 'linkedcard' || mode === 'linkedboard') {
const currentCard = Utils.getCurrentCard();
searchId = currentCard.linkedId;
mode = mode.replace('linked', '');
} else if (mode === 'card') {
searchId = Utils.getCurrentCardId();
} else {
searchId = Session.get(`current${capitalizedMode}`);
}
});
const limit = this.page.get() * activitiesPerPage;
if (searchId === null) return;
this.subscribe('activities', mode, searchId, limit, showActivities, () => {
this.loadNextPageLocked = false;
// TODO the guard can be removed as soon as the TODO above is resolved
if (!sidebar) return;
// If the sibear peak hasn't increased, that mean that there are no more
// activities, and we can stop calling new subscriptions.
// XXX This is hacky! We need to know excatly and reactively how many
// activities there are, we probably want to denormalize this number
// dirrectly into card and board documents.
const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak');
sidebar.calculateNextPeak();
const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak');
if (nextPeakBefore === nextPeakAfter) {
sidebar.callFirstWith(null, 'resetNextPeak');
}
});
}
});
},
loadNextPage() {
@@ -53,19 +56,31 @@ BlazeComponent.extendComponent({
this.loadNextPageLocked = true;
}
},
}).register('activities');
Template.activities.helpers({
activities() {
const ret = this.card.activities();
showActivities() {
let ret = false;
let mode = this.data()?.mode;
if (mode) {
if (mode === 'linkedcard' || mode === 'linkedboard') {
const currentCard = Utils.getCurrentCard();
ret = currentCard.showActivities ?? false;
} else if (mode === 'card') {
ret = this.data()?.card?.showActivities ?? false;
} else {
ret = Utils.getCurrentBoard().showActivities ?? false;
}
}
return ret;
},
});
activities() {
const ret = this.data().card.activities();
return ret;
},
}).register('activities');
BlazeComponent.extendComponent({
checkItem() {
const checkItemId = this.currentData().activity.checklistItemId;
const checkItem = ChecklistItems.findOne({ _id: checkItemId });
const checkItem = ReactiveCache.getChecklistItem(checkItemId);
return checkItem && checkItem.title;
},
@@ -145,7 +160,7 @@ BlazeComponent.extendComponent({
lastLabel() {
const lastLabelId = this.currentData().activity.labelId;
if (!lastLabelId) return null;
const lastLabel = Boards.findOne(
const lastLabel = ReactiveCache.getBoard(
this.currentData().activity.boardId,
).getLabelById(lastLabelId);
if (lastLabel && (lastLabel.name === undefined || lastLabel.name === '')) {
@@ -158,7 +173,7 @@ BlazeComponent.extendComponent({
},
lastCustomField() {
const lastCustomField = CustomFields.findOne(
const lastCustomField = ReactiveCache.getCustomField(
this.currentData().activity.customFieldId,
);
if (!lastCustomField) return null;
@@ -166,7 +181,7 @@ BlazeComponent.extendComponent({
},
lastCustomFieldValue() {
const lastCustomField = CustomFields.findOne(
const lastCustomField = ReactiveCache.getCustomField(
this.currentData().activity.customFieldId,
);
if (!lastCustomField) return null;
@@ -246,32 +261,6 @@ BlazeComponent.extendComponent({
return customField.name;
},
events() {
return [
{
// XXX We should use Popup.afterConfirmation here
'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => {
const commentId = this.data().activity.commentId;
CardComments.remove(commentId);
Popup.back();
}),
'submit .js-edit-comment'(evt) {
evt.preventDefault();
const commentText = this.currentComponent()
.getValue()
.trim();
const commentId = Template.parentData().activity.commentId;
if (commentText) {
CardComments.update(commentId, {
$set: {
text: commentText,
},
});
}
},
},
];
},
}).register('activity');
Template.activity.helpers({
@@ -282,10 +271,10 @@ Template.activity.helpers({
Template.commentReactions.events({
'click .reaction'(event) {
if (Meteor.user().isBoardMember()) {
if (ReactiveCache.getCurrentUser().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
const cardComment = ReactiveCache.getCardComment(commentId);
cardComment.toggleReaction(codepoint);
}
},
@@ -294,10 +283,10 @@ Template.commentReactions.events({
Template.addReactionPopup.events({
'click .add-comment-reaction'(event) {
if (Meteor.user().isBoardMember()) {
if (ReactiveCache.getCurrentUser().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
const cardComment = ReactiveCache.getCardComment(commentId);
cardComment.toggleReaction(codepoint);
}
Popup.back();
@@ -325,12 +314,13 @@ Template.addReactionPopup.helpers({
Template.commentReactions.helpers({
isSelected(userIds) {
return userIds.includes(Meteor.user()._id);
return Meteor.userId() && userIds.includes(Meteor.userId());
},
userNames(userIds) {
return Users.find({_id: {$in: userIds}})
.map(user => user.profile.fullname)
.join(', ');
const ret = ReactiveCache.getUsers({_id: {$in: userIds}})
.map(user => user.profile.fullname)
.join(', ');
return ret;
}
})
+75
View File
@@ -63,3 +63,78 @@
display: block;
margin: auto;
}
.comments {
clear: both;
}
.comments .comment {
margin: 0.5px 0;
padding: 6px 0;
display: flex;
}
.comments .comment .member {
width: 32px;
height: 32px;
}
.comments .comment .comment-member {
font-weight: 700;
}
.comments .comment .comment-desc {
word-wrap: break-word;
overflow: hidden;
flex: 1;
align-self: center;
margin: 0;
margin-left: 3px;
overflow: hidden;
word-break: break-word;
}
.comments .comment .comment-desc .comment-text {
display: block;
border-radius: 3px;
background: #fff;
text-decoration: none;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
margin-top: 5px;
padding: 5px;
}
.comments .comment .comment-desc .reactions {
display: flex;
margin-top: 5px;
gap: 5px;
}
.comments .comment .comment-desc .reactions .open-comment-reaction-popup {
display: flex;
align-items: center;
text-decoration: none;
height: 24px;
}
.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o {
font-size: 17px;
font-weight: 500;
margin-left: 2px;
}
.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-plus {
font-size: 8px;
margin-top: -7px;
margin-left: 1px;
}
.comments .comment .comment-desc .reactions .reaction {
cursor: pointer;
border: 1px solid #808080;
border-radius: 15px;
display: flex;
padding: 2px 5px;
}
.comments .comment .comment-desc .reactions .reaction.selected {
background-color: #b0c4de;
}
.comments .comment .comment-desc .reactions .reaction:hover {
background-color: #b0c4de;
}
.comments .comment .comment-desc .reactions .reaction .reaction-count {
font-size: 12px;
}
.comments .comment .comment-desc .comment-meta {
font-size: 0.8em;
color: #999;
}
@@ -7,3 +7,59 @@ template(name="commentForm")
| {{getUnsavedValue 'cardComment' currentCard._id}}
.add-controls
button.primary.confirm.clear.js-add-comment(type="submit") {{_ 'comment'}}
template(name="comments")
.comments
each commentData in getComments
+comment(commentData)
template(name="comment")
.comment
+userAvatar(userId=userId)
p.comment-desc
span.comment-member
+memberName(user=user)
+inlinedForm(classNames='js-edit-comment')
+editor(autofocus=true)
= text
.edit-controls
button.primary(type="submit") {{_ 'edit'}}
.fa.fa-times-thin.js-close-inlined-form
else
.comment-text
+viewer
= text
+commentReactions(reactions=reactions commentId=_id)
span(title=createdAt).comment-meta {{ moment createdAt }}
if($eq currentUser._id userId)
+editOrDeleteComment
else if currentUser.isBoardAdmin
+editOrDeleteComment
template(name="editOrDeleteComment")
= ' - '
a.js-open-inlined-form {{_ "edit"}}
= ' - '
a.js-delete-comment {{_ "delete"}}
template(name="deleteCommentPopup")
p {{_ "comment-delete"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="commentReactions")
.reactions
each reaction in reactions
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
span.reaction-codepoint !{reaction.reactionCodepoint}
span.reaction-count #{reaction.userIds.length}
if (currentUser.isBoardMember)
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
i.fa.fa-smile-o
i.fa.fa-plus
template(name="addReactionPopup")
.reactions-popup
each codepoint in codepoints
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
+38 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
const commentFormIsOpen = new ReactiveVar(false);
BlazeComponent.extendComponent({
@@ -24,7 +26,7 @@ BlazeComponent.extendComponent({
let boardId = card.boardId;
let cardId = card._id;
if (card.isLinkedCard()) {
boardId = Cards.findOne(card.linkedId).boardId;
boardId = ReactiveCache.getCard(card.linkedId).boardId;
cardId = card.linkedId;
} else if (card.isLinkedBoard()) {
boardId = card.linkedId;
@@ -53,6 +55,41 @@ BlazeComponent.extendComponent({
},
}).register('commentForm');
BlazeComponent.extendComponent({
getComments() {
const ret = this.data().comments();
return ret;
},
}).register("comments");
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => {
const commentId = this.data()._id;
CardComments.remove(commentId);
Popup.back();
}),
'submit .js-edit-comment'(evt) {
evt.preventDefault();
const commentText = this.currentComponent()
.getValue()
.trim();
const commentId = this.data()._id;
if (commentText) {
CardComments.update(commentId, {
$set: {
text: commentText,
},
});
}
},
},
];
},
}).register("comment");
// XXX This should be a static method of the `commentForm` component
function resetCommentInput(input) {
input.val(''); // without manually trigger, input event won't be fired
+9 -6
View File
@@ -1,19 +1,22 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.subscribe('archivedBoards');
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
archivedBoards() {
return Boards.find(
const ret = ReactiveCache.getBoards(
{ archived: true },
{
sort: { archivedAt: -1, modifiedAt: -1 },
},
);
return ret;
},
events() {
@@ -25,8 +28,8 @@ BlazeComponent.extendComponent({
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm && Session.get('currentBoard')) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (isSandstorm && Utils.getCurrentBoardId()) {
const currentBoard = Utils.getCurrentBoard();
currentBoard.archive();
}
const board = this.currentData();
@@ -39,8 +42,8 @@ BlazeComponent.extendComponent({
Meteor.settings &&
Meteor.settings.public &&
Meteor.settings.public.sandstorm;
if (isSandstorm && Session.get('currentBoard')) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (isSandstorm && Utils.getCurrentBoardId()) {
const currentBoard = Utils.getCurrentBoard();
Boards.remove(currentBoard._id);
}
Boards.remove(this._id);
+55 -3
View File
@@ -16,9 +16,6 @@
transition: margin 0.1s;
overflow-y: auto;
}
.board-wrapper .board-canvas.is-sibling-sidebar-open {
margin-right: 248px;
}
.board-wrapper .board-canvas .board-overlay {
position: fixed;
left: 0;
@@ -167,3 +164,58 @@
border-color: #2b004d;
color: #fff !important;
}
/* Modal Styles */
.modal {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
background-color: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
}
.modal-dialog {
display: flex;
justify-content: center;
align-items: center;
height: 25%; /* Adjust the height to make it smaller */
position: relative;
margin: 10% auto; /* This margin will help center the modal vertically */
max-width: 400px; /* Adjust the max-width to make it smaller */
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.modal-header {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 1px;
border-bottom: 1px solid #ccc;
}
.modal-title {
display: flex;
justify-content: center;
align-items: center;
margin: 0;
font-size: 18px;
}
.modal-footer {
display: flex;
justify-content: center;
align-items: center;
padding-top: 4px;
border-top: 1px solid #ccc;
}
.close {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 5px;
right: 5px;
font-size: 25px;
cursor: pointer;
}
+11 -4
View File
@@ -17,25 +17,32 @@ template(name="boardBody")
| {{_ 'tableVisibilityMode-allowPrivateOnly'}}
else
.board-wrapper(class=currentBoard.colorClass)
+sidebar
.board-canvas.js-swimlanes(
class="{{#if hasSwimlanes}}dragscroll{{/if}}"
class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}"
class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}"
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
class="{{#if draggingActive.get}}is-dragging-active{{/if}}"
class="{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}")
if showOverlay.get
.board-overlay
if currentBoard.isTemplatesBoard
each currentBoard.swimlanes
+swimlane(this)
else if isViewSwimlanes
each currentBoard.swimlanes
+swimlane(this)
if hasSwimlanes
each currentBoard.swimlanes
+swimlane(this)
else
a.js-empty-board-add-swimlane(title="{{_ 'add-swimlane'}}")
h1.big-message.quiet
| {{_ 'add-swimlane'}} +
else if isViewLists
+listsGroup(currentBoard)
else if isViewCalendar
+calendarView
else
+listsGroup(currentBoard)
+sidebar
template(name="calendarView")
if isViewCalendar
+86 -24
View File
@@ -1,4 +1,6 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import dragscroll from '@wekanteam/dragscroll';
const subManager = new SubsManager();
const { calculateIndex } = Utils;
@@ -43,9 +45,9 @@ BlazeComponent.extendComponent({
this.mouseHasEnterCardDetails = false;
// fix swimlanes sort field if there are null values
const currentBoardData = Boards.findOne(Session.get('currentBoard'));
const currentBoardData = Utils.getCurrentBoard();
const nullSortSwimlanes = currentBoardData.nullSortSwimlanes();
if (nullSortSwimlanes.count() > 0) {
if (nullSortSwimlanes.length > 0) {
const swimlanes = currentBoardData.swimlanes();
let count = 0;
swimlanes.forEach(s => {
@@ -60,7 +62,7 @@ BlazeComponent.extendComponent({
// fix lists sort field if there are null values
const nullSortLists = currentBoardData.nullSortLists();
if (nullSortLists.count() > 0) {
if (nullSortLists.length > 0) {
const lists = currentBoardData.lists();
let count = 0;
lists.forEach(l => {
@@ -193,6 +195,9 @@ BlazeComponent.extendComponent({
});
this.autorun(() => {
// Always reset dragscroll on view switch
dragscroll.reset();
if (Utils.isTouchScreenOrShowDesktopDragHandles()) {
$swimlanesDom.sortable({
handle: '.js-swimlane-header-handle',
@@ -204,33 +209,27 @@ BlazeComponent.extendComponent({
}
// Disable drag-dropping if the current user is not a board member
//$swimlanesDom.sortable('option', 'disabled', !userIsMember());
$swimlanesDom.sortable(
'option',
'disabled',
!Meteor.user() || !Meteor.user().isBoardAdmin(),
!ReactiveCache.getCurrentUser()?.isBoardAdmin(),
);
});
function userIsMember() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
}
// If there is no data in the board (ie, no lists) we autofocus the list
// creation form by clicking on the corresponding element.
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (userIsMember() && currentBoard.lists().count() === 0) {
const currentBoard = Utils.getCurrentBoard();
if (Utils.canModifyBoard() && currentBoard.lists().length === 0) {
boardComponent.openNewListForm();
}
dragscroll.reset();
Utils.setBackgroundImage();
},
notDisplayThisBoard() {
let allowPrivateVisibilityOnly = TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly');
let currentBoard = Boards.findOne(Session.get('currentBoard'));
let currentBoard = Utils.getCurrentBoard();
if (allowPrivateVisibilityOnly !== undefined && allowPrivateVisibilityOnly.booleanValue && currentBoard.permission == 'public') {
return true;
}
@@ -239,7 +238,7 @@ BlazeComponent.extendComponent({
},
isViewSwimlanes() {
currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-swimlanes';
} else {
@@ -249,8 +248,12 @@ BlazeComponent.extendComponent({
}
},
hasSwimlanes() {
return Utils.getCurrentBoard().swimlanes().length > 0;
},
isViewLists() {
currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-lists';
} else {
@@ -259,7 +262,7 @@ BlazeComponent.extendComponent({
},
isViewCalendar() {
currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
@@ -267,6 +270,11 @@ BlazeComponent.extendComponent({
}
},
isVerticalScrollbars() {
const user = ReactiveCache.getCurrentUser();
return user && user.isVerticalScrollbars();
},
openNewListForm() {
if (this.isViewSwimlanes()) {
// The form had been removed in 416b17062e57f215206e93a85b02ef9eb1ab4902
@@ -289,6 +297,7 @@ BlazeComponent.extendComponent({
this._isDragging = false;
}
},
'click .js-empty-board-add-swimlane': Popup.open('swimlaneAdd'),
},
];
},
@@ -326,8 +335,9 @@ BlazeComponent.extendComponent({
calendarOptions() {
return {
id: 'calendar-view',
defaultView: 'agendaDay',
defaultView: 'month',
editable: true,
selectable: true,
timezone: 'local',
weekNumbers: true,
header: {
@@ -349,7 +359,7 @@ BlazeComponent.extendComponent({
},
locale: TAPi18n.getLanguage(),
events(start, end, timezone, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
const events = [];
const pushEvent = function (card, title, start, end, extraCls) {
start = start || card.startAt;
@@ -395,7 +405,7 @@ BlazeComponent.extendComponent({
},
eventResize(event, delta, revertFunc) {
let isOk = false;
const card = Cards.findOne(event.id);
const card = ReactiveCache.getCard(event.id);
if (card) {
card.setEnd(event.end.toDate());
@@ -407,7 +417,7 @@ BlazeComponent.extendComponent({
},
eventDrop(event, delta, revertFunc) {
let isOk = false;
const card = Cards.findOne(event.id);
const card = ReactiveCache.getCard(event.id);
if (card) {
// TODO: add a flag for allDay events
if (!event.allDay) {
@@ -422,10 +432,62 @@ BlazeComponent.extendComponent({
revertFunc();
}
},
select: function (startDate) {
const currentBoard = Utils.getCurrentBoard();
const currentUser = ReactiveCache.getCurrentUser();
const modalElement = document.createElement('div');
modalElement.classList.add('modal', 'fade');
modalElement.setAttribute('tabindex', '-1');
modalElement.setAttribute('role', 'dialog');
modalElement.innerHTML = `
<div class="modal-dialog justify-content-center align-items-center" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">${TAPi18n.__('r-create-card')}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center">
<input type="text" class="form-control" id="card-title-input" placeholder="">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="create-card-button">${TAPi18n.__('add-card')}</button>
</div>
</div>
</div>
`;
const createCardButton = modalElement.querySelector('#create-card-button');
createCardButton.addEventListener('click', function () {
const myTitle = modalElement.querySelector('#card-title-input').value;
if (myTitle) {
const firstList = currentBoard.draggableLists()[0];
const firstSwimlane = currentBoard.swimlanes()[0];
Meteor.call('createCardWithDueDate', currentBoard._id, firstList._id, myTitle, startDate.toDate(), firstSwimlane._id, function(error, result) {
if (error) {
console.log(error);
} else {
console.log("Card Created", result);
}
});
closeModal();
}
});
document.body.appendChild(modalElement);
const openModal = function() {
modalElement.style.display = 'flex';
};
const closeModal = function() {
modalElement.style.display = 'none';
};
const closeButton = modalElement.querySelector('[data-dismiss="modal"]');
closeButton.addEventListener('click', closeModal);
openModal();
}
};
},
isViewCalendar() {
currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return (currentUser.profile || {}).boardView === 'board-view-cal';
} else {
File diff suppressed because it is too large. Load diff
+7 -6
View File
@@ -12,8 +12,9 @@ template(name="boardHeaderBar")
if currentBoard
if currentUser
with currentBoard
a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title)
i.fa.fa-pencil-square-o
if currentUser.isBoardAdmin
a.board-header-btn(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}" title="{{_ 'edit'}}" value=title)
i.fa.fa-pencil-square-o
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
@@ -39,9 +40,9 @@ template(name="boardHeaderBar")
span {{_ watchLevel}}
a.board-header-btn(title="{{_ 'sort-cards'}}" class="{{#if isSortActive }}emphasis{{else}} js-sort-cards {{/if}}")
i.fa.fa-sort
span {{#if isSortActive }}{{_ 'Sort is on'}}{{else}}{{_ 'sort-cards'}}{{/if}}
span {{#if isSortActive }}{{_ 'sort-is-on'}}{{else}}{{_ 'sort-cards'}}{{/if}}
if isSortActive
a.board-header-btn-close.js-sort-reset(title="Remove Sort")
a.board-header-btn-close.js-sort-reset(title="{{_ 'remove-sort'}}")
i.fa.fa-times-thin
else
@@ -82,9 +83,9 @@ template(name="boardHeaderBar")
span {{_ watchLevel}}
a.board-header-btn(title="{{_ 'sort-cards'}}" class="{{#if isSortActive }}emphasis{{else}} js-sort-cards {{/if}}")
i.fa.fa-sort
span {{#if isSortActive }}{{_ 'Sort is on'}}{{else}}{{_ 'sort-cards'}}{{/if}}
span {{#if isSortActive }}{{_ 'sort-is-on'}}{{else}}{{_ 'sort-cards'}}{{/if}}
if isSortActive
a.board-header-btn-close.js-sort-reset(title="Remove Sort")
a.board-header-btn-close.js-sort-reset(title="{{_ 'remove-sort'}}")
i.fa.fa-times-thin
else
+17 -53
View File
@@ -1,41 +1,12 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import dragscroll from '@wekanteam/dragscroll';
/*
const DOWNCLS = 'fa-sort-down';
const UPCLS = 'fa-sort-up';
*/
const sortCardsBy = new ReactiveVar('');
Template.boardMenuPopup.events({
'click .js-rename-board': Popup.open('boardChangeTitle'),
'click .js-custom-fields'() {
Sidebar.setView('customFields');
Popup.back();
},
'click .js-open-archives'() {
Sidebar.setView('archives');
Popup.back();
},
'click .js-change-board-color': Popup.open('boardChangeColor'),
'click .js-change-language': Popup.open('changeLanguage'),
'click .js-archive-board ': Popup.afterConfirm('archiveBoard', function() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
currentBoard.archive();
// XXX We should have some kind of notification on top of the page to
// confirm that the board was successfully archived.
FlowRouter.go('home');
}),
'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
Popup.back();
Boards.remove(currentBoard._id);
FlowRouter.go('home');
}),
'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'),
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
'click .js-card-settings': Popup.open('boardCardSettings'),
'click .js-minicard-settings': Popup.open('boardMinicardSettings'),
});
Template.boardChangeTitlePopup.events({
submit(event, templateInstance) {
@@ -58,24 +29,24 @@ Template.boardChangeTitlePopup.events({
BlazeComponent.extendComponent({
watchLevel() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
return currentBoard && currentBoard.getWatchLevel(Meteor.userId());
},
isStarred() {
const boardId = Session.get('currentBoard');
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
return user && user.hasStarred(boardId);
},
// Only show the star counter if the number of star is greater than 2
showStarCounter() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
return currentBoard && currentBoard.stars >= 2;
},
/*
showSort() {
return Meteor.user().hasSortBy();
return ReactiveCache.getCurrentUser().hasSortBy();
},
directionClass() {
return this.currentDirection() === -1 ? DOWNCLS : UPCLS;
@@ -85,10 +56,10 @@ BlazeComponent.extendComponent({
Meteor.call('setListSortBy', direction + this.currentListSortBy());
},
currentDirection() {
return Meteor.user().getListSortByDirection();
return ReactiveCache.getCurrentUser().getListSortByDirection();
},
currentListSortBy() {
return Meteor.user().getListSortBy();
return ReactiveCache.getCurrentUser().getListSortBy();
},
listSortShortDesc() {
return `list-label-short-${this.currentListSortBy()}`;
@@ -99,7 +70,7 @@ BlazeComponent.extendComponent({
{
'click .js-edit-board-title': Popup.open('boardChangeTitle'),
'click .js-star-board'() {
Meteor.user().toggleBoardStar(Session.get('currentBoard'));
ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard'));
},
'click .js-open-board-menu': Popup.open('boardMenu'),
'click .js-change-visibility': Popup.open('boardChangeVisibility'),
@@ -158,13 +129,6 @@ BlazeComponent.extendComponent({
}).register('boardHeaderBar');
Template.boardHeaderBar.helpers({
canModifyBoard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
boardView() {
return Utils.boardView();
},
@@ -313,7 +277,7 @@ const CreateBoard = BlazeComponent.extendComponent({
onSubmit(event) {
super.onSubmit(event);
// Immediately star boards crated with the headerbar popup.
Meteor.user().toggleBoardStar(this.boardId.get());
ReactiveCache.getCurrentUser().toggleBoardStar(this.boardId.get());
}
}.register('headerBarCreateBoardPopup'));
@@ -322,12 +286,12 @@ BlazeComponent.extendComponent({
return !TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly').booleanValue;
},
visibilityCheck() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
return this.currentData() === currentBoard.permission;
},
selectBoardVisibility() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
const visibility = this.currentData();
currentBoard.setVisibility(visibility);
Popup.back();
@@ -344,7 +308,7 @@ BlazeComponent.extendComponent({
BlazeComponent.extendComponent({
watchLevel() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
return currentBoard.getWatchLevel(Meteor.userId());
},
@@ -384,7 +348,7 @@ BlazeComponent.extendComponent({
allowedSortValues() {
const types = [];
const pushed = {};
Meteor.user()
ReactiveCache.getCurrentUser()
.getListSortTypes()
.forEach(type => {
const key = type.replace(/^-/, '');
@@ -400,16 +364,16 @@ BlazeComponent.extendComponent({
return types;
},
Direction() {
return Meteor.user().getListSortByDirection() === -1
return ReactiveCache.getCurrentUser().getListSortByDirection() === -1
? this.downClass
: this.upClass;
},
sortby() {
return Meteor.user().getListSortBy();
return ReactiveCache.getCurrentUser().getListSortBy();
},
setSortBy(type = null) {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
if (type === null) {
type = user._getListSortBy();
} else {
+2 -2
View File
@@ -65,7 +65,7 @@ template(name="boardList")
if isTouchScreenOrShowDesktopDragHandles
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
title="{{_ 'drag-board'}}")
else
if isSandstorm
i.fa.js-clone-board(
@@ -119,7 +119,7 @@ template(name="boardList")
if isTouchScreenOrShowDesktopDragHandles
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
title="{{_ 'drag-board'}}")
else
if isSandstorm
i.fa.js-clone-board(
+49 -72
View File
@@ -1,16 +1,18 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
const subManager = new SubsManager();
Template.boardList.helpers({
currentSetting() {
return Settings.findOne();
},
hideCardCounterList() {
return Utils.isMiniScreen() && Session.get('currentBoard');
/* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
return Utils.isMiniScreen() && Session.get('currentBoard'); */
return true;
},
hideBoardMemberList() {
return Utils.isMiniScreen() && Session.get('currentBoard');
/* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
return Utils.isMiniScreen() && Session.get('currentBoard'); */
return true;
},
})
@@ -29,10 +31,10 @@ Template.boardListHeaderBar.helpers({
//}
},
templatesBoardId() {
return Meteor.user() && Meteor.user().getTemplatesBoardId();
return ReactiveCache.getCurrentUser()?.getTemplatesBoardId();
},
templatesBoardSlug() {
return Meteor.user() && Meteor.user().getTemplatesBoardSlug();
return ReactiveCache.getCurrentUser()?.getTemplatesBoardSlug();
},
});
@@ -40,7 +42,7 @@ BlazeComponent.extendComponent({
onCreated() {
Meteor.subscribe('setting');
Meteor.subscribe('tableVisibilityModeSettings');
let currUser = Meteor.user();
let currUser = ReactiveCache.getCurrentUser();
let userLanguage;
if (currUser && currUser.profile) {
userLanguage = currUser.profile.language
@@ -84,7 +86,6 @@ BlazeComponent.extendComponent({
// DOM in its initial state. The card move is then handled reactively by
// Blaze with the below query.
$boards.sortable('cancel');
board.move(sortIndex.base);
},
});
@@ -99,51 +100,34 @@ BlazeComponent.extendComponent({
});
},
userHasTeams() {
if (Meteor.user() != null && Meteor.user().teams && Meteor.user().teams.length > 0)
if (ReactiveCache.getCurrentUser()?.teams?.length > 0)
return true;
else
return false;
},
teamsDatas() {
if (Meteor.user().teams)
return Meteor.user().teams.sort((a, b) => a.teamDisplayName.localeCompare(b.teamDisplayName));
const teams = ReactiveCache.getCurrentUser()?.teams
if (teams)
return teams.sort((a, b) => a.teamDisplayName.localeCompare(b.teamDisplayName));
else
return [];
},
userHasOrgs() {
if (Meteor.user() != null && Meteor.user().orgs && Meteor.user().orgs.length > 0)
if (ReactiveCache.getCurrentUser()?.orgs?.length > 0)
return true;
else
return false;
},
/*
userHasTemplates(){
if(Meteor.user() != null && Meteor.user().orgs && Meteor.user().orgs.length > 0)
return true;
else
return false;
},
*/
orgsDatas() {
if (Meteor.user().orgs)
return Meteor.user().orgs.sort((a, b) => a.orgDisplayName.localeCompare(b.orgDisplayName));
const orgs = ReactiveCache.getCurrentUser()?.orgs;
if (orgs)
return orgs.sort((a, b) => a.orgDisplayName.localeCompare(b.orgDisplayName));
else
return [];
},
userHasOrgsOrTeams() {
let boolUserHasOrgs;
if (Meteor.user() != null && Meteor.user().orgs && Meteor.user().orgs.length > 0)
boolUserHasOrgs = true;
else
boolUserHasOrgs = false;
let boolUserHasTeams;
if (Meteor.user() != null && Meteor.user().teams && Meteor.user().teams.length > 0)
boolUserHasTeams = true;
else
boolUserHasTeams = false;
return (boolUserHasOrgs || boolUserHasTeams);
const ret = this.userHasOrgs() || this.userHasTeams();
return ret;
},
boards() {
let query = {
@@ -165,17 +149,10 @@ BlazeComponent.extendComponent({
if (allowPrivateVisibilityOnly !== undefined && allowPrivateVisibilityOnly.booleanValue) {
query.$and.push({ 'permission': 'private' });
}
const currUser = Users.findOne(Meteor.userId());
const currUser = ReactiveCache.getCurrentUser();
// const currUser = Users.findOne(Meteor.userId(), {
// fields: {
// orgs: 1,
// teams: 1,
// },
// });
let orgIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : '';
if (orgIdsUserBelongs && orgIdsUserBelongs != '') {
let orgIdsUserBelongs = currUser?.orgIdsUserBelongs() || '';
if (orgIdsUserBelongs) {
let orgsIds = orgIdsUserBelongs.split(',');
// for(let i = 0; i < orgsIds.length; i++){
// query.$and[2].$or.push({'orgs.orgId': orgsIds[i]});
@@ -185,8 +162,8 @@ BlazeComponent.extendComponent({
query.$and[2].$or.push({ 'orgs.orgId': { $in: orgsIds } });
}
let teamIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : '';
if (teamIdsUserBelongs && teamIdsUserBelongs != '') {
let teamIdsUserBelongs = currUser?.teamIdsUserBelongs() || '';
if (teamIdsUserBelongs) {
let teamsIds = teamIdsUserBelongs.split(',');
// for(let i = 0; i < teamsIds.length; i++){
// query.$or[2].$or.push({'teams.teamId': teamsIds[i]});
@@ -204,51 +181,51 @@ BlazeComponent.extendComponent({
};
}
return Boards.find(query, {
const ret = ReactiveCache.getBoards(query, {
sort: { sort: 1 /* boards default sorting */ },
});
return ret;
},
boardLists(boardId) {
let boardLists = [];
const lists = Lists.find({ 'boardId': boardId, 'archived': false },{sort: ['sort','asc']});
lists.forEach(list => {
let cardCount = Cards.find({ 'boardId': boardId, 'listId': list._id }).count()
boardLists.push(`${list.title}: ${cardCount}`);
/* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
const lists = ReactiveCache.getLists({ 'boardId': boardId, 'archived': false },{sort: ['sort','asc']});
const ret = lists.map(list => {
let cardCount = ReactiveCache.getCards({ 'boardId': boardId, 'listId': list._id }).length;
return `${list.title}: ${cardCount}`;
});
return boardLists
return ret;
*/
return [];
},
boardMembers(boardId) {
let boardMembers = [];
const lists = Boards.findOne({ '_id': boardId })
let members = lists.members
members.forEach(member => {
boardMembers.push(member.userId);
});
return boardMembers
/* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
const lists = ReactiveCache.getBoard(boardId)
const boardMembers = lists?.members.map(member => member.userId);
return boardMembers;
*/
return [];
},
isStarred() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
return user && user.hasStarred(this.currentData()._id);
},
isAdministrable() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
return user && user.isBoardAdmin(this.currentData()._id);
},
hasOvertimeCards() {
subManager.subscribe('board', this.currentData()._id, false);
return this.currentData().hasOvertimeCards();
},
hasSpentTimeCards() {
subManager.subscribe('board', this.currentData()._id, false);
return this.currentData().hasSpentTimeCards();
},
isInvited() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
return user && user.isInvitedTo(this.currentData()._id);
},
@@ -258,18 +235,18 @@ BlazeComponent.extendComponent({
'click .js-add-board': Popup.open('createBoard'),
'click .js-star-board'(evt) {
const boardId = this.currentData()._id;
Meteor.user().toggleBoardStar(boardId);
ReactiveCache.getCurrentUser().toggleBoardStar(boardId);
evt.preventDefault();
},
'click .js-clone-board'(evt) {
let title = getSlug(Boards.findOne(this.currentData()._id).title) || 'cloned-board';
let title = getSlug(ReactiveCache.getBoard(this.currentData()._id).title) || 'cloned-board';
Meteor.call(
'copyBoard',
this.currentData()._id,
{
sort: Boards.find({ archived: false }).count(),
sort: ReactiveCache.getBoards({ archived: false }).length,
type: 'board',
title: Boards.findOne(this.currentData()._id).title,
title: ReactiveCache.getBoard(this.currentData()._id).title,
},
(err, res) => {
if (err) {
@@ -343,7 +320,7 @@ BlazeComponent.extendComponent({
query.$and[2].$or.push({ 'orgs.orgId': { $in: selectedOrgsValues } });
}
let filteredBoards = Boards.find(query, {}).fetch();
let filteredBoards = ReactiveCache.getBoards(query, {});
let allBoards = document.getElementsByClassName("js-board");
let currBoard;
if (filteredBoards.length > 0) {
+172 -55
View File
@@ -1,85 +1,202 @@
.hidden {
display: none;
}
.attachment-upload {
text-align: center;
font-weight: bold;
}
.attachments-galery {
.attachment-gallery {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.attachments-galery .attachment-item {
width: 31.33%;
margin: 10px 1% 0;
text-align: center;
border-radius: 3px;
overflow: auto;
background: #ededed;
min-height: 120px;
.attachment-item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 16px;
}
.attachments-galery .attachment-item:hover {
.attachment-item:hover {
background: #e0e0e0;
}
.attachments-galery .attachment-item.add-attachment {
display: flex;
align-items: center;
}
.attachments-galery .attachment-item.add-attachment a {
.attachment-thumbnail-container {
display: block;
margin: auto;
width: 150px;
min-width: 150px;
max-height: 150px;
padding-right: 16px;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 80px;
.attachment-thumbnail {
max-width: 150px;
max-height: 150px;
min-height: 2em;
cursor: pointer;
}
.attachment-thumbnail-text {
min-height: 2em;
display: flex;
align-items: center;
justify-content: center;
position: relative;
font-size: 2em;
cursor: pointer;
border: 1px solid #ccc;
border-radius: 5px;
}
.attachments-galery .attachment-item .attachment-thumbnail .attachment-thumbnail-img {
.attachment-details-container {
display: block;
flex-grow: 1;
}
.attachment-details {
display: flex;
justify-content: space-between;
margin-right: 25px; /* Make sure the icons are not to far to the right */
}
.attachment-actions {
display: flex;
flex-direction: row;
align-items: center;
}
.add-attachment {
display: flex;
align-items: center;
justify-content: center;
border: 1px dashed #555;
border-radius: 5px;
padding: 10px;
cursor: pointer;
margin-top: 16px;
}
.icon {
font-size: 1.5em;
cursor: pointer;
margin-left: 10px;
}
.icon:hover {
color: #666;
}
#viewer-overlay {
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 9999 !important;
background: rgba(13, 13, 13, 0.95);
}
#viewer-container {
display: flex;
flex-direction: row;
justify-content: space-between;
height: 100%;
}
#viewer-top-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
padding: 16px;
}
#attachment-name {
color: white;
font-size: 1.5em;
max-width: calc(
100% - 50px
); /* Make sure the name does not overlap the close button */
}
#viewer-close {
color: white;
cursor: pointer;
font-size: 4em;
top: 0;
right: 8px;
position: absolute;
}
.attachment-arrow {
font-size: 4em;
color: white;
cursor: pointer;
align-self: center;
margin: 0 20px;
}
#viewer-content {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: calc(100% - 50px);
}
#image-viewer {
background: repeating-conic-gradient(#808080 0% 25%, transparent 0% 50%) 50% /
20px 20px; /* Checkerboard background for transparent images */
max-width: 100%;
max-height: 100%;
max-width: 100%;
}
.attachments-galery .attachment-item .attachment-thumbnail .attachment-thumbnail-ext {
text-transform: uppercase;
font-size: 1.6em;
#pdf-viewer {
width: 40vw;
height: 100%;
}
.attachments-galery .attachment-item .attachment-details {
font-size: 0.75em;
margin: 3px;
#txt-viewer {
background-color: white;
width: 40vw;
height: 100%;
}
.attachments-galery .attachment-item .attachment-details .attachment-details-actions a {
.pdf-preview-error {
margin-top: 20vh;
display: block;
font-size: 2em;
color: white;
}
.attachments-galery .attachment-item .attachment-details .attachment-details-actions a.attachment-details-menu {
padding-top: 10px;
}
.attachment-image-preview {
max-width: 100px;
display: block;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.preview-clipboard-image {
width: 280px;
max-width: 100%;
height: 200px;
display: block;
border: 1px solid #000;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
@media screen and (max-width: 1600px) {
#pdf-viewer {
width: 60vw;
}
}
@media screen and (max-width: 800px) {
.attachments-galery .attachment-item {
width: 48%;
#viewer-container {
display: block;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 130px;
.attachment-arrow {
position: absolute;
bottom: 2.2em;
font-size: 1.6em;
padding: 16px;
}
.attachments-galery .attachment-item .attachment-details {
font-size: 1.1em;
#prev-attachment {
left: 0;
}
}
@media screen and (max-width: 360px) {
.attachments-galery .attachment-item {
#next-attachment {
right: 0;
}
#pdf-viewer {
width: 100%;
height: calc(
100vh - 155px
); /* Full height - height of top and bottom bars */
}
#txt-viewer {
width: 100%;
height: calc(
100vh - 155px
); /* Full height - height of top and bottom bars */
}
#audio-viewer {
margin-top: 20%;
width: 100%;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 200px;
.attachment-thumbnail-container {
width: 100px;
min-width: 100px;
}
.attachment-thumbnail {
max-width: 100px;
}
.attachment-details {
flex-direction: column;
margin-right: 0px;
}
.attachment-actions {
flex-direction: row;
margin-top: 10px;
}
}
+81 -48
View File
@@ -30,66 +30,93 @@ template(name="attachmentDeletePopup")
p {{_ "attachment-delete-pop"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="attachmentsGalery")
.attachments-galery
each attachments
.attachment-item
a.attachment-thumbnail.swipebox(href="{{link}}" title="{{name}}")
if link
if isImage
img.attachment-thumbnail-img(src="{{link}}")
else if($eq extension 'mp3')
video(width="100%" height="100%" controls="true")
source(src="{{link}}" type="audio/mpeg")
else if($eq extension 'ogg')
video(width="100%" height="100%" controls="true")
source(src="{{link}}" type="video/ogg")
else if($eq extension 'webm')
video(width="100%" height="100%" controls="true")
source(src="{{link}}" type="video/webm")
else if($eq extension 'mp4')
video(width="100%" height="100%" controls="true")
source(src="{{link}}" type="video/mp4")
else
span.attachment-thumbnail-ext= extension
p.attachment-details
= name
span.file-size ({{fileSize size}})
span.attachment-details-actions
a.js-download(href="{{link}}?download=true", download="{{name}}")
i.fa.fa-download
| {{_ 'download'}}
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
a.fa.fa-navicon.attachment-details-menu.js-open-attachment-menu(title="{{_ 'attachmentActionsPopup-title'}}")
template(name="attachmentViewer")
#viewer-overlay.hidden
#viewer-top-bar
span#attachment-name
a#viewer-close.fa.fa-times-thin
#viewer-container
i.fa.fa-chevron-left.attachment-arrow#prev-attachment
#viewer-content
img#image-viewer.hidden
video#video-viewer.hidden(controls="true")
audio#audio-viewer.hidden(controls="true")
object#pdf-viewer.hidden(type="application/pdf")
span.pdf-preview-error {{_ 'preview-pdf-not-supported' }}
object#txt-viewer.hidden(type="text/plain")
i.fa.fa-chevron-right.attachment-arrow#next-attachment
template(name="attachmentGallery")
.attachment-gallery
if canModifyCard
a.attachment-item.add-attachment.js-add-attachment
i.fa.fa-plus.icon
each attachments
.attachment-item
.attachment-thumbnail-container.open-preview(data-attachment-id="{{_id}}" data-card-id="{{ meta.cardId }}")
if link
if(isImage)
img.attachment-thumbnail(src="{{link}}" title="{{sanitize name}}")
else if($eq extension 'svg')
img.attachment-thumbnail(src="{{link}}" title="{{sanitize name}}" type="image/svg+xml")
else if($eq extension 'mp3')
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="audio/mpeg")
else if($eq extension 'ogg')
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/ogg")
else if($eq extension 'webm')
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/webm")
else if($eq extension 'mp4')
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/mp4")
else
span.attachment-thumbnail-text= extension
.attachment-details-container
.attachment-details
div
b
= name
span.file-size ({{fileSize size}})
.attachment-actions
a.js-download(href="{{link}}?download=true", download="{{name}}")
i.fa.fa-download.icon(title="{{_ 'download'}}")
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
a.js-rename
i.fa.fa-pencil-square-o.icon(title="{{_ 'rename'}}")
a.js-confirm-delete
i.fa.fa-trash.icon(title="{{_ 'delete'}}")
a.fa.fa-navicon.icon.js-open-attachment-menu(data-attachment-link="{{link}}" title="{{_ 'attachmentActionsPopup-title'}}")
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
//li.attachment-item.add-attachment
a.js-add-attachment(title="{{_ 'add-attachment' }}")
i.fa.fa-plus
template(name="attachmentActionsPopup")
ul.pop-over-list
li
if isImage
a(class="{{#if isCover}}js-remove-cover{{else}}js-add-cover{{/if}}")
i.fa.fa-thumb-tack
i.fa.fa-book
i.fa.fa-picture-o
if isCover
| {{_ 'remove-cover'}}
else
| {{_ 'add-cover'}}
if currentUser.isBoardAdmin
a.js-rename
i.fa.fa-pencil-square-o
| {{_ 'rename'}}
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
p.attachment-storage
| {{versions.original.storage}}
if isImage
a(class="{{#if isBackgroundImage}}js-remove-background-image{{else}}js-add-background-image{{/if}}")
i.fa.fa-picture-o
if isBackgroundImage
| {{_ 'remove-background-image'}}
else
| {{_ 'add-background-image'}}
if $neq versions.original.storage "fs"
a.js-move-storage-fs
@@ -102,6 +129,12 @@ template(name="attachmentActionsPopup")
i.fa.fa-arrow-right
| {{_ 'attachment-move-storage-gridfs'}}
if $neq versions.original.storage "s3"
if versions.original.storage
a.js-move-storage-s3
i.fa.fa-arrow-right
| {{_ 'attachment-move-storage-s3'}}
template(name="attachmentRenamePopup")
input.js-edit-attachment-name(type='text' autofocus value="{{getNameWithoutExtension}}" dir="auto")
.edit-controls.clearfix
+297 -13
View File
@@ -1,9 +1,31 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { ObjectID } from 'bson';
import DOMPurify from 'dompurify';
const filesize = require('filesize');
const prettyMilliseconds = require('pretty-ms');
Template.attachmentsGalery.events({
// We store current card ID and the ID of currently opened attachment in a
// global var. This is used so that we know what's the next attachment to open
// when the user clicks on the prev/next button in the attachment viewer.
let cardId = null;
let openAttachmentId = null;
// Used to store the start and end coordinates of a touch event for attachment swiping
let touchStartCoords = null;
let touchEndCoords = null;
// Stores link to the attachment for which attachment actions popup was opened
attachmentActionsLink = null;
Template.attachmentGallery.events({
'click .open-preview'(event) {
openAttachmentId = $(event.currentTarget).attr("data-attachment-id");
cardId = $(event.currentTarget).attr("data-card-id");
openAttachmentViewer(openAttachmentId);
},
'click .js-add-attachment': Popup.open('cardAttachments'),
// If we let this event bubble, FlowRouter will handle it and empty the page
// content, see #101.
@@ -11,16 +33,243 @@ Template.attachmentsGalery.events({
event.stopPropagation();
},
'click .js-open-attachment-menu': Popup.open('attachmentActions'),
'mouseover .js-open-attachment-menu'(event) { // For some reason I cannot combine handlers for "click .js-open-attachment-menu" and "mouseover .js-open-attachment-menu" events so this is a quick workaround.
attachmentActionsLink = event.currentTarget.getAttribute("data-attachment-link");
},
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back();
}),
});
Template.attachmentsGalery.helpers({
function getNextAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
}
return attachments[(i + offset + 1 + attachments.length) % attachments.length]._id;
}
function getPrevAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
}
return attachments[(i + offset - 1 + attachments.length) % attachments.length]._id;
}
function attachmentCanBeOpened(attachment) {
return (
attachment.isImage ||
attachment.isPDF ||
attachment.isText ||
attachment.isJSON ||
attachment.isVideo ||
attachment.isAudio
);
}
function openAttachmentViewer(attachmentId) {
const attachment = ReactiveCache.getAttachment(attachmentId);
// Check if we can open the attachment (if we have a viewer for it) and exit if not
if (!attachmentCanBeOpened(attachment)) {
return;
}
/*
Instructions for adding a new viewer:
- add a new case to the switch statement below
- implement cleanup in the closeAttachmentViewer() function, if necessary
- mark attachment type as openable by adding a new condition to the attachmentCanBeOpened function
*/
switch(true){
case (attachment.isImage):
$("#image-viewer").attr("src", attachment.link());
$("#image-viewer").removeClass("hidden");
break;
case (attachment.isPDF):
$("#pdf-viewer").attr("data", attachment.link());
$("#pdf-viewer").removeClass("hidden");
break;
case (attachment.isVideo):
// We have to create a new <source> DOM element and append it to the video
// element, otherwise the video won't load
let videoSource = document.createElement('source');
videoSource.setAttribute('src', attachment.link());
$("#video-viewer").append(videoSource);
$("#video-viewer").removeClass("hidden");
break;
case (attachment.isAudio):
// We have to create a new <source> DOM element and append it to the audio
// element, otherwise the audio won't load
let audioSource = document.createElement('source');
audioSource.setAttribute('src', attachment.link());
$("#audio-viewer").append(audioSource);
$("#audio-viewer").removeClass("hidden");
break;
case (attachment.isText):
case (attachment.isJSON):
$("#txt-viewer").attr("data", attachment.link());
$("#txt-viewer").removeClass("hidden");
break;
}
$('#attachment-name').text(attachment.name);
$('#viewer-overlay').removeClass('hidden');
}
function closeAttachmentViewer() {
$("#viewer-overlay").addClass("hidden");
// We need to reset the viewers to avoid showing previous attachments
$("#image-viewer").attr("src", "");
$("#image-viewer").addClass("hidden");
$("#pdf-viewer").attr("data", "");
$("#pdf-viewer").addClass("hidden");
$("#txt-viewer").attr("data", "");
$("#txt-viewer").addClass("hidden");
$("#video-viewer").get(0).pause(); // Stop playback
$("#video-viewer").get(0).currentTime = 0;
$("#video-viewer").empty();
$("#video-viewer").addClass("hidden");
$("#audio-viewer").get(0).pause(); // Stop playback
$("#audio-viewer").get(0).currentTime = 0;
$("#audio-viewer").empty();
$("#audio-viewer").addClass("hidden");
}
function openNextAttachment() {
closeAttachmentViewer();
let i = 0;
// Find an attachment that can be opened
while (true) {
const id = getNextAttachmentId(openAttachmentId, i);
const attachment = ReactiveCache.getAttachment(id);
if (attachmentCanBeOpened(attachment)) {
openAttachmentId = id;
openAttachmentViewer(id);
break;
}
i++;
}
}
function openPrevAttachment() {
closeAttachmentViewer();
let i = 0;
// Find an attachment that can be opened
while (true) {
const id = getPrevAttachmentId(openAttachmentId, i);
const attachment = ReactiveCache.getAttachment(id);
if (attachmentCanBeOpened(attachment)) {
openAttachmentId = id;
openAttachmentViewer(id);
break;
}
i--;
}
}
function processTouch(){
xDist = touchEndCoords.x - touchStartCoords.x;
yDist = touchEndCoords.y - touchStartCoords.y;
console.log("xDist: " + xDist);
// Left swipe
if (Math.abs(xDist) > Math.abs(yDist) && xDist < 0) {
openNextAttachment();
}
// Right swipe
if (Math.abs(xDist) > Math.abs(yDist) && xDist > 0) {
openPrevAttachment();
}
// Up swipe
if (Math.abs(yDist) > Math.abs(xDist) && yDist < 0) {
closeAttachmentViewer();
}
}
Template.attachmentViewer.events({
'touchstart #viewer-container'(event) {
console.log("touchstart")
touchStartCoords = {
x: event.changedTouches[0].screenX,
y: event.changedTouches[0].screenY
}
},
'touchend #viewer-container'(event) {
console.log("touchend")
touchEndCoords = {
x: event.changedTouches[0].screenX,
y: event.changedTouches[0].screenY
}
processTouch();
},
'click #viewer-container'(event) {
// Make sure the click was on #viewer-container and not on any of its children
if(event.target !== event.currentTarget) {
event.stopPropagation();
return;
}
closeAttachmentViewer();
},
'click #viewer-content'(event) {
// Make sure the click was on #viewer-content and not on any of its children
if(event.target !== event.currentTarget) {
event.stopPropagation();
return;
}
closeAttachmentViewer();
},
'click #viewer-close'() {
closeAttachmentViewer();
},
'click #next-attachment'() {
openNextAttachment();
},
'click #prev-attachment'() {
openPrevAttachment();
},
});
Template.attachmentGallery.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
fileSize(size) {
const ret = filesize(size);
return ret;
},
sanitize(value) {
return DOMPurify.sanitize(value);
},
});
Template.cardAttachmentsPopup.onCreated(function() {
@@ -49,9 +298,23 @@ Template.cardAttachmentsPopup.events({
let uploads = [];
for (const file of files) {
const fileId = new ObjectID().toString();
let fileName = DOMPurify.sanitize(file.name);
// If sanitized filename is not same as original filename,
// it could be XSS that is already fixed with sanitize,
// or just normal mistake, so it is not a problem.
// That is why here is no warning.
if (fileName !== file.name) {
// If filename is empty, only in that case add some filename
if (fileName.length === 0) {
fileName = 'Empty-filename-after-sanitize.txt';
}
}
const config = {
file: file,
fileId: fileId,
fileName: fileName,
meta: Utils.getCommonAttachmentMetaFrom(card),
chunkSize: 'dynamic',
};
@@ -164,25 +427,40 @@ Template.previewClipboardImagePopup.events({
BlazeComponent.extendComponent({
isCover() {
const ret = Cards.findOne(this.data().meta.cardId).coverId == this.data()._id;
const ret = ReactiveCache.getCard(this.data().meta.cardId).coverId == this.data()._id;
return ret;
},
isBackgroundImage() {
//const currentBoard = Utils.getCurrentBoard();
//return currentBoard.backgroundImageURL === $(".attachment-thumbnail-img").attr("src");
return false;
},
events() {
return [
{
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back(2);
}),
'click .js-add-cover'() {
Cards.findOne(this.data().meta.cardId).setCover(this.data()._id);
ReactiveCache.getCard(this.data().meta.cardId).setCover(this.data()._id);
Popup.back();
},
'click .js-remove-cover'() {
Cards.findOne(this.data().meta.cardId).unsetCover();
ReactiveCache.getCard(this.data().meta.cardId).unsetCover();
Popup.back();
},
'click .js-add-background-image'() {
const currentBoard = Utils.getCurrentBoard();
currentBoard.setBackgroundImageURL(attachmentActionsLink);
Utils.setBackgroundImage(attachmentActionsLink);
Popup.back();
event.preventDefault();
},
'click .js-remove-background-image'() {
const currentBoard = Utils.getCurrentBoard();
currentBoard.setBackgroundImageURL("");
Utils.setBackgroundImage("");
Popup.back();
Utils.reload();
event.preventDefault();
},
'click .js-move-storage-fs'() {
Meteor.call('moveAttachmentToStorage', this.data()._id, "fs");
Popup.back();
@@ -191,6 +469,10 @@ BlazeComponent.extendComponent({
Meteor.call('moveAttachmentToStorage', this.data()._id, "gridfs");
Popup.back();
},
'click .js-move-storage-s3'() {
Meteor.call('moveAttachmentToStorage', this.data()._id, "s3");
Popup.back();
},
}
]
}
@@ -216,8 +498,10 @@ BlazeComponent.extendComponent({
const name = this.$('.js-edit-attachment-name')[0]
.value
.trim() + this.data().extensionWithDot;
Meteor.call('renameAttachment', this.data()._id, name);
Popup.back(2);
if (name === DOMPurify.sanitize(name)) {
Meteor.call('renameAttachment', this.data()._id, name);
}
Popup.back();
},
}
]
@@ -37,14 +37,6 @@ const CardCustomField = BlazeComponent.extendComponent({
self.card = Utils.getCurrentCard();
self.customFieldId = this.data()._id;
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
CardCustomField.register('cardCustomField');
-11
View File
@@ -2,17 +2,6 @@ import moment from 'moment/min/moment-with-locales';
import { TAPi18n } from '/imports/i18n';
import { DatePicker } from '/client/lib/datepicker';
Template.dateBadge.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
// editCardReceivedDatePopup
(class extends DatePicker {
onCreated() {
+16 -6
View File
@@ -5,7 +5,7 @@
float: left;
height: 30px;
width: 30px;
margin: 0 4px 4px 0;
margin: .3vh;
cursor: pointer;
user-select: none;
z-index: 1;
@@ -84,7 +84,7 @@
overflow-x: hidden;
background: #f7f7f7;
border-radius: bottom 3px;
z-index: 20;
z-index: 30;
animation: flexGrowIn 0.1s;
box-shadow: 0 0 7px 0 #b3b3b3;
transition: flex-basis 0.1s;
@@ -196,6 +196,9 @@
margin-right: 10px;
padding: 10px;
}
.card-details .card-description i.fa.fa-pencil-square-o {
float: right;
}
.card-details .card-description textarea {
min-height: 100px;
}
@@ -245,6 +248,14 @@
padding-top: 10px;
}
@media screen and (min-width: 801px) {
.card-details {
top: 97px;
left: calc(50% - (600px / 2));
width: 600px;
bottom: 0;
position: fixed;
resize: both;
}
.card-details-maximized {
padding: 0;
flex-shrink: 0;
@@ -259,10 +270,9 @@
box-shadow: 0 0 7px 0 #b3b3b3;
transition: flex-basis 0.1s;
box-sizing: border-box;
position: absolute;
top: 0;
left: 0;
height: calc(100% - 20px);
top: 97px;
left: 0px;
height: calc(100% - 100px);
width: calc(100% - 20px);
float: left;
}
+54 -32
View File
@@ -2,7 +2,10 @@ template(name="cardDetailsPopup")
+cardDetails(popupCard)
template(name="cardDetails")
section.card-details.js-card-details(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas
+attachmentViewer
section.card-details.js-card-details.nodragscroll(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}' class='{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}'): .card-details-canvas
.card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
+inlinedForm(classNames="js-card-details-title")
+editCardTitleForm
@@ -10,11 +13,12 @@ template(name="cardDetails")
unless isMiniScreen
unless isPopup
a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
if cardMaximized
a.fa.fa-window-minimize.minimize-card-details.js-minimize-card-details(title="{{_ 'minimize-card'}}")
else
a.fa.fa-window-maximize.maximize-card-details.js-maximize-card-details(title="{{_ 'maximize-card'}}")
if currentUser.isBoardMember
if canModifyCard
if cardMaximized
a.fa.fa-window-minimize.minimize-card-details.js-minimize-card-details(title="{{_ 'minimize-card'}}")
else
a.fa.fa-window-maximize.maximize-card-details.js-maximize-card-details(title="{{_ 'maximize-card'}}")
if canModifyCard
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
a.fa.fa-link.card-copy-button.js-copy-link(
id="cardURL_copy"
@@ -26,7 +30,7 @@ template(name="cardDetails")
else
unless isPopup
a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
if currentUser.isBoardMember
if canModifyCard
a.fa.fa-navicon.card-details-menu-mobile-web.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
a.fa.fa-link.card-copy-mobile-button.js-copy-link(
id="cardURL_copy"
@@ -266,12 +270,14 @@ template(name="cardDetails")
i.fa.fa-list-alt
= definition.name
+cardCustomField
.material-toggle-switch(title="{{_ 'change'}} {{_ 'custom-fields'}} {{_ 'layout'}}")
if customFieldsGrid
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton")
label.toggle-label(for="toggleCustomFieldsGridButton")
if $gt customFieldsWD.length 1
.material-toggle-switch(title="{{_ 'change'}} {{_ 'custom-fields'}} {{_ 'layout'}}")
if customFieldsGrid
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton")
label.toggle-label(for="toggleCustomFieldsGridButton")
a.fa.fa-plus.js-custom-fields.card-details-item.custom-fields(title="{{_ 'custom-fields'}}")
if getVoteQuestion
@@ -519,12 +525,12 @@ template(name="cardDetails")
a.fa.fa-times-thin.js-close-inlined-form
else
if currentBoard.allowsDescriptionText
a.js-open-inlined-form
a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
i.fa.fa-pencil-square-o
a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
if getDescription
+viewer
= getDescription
else
| {{_ 'edit'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
@@ -539,11 +545,11 @@ template(name="cardDetails")
+viewer
= getDescription
.card-checklist-attachmentGalerys
.card-checklist-attachmentGalery.card-checklists
.card-checklist-attachmentGalleries
.card-checklist-attachmentGallery.card-checklists
if currentBoard.allowsChecklists
hr
+checklists(cardId = _id)
+checklists(cardId = _id card = this)
if currentBoard.allowsSubtasks
hr
+subtasks(cardId = _id)
@@ -552,8 +558,28 @@ template(name="cardDetails")
h3.card-details-item-title
i.fa.fa-paperclip
| {{_ 'attachments'}}
.card-checklist-attachmentGalery.card-attachmentGalery
+attachmentsGalery
if Meteor.settings.public.attachmentsUploadMaxSize
| {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
br
if Meteor.settings.public.attachmentsUploadMimeTypes
| {{_ 'allowed-upload-filetypes'}} {{Meteor.settings.public.attachmentsUploadMimeTypes}}
br
| {{_ 'invalid-file'}}
.card-checklist-attachmentGallery.card-attachmentGallery
+attachmentGallery
hr
unless currentUser.isNoComments
.comment-title
h3.card-details-item-title
i.fa.fa-comment-o
| {{_ 'comments'}}
if currentBoard.allowsComments
if currentUser.isBoardMember
unless currentUser.isNoComments
+commentForm
+comments
hr
.card-details-right
@@ -562,19 +588,15 @@ template(name="cardDetails")
.activity-title
h3.card-details-item-title
i.fa.fa-history
| {{ _ 'activity'}}
| {{ _ 'activities'}}
if currentUser.isBoardMember
.material-toggle-switch(title="{{_ 'hide-system-messages'}}")
//span.toggle-switch-title
if hiddenSystemMessages
input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
.material-toggle-switch(title="{{_ 'show-activities'}}")
if showActivities
input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleButton")
label.toggle-label(for="toggleButton")
if currentBoard.allowsComments
if currentUser.isBoardMember
unless currentUser.isNoComments
+commentForm
input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard")
label.toggle-label(for="toggleShowActivitiesCard")
unless currentUser.isNoComments
if isLoaded.get
if isLinkedCard
+54 -173
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import moment from 'moment/min/moment-with-locales';
import { TAPi18n } from '/imports/i18n';
import { DatePicker } from '/client/lib/datepicker';
@@ -62,82 +63,13 @@ BlazeComponent.extendComponent({
return card.findWatcher(Meteor.userId());
},
hiddenSystemMessages() {
return Meteor.user().hasHiddenSystemMessages();
},
customFieldsGrid() {
return Meteor.user().hasCustomFieldsGrid();
return ReactiveCache.getCurrentUser().hasCustomFieldsGrid();
},
cardMaximized() {
return !Utils.getPopupCardId() && Meteor.user().hasCardMaximized();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
scrollParentContainer() {
const cardPanelWidth = 600;
const parentComponent = this.parentComponent();
/*
// Incomplete fix about bug where opening card scrolls to wrong place
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
// TODO sometimes parentComponent is not available, maybe because it's not
// yet created?!
if (!parentComponent) return;
const bodyBoardComponent = parentComponent.parentComponent();
*/
//On Mobile View Parent is Board, Not Board Body. I cant see how this funciton should work then.
if (bodyBoardComponent === null) return;
const $cardView = this.$(this.firstNode());
const $cardContainer = bodyBoardComponent.$('.js-swimlanes');
/*
// Incomplete fix about bug where opening card scrolls to wrong place
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
// TODO sometimes cardContainer is not available, maybe because it's not yet
// created?!
if (!$cardContainer) return;
*/
const cardContainerScroll = $cardContainer.scrollLeft();
const cardContainerWidth = $cardContainer.width();
const cardViewStart = $cardView.offset().left;
const cardViewEnd = cardViewStart + cardPanelWidth;
let offset = false;
if (cardViewStart < 0) {
offset = cardViewStart;
} else if (cardViewEnd > cardContainerWidth) {
offset = cardViewEnd - cardContainerWidth;
}
if (offset) {
bodyBoardComponent.scrollLeft(cardContainerScroll + offset);
}
//Scroll top
const cardViewStartTop = $cardView.offset().top;
const cardContainerScrollTop = $cardContainer.scrollTop();
let topOffset = false;
if (cardViewStartTop !== 100) {
topOffset = cardViewStartTop - 100;
}
if (topOffset !== false) {
bodyBoardComponent.scrollTop(cardContainerScrollTop + topOffset);
}
return !Utils.getPopupCardId() && ReactiveCache.getCurrentUser().hasCardMaximized();
},
presentParentTask() {
@@ -152,7 +84,7 @@ BlazeComponent.extendComponent({
const card = this.currentData();
let result = '#';
if (card) {
const board = Boards.findOne(card.boardId);
const board = ReactiveCache.getBoard(card.boardId);
if (board) {
result = FlowRouter.path('card', {
boardId: card.boardId,
@@ -182,6 +114,11 @@ BlazeComponent.extendComponent({
);
},
isVerticalScrollbars() {
const user = ReactiveCache.getCurrentUser();
return user && user.isVerticalScrollbars();
},
/** returns if the list id is the current list id
* @param listId list id to check
* @return is the list id the current list id ?
@@ -201,15 +138,15 @@ BlazeComponent.extendComponent({
cardId: card._id,
boardId: card.boardId,
listId: card.listId,
user: Meteor.user().username,
user: ReactiveCache.getCurrentUser().username,
url: '',
};
const integrations = Integrations.find({
const integrations = ReactiveCache.getIntegrations({
boardId: { $in: [card.boardId, Integrations.Const.GLOBAL_WEBHOOK_ID] },
enabled: true,
activities: { $in: ['CardDetailsRendered', 'all'] },
}).fetch();
});
if (integrations.length > 0) {
integrations.forEach((integration) => {
@@ -296,7 +233,7 @@ BlazeComponent.extendComponent({
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
return ReactiveCache.getCurrentUser()?.isBoardMember();
}
// Disable sorting if the current user is not a board member
@@ -441,8 +378,11 @@ BlazeComponent.extendComponent({
Session.set('cardDetailsIsDragging', false);
Session.set('cardDetailsIsMouseDown', false);
},
'click #toggleButton'() {
Meteor.call('toggleSystemMessages');
'click #toggleShowActivitiesCard'() {
this.data().toggleShowActivities();
},
'click #toggleHideCheckedChecklistItems'() {
this.data().toggleHideCheckedChecklistItems();
},
'click #toggleCustomFieldsGridButton'() {
Meteor.call('toggleCustomFieldsGrid');
@@ -450,20 +390,10 @@ BlazeComponent.extendComponent({
'click .js-maximize-card-details'() {
Meteor.call('toggleCardMaximized');
autosize($('.card-details'));
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
},
'click .js-minimize-card-details'() {
Meteor.call('toggleCardMaximized');
autosize($('.card-details'));
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
},
'click .js-vote'(e) {
const forIt = $(e.target).hasClass('js-vote-positive');
@@ -660,15 +590,7 @@ Template.cardDetailsActionsPopup.helpers({
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
});
@@ -744,19 +666,8 @@ BlazeComponent.extendComponent({
}).register('editCardTitleForm');
Template.cardMembersPopup.onCreated(function () {
let currBoard = Boards.findOne(Session.get('currentBoard'));
let currBoard = Utils.getCurrentBoard();
let members = currBoard.activeMembers();
// let query = {
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
// };
// let boardTeamUsers = Users.find(query, {
// sort: { sort: 1 },
// });
// members = currBoard.activeMembers2(members, boardTeamUsers);
this.members = new ReactiveVar(members);
});
@@ -769,29 +680,19 @@ Template.cardMembersPopup.events({
Template.cardMembersPopup.helpers({
members() {
return Template.instance().members.get();
return _.sortBy(Template.instance().members.get(),'fullname');
},
});
const filterMembers = (filterTerm) => {
let currBoard = Boards.findOne(Session.get('currentBoard'));
let currBoard = Utils.getCurrentBoard();
let members = currBoard.activeMembers();
// let query = {
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
// };
// let boardTeamUsers = Users.find(query, {
// sort: { sort: 1 },
// });
// members = currBoard.activeMembers2(members, boardTeamUsers);
if (filterTerm) {
members = members
.map(member => ({
member,
user: Users.findOne(member.userId)
user: ReactiveCache.getUser(member.userId)
}))
.filter(({ user }) =>
(user.profile.fullname !== undefined && user.profile.fullname.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
@@ -830,11 +731,11 @@ Template.editCardAssignerForm.events({
/** Move Card Dialog */
(class extends DialogWithBoardSwimlaneList {
getDialogOptions() {
const ret = Meteor.user().getMoveAndCopyDialogOptions();
const ret = ReactiveCache.getCurrentUser().getMoveAndCopyDialogOptions();
return ret;
}
setDone(boardId, swimlaneId, listId, options) {
Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setMoveAndCopyDialogOption(this.currentBoardId, options);
const card = this.data();
const minOrder = card.getMinSort(listId, swimlaneId);
card.move(boardId, swimlaneId, listId, minOrder - 1);
@@ -844,11 +745,11 @@ Template.editCardAssignerForm.events({
/** Copy Card Dialog */
(class extends DialogWithBoardSwimlaneList {
getDialogOptions() {
const ret = Meteor.user().getMoveAndCopyDialogOptions();
const ret = ReactiveCache.getCurrentUser().getMoveAndCopyDialogOptions();
return ret;
}
setDone(boardId, swimlaneId, listId, options) {
Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setMoveAndCopyDialogOption(this.currentBoardId, options);
const card = this.data();
// const textarea = $('#copy-card-title');
@@ -871,11 +772,11 @@ Template.editCardAssignerForm.events({
/** Convert Checklist-Item to card dialog */
(class extends DialogWithBoardSwimlaneList {
getDialogOptions() {
const ret = Meteor.user().getMoveAndCopyDialogOptions();
const ret = ReactiveCache.getCurrentUser().getMoveAndCopyDialogOptions();
return ret;
}
setDone(boardId, swimlaneId, listId, options) {
Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setMoveAndCopyDialogOption(this.currentBoardId, options);
const card = this.data();
const textarea = this.$('#copy-card-title');
@@ -889,7 +790,7 @@ Template.editCardAssignerForm.events({
swimlaneId: swimlaneId,
sort: 0,
});
const card = Cards.findOne(_id);
const card = ReactiveCache.getCard(_id);
const minOrder = card.getMinSort();
card.move(card.boardId, card.swimlaneId, card.listId, minOrder - 1);
@@ -901,11 +802,11 @@ Template.editCardAssignerForm.events({
/** Copy many cards dialog */
(class extends DialogWithBoardSwimlaneList {
getDialogOptions() {
const ret = Meteor.user().getMoveAndCopyDialogOptions();
const ret = ReactiveCache.getCurrentUser().getMoveAndCopyDialogOptions();
return ret;
}
setDone(boardId, swimlaneId, listId, options) {
Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setMoveAndCopyDialogOption(this.currentBoardId, options);
const card = this.data();
const textarea = this.$('#copy-card-title');
@@ -949,13 +850,15 @@ BlazeComponent.extendComponent({
'click .js-palette-color'() {
this.currentColor.set(this.currentData().color);
},
'click .js-submit'() {
'click .js-submit'(event) {
event.preventDefault();
this.currentCard.setColor(this.currentColor.get());
Popup.close();
Popup.back();
},
'click .js-remove-color'() {
'click .js-remove-color'(event) {
event.preventDefault();
this.currentCard.setColor(null);
Popup.close();
Popup.back();
},
},
];
@@ -977,27 +880,27 @@ BlazeComponent.extendComponent({
},
boards() {
return Boards.find(
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
_id: {
$ne: Meteor.user().getTemplatesBoardId(),
},
_id: { $ne: ReactiveCache.getCurrentUser().getTemplatesBoardId() },
},
{
sort: { sort: 1 /* boards default sorting */ },
},
);
return ret;
},
cards() {
const currentId = Utils.getCurrentCardId();
if (this.parentBoard.get()) {
return Cards.find({
const ret = ReactiveCache.getCards({
boardId: this.parentBoard.get(),
_id: { $ne: currentId },
});
return ret;
} else {
return [];
}
@@ -1021,7 +924,7 @@ BlazeComponent.extendComponent({
setParentCardId(cardId) {
if (cardId) {
this.parentCard = Cards.findOne(cardId);
this.parentCard = ReactiveCache.getCard(cardId);
} else {
this.parentCard = null;
}
@@ -1040,7 +943,7 @@ BlazeComponent.extendComponent({
'click .js-delete': Popup.afterConfirm('cardDelete', function () {
Popup.close();
// verify that there are no linked cards
if (Cards.find({ linkedId: this._id }).count() === 0) {
if (ReactiveCache.getCards({ linkedId: this._id }).length === 0) {
Cards.remove(this._id);
} else {
// TODO: Maybe later we can list where the linked cards are.
@@ -1579,8 +1482,8 @@ EscapeActions.register(
() => {
// if card description diverges from database due to editing
// ask user whether changes should be applied
if (Meteor.user()) {
if (Meteor.user().profile.rescueCardDescription == true) {
if (ReactiveCache.getCurrentUser()) {
if (ReactiveCache.getCurrentUser().profile.rescueCardDescription == true) {
currentDescription = document.getElementsByClassName("editor js-new-description-input").item(0)
if (currentDescription?.value && !(currentDescription.value === Utils.getCurrentCard().getDescription())) {
if (confirm(TAPi18n.__('rescue-card-description-dialogue'))) {
@@ -1614,19 +1517,8 @@ EscapeActions.register(
);
Template.cardAssigneesPopup.onCreated(function () {
let currBoard = Boards.findOne(Session.get('currentBoard'));
let currBoard = Utils.getCurrentBoard();
let members = currBoard.activeMembers();
// let query = {
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
// };
// let boardTeamUsers = Users.find(query, {
// sort: { sort: 1 },
// });
// members = currBoard.activeMembers2(members, boardTeamUsers);
this.members = new ReactiveVar(members);
});
@@ -1652,17 +1544,17 @@ Template.cardAssigneesPopup.helpers({
},
members() {
return Template.instance().members.get();
return _.sortBy(Template.instance().members.get(),'fullname');
},
user() {
return Users.findOne(this.userId);
return ReactiveCache.getUser(this.userId);
},
});
Template.cardAssigneePopup.helpers({
userData() {
return Users.findOne(this.userId, {
return ReactiveCache.getUser(this.userId, {
fields: {
profile: 1,
username: 1,
@@ -1671,21 +1563,10 @@ Template.cardAssigneePopup.helpers({
},
memberType() {
const user = Users.findOne(this.userId);
const user = ReactiveCache.getUser(this.userId);
return user && user.isBoardAdmin() ? 'admin' : 'normal';
},
/*
presenceStatusClassName() {
const user = Users.findOne(this.userId);
const userPresence = presences.findOne({ userId: this.userId });
if (user && user.isInvitedTo(Session.get('currentBoard'))) return 'pending';
else if (!userPresence) return 'disconnected';
else if (Session.equals('currentBoard', userPresence.state.currentBoardId))
return 'active';
else return 'idle';
},
*/
isCardAssignee() {
const card = Template.parentData();
const cardAssignees = card.getAssignees();
@@ -1694,13 +1575,13 @@ Template.cardAssigneePopup.helpers({
},
user() {
return Users.findOne(this.userId);
return ReactiveCache.getUser(this.userId);
},
});
Template.cardAssigneePopup.events({
'click .js-remove-assignee'() {
Cards.findOne(this.cardId).unassignAssignee(this.userId);
ReactiveCache.getCard(this.cardId).unassignAssignee(this.userId);
Popup.back();
},
'click .js-edit-profile': Popup.open('editProfile'),
-10
View File
@@ -83,13 +83,3 @@ BlazeComponent.extendComponent({
];
},
}).register('cardSpentTime');
Template.timeBadge.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
+18
View File
@@ -45,6 +45,9 @@ textarea.js-edit-checklist-item {
border-radius: 16px;
height: 100%;
}
.checklist-title {
padding: 10px;
}
.checklist-title .checkbox {
float: left;
width: 30px;
@@ -164,6 +167,21 @@ textarea.js-edit-checklist-item {
color: #222;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.add-checklist-top {
/* more space to checklists title */
padding-left: 20px;
/* + is easier clickable */
padding-right: 20px;
}
.add-checklist-top.js-open-inlined-form:hover {
background: #dbdbdb;
color: #222;
box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.card-details-item-title {
/* max width for adding checklist at top */
width: 100%;
}
.checklist-details-menu {
float: right;
padding: 6px 10px 6px 10px;
+51 -16
View File
@@ -3,18 +3,25 @@ template(name="checklists")
h3.card-details-item-title
i.fa.fa-check
| {{_ 'checklists'}}
if currentUser.isBoardMember
.material-toggle-switch(title="{{_ 'hide-checked-items'}}")
//span.toggle-switch-title
if hideCheckedItems
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked")
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId position="top")
+addChecklistItemForm
else
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton")
label.toggle-label(for="toggleHideCheckedItemsButton")
a.add-checklist-top.js-open-inlined-form(title="{{_ 'add-checklist'}}")
i.fa.fa-plus
if currentUser.isBoardMember
.material-toggle-switch(title="{{_ 'hide-finished-checklist'}}")
//span.toggle-switch-title
if card.hideFinishedChecklistIfItemsAreHidden
input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist")
label.toggle-label(for="toggleHideFinishedChecklist")
.card-checklist-items
each checklist in checklists
+checklistDetail(checklist = checklist)
if checklist.showChecklist card.hideFinishedChecklistIfItemsAreHidden
+checklistDetail(checklist = checklist card = card)
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId)
@@ -24,7 +31,7 @@ template(name="checklists")
i.fa.fa-plus
template(name="checklistDetail")
.js-checklist.checklist
.js-checklist.checklist.nodragscroll
+inlinedForm(classNames="js-edit-checklist-title" checklist = checklist)
+editChecklistItemForm(checklist = checklist)
else
@@ -49,7 +56,7 @@ template(name="checklistDetail")
.checklist-progress-text {{finishedPercent}}%
.checklist-progress-bar
.checklist-progress(style="width:{{finishedPercent}}%")
+checklistItems(checklist = checklist)
+checklistItems(checklist = checklist card = card)
template(name="checklistDeletePopup")
p {{_ 'confirm-checklist-delete-popup'}}
@@ -66,6 +73,12 @@ template(name="addChecklistItemForm")
.material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}")
input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem")
label.toggle-label(for="toggleNewlineBecomesNewChecklistItem")
| {{_ 'newLineNewItem'}}
if $eq position 'top'
.material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItemOriginOrder'}}")
input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItemOriginOrder")
label.toggle-label(for="toggleNewlineBecomesNewChecklistItemOriginOrder")
| {{_ 'originOrder'}}
template(name="editChecklistItemForm")
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
@@ -86,12 +99,19 @@ template(name="editChecklistItemForm")
| {{_ 'convertChecklistItemToCardPopup-title'}}
template(name="checklistItems")
if checklist.items.length
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top")
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true position="top")
else
a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}")
i.fa.fa-plus
.checklist-items.js-checklist-items
each item in checklist.items
+inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist)
+editChecklistItemForm(type = 'item' item = item checklist = checklist)
else
+checklistItemDetail(item = item checklist = checklist)
+checklistItemDetail(item = item checklist = checklist card = card)
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist)
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true)
@@ -100,7 +120,7 @@ template(name="checklistItems")
i.fa.fa-plus
template(name='checklistItemDetail')
.js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if hideCheckedItems}} invisible{{/if}}{{/if}}"
.js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if checklist.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}{{#if checklist.hideAllChecklistItems}} is-checked invisible{{/if}}"
role="checkbox" aria-checked="{{#if item.isFinished }}true{{else}}false{{/if}}" tabindex="0")
if canModifyCard
.check-box-container
@@ -128,6 +148,24 @@ template(name="checklistActionsPopup")
a.js-copy-checklist.copy-checklist
i.fa.fa-copy
| {{_ "copyChecklist"}} ...
a.js-hide-checked-checklist-items
i.fa.fa-eye-slash
| {{_ "hideCheckedChecklistItems"}} ...
.material-toggle-switch(title="{{_ 'hide-checked-items'}}")
if checklist.hideCheckedChecklistItems
input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}")
label.toggle-label(for="toggleHideCheckedChecklistItems_{{checklist._id}}")
a.js-hide-all-checklist-items
i.fa.fa-ban
| {{_ "hideAllChecklistItems"}} ...
.material-toggle-switch(title="{{_ 'hideAllChecklistItems'}}")
if checklist.hideAllChecklistItems
input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}")
label.toggle-label(for="toggleHideAllChecklistItems_{{checklist._id}}")
template(name="copyChecklistPopup")
+copyAndMoveChecklist
@@ -140,10 +178,7 @@ template(name="copyAndMoveChecklist")
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}" selected="{{#if isDialogOptionBoardId _id}}selected{{/if}}") {{title}}
option(value="{{_id}}" selected="{{#if isDialogOptionBoardId _id}}selected{{/if}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
+59 -74
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import Cards from '/models/cards';
import Boards from '/models/boards';
@@ -54,7 +55,7 @@ BlazeComponent.extendComponent({
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
return ReactiveCache.getCurrentUser()?.isBoardMember();
}
// Disable sorting if the current user is not a board member
@@ -71,15 +72,6 @@ BlazeComponent.extendComponent({
});
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
/** returns the finished percent of the checklist */
finishedPercent() {
const ret = this.data().checklist.finishedPercent();
@@ -93,20 +85,32 @@ BlazeComponent.extendComponent({
const textarea = this.find('textarea.js-add-checklist-item');
const title = textarea.value.trim();
let cardId = this.currentData().cardId;
const card = Cards.findOne(cardId);
const card = ReactiveCache.getCard(cardId);
//if (card.isLinked()) cardId = card.linkedId;
if (card.isLinkedCard()) cardId = card.linkedId;
if (card.isLinkedCard()) {
cardId = card.linkedId;
}
let sortIndex;
let checklistItemIndex;
if (this.currentData().position === 'top') {
sortIndex = Utils.calculateIndexData(null, card.firstChecklist()).base;
checklistItemIndex = 0;
} else {
sortIndex = Utils.calculateIndexData(card.lastChecklist(), null).base;
checklistItemIndex = -1;
}
if (title) {
Checklists.insert({
cardId,
title,
sort: card.checklists().count(),
sort: sortIndex,
});
this.closeAllInlinedForms();
setTimeout(() => {
this.$('.add-checklist-item')
.last()
.eq(checklistItemIndex)
.click();
}, 100);
}
@@ -115,6 +119,7 @@ BlazeComponent.extendComponent({
event.preventDefault();
const textarea = this.find('textarea.js-add-checklist-item');
const newlineBecomesNewChecklistItem = this.find('input#toggleNewlineBecomesNewChecklistItem');
const newlineBecomesNewChecklistItemOriginOrder = this.find('input#toggleNewlineBecomesNewChecklistItemOriginOrder');
const title = textarea.value.trim();
const checklist = this.currentData().checklist;
@@ -122,14 +127,29 @@ BlazeComponent.extendComponent({
let checklistItems = [title];
if (newlineBecomesNewChecklistItem.checked) {
checklistItems = title.split('\n').map(_value => _value.trim());
if (this.currentData().position === 'top') {
if (newlineBecomesNewChecklistItemOriginOrder.checked === false) {
checklistItems = checklistItems.reverse();
}
}
}
let addIndex;
let sortIndex;
if (this.currentData().position === 'top') {
sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base;
addIndex = -1;
} else {
sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base;
addIndex = 1;
}
for (let checklistItem of checklistItems) {
ChecklistItems.insert({
title: checklistItem,
checklistId: checklist._id,
cardId: checklist.cardId,
sort: Utils.calculateIndexData(checklist.lastItem()).base,
sort: sortIndex,
});
sortIndex += addIndex;
}
}
// We keep the form opened, empty it.
@@ -137,15 +157,6 @@ BlazeComponent.extendComponent({
textarea.focus();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
deleteItem() {
const checklist = this.currentData().checklist;
const item = this.currentData().item;
@@ -197,15 +208,8 @@ BlazeComponent.extendComponent({
},
events() {
const events = {
'click #toggleHideCheckedItemsButton'() {
Meteor.call('toggleHideCheckedItems');
},
};
return [
{
...events,
'click .js-open-checklist-details-menu': Popup.open('checklistActions'),
'submit .js-add-checklist': this.addChecklist,
'submit .js-edit-checklist-title': this.editChecklist,
@@ -216,6 +220,10 @@ BlazeComponent.extendComponent({
'focus .js-add-checklist-item': this.focusChecklistItem,
// add and delete checklist / checklist-item
'click .js-open-inlined-form': this.closeAllInlinedForms,
'click #toggleHideFinishedChecklist'(event) {
event.preventDefault();
this.data().card.toggleHideFinishedChecklist();
},
keydown: this.pressKey,
},
];
@@ -229,25 +237,26 @@ BlazeComponent.extendComponent({
},
boards() {
return Boards.find(
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
_id: { $ne: Meteor.user().getTemplatesBoardId() },
_id: { $ne: ReactiveCache.getCurrentUser().getTemplatesBoardId() },
},
{
sort: { sort: 1 /* boards default sorting */ },
},
);
return ret;
},
swimlanes() {
const board = Boards.findOne(this.selectedBoardId.get());
const board = ReactiveCache.getBoard(this.selectedBoardId.get());
return board.swimlanes();
},
aBoardLists() {
const board = Boards.findOne(this.selectedBoardId.get());
const board = ReactiveCache.getBoard(this.selectedBoardId.get());
return board.lists();
},
@@ -265,29 +274,16 @@ BlazeComponent.extendComponent({
Template.checklists.helpers({
checklists() {
const card = Cards.findOne(this.cardId);
const card = ReactiveCache.getCard(this.cardId);
const ret = card.checklists();
return ret;
},
hideCheckedItems() {
const currentUser = Meteor.user();
if (currentUser) return currentUser.hasHideCheckedItems();
return false;
},
});
BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-add-checklist-item'));
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
events() {
return [
{
@@ -316,6 +312,16 @@ BlazeComponent.extendComponent({
}),
'click .js-move-checklist': Popup.open('moveChecklist'),
'click .js-copy-checklist': Popup.open('copyChecklist'),
'click .js-hide-checked-checklist-items'(event) {
event.preventDefault();
this.data().checklist.toggleHideCheckedChecklistItems();
Popup.back();
},
'click .js-hide-all-checklist-items'(event) {
event.preventDefault();
this.data().checklist.toggleHideAllChecklistItems();
Popup.back();
},
}
]
}
@@ -325,14 +331,6 @@ BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-edit-checklist-item'));
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
events() {
return [
{
@@ -349,19 +347,6 @@ BlazeComponent.extendComponent({
}).register('editChecklistItemForm');
Template.checklistItemDetail.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
hideCheckedItems() {
const user = Meteor.user();
if (user) return user.hasHideCheckedItems();
return false;
},
});
BlazeComponent.extendComponent({
@@ -384,11 +369,11 @@ BlazeComponent.extendComponent({
/** Move Checklist Dialog */
(class extends DialogWithBoardSwimlaneListCard {
getDialogOptions() {
const ret = Meteor.user().getMoveChecklistDialogOptions();
const ret = ReactiveCache.getCurrentUser().getMoveChecklistDialogOptions();
return ret;
}
setDone(cardId, options) {
Meteor.user().setMoveChecklistDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setMoveChecklistDialogOption(this.currentBoardId, options);
this.data().checklist.move(cardId);
}
}).register('moveChecklistPopup');
@@ -396,11 +381,11 @@ BlazeComponent.extendComponent({
/** Copy Checklist Dialog */
(class extends DialogWithBoardSwimlaneListCard {
getDialogOptions() {
const ret = Meteor.user().getCopyChecklistDialogOptions();
const ret = ReactiveCache.getCurrentUser().getCopyChecklistDialogOptions();
return ret;
}
setDone(cardId, options) {
Meteor.user().setCopyChecklistDialogOption(this.currentBoardId, options);
ReactiveCache.getCurrentUser().setCopyChecklistDialogOption(this.currentBoardId, options);
this.data().checklist.copy(cardId);
}
}).register('copyChecklistPopup');
+1 -2
View File
@@ -37,5 +37,4 @@ template(name="cardLabelsPopup")
= name
if(isLabelSelected ../_id)
i.card-label-selectable-icon.fa.fa-check
if currentUser.isBoardAdmin
a.quiet-button.full.js-add-label {{_ 'label-create'}}
a.quiet-button.full.js-add-label {{_ 'label-create'}}
+9 -6
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
let labelColors;
Meteor.startup(() => {
labelColors = Boards.simpleSchema()._schema['labels.$.color'].allowedValues;
@@ -32,7 +34,7 @@ Template.createLabelPopup.helpers({
// is not already used in the board (although it's not a problem if two
// labels have the same color).
defaultColor() {
const labels = Boards.findOne(Session.get('currentBoard')).labels;
const labels = Utils.getCurrentBoard().labels;
const usedColors = _.pluck(labels, 'color');
const availableColors = _.difference(labelColors, usedColors);
return availableColors.length > 1 ? availableColors[0] : labelColors[0];
@@ -50,7 +52,8 @@ BlazeComponent.extendComponent({
appendTo: '.edit-labels-pop-over',
helper(element, currentItem) {
let ret = currentItem.clone();
if (currentItem.closest('.popup-container-depth-0').size() == 0) { // only set css transform at every sub-popup, not at the main popup
if (currentItem.closest('.popup-container-depth-0').length == 0)
{ // only set css transform at every sub-popup, not at the main popup
const content = currentItem.closest('.content')[0]
const offsetLeft = content.offsetLeft;
const offsetTop = $('.pop-over > .header').height() * -1;
@@ -117,7 +120,7 @@ Template.createLabelPopup.events({
// Create the new label
'submit .create-label'(event, templateInstance) {
event.preventDefault();
const board = Boards.findOne(Session.get('currentBoard'));
const board = Utils.getCurrentBoard();
const name = templateInstance
.$('#labelName')
.val()
@@ -130,13 +133,13 @@ Template.createLabelPopup.events({
Template.editLabelPopup.events({
'click .js-delete-label': Popup.afterConfirm('deleteLabel', function () {
const board = Boards.findOne(Session.get('currentBoard'));
const board = Utils.getCurrentBoard();
board.removeLabel(this._id);
Popup.back(2);
}),
'submit .edit-label'(event, templateInstance) {
event.preventDefault();
const board = Boards.findOne(Session.get('currentBoard'));
const board = Utils.getCurrentBoard();
const name = templateInstance
.$('#labelName')
.val()
@@ -149,6 +152,6 @@ Template.editLabelPopup.events({
Template.cardLabelsPopup.helpers({
isLabelSelected(cardId) {
return _.contains(Cards.findOne(cardId).labelIds, this._id);
return _.contains(ReactiveCache.getCard(cardId).labelIds, this._id);
},
});
+13 -4
View File
@@ -45,12 +45,14 @@
}
.minicard-details-menu-with-handle {
float: right;
font-size: 14px;
font-size: 18px;
padding-right: 30px;
padding-left: 5px;
}
.minicard-details-menu {
float: right;
font-size: 14px;
font-size: 18px;
padding-left: 5px;
}
@media print {
.minicard-details-menu,
@@ -90,7 +92,7 @@
background-size: contain;
height: 145px;
user-select: none;
margin: -6px -8px 6px -8px;
margin: 6px -8px 6px -8px;
border-radius: top 2px;
}
.minicard .minicard-labels {
@@ -120,6 +122,13 @@
max-width: 100px;
margin-right: 4px;
}
.minicard .minicard-custom-field-item-fullwidth {
flex-grow: 1;
display: block;
word-wrap: break-word;
max-width: 100%;
margin-right: 4px;
}
.minicard .handle {
width: 20px;
height: 20px;
@@ -149,7 +158,6 @@
.minicard .minicard-title .viewer {
display: block;
word-wrap: break-word;
max-width: 230px;
}
}
.minicard .dates {
@@ -241,6 +249,7 @@
}
.minicard .minicard-description {
padding: 6px 0 0 8px;
color: #000;
background-color: #eee;
width: 100%;
margin-bottom: 2px;
+94 -66
View File
@@ -1,25 +1,36 @@
template(name="minicard")
.minicard(
.minicard.nodragscroll(
class="{{#if isLinkedCard}}linked-card{{/if}}"
class="{{#if isLinkedBoard}}linked-board{{/if}}"
class="{{#if colorClass}}minicard-{{colorClass}}{{/if}}")
if isTouchScreenOrShowDesktopDragHandles
a.fa.fa-navicon.minicard-details-menu-with-handle.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
.handle
.fa.fa-arrows
else
a.fa.fa-navicon.minicard-details-menu.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
if canModifyCard
if isTouchScreenOrShowDesktopDragHandles
a.fa.fa-navicon.minicard-details-menu-with-handle.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
.handle
.fa.fa-arrows
else
a.fa.fa-navicon.minicard-details-menu.js-open-minicard-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
.dates
if getReceived
unless getStart
unless getDue
unless getEnd
.date
+minicardReceivedDate
if getStart
.date
+minicardStartDate
if getDue
.date
+minicardDueDate
if getEnd
+minicardEndDate
if getSpentTime
.date
+cardSpentTime
if cover
.minicard-cover(style="background-image: url('{{cover.link 'original'}}?dummyReloadAfterSessionEstablished={{sess}}');")
if labels
.minicard-labels(class="{{#if hiddenMinicardLabelText}}minicard-labels-no-text{{/if}}")
each labels
unless hiddenMinicardLabelText
span.js-card-label.card-label(class="card-label-{{color}}" title=name)
+viewer
= name
if hiddenMinicardLabelText
.minicard-label(class="card-label-{{color}}" title="{{name}}")
if currentBoard.allowsCoverAttachmentOnMinicard
.minicard-cover(style="background-image: url('{{cover.link 'original'}}?dummyReloadAfterSessionEstablished={{sess}}');")
.minicard-title
if $eq 'prefix-with-full-path' currentBoard.presentParentTask
.parent-prefix
@@ -46,50 +57,60 @@ template(name="minicard")
if $eq 'subtext-with-parent' currentBoard.presentParentTask
.parent-subtext
| {{ parentCardName }}
.dates
if getReceived
unless getStart
unless getDue
unless getEnd
.date
+minicardReceivedDate
if getStart
.date
+minicardStartDate
if getDue
.date
+minicardDueDate
if getEnd
+minicardEndDate
if getSpentTime
.date
+cardSpentTime
if labels
.minicard-labels(class="{{#if hiddenMinicardLabelText}}minicard-labels-no-text{{/if}}")
each labels
unless hiddenMinicardLabelText
span.js-card-label.card-label(class="card-label-{{color}}" title=name)
+viewer
= name
if hiddenMinicardLabelText
.minicard-label(class="card-label-{{color}}" title="{{name}}")
.minicard-custom-fields
each customFieldsWD
if definition.showOnCard
if trueValue
.minicard-custom-field
// If there is custom field label, show label at left,
// and value at right
if definition.showLabelOnMiniCard
.minicard-custom-field-item
+viewer
= definition.name
.minicard-custom-field-item
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
.minicard-custom-field-item
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
else
// If there is no custom field label,
// show value full width
.minicard-custom-field-item-fullwidth
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
if showAssignee
if getAssignees
@@ -103,17 +124,17 @@ template(name="minicard")
each getMembers
+userAvatar(userId=this)
if showCreator
if showCreatorOnMinicard
.minicard-creator
+userAvatar(userId=this.userId noRemove=true)
.badges
unless currentUser.isNoComments
if comments.count
.badge(title="{{_ 'card-comments-title' comments.count }}")
span.badge-icon.fa.fa-comment-o.badge-comment
if canModifyCard
if comments.length
.badge(title="{{_ 'card-comments-title' comments.length }}")
span.badge-icon.fa.fa-comment-o.badge-comment.badge-text
= ' '
= comments.count
= comments.length
//span.badge-comment.badge-text
//| {{_ 'comment'}}
if getDescription
@@ -132,10 +153,11 @@ template(name="minicard")
if expiredPoker
span.badge-text {{ getPokerEstimation }}
if attachments.length
.badge
span.badge-icon.fa.fa-paperclip
span.badge-text= attachments.length
if checklists.count
if currentBoard.allowsBadgeAttachmentOnMinicard
.badge
span.badge-icon.fa.fa-paperclip
span.badge-text= attachments.length
if checklists.length
.badge(class="{{#if checklistFinished}}is-finished{{/if}}")
span.badge-icon.fa.fa-check-square-o
span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
@@ -145,9 +167,10 @@ template(name="minicard")
span.badge-text.check-list-text {{subtasksFinishedCount}}/{{allSubtasksCount}}
//{{subtasksFinishedCount}}/{{subtasksCount}} does not work because when a subtaks is archived, the count goes down
if currentBoard.allowsCardSortingByNumber
.badge
span.badge-icon.fa.fa-sort
span.badge-text.check-list-sort {{ sort }}
if currentBoard.allowsCardSortingByNumberOnMinicard
.badge
span.badge-icon.fa.fa-sort
span.badge-text.check-list-sort {{ sort }}
if currentBoard.allowsDescriptionTextOnMinicard
if getDescription
.minicard-description
@@ -161,17 +184,22 @@ template(name="editCardSortOrderPopup")
template(name="minicardDetailsActionsPopup")
ul.pop-over-list
if currentUser.isBoardAdmin
if canModifyCard
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
unless currentUser.isWorker
li
a.js-copy-card
i.fa.fa-copy
| {{_ 'copyCardPopup-title'}}
hr
li
a.js-archive
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-card'}}
hr
li
a.js-move-card-to-top
i.fa.fa-arrow-up
+34 -24
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import { CustomFieldStringTemplate } from '/client/lib/customFields'
@@ -36,38 +37,42 @@ BlazeComponent.extendComponent({
return ret;
},
showCreator() {
if (this.data().board()) {
return (
this.data().board.allowsCreator === null ||
this.data().board().allowsCreator === undefined ||
this.data().board().allowsCreator
);
// return this.data().board().allowsCreator;
showCreatorOnMinicard() {
// cache "board" to reduce the mini-mongodb access
const board = this.data().board();
let ret = false;
if (board) {
ret = board.allowsCreatorOnMinicard ?? false;
}
return false;
return ret;
},
showMembers() {
if (this.data().board()) {
return (
this.data().board.allowsMembers === null ||
this.data().board().allowsMembers === undefined ||
this.data().board().allowsMembers
);
// cache "board" to reduce the mini-mongodb access
const board = this.data().board();
let ret = false;
if (board) {
ret =
board.allowsMembers === null ||
board.allowsMembers === undefined ||
board.allowsMembers
;
}
return false;
return ret;
},
showAssignee() {
if (this.data().board()) {
return (
this.data().board.allowsAssignee === null ||
this.data().board().allowsAssignee === undefined ||
this.data().board().allowsAssignee
);
// cache "board" to reduce the mini-mongodb access
const board = this.data().board();
let ret = false;
if (board) {
ret =
board.allowsAssignee === null ||
board.allowsAssignee === undefined ||
board.allowsAssignee
;
}
return false;
return ret;
},
/** opens the card label popup only if clicked onto a label
@@ -105,7 +110,7 @@ BlazeComponent.extendComponent({
Template.minicard.helpers({
hiddenMinicardLabelText() {
currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return (currentUser.profile || {}).hiddenMinicardLabelText;
} else if (window.localStorage.getItem('hiddenMinicardLabelText')) {
@@ -168,4 +173,9 @@ Template.minicardDetailsActionsPopup.events({
this.move(this.boardId, this.swimlaneId, this.listId, maxOrder + 1);
Popup.back();
},
'click .js-archive': Popup.afterConfirm('cardArchive', function () {
Popup.close();
this.archive();
Utils.goBoardId(this.boardId);
}),
});
+5 -5
View File
@@ -26,8 +26,7 @@ template(name="subtaskDetail")
.subtask-title
span
if canModifyCard
if currentUser.isBoardAdmin
a.fa.fa-navicon.subtask-details-menu.js-open-subtask-details-menu(title="{{_ 'subtaskActionsPopup-title'}}")
a.fa.fa-navicon.subtask-details-menu.js-open-subtask-details-menu(title="{{_ 'subtaskActionsPopup-title'}}")
if canModifyCard
h2.title.js-open-inlined-form.is-editable
+viewer
@@ -95,7 +94,8 @@ template(name="subtaskActionsPopup")
a.js-view-subtask(title="{{ subtask.title }}")
i.fa.fa-eye
| {{_ "view-it"}}
a.js-delete-subtask.delete-subtask
i.fa.fa-trash
| {{_ "delete"}} ...
if currentUser.isBoardAdmin
a.js-delete-subtask.delete-subtask
i.fa.fa-trash
| {{_ "delete"}} ...
+23 -34
View File
@@ -1,13 +1,4 @@
BlazeComponent.extendComponent({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
}).register('subtaskDetail');
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
addSubtask(event) {
@@ -15,19 +6,19 @@ BlazeComponent.extendComponent({
const textarea = this.find('textarea.js-add-subtask-item');
const title = textarea.value.trim();
const cardId = this.currentData().cardId;
const card = Cards.findOne(cardId);
const card = ReactiveCache.getCard(cardId);
const sortIndex = -1;
const crtBoard = Boards.findOne(card.boardId);
const crtBoard = ReactiveCache.getBoard(card.boardId);
const targetBoard = crtBoard.getDefaultSubtasksBoard();
const listId = targetBoard.getDefaultSubtasksListId();
//Get the full swimlane data for the parent task.
const parentSwimlane = Swimlanes.findOne({
const parentSwimlane = ReactiveCache.getSwimlane({
boardId: crtBoard._id,
_id: card.swimlaneId,
});
//find the swimlane of the same name in the target board.
const targetSwimlane = Swimlanes.findOne({
const targetSwimlane = ReactiveCache.getSwimlane({
boardId: targetBoard._id,
title: parentSwimlane.title,
});
@@ -70,15 +61,6 @@ BlazeComponent.extendComponent({
textarea.focus();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
deleteSubtask() {
const subtask = this.currentData().subtask;
if (subtask && subtask._id) {
@@ -86,6 +68,10 @@ BlazeComponent.extendComponent({
}
},
isBoardAdmin() {
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
editSubtask(event) {
event.preventDefault();
const textarea = this.find('textarea.js-edit-subtask-item');
@@ -117,22 +103,14 @@ BlazeComponent.extendComponent({
},
}).register('subtasks');
Template.subtaskItemDetail.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
BlazeComponent.extendComponent({
// ...
}).register('subtaskItemDetail');
BlazeComponent.extendComponent({
isBoardAdmin() {
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
events() {
return [
{
@@ -158,3 +136,14 @@ BlazeComponent.extendComponent({
]
}
}).register('subtaskActionsPopup');
Template.editSubtaskItemForm.helpers({
user() {
return ReactiveCache.getUser(this.userId);
},
isBoardAdmin() {
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
});
+3 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
export function csvGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
@@ -28,7 +30,7 @@ export function csvGetMembersToMap(data) {
username: importedMember,
id: importedMember,
};
const wekanUser = Users.findOne({ username: importedMember.username });
const wekanUser = ReactiveCache.getUser({ username: importedMember.username });
if (wekanUser) importedMember.wekanId = wekanUser._id;
membersToMap.push(importedMember);
}
+3 -2
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { trelloGetMembersToMap } from './trelloMembersMapper';
import { wekanGetMembersToMap } from './wekanMembersMapper';
import { csvGetMembersToMap } from './csvMembersMapper';
@@ -174,9 +175,9 @@ BlazeComponent.extendComponent({
this._refreshMembers(
this.members().map(member => {
if (!member.wekanId) {
let user = Users.findOne({ username: member.username });
let user = ReactiveCache.getUser({ username: member.username });
if (!user) {
user = Users.findOne({ importUsernames: member.username });
user = ReactiveCache.getUser({ importUsernames: member.username });
}
if (user) {
// eslint-disable-next-line no-console
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
export function trelloGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
@@ -5,7 +7,7 @@ export function trelloGetMembersToMap(data) {
const membersToMap = data.members;
// auto-map based on username
membersToMap.forEach(importedMember => {
const wekanUser = Users.findOne({ username: importedMember.username });
const wekanUser = ReactiveCache.getUser({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
export function wekanGetMembersToMap(data) {
// we will work on the list itself (an ordered array of objects) when a
// mapping is done, we add a 'wekan' field to the object representing the
@@ -15,7 +17,7 @@ export function wekanGetMembersToMap(data) {
importedMember.fullName = user.profile.fullname;
}
importedMember.username = user.username;
const wekanUser = Users.findOne({ username: importedMember.username });
const wekanUser = ReactiveCache.getUser({ username: importedMember.username });
if (wekanUser) {
importedMember.wekanId = wekanUser._id;
}
+57 -14
View File
@@ -7,17 +7,16 @@
border-left: 1px solid #ccc;
padding: 0;
float: left;
min-width: 270px;
max-width: 270px;
/* Reverted incomplete change list width: */
/* https://github.com/wekan/wekan/issues/4558 */
/* Orinal width: 270px. Changes not saved yet: */
/*resize: both; - List width and height resizeable */
/* overflow: auto; - List width and height resizeable */
}
[id^="swimlane-"] .list:first-child {
min-width: 20px;
}
.list.list-auto-width {
flex: 1;
}
.list:first-child {
margin-left: 5px;
border-left: none;
flex: none;
}
.card-details + .list {
border-left: none;
@@ -36,6 +35,9 @@
box-shadow: none;
height: 100px;
}
.list.list-collapsed {
flex: none;
}
.list.list-composer .open-list-composer,
.list .list-composer .open-list-composer {
color: #8c8c8c;
@@ -47,7 +49,7 @@
}
.list-header-add {
flex: 0 0 auto;
padding: 20px 12px 4px;
padding: 12px;
position: relative;
min-height: 20px;
}
@@ -80,6 +82,20 @@
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
}
.list-rotated {
width: 10px;
height: 250px;
margin-top: -90px;
margin-left: -110px;
margin-right: 0;
transform: rotate(90deg);
position: relative;
text-overflow: ellipsis;
white-space: nowrap;
}
.list-header .list-rotated {
}
.list-header .list-header-watch-icon {
padding-left: 10px;
@@ -98,6 +114,23 @@
color: #a6a6a6;
margin-right: 15px;
}
.list-header .list-header-collapse-right {
color: #a6a6a6;
}
.list-header .list-header-collapse-left {
color: #a6a6a6;
margin-right: 15px;
}
.list-header .list-header-uncollapse-left {
color: #a6a6a6;
}
.list-header .list-header-uncollapse-right {
color: #a6a6a6;
}
.list-header .list-header-collapse {
color: #a6a6a6;
margin-right: 15px;
}
.list-header .highlight {
color: #ce1414;
}
@@ -112,6 +145,9 @@
color: #4d4d4d;
padding-left: 4px;
}
.js-open-list-menu {
font-size: 18px;
}
.list-body {
flex: 1 1 auto;
flex-direction: column;
@@ -122,10 +158,15 @@
.list-body .minicards {
flex-grow: 1;
flex-shrink: 0;
/** get card drag/drop working for empty swimlanes */
min-height: 32px;
}
.list-body .minicards form {
margin-bottom: 9px;
}
.list-body .minicards .add-controls button {
min-height: 50px;
}
.list-body .open-minicard-composer {
border-radius: 2px;
color: #8c8c8c;
@@ -170,6 +211,9 @@
#js-wip-limit-edit div {
float: left;
}
#js-list-width-edit .list-width-error {
display: none;
}
@media screen and (max-width: 800px) {
.mini-list {
flex: 0 0 60px;
@@ -208,11 +252,11 @@
padding: 15px 19px;
}
.list-header {
padding: 0 12px 0px;
/*Updated padding values for mobile devices, this should fix text grouping issue*/
padding: 20px 0px 20px 0px;
border-bottom: 0px solid #e4e4e4;
height: 60px;
min-height: 30px;
margin-top: 10px;
display: flex;
align-items: center;
}
.list-header .list-header-left-icon {
@@ -285,7 +329,6 @@
}
.list-header-white {
border-bottom: 6px solid #fff;
border: 1px solid #eee;
}
.list-header-green {
border-bottom: 6px solid #3cb500;
@@ -318,7 +361,7 @@
border-bottom: 6px solid #51e898;
}
.list-header-silver {
border-bottom: 6px solid unset;
border-bottom: 6px solid #e4e4e4;
}
.list-header-peachpuff {
border-bottom: 6px solid #ffdab9;
+3 -1
View File
@@ -1,5 +1,7 @@
template(name='list')
.list.js-list(id="js-list-{{_id}}")
.list.js-list(id="js-list-{{_id}}"
style="{{#unless collapsed}}min-width:{{listWidth}}px;max-width:{{listConstraint}}px;{{/unless}}"
class="{{#if collapsed}}list-collapsed{{/if}} {{#if autoWidth}}list-auto-width{{/if}}")
+listHeader
+listBody
+25 -14
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
require('/client/lib/jquery-ui.js')
@@ -23,14 +24,6 @@ BlazeComponent.extendComponent({
onRendered() {
const boardComponent = this.parentComponent().parentComponent();
function userIsMember() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
}
const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)';
const $cards = this.$('.js-minicards');
@@ -60,6 +53,7 @@ BlazeComponent.extendComponent({
distance: 7,
items: itemsSelector,
placeholder: 'minicard-wrapper placeholder',
scrollSpeed: 10,
start(evt, ui) {
ui.helper.css('z-index', 1000);
ui.placeholder.height(ui.helper.height());
@@ -74,7 +68,7 @@ BlazeComponent.extendComponent({
const nCards = MultiSelection.isActive() ? MultiSelection.count() : 1;
const sortIndex = calculateIndex(prevCardDom, nextCardDom, nCards);
const listId = Blaze.getData(ui.item.parents('.list').get(0))._id;
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
const defaultSwimlaneId = currentBoard.getDefaultSwimline()._id;
let targetSwimlaneId = null;
@@ -96,7 +90,7 @@ BlazeComponent.extendComponent({
$cards.sortable('cancel');
if (MultiSelection.isActive()) {
Cards.find(MultiSelection.getMongoSelector(), { sort: ['sort'] }).forEach((card, i) => {
ReactiveCache.getCards(MultiSelection.getMongoSelector(), { sort: ['sort'] }).forEach((card, i) => {
const newSwimlaneId = targetSwimlaneId
? targetSwimlaneId
: card.swimlaneId || defaultSwimlaneId;
@@ -168,9 +162,9 @@ BlazeComponent.extendComponent({
'option',
'disabled',
// Disable drag-dropping when user is not member
!userIsMember(),
!Utils.canModifyBoard(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
// MultiSelection.isActive() || !Utils.canModifyBoard(),
);
}
});
@@ -180,14 +174,13 @@ BlazeComponent.extendComponent({
const currentBoardId = Tracker.nonreactive(() => {
return Session.get('currentBoard');
});
Cards.find({ boardId: currentBoardId }).fetch();
Tracker.afterFlush(() => {
$cards.find(itemsSelector).droppable({
hoverClass: 'draggable-hover-card',
accept: '.js-member,.js-label',
drop(event, ui) {
const cardId = Blaze.getData(this)._id;
const card = Cards.findOne(cardId);
const card = ReactiveCache.getCard(cardId);
if (ui.draggable.hasClass('js-member')) {
const memberId = Blaze.getData(ui.draggable.get(0)).userId;
@@ -201,6 +194,24 @@ BlazeComponent.extendComponent({
});
});
},
listWidth() {
const user = ReactiveCache.getCurrentUser();
const list = Template.currentData();
return user.getListWidth(list.boardId, list._id);
},
listConstraint() {
const user = ReactiveCache.getCurrentUser();
const list = Template.currentData();
return user.getListConstraint(list.boardId, list._id);
},
autoWidth() {
const user = ReactiveCache.getCurrentUser();
const list = Template.currentData();
return user.isAutoWidth(list.boardId);
},
}).register('list');
Template.miniList.events({
+37 -35
View File
@@ -1,37 +1,38 @@
template(name="listBody")
.list-body
.minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}")
if cards.count
+inlinedForm(autoclose=false position="top")
+addCardForm(listId=_id position="top")
ul.sidebar-list
each customFieldsSum
li
+viewer
= name
if $eq customFieldsSum.type "number"
unless collapsed
.list-body(class="{{#unless isVerticalScrollbars}}no-scrollbars{{/unless}}")
.minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}")
if cards.length
+inlinedForm(autoclose=false position="top")
+addCardForm(listId=_id position="top")
ul.sidebar-list
each customFieldsSum
li
+viewer
= value
if $eq customFieldsSum.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(value)
each (cardsWithLimit (idOrNull ../../_id))
a.minicard-wrapper.js-minicard(href=originRelativeUrl
class="{{#if cardIsSelected}}is-selected{{/if}}"
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
if MultiSelection.isActive
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
+minicard(this)
if (showSpinner (idOrNull ../../_id))
+spinnerList
= name
if $eq customFieldsSum.type "number"
+viewer
= value
if $eq customFieldsSum.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(value)
each (cardsWithLimit (idOrNull ../../_id))
a.minicard-wrapper.js-minicard(href=originRelativeUrl
class="{{#if cardIsSelected}}is-selected{{/if}}"
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
if MultiSelection.isActive
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
+minicard(this)
if (showSpinner (idOrNull ../../_id))
+spinnerList
if canSeeAddCard
+inlinedForm(autoclose=false position="bottom")
+addCardForm(listId=_id position="bottom")
else
a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}")
i.fa.fa-plus
if canSeeAddCard
+inlinedForm(autoclose=false position="bottom")
+addCardForm(listId=_id position="bottom")
else
a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}")
i.fa.fa-plus
template(name="spinnerList")
.sk-spinner.sk-spinner-list(
@@ -54,6 +55,7 @@ template(name="addCardForm")
.add-controls.clearfix
button.primary.confirm(type="submit") {{_ 'add'}}
a.fa.fa-times-thin.js-close-inlined-form
.add-controls.clearfix
unless currentBoard.isTemplatesBoard
unless currentBoard.isTemplateBoard
span.quiet
@@ -78,23 +80,23 @@ template(name="linkCardPopup")
select.js-select-boards
option(value="")
each boards
option(value="{{_id}}") {{title}}
option(value="{{_id}}") {{isTitleDefault title}}
input.primary.confirm.js-link-board(type="button" value="{{_ 'link'}}")
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
each swimlanes
option(value="{{_id}}") {{title}}
option(value="{{_id}}") {{isTitleDefault title}}
label {{_ 'lists'}}:
select.js-select-lists
each lists
option(value="{{_id}}") {{title}}
option(value="{{_id}}") {{isTitleDefault title}}
label {{_ 'cards'}}:
select.js-select-cards
each cards
option(value="{{getId}}") {{getTitle}}
option(value="{{getRealId}}") {{getTitle}}
.edit-controls.clearfix
input.primary.confirm.js-done(type="button" value="{{_ 'link'}}")
+139 -77
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import { Spinner } from '/client/lib/spinner';
@@ -15,10 +16,11 @@ BlazeComponent.extendComponent({
},
customFieldsSum() {
return CustomFields.find({
const ret = ReactiveCache.getCustomFields({
boardIds: { $in: [Session.get('currentBoard')] },
showSumAtTopOfList: true,
});
return ret;
},
openForm(options) {
@@ -64,7 +66,7 @@ BlazeComponent.extendComponent({
swimlaneId = this.parentComponent()
.parentComponent()
.data()._id; // Always swimlanes view
const swimlane = Swimlanes.findOne(swimlaneId);
const swimlane = ReactiveCache.getSwimlane(swimlaneId);
// If this is the card templates swimlane, insert a card template
if (swimlane.isCardTemplatesSwimlane()) cardType = 'template-card';
// If this is the board templates swimlane, insert a board template and a linked card
@@ -112,7 +114,7 @@ BlazeComponent.extendComponent({
// to appear
const cardCount = this.data()
.cards(this.idOrNull(swimlaneId))
.count();
.length;
if (this.cardlimit.get() < cardCount) {
this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter);
}
@@ -200,25 +202,23 @@ BlazeComponent.extendComponent({
archived: false,
};
if (swimlaneId) selector.swimlaneId = swimlaneId;
return Cards.find(Filter.mongoSelector(selector), {
const ret = ReactiveCache.getCards(Filter.mongoSelector(selector), {
// sort: ['sort'],
sort: sortBy,
limit,
});
}, true);
return ret;
},
showSpinner(swimlaneId) {
const list = Template.currentData();
return list.cards(swimlaneId).count() > this.cardlimit.get();
return list.cards(swimlaneId).length > this.cardlimit.get();
},
canSeeAddCard() {
return (
!this.reachedWipLimit() &&
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
Utils.canModifyCard()
);
},
@@ -227,10 +227,15 @@ BlazeComponent.extendComponent({
return (
!list.getWipLimit('soft') &&
list.getWipLimit('enabled') &&
list.getWipLimit('value') <= list.cards().count()
list.getWipLimit('value') <= list.cards().length
);
},
isVerticalScrollbars() {
const user = ReactiveCache.getCurrentUser();
return user && user.isVerticalScrollbars();
},
cardDetailsPopup(event) {
if (!Popup.isOpen()) {
Popup.open("cardDetails")(event);
@@ -269,9 +274,8 @@ BlazeComponent.extendComponent({
const currentBoardId = Session.get('currentBoard');
arr = [];
_.forEach(
Boards.findOne(currentBoardId)
.customFields()
.fetch(),
ReactiveCache.getBoard(currentBoardId)
.customFields(),
function (field) {
if (field.automaticallyOnCard || field.alwaysOnCard)
arr.push({ _id: field._id, value: null });
@@ -288,8 +292,8 @@ BlazeComponent.extendComponent({
getLabels() {
const currentBoardId = Session.get('currentBoard');
if (Boards.findOne(currentBoardId).labels) {
return Boards.findOne(currentBoardId).labels.filter(label => {
if (ReactiveCache.getBoard(currentBoardId).labels) {
return ReactiveCache.getBoard(currentBoardId).labels.filter(label => {
return this.labels.get().indexOf(label._id) > -1;
});
}
@@ -349,10 +353,10 @@ BlazeComponent.extendComponent({
{
match: /\B@([\w.-]*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
callback(
$.map(currentBoard.activeMembers(), member => {
const user = Users.findOne(member.userId);
const user = ReactiveCache.getUser(member.userId);
return user.username.indexOf(term) === 0 ? user : null;
}),
);
@@ -374,7 +378,7 @@ BlazeComponent.extendComponent({
{
match: /\B#(\w*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
callback(
$.map(currentBoard.labels, label => {
if (label.name == undefined) {
@@ -430,10 +434,10 @@ BlazeComponent.extendComponent({
this.boardId = Session.get('currentBoard');
// In order to get current board info
subManager.subscribe('board', this.boardId, false);
this.board = Boards.findOne(this.boardId);
this.board = ReactiveCache.getBoard(this.boardId);
// List where to insert card
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
this.listId = Blaze.getData(list[0])._id;
this.list = $(Popup._getTopStack().openerElement).closest('.js-list');
this.listId = Blaze.getData(this.list[0])._id;
// Swimlane where to insert card
const swimlane = $(Popup._getTopStack().openerElement).closest(
'.js-swimlane',
@@ -442,11 +446,11 @@ BlazeComponent.extendComponent({
if (Utils.boardView() === 'board-view-swimlanes')
this.swimlaneId = Blaze.getData(swimlane[0])._id;
else if (Utils.boardView() === 'board-view-lists' || !Utils.boardView)
this.swimlaneId = Swimlanes.findOne({ boardId: this.boardId })._id;
this.swimlaneId = ReactiveCache.getSwimlane({ boardId: this.boardId })._id;
},
boards() {
const boards = Boards.find(
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
@@ -457,16 +461,22 @@ BlazeComponent.extendComponent({
sort: { sort: 1 /* boards default sorting */ },
},
);
return boards;
return ret;
},
swimlanes() {
if (!this.selectedBoardId.get()) {
return [];
}
const swimlanes = Swimlanes.find({ boardId: this.selectedBoardId.get() });
if (swimlanes.count())
this.selectedSwimlaneId.set(swimlanes.fetch()[0]._id);
const swimlanes = ReactiveCache.getSwimlanes(
{
boardId: this.selectedBoardId.get()
},
{
sort: { sort: 1 },
});
if (swimlanes.length)
this.selectedSwimlaneId.set(swimlanes[0]._id);
return swimlanes;
},
@@ -474,8 +484,14 @@ BlazeComponent.extendComponent({
if (!this.selectedBoardId.get()) {
return [];
}
const lists = Lists.find({ boardId: this.selectedBoardId.get() });
if (lists.count()) this.selectedListId.set(lists.fetch()[0]._id);
const lists = ReactiveCache.getLists(
{
boardId: this.selectedBoardId.get()
},
{
sort: { sort: 1 },
});
if (lists.length) this.selectedListId.set(lists[0]._id);
return lists;
},
@@ -483,10 +499,9 @@ BlazeComponent.extendComponent({
if (!this.board) {
return [];
}
const ownCardsIds = this.board.cards().map(card => {
return card.linkedId || card._id;
});
return Cards.find({
const ownCardsIds = this.board.cards().map(card => card.getRealId());
const ret = ReactiveCache.getCards(
{
boardId: this.selectedBoardId.get(),
swimlaneId: this.selectedSwimlaneId.get(),
listId: this.selectedListId.get(),
@@ -494,7 +509,24 @@ BlazeComponent.extendComponent({
linkedId: { $nin: ownCardsIds },
_id: { $nin: ownCardsIds },
type: { $nin: ['template-card'] },
},
{
sort: { sort: 1 },
});
return ret;
},
getSortIndex() {
const position = this.currentData().position;
let ret;
if (position === 'top') {
const firstCardDom = this.list.find('.js-minicard:first')[0];
ret = Utils.calculateIndex(null, firstCardDom).base;
} else if (position === 'bottom') {
const lastCardDom = this.list.find('.js-minicard:last')[0];
ret = Utils.calculateIndex(lastCardDom, null).base;
}
return ret;
},
events() {
@@ -519,16 +551,17 @@ BlazeComponent.extendComponent({
Popup.back();
return;
}
const nextCardNumber = this.board.getNextCardNumber();
const sortIndex = this.getSortIndex();
const _id = Cards.insert({
title: $('.js-select-cards option:selected').text(), //dummy
listId: this.listId,
swimlaneId: this.swimlaneId,
boardId: this.boardId,
sort: Lists.findOne(this.listId)
.cards()
.count(),
sort: sortIndex,
type: 'cardType-linkedCard',
linkedId,
cardNumber: nextCardNumber,
});
Filter.addException(_id);
Popup.back();
@@ -540,21 +573,22 @@ BlazeComponent.extendComponent({
const impBoardId = $('.js-select-boards option:selected').val();
if (
!impBoardId ||
Cards.findOne({ linkedId: impBoardId, archived: false })
ReactiveCache.getCard({ linkedId: impBoardId, archived: false })
) {
Popup.back();
return;
}
const nextCardNumber = this.board.getNextCardNumber();
const sortIndex = this.getSortIndex();
const _id = Cards.insert({
title: $('.js-select-boards option:selected').text(), //dummy
listId: this.listId,
swimlaneId: this.swimlaneId,
boardId: this.boardId,
sort: Lists.findOne(this.listId)
.cards()
.count(),
sort: sortIndex,
type: 'cardType-linkedBoard',
linkedId: impBoardId,
cardNumber: nextCardNumber,
});
Filter.addException(_id);
Popup.back();
@@ -564,6 +598,31 @@ BlazeComponent.extendComponent({
},
}).register('linkCardPopup');
Template.linkCardPopup.helpers({
isTitleDefault(title) {
// https://github.com/wekan/wekan/issues/4763
// https://github.com/wekan/wekan/issues/4742
// Translation text for "default" does not work, it returns an object.
// When that happens, try use translation "defaultdefault" that has same content of default, or return text "Default".
// This can happen, if swimlane does not have name.
// Yes, this is fixing the symptom (Swimlane title does not have title)
// instead of fixing the problem (Add Swimlane title when creating swimlane)
// because there could be thousands of swimlanes, adding name Default to all of them
// would be very slow.
if (title.startsWith("key 'default") && title.endsWith('returned an object instead of string.')) {
if (`${TAPi18n.__('defaultdefault')}`.startsWith("key 'default") && `${TAPi18n.__('defaultdefault')}`.endsWith('returned an object instead of string.')) {
return 'Default';
} else {
return `${TAPi18n.__('defaultdefault')}`;
}
} else if (title === 'Default') {
return `${TAPi18n.__('defaultdefault')}`;
} else {
return title;
}
},
});
BlazeComponent.extendComponent({
mixins() {
return [];
@@ -587,36 +646,28 @@ BlazeComponent.extendComponent({
this.isListTemplateSearch ||
this.isSwimlaneTemplateSearch ||
this.isBoardTemplateSearch;
let board = {};
this.board = {};
if (this.isTemplateSearch) {
//board = Boards.findOne((Meteor.user().profile || {}).templatesBoardId);
board._id = (Meteor.user().profile || {}).templatesBoardId;
const boardId = (ReactiveCache.getCurrentUser().profile || {}).templatesBoardId;
if (boardId) {
subManager.subscribe('board', boardId, false);
this.board = ReactiveCache.getBoard(boardId);
}
} else {
// Prefetch first non-current board id
board = Boards.find({
archived: false,
'members.userId': Meteor.userId(),
_id: {
$nin: [
Session.get('currentBoard'),
(Meteor.user().profile || {}).templatesBoardId,
],
},
});
this.board = Utils.getCurrentBoard();
}
if (!board) {
if (!this.board) {
Popup.back();
return;
}
const boardId = board._id;
this.boardId = this.board._id;
// Subscribe to this board
subManager.subscribe('board', boardId, false);
this.selectedBoardId = new ReactiveVar(boardId);
subManager.subscribe('board', this.boardId, false);
this.selectedBoardId = new ReactiveVar(this.boardId);
this.list = $(Popup._getTopStack().openerElement).closest('.js-list');
if (!this.isBoardTemplateSearch) {
this.boardId = Session.get('currentBoard');
// In order to get current board info
subManager.subscribe('board', this.boardId, false);
this.swimlaneId = '';
// Swimlane where to insert card
const swimlane = $(Popup._getTopStack().openerElement).parents(
@@ -624,16 +675,15 @@ BlazeComponent.extendComponent({
);
if (Utils.boardView() === 'board-view-swimlanes')
this.swimlaneId = Blaze.getData(swimlane[0])._id;
else this.swimlaneId = Swimlanes.findOne({ boardId: this.boardId })._id;
else this.swimlaneId = ReactiveCache.getSwimlane({ boardId: this.boardId })._id;
// List where to insert card
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
this.listId = Blaze.getData(list[0])._id;
this.listId = Blaze.getData(this.list[0])._id;
}
this.term = new ReactiveVar('');
},
boards() {
const boards = Boards.find(
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
@@ -644,14 +694,14 @@ BlazeComponent.extendComponent({
sort: { sort: 1 /* boards default sorting */ },
},
);
return boards;
return ret;
},
results() {
if (!this.selectedBoardId) {
return [];
}
const board = Boards.findOne(this.selectedBoardId.get());
const board = ReactiveCache.getBoard(this.selectedBoardId.get());
if (!this.isTemplateSearch || this.isCardTemplateSearch) {
return board.searchCards(this.term.get(), false);
} else if (this.isListTemplateSearch) {
@@ -669,6 +719,19 @@ BlazeComponent.extendComponent({
}
},
getSortIndex() {
const position = this.data().position;
let ret;
if (position === 'top') {
const firstCardDom = this.list.find('.js-minicard:first')[0];
ret = Utils.calculateIndex(null, firstCardDom).base;
} else if (position === 'bottom') {
const lastCardDom = this.list.find('.js-minicard:last')[0];
ret = Utils.calculateIndex(lastCardDom, null).base;
}
return ret;
},
events() {
return [
{
@@ -692,9 +755,8 @@ BlazeComponent.extendComponent({
if (!this.isTemplateSearch || this.isCardTemplateSearch) {
// Card insertion
// 1. Common
element.sort = Lists.findOne(this.listId)
.cards()
.count();
element.cardNumber = this.board.getNextCardNumber();
element.sort = this.getSortIndex();
// 1.A From template
if (this.isTemplateSearch) {
element.type = 'cardType-card';
@@ -707,15 +769,15 @@ BlazeComponent.extendComponent({
Filter.addException(_id);
// List insertion
} else if (this.isListTemplateSearch) {
element.sort = Swimlanes.findOne(this.swimlaneId)
element.sort = ReactiveCache.getSwimlane(this.swimlaneId)
.lists()
.count();
.length;
element.type = 'list';
_id = element.copy(this.boardId, this.swimlaneId);
} else if (this.isSwimlaneTemplateSearch) {
element.sort = Boards.findOne(this.boardId)
element.sort = ReactiveCache.getBoard(this.boardId)
.swimlanes()
.count();
.length;
element.type = 'swimlane';
_id = element.copy(this.boardId);
} else if (this.isBoardTemplateSearch) {
@@ -723,7 +785,7 @@ BlazeComponent.extendComponent({
'copyBoard',
element.linkedId,
{
sort: Boards.find({ archived: false }).count(),
sort: ReactiveCache.getBoards({ archived: false }).length,
type: 'board',
title: element.title,
},
@@ -757,7 +819,7 @@ BlazeComponent.extendComponent({
Meteor.settings.public.sandstorm;
if (isSandstorm) {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
if (user) {
if (Utils.boardView() === 'board-view-swimlanes') {
this.swimlaneId = this.parentComponent()
+74 -25
View File
@@ -1,5 +1,5 @@
template(name="listHeader")
.list-header.js-list-header(
.list-header.js-list-header.nodragscroll(
class="{{#if limitToShowCardsCount}}list-header-card-count{{/if}}"
class=colorClass)
+inlinedForm
@@ -8,19 +8,40 @@ template(name="listHeader")
if isMiniScreen
if currentList
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
h2.list-header-name(
title="{{ moment modifiedAt 'LLL' }}"
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
+viewer
= title
if wipLimit.enabled
|&nbsp;(
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.count}}
|/#{wipLimit.value})
if showCardsCountForList cards.count
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.count}}
else
if collapsed
a.js-collapse(title="{{_ 'uncollapse'}}")
i.fa.fa-arrow-left.list-header-uncollapse-left
i.fa.fa-arrow-right.list-header-uncollapse-right
if showCardsCountForList cards.length
br
span.cardCount {{cardsCount}}
if isMiniScreen
h2.list-header-name(
title="{{ moment modifiedAt 'LLL' }}"
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
+viewer
= title
if wipLimit.enabled
|&nbsp;(
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|/#{wipLimit.value})
if showCardsCountForList cards.length
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}}
else
div(class="{{#if collapsed}}list-rotated{{/if}}")
h2.list-header-name(
title="{{ moment modifiedAt 'LLL' }}"
class="{{#if currentUser.isBoardMember}}{{#unless currentUser.isCommentOnly}}{{#unless currentUser.isWorker}}js-open-inlined-form is-editable{{/unless}}{{/unless}}{{/if}}")
+viewer
= title
if wipLimit.enabled
|&nbsp;(
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|/#{wipLimit.value})
unless collapsed
if showCardsCountForList cards.length
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}}
if isMiniScreen
if currentList
if isWatching
@@ -36,16 +57,20 @@ template(name="listHeader")
else if currentUser.isBoardMember
if isWatching
i.list-header-watch-icon.fa.fa-eye
div.list-header-menu
unless currentUser.isCommentOnly
//if isBoardAdmin
// a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}")
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
if currentUser.isBoardAdmin
if isTouchScreenOrShowDesktopDragHandles
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
unless collapsed
div.list-header-menu
unless currentUser.isCommentOnly
//if isBoardAdmin
// a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}")
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
a.js-collapse(title="{{_ 'collapse'}}")
i.fa.fa-arrow-right.list-header-collapse-right
i.fa.fa-arrow-left.list-header-collapse-left
a.fa.fa-navicon.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
if currentUser.isBoardAdmin
if isTouchScreenOrShowDesktopDragHandles
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
template(name="editListTitleForm")
.list-composer
@@ -62,6 +87,11 @@ template(name="listActionPopup")
i.fa.fa-arrow-down
| {{_ 'add-card-to-bottom-of-list'}}
hr
ul.pop-over-list
li
a.js-set-list-width
i.fa.fa-arrows-h
| {{_ 'set-list-width'}}
ul.pop-over-list
li
a.js-toggle-watch-list
@@ -79,7 +109,7 @@ template(name="listActionPopup")
i.fa.fa-paint-brush
| {{_ 'set-color-list'}}
ul.pop-over-list
if cards.count
if cards.length
li
a.js-select-cards
i.fa.fa-check-square
@@ -156,6 +186,25 @@ template(name="wipLimitErrorPopup")
p {{_ 'wipLimitErrorPopup-dialog-pt2'}}
button.full.js-back-view(type="submit") {{_ 'cancel'}}
template(name="setListWidthPopup")
#js-list-width-edit
label {{_ 'set-list-width-value'}}
p
input.list-width-value(type="number" value="{{ listWidthValue }}" min="100")
input.list-constraint-value(type="number" value="{{ listConstraintValue }}" min="100")
input.list-width-apply(type="submit" value="{{_ 'apply'}}")
input.list-width-error
br
a.js-auto-width-board(
title="{{#if isAutoWidth}}{{_ 'click-to-disable-auto-width'}}{{else}}{{_ 'click-to-enable-auto-width'}}{{/if}}")
i.fa(class="fa-solid fa-{{#if isAutoWidth}}compress{{else}}expand{{/if}}")
span {{_ 'auto-list-width'}}
template(name="listWidthErrorPopup")
.list-width-invalid
p {{_ 'list-width-error-message'}} '&gt;=100'
button.full.js-back-view(type="submit") {{_ 'cancel'}}
template(name="setListColorPopup")
form.edit-label
.palette-colors: each colors
+100 -22
View File
@@ -1,4 +1,6 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
import dragscroll from '@wekanteam/dragscroll';
let listsColors;
Meteor.startup(() => {
@@ -12,12 +14,12 @@ BlazeComponent.extendComponent({
(!list.getWipLimit('enabled') ||
list.getWipLimit('soft') ||
!this.reachedWipLimit()) &&
!Meteor.user().isWorker()
!ReactiveCache.getCurrentUser().isWorker()
);
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
starred(check = undefined) {
const list = Template.currentData();
@@ -30,6 +32,17 @@ BlazeComponent.extendComponent({
return !status;
}
},
collapsed(check = undefined) {
const list = Template.currentData();
const status = list.isCollapsed();
if (check === undefined) {
// just check
return status;
} else {
list.collapse(!status);
return !status;
}
},
editTitle(event) {
event.preventDefault();
const newTitle = this.childComponents('inlinedForm')[0]
@@ -47,9 +60,9 @@ BlazeComponent.extendComponent({
},
limitToShowCardsCount() {
const currentUser = Meteor.user();
const currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
return Meteor.user().getLimitToShowCardsCount();
return currentUser.getLimitToShowCardsCount();
} else {
return false;
}
@@ -63,14 +76,15 @@ BlazeComponent.extendComponent({
.parentComponent()
.data()._id;
return list.cards(swimlaneId).count();
const ret = list.cards(swimlaneId).length;
return ret;
},
reachedWipLimit() {
const list = Template.currentData();
return (
list.getWipLimit('enabled') &&
list.getWipLimit('value') <= list.cards().count()
list.getWipLimit('value') <= list.cards().length
);
},
@@ -78,7 +92,7 @@ BlazeComponent.extendComponent({
const list = Template.currentData();
return (
list.getWipLimit('enabled') &&
list.getWipLimit('value') < list.cards().count()
list.getWipLimit('value') < list.cards().length
);
},
@@ -102,6 +116,10 @@ BlazeComponent.extendComponent({
event.preventDefault();
this.starred(!this.starred());
},
'click .js-collapse'(event) {
event.preventDefault();
this.collapsed(!this.collapsed());
},
'click .js-open-list-menu': Popup.open('listAction'),
'click .js-add-card.list-header-plus-top'(event) {
const listDom = $(event.target).parents(
@@ -123,13 +141,13 @@ BlazeComponent.extendComponent({
Template.listHeader.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
}
});
Template.listActionPopup.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
isWipLimitEnabled() {
@@ -138,7 +156,7 @@ Template.listActionPopup.helpers({
isWatching() {
return this.findWatcher(Meteor.userId());
},
}
});
Template.listActionPopup.events({
@@ -151,6 +169,7 @@ Template.listActionPopup.events({
});
Popup.back();
},
'click .js-set-list-width': Popup.open('setListWidth'),
'click .js-set-color-list': Popup.open('setListColor'),
'click .js-select-cards'() {
const cardIds = this.allCards().map(card => card._id);
@@ -183,7 +202,7 @@ BlazeComponent.extendComponent({
10,
);
if (limit < list.cards().count() && !list.getWipLimit('soft')) {
if (limit < list.cards().length && !list.getWipLimit('soft')) {
Template.instance()
.$('.wip-limit-error')
.click();
@@ -198,9 +217,9 @@ BlazeComponent.extendComponent({
if (
list.getWipLimit('soft') &&
list.getWipLimit('value') < list.cards().count()
list.getWipLimit('value') < list.cards().length
) {
list.setWipLimit(list.cards().count());
list.setWipLimit(list.cards().length);
}
Meteor.call('enableSoftLimit', Template.currentData()._id);
},
@@ -210,9 +229,9 @@ BlazeComponent.extendComponent({
// Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list
if (
!list.getWipLimit('enabled') &&
list.getWipLimit('value') < list.cards().count()
list.getWipLimit('value') < list.cards().length
) {
list.setWipLimit(list.cards().count());
list.setWipLimit(list.cards().length);
}
Meteor.call('enableWipLimit', list._id);
},
@@ -244,17 +263,16 @@ BlazeComponent.extendComponent({
Template.listMorePopup.events({
'click .js-delete': Popup.afterConfirm('listDelete', function() {
Popup.back();
// TODO how can we avoid the fetch call?
const allCards = this.allCards().fetch();
const allCards = this.allCards();
const allCardIds = _.pluck(allCards, '_id');
// it's okay if the linked cards are on the same list
if (
Cards.find({
ReactiveCache.getCards({
$and: [
{ listId: { $ne: this._id } },
{ linkedId: { $in: allCardIds } },
],
}).count() === 0
}).length === 0
) {
allCardIds.map(_id => Cards.remove(_id));
Lists.remove(this._id);
@@ -279,7 +297,7 @@ Template.listMorePopup.events({
Template.listHeader.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
return ReactiveCache.getCurrentUser().isBoardAdmin();
},
});
@@ -309,13 +327,73 @@ BlazeComponent.extendComponent({
},
'click .js-submit'() {
this.currentList.setColor(this.currentColor.get());
Popup.back();
Popup.close();
},
'click .js-remove-color'() {
this.currentList.setColor(null);
Popup.back();
Popup.close();
},
},
];
},
}).register('setListColorPopup');
BlazeComponent.extendComponent({
applyListWidth() {
const list = Template.currentData();
const board = list.boardId;
const width = parseInt(
Template.instance()
.$('.list-width-value')
.val(),
10,
);
const constraint = parseInt(
Template.instance()
.$('.list-constraint-value')
.val(),
10,
);
// FIXME(mark-i-m): where do we put constants?
if (width < 100 || !width || constraint < 100 || !constraint) {
Template.instance()
.$('.list-width-error')
.click();
} else {
Meteor.call('applyListWidth', board, list._id, width, constraint);
Popup.back();
}
},
listWidthValue() {
const list = Template.currentData();
const board = list.boardId;
return ReactiveCache.getCurrentUser().getListWidth(board, list._id);
},
listConstraintValue() {
const list = Template.currentData();
const board = list.boardId;
return ReactiveCache.getCurrentUser().getListConstraint(board, list._id);
},
isAutoWidth() {
const boardId = Utils.getCurrentBoardId();
const user = ReactiveCache.getCurrentUser();
return user && user.isAutoWidth(boardId);
},
events() {
return [
{
'click .js-auto-width-board'() {
dragscroll.reset();
ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId());
},
'click .list-width-apply': this.applyListWidth,
'click .list-width-error': Popup.open('listWidthError'),
},
];
},
}).register('setListWidthPopup');
+74
View File
@@ -0,0 +1,74 @@
.my-cards-board-wrapper {
border-radius: 0 0 4px 4px;
min-width: 400px;
margin-bottom: 2rem;
margin-right: auto;
margin-left: auto;
border-width: 2px;
border-style: solid;
border-color: #a2a2a2;
}
.my-cards-board-title {
font-size: 1.4rem;
font-weight: bold;
padding: 0.5rem;
background-color: #808080;
color: #fff;
}
.my-cards-swimlane-title {
font-size: 1.1rem;
font-weight: bold;
padding: 0.5rem;
padding-bottom: 0.4rem;
margin-top: 0;
margin-bottom: 0.5rem;
text-align: center;
}
.swimlane-default-color {
background-color: #d3d3d3;
}
.my-cards-list-title {
font-weight: bold;
font-size: 1.1rem;
text-align: center;
margin-bottom: 0.7rem;
}
.my-cards-list-wrapper {
margin: 1rem;
border-radius: 5px;
display: inline-grid;
min-width: 250px;
max-width: 350px;
}
.my-cards-card-wrapper {
margin-top: 0;
margin-bottom: 10px;
}
.my-cards-dueat-list-wrapper {
max-width: 500px;
margin-right: auto;
margin-left: auto;
}
.my-cards-board-table thead {
border-bottom: 3px solid #4d4d4d;
background-color: transparent;
}
.my-cards-board-table th,
.my-cards-board-table td {
border: 0;
}
.my-cards-board-table tr {
border-bottom: 2px solid #a2a2a2;
}
.my-cards-card-title-table {
font-weight: bold;
padding-left: 2px;
max-width: 243px;
}
.my-cards-board-badge {
width: 36px;
height: 24px;
float: left;
border-radius: 5px;
margin-right: 5px;
}
@@ -0,0 +1,8 @@
template(name="accessibilityHeaderBar")
if currentUser
h1
| {{_ 'accessibility-title'}}
template(name="accessibility")
if currentUser
| {{_ 'accessibility-content'}}
+11
View File
@@ -0,0 +1,11 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
Meteor.subscribe('setting');
},
}).register('accessibility');
+2 -1
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { CardSearchPagedComponent } from '../../lib/cardSearch';
import {
OPERATOR_HAS,
@@ -66,7 +67,7 @@ class DueCardsComponent extends CardSearchPagedComponent {
});
if (Utils.dueCardsView() !== 'all') {
queryParams.addPredicate(OPERATOR_USER, Meteor.user().username);
queryParams.addPredicate(OPERATOR_USER, ReactiveCache.getCurrentUser().username);
}
this.runGlobalSearch(queryParams);
+12
View File
@@ -1,7 +1,19 @@
.new-comment a.fa.fa-brands.fa-markdown,
.inlined-form a.fa.fa-brands.fa-markdown {
float: right;
position: absolute;
top: -10px;
right: 60px;
}
.new-comment a.fa.fa-copy,
.inlined-form a.fa.fa-copy {
float: right;
position: relative;
top: -10px;
right: 5px;
}
.js-inlined-form.viewer.btn-sm {
position: absolute;
top: 20px;
right: 6px;
}
+1
View File
@@ -1,4 +1,5 @@
template(name="editor")
a.fa.fa-brands.fa-markdown(title="{{_ 'convert-to-markdown'}}")
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
span.copied-tooltip {{_ 'copied'}}
textarea.editor(
+48 -5
View File
@@ -1,3 +1,7 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
var converter = require('@wekanteam/html-to-markdown');
const specialHandles = [
{userId: 'board_members', username: 'board_members'},
{userId: 'card_members', username: 'card_members'}
@@ -7,19 +11,46 @@ const specialHandleNames = specialHandles.map(m => m.username);
BlazeComponent.extendComponent({
onRendered() {
// Start: Copy <pre> code https://github.com/wekan/wekan/issues/5149
// TODO: Try to make copyPre visible at Card Details after editing or closing editor or Card Details.
// - Also this same TODO below at event, if someone gets it working.
var copy = function(target) {
var textArea = document.createElement('textarea');
textArea.setAttribute('style','width:1px;border:0;opacity:0;');
document.body.appendChild(textArea);
textArea.value = target.innerHTML;
textArea.select();
document.execCommand('copy');
document.body.removeChild(textArea);
}
var pres = document.querySelectorAll(".viewer > pre");
pres.forEach(function(pre){
var button = document.createElement("a");
button.className = "fa fa-copy btn btn-sm right";
// TODO: Translate text 'Copy text to clipboard'
button.setAttribute('title','Copy text to clipboard');
button.innerHTML = '';
pre.parentNode.insertBefore(button, pre);
button.addEventListener('click', function(e){
e.preventDefault();
copy(pre.childNodes[0]);
})
})
// End: Copy <pre> code
const textareaSelector = 'textarea';
const mentions = [
// User mentions
{
match: /\B@([\w.-]*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
callback(
_.union(
currentBoard
.activeMembers()
.map(member => {
const user = Users.findOne(member.userId);
const user = ReactiveCache.getUser(member.userId);
const username = user.username;
const fullName = user.profile && user.profile !== undefined && user.profile.fullname ? user.profile.fullname : "";
return username.includes(term) || fullName.includes(term) ? user : null;
@@ -42,12 +73,14 @@ BlazeComponent.extendComponent({
index: 1,
},
];
const enableTextarea = function() {
const $textarea = this.$(textareaSelector);
autosize($textarea);
$textarea.escapeableTextComplete(mentions);
};
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR !== false) {
/*
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR === true || Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR === 'true') {
const isSmall = Utils.isMiniScreen();
const toolbar = isSmall
? [
@@ -267,6 +300,8 @@ BlazeComponent.extendComponent({
} else {
enableTextarea();
}
*/
enableTextarea();
},
events() {
return [
@@ -278,6 +313,14 @@ BlazeComponent.extendComponent({
const $tooltip = this.$('.copied-tooltip');
Utils.showCopied(promise, $tooltip);
},
'click a.fa.fa-brands.fa-markdown'(event) {
const $editor = this.$('textarea.editor');
$editor[0].value = converter.convert($editor[0].value);
},
// TODO: Try to make copyPre visible at Card Details after editing or closing editor or Card Details.
//'click .js-close-inlined-form'(event) {
// Utils.copyPre();
//},
}
]
}
@@ -328,13 +371,13 @@ Blaze.Template.registerHelper(
new Template('mentions', function() {
const view = this;
let content = Blaze.toHTML(view.templateContentBlock);
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentBoard = Utils.getCurrentBoard();
if (!currentBoard)
return HTML.Raw(
DOMPurify.sanitize(content, { ALLOW_UNKNOWN_PROTOCOLS: true }),
);
const knowedUsers = _.union(currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
const u = ReactiveCache.getUser(member.userId);
if (u) {
member.username = u.username;
}
+3 -5
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
Meteor.subscribe('user-admin');
Meteor.subscribe('boards');
Meteor.subscribe('setting');
@@ -9,7 +11,7 @@ Template.header.onCreated(function(){
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(Settings.findOne());
templateInstance.currentSetting.set(ReactiveCache.getCurrentSetting());
let currSetting = templateInstance.currentSetting.curValue;
if(currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined && document.getElementById("headerIsSettingDatabaseCallDone") != null)
document.getElementById("headerIsSettingDatabaseCallDone").style.display = 'none';
@@ -24,10 +26,6 @@ Template.header.helpers({
return !Session.get('currentBoard');
},
currentSetting() {
return Settings.findOne();
},
hideLogo() {
return Utils.isMiniScreen() && Session.get('currentBoard');
},
+10 -3
View File
@@ -446,6 +446,12 @@ a:not(.disabled).is-active i.fa {
padding: 0;
padding-top: 15px;
}
.no-scrollbars {
scrollbar-width: none;
}
.no-scrollbars::-webkit-scrollbar {
display: none !important;
}
@media screen and (max-width: 800px) {
#content {
margin: 1px 0px 0px 0px;
@@ -470,6 +476,7 @@ a:not(.disabled).is-active i.fa {
.select-authentication {
width: 100%;
}
.textBelowCustomLoginLogo,
.auth-layout {
display: flex;
flex-direction: column;
@@ -559,14 +566,14 @@ a:not(.disabled).is-active i.fa {
top: 45px;
left: 10px;
}
#isSettingDatabaseCallDone {
display: none;
}
.at-link {
color: #17683a;
text-decoration: underline;
text-decoration-color: #17683a;
}
.at-pwd-form, .at-sep, .at-oauth {
display: none;
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
+15 -13
View File
@@ -6,12 +6,12 @@ head
where the application is deployed with a path prefix, but it seems to be
difficult to do that cleanly with Blaze -- at least without adding extra
packages.
link(rel="shortcut icon" type="image/x-icon" href="favicon.ico")
link(rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png")
link(rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png")
link(rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png")
link(rel="manifest" href="/site.webmanifest")
link(rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5")
link(rel="shortcut icon" type="image/x-icon" href="/favicon.ico")
link(rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png")
link(rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png")
link(rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png")
link(rel="manifest" crossOrigin="use-credentials" href="/site.webmanifest")
link(rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5")
meta(name="apple-mobile-web-app-title" content="Wekan")
meta(name="application-name" content="Wekan")
meta(name="msapplication-TileColor" content="#00aba9")
@@ -34,14 +34,16 @@ template(name="userFormsLayout")
unless currentSetting.customLoginLogoLinkUrl
img(src="{{currentSetting.customLoginLogoImageUrl}}" width="300" height="auto")
br
unless currentSetting.customLoginLogoImageUrl
div#isSettingDatabaseCallDone
img(src="{{pathFor '/wekan-logo.svg'}}" alt="" width="300" height="auto")
br
if currentSetting.textBelowCustomLoginLogo
+viewer
| {{currentSetting.textBelowCustomLoginLogo}}
else
img(src="{{pathFor '/wekan-logo.svg'}}" alt="" width="300" height="auto")
br
if currentSetting.textBelowCustomLoginLogo
hr
section.textBelowCustomLoginLogo
+viewer
| {{currentSetting.textBelowCustomLoginLogo}}
hr
section.auth-layout
section.auth-dialog
if isLoading
+loader
+59 -62
View File
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { TAPi18n } from '/imports/i18n';
BlazeLayout.setRoot('body');
@@ -19,80 +20,76 @@ const validator = {
},
};
// let isSettingDatabaseFctCallDone = false;
Template.userFormsLayout.onCreated(function () {
const templateInstance = this;
templateInstance.currentSetting = new ReactiveVar();
templateInstance.isLoading = new ReactiveVar(false);
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(Settings.findOne());
let currSetting = templateInstance.currentSetting.curValue;
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
oidcBtnElt.html(htmlvalue);
if (!ReactiveCache.getCurrentUser()?.profile) {
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
});
// isSettingDatabaseFctCallDone = true;
if (currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
document.getElementById("isSettingDatabaseCallDone").style.display = 'none';
else
document.getElementById("isSettingDatabaseCallDone").style.display = 'block';
return this.stop();
},
});
Meteor.call('isPasswordLoginDisabled', (_, result) => {
if (result) {
$('.at-pwd-form').hide();
}
});
if (!Meteor.user()?.profile) {
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
else console.log("oidc redirect not set");
});
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(ReactiveCache.getCurrentSetting());
return this.stop();
},
});
}
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
});
Template.userFormsLayout.onRendered(() => {
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
Meteor.call('getAuthenticationsEnabled', (_, result) => {
let enabledAuthenticationMethods = [ 'password' ]; // we show/hide this based on isPasswordLoginEnabled
if (result) {
Object.keys(result).forEach((m) => {
if (result[m]) enabledAuthenticationMethods.push(m);
});
}
Meteor.call('isPasswordLoginEnabled', (_, result) => {
if (result) {
$('.at-pwd-form').show();
}
});
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
if (enabledAuthenticationMethods.indexOf('oauth2') !== -1) {
// TODO find better way to run this code once the oauth2 UI is injected in the DOM
(function waitForElementAndShow() {
if (!$('.at-oauth')[0]) return setTimeout(waitForElementAndShow, 100);
$('.at-oauth').show();
})();
}
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
});
});
Template.userFormsLayout.helpers({
currentSetting() {
return Template.instance().currentSetting.get();
},
// isSettingDatabaseCallDone(){
// return isSettingDatabaseFctCallDone;
// },
isLegalNoticeLinkExist() {
const currSet = Template.instance().currentSetting.get();
if (currSet && currSet !== undefined && currSet != null) {
@@ -164,7 +161,7 @@ Template.userFormsLayout.events({
},
'DOMSubtreeModified #at-oidc'(event) {
if (alreadyCheck <= 2) {
let currSetting = Settings.findOne();
let currSetting = ReactiveCache.getCurrentSetting();
let oidcBtnElt = $("#at-oidc");
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
@@ -185,7 +182,7 @@ Template.userFormsLayout.events({
'DOMSubtreeModified .at-form'(event) {
if (alreadyCheck <= 2 && !isCheckDone) {
if (document.getElementById("at-oidc") != null) {
let currSetting = Settings.findOne();
let currSetting = ReactiveCache.getCurrentSetting();
let oidcBtnElt = $("#at-oidc");
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
+4 -3
View File
@@ -70,13 +70,14 @@ template(name="myCards")
unless isMiniScreen
.my-cards-board-badge(class=board.colorClass, id="header")
.my-cards-card-title-table
a.minicard-wrapper(href=card.originRelativeUrl)
| {{card.title}}
| {{card.title}}
//a.minicard-wrapper(href=card.originRelativeUrl)
// | {{card.title}}
td
| {{list.title}}
td
a(href=board.originRelativeUrl)
| {{board.title}}
//a(href=board.originRelativeUrl)
td
| {{swimlane.title}}
+9 -1
View File
@@ -88,7 +88,7 @@
height: 20px;
}
.pop-over .quiet {
padding: 6px 6px 4px;
/* padding: 6px 6px 4px;*/
}
.pop-over.search-over {
background: #f0f0f0;
@@ -152,6 +152,14 @@
text-decoration: none;
overflow: hidden;
line-height: 33px;
display:flex;
/* flex-wrap:wrap;*/
gap:5px;
align-items: center;
}
.pop-over-list li > a > .member{
align-self: flex-start;
flex:0 0 auto;
}
.pop-over-list li > a .item-name {
display: block;
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
Template.notification.events({
'click .read-status .materialCheckBox'() {
const update = {};
@@ -7,22 +9,22 @@ Template.notification.events({
Users.update(Meteor.userId(), { $set: update });
},
'click .remove a'() {
Meteor.user().removeNotification(this.activityData._id);
ReactiveCache.getCurrentUser().removeNotification(this.activityData._id);
},
});
Template.notification.helpers({
mode: 'board',
isOfActivityType(activityId, type) {
const activity = Activities.findOne(activityId);
const activity = ReactiveCache.getActivity(activityId);
return activity && activity.activityType === type;
},
activityType(activityId) {
const activity = Activities.findOne(activityId);
const activity = ReactiveCache.getActivity(activityId);
return activity ? activity.activityType : '';
},
activityUser(activityId) {
const activity = Activities.findOne(activityId);
const activity = ReactiveCache.getActivity(activityId);
return activity && activity.userId;
},
});
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
// this hides the notifications drawer if anyone clicks off of the panel
Template.body.events({
click(event) {
@@ -12,7 +14,7 @@ Template.body.events({
Template.notifications.helpers({
unreadNotifications() {
const notifications = Users.findOne(Meteor.userId()).notifications();
const notifications = ReactiveCache.getCurrentUser().notifications();
const unreadNotifications = _.filter(notifications, v => !v.read);
return unreadNotifications.length;
},
@@ -11,7 +11,7 @@ template(name='notificationsDrawer')
a.fa.fa-times-thin.close
ul.notifications
each transformedProfile.notifications
+notification(activityData=activity index=dbIndex read=read)
+notification(activityData=activityObj index=dbIndex read=read)
if($gt unreadNotifications 0)
a.all-read {{_ 'mark-all-as-read'}}
if ($and ($.Session.get 'showReadNotifications') ($gt readNotifications 0))
@@ -1,3 +1,4 @@
import { ReactiveCache } from '/imports/reactiveCache';
import { toggleNotificationsDrawer } from './notifications.js';
Template.notificationsDrawer.onCreated(function() {
@@ -14,11 +15,11 @@ Template.notificationsDrawer.onCreated(function() {
Template.notificationsDrawer.helpers({
transformedProfile() {
return Users.findOne(Meteor.userId());
return ReactiveCache.getCurrentUser();
},
readNotifications() {
const readNotifications = _.filter(
Meteor.user().profile.notifications,
ReactiveCache.getCurrentUser().profile.notifications,
v => !!v.read,
);
return readNotifications.length;
@@ -27,7 +28,7 @@ Template.notificationsDrawer.helpers({
Template.notificationsDrawer.events({
'click .all-read'() {
const notifications = Meteor.user().profile.notifications;
const notifications = ReactiveCache.getCurrentUser().profile.notifications;
for (const index in notifications) {
if (notifications.hasOwnProperty(index) && !notifications[index].read) {
const update = {};
@@ -43,7 +44,7 @@ Template.notificationsDrawer.events({
Session.set('showReadNotifications', !Session.get('showReadNotifications'));
},
'click .remove-read'() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
for (const notification of user.profile.notifications) {
if (notification.read) {
user.removeNotification(notification.activity);
@@ -1,20 +1,22 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {},
boards() {
const boards = Boards.find(
const ret = ReactiveCache.getBoards(
{
archived: false,
'members.userId': Meteor.userId(),
_id: {
$ne: Meteor.user().getTemplatesBoardId(),
$ne: ReactiveCache.getCurrentUser().getTemplatesBoardId(),
},
},
{
sort: { sort: 1 /* boards default sorting */ },
},
);
return boards;
return ret;
},
events() {
@@ -18,7 +18,7 @@ BlazeComponent.extendComponent({
},
labels() {
const labels = Boards.findOne(Session.get('currentBoard')).labels;
const labels = Utils.getCurrentBoard().labels;
for (let i = 0; i < labels.length; i++) {
if (labels[i].name === '' || labels[i].name === undefined) {
labels[i].name = labels[i].color.toUpperCase();
+6 -12
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.subscribe('allRules');
@@ -7,24 +9,16 @@ BlazeComponent.extendComponent({
trigger() {
const ruleId = this.data().ruleId;
const rule = Rules.findOne({
_id: ruleId.get(),
});
const trigger = Triggers.findOne({
_id: rule.triggerId,
});
const rule = ReactiveCache.getRule(ruleId.get());
const trigger = ReactiveCache.getTrigger(rule.triggerId);
const desc = trigger.description();
const upperdesc = desc.charAt(0).toUpperCase() + desc.substr(1);
return upperdesc;
},
action() {
const ruleId = this.data().ruleId;
const rule = Rules.findOne({
_id: ruleId.get(),
});
const action = Actions.findOne({
_id: rule.actionId,
});
const rule = ReactiveCache.getRule(ruleId.get());
const action = ReactiveCache.getAction(rule.actionId);
const desc = action.description();
const upperdesc = desc.charAt(0).toUpperCase() + desc.substr(1);
return upperdesc;
+4 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.currentActions = new ReactiveVar('board');
@@ -33,7 +35,8 @@ BlazeComponent.extendComponent({
},
rules() {
return Rules.find({});
const ret = ReactiveCache.getRules({});
return ret;
},
name() {
+4 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.subscribe('allRules');
@@ -5,9 +7,10 @@ BlazeComponent.extendComponent({
rules() {
const boardId = Session.get('currentBoard');
return Rules.find({
const ret = ReactiveCache.getRules({
boardId,
});
return ret;
},
events() {
return [{}];
+3 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.rulesCurrentTab = new ReactiveVar('rulesList');
@@ -55,7 +57,7 @@ BlazeComponent.extendComponent({
let trigger = this.triggerVar.get();
trigger.userId = '*';
if (username !== undefined) {
const userFound = Users.findOne({ username });
const userFound = ReactiveCache.getUser({ username });
if (userFound !== undefined) {
trigger.userId = userFound._id;
this.triggerVar.set(trigger);
+4 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
BlazeComponent.extendComponent({
onCreated() {
this.showBoardTrigger = new ReactiveVar(true);
@@ -31,7 +33,8 @@ BlazeComponent.extendComponent({
},
rules() {
return Rules.find({});
const ret = ReactiveCache.getRules({});
return ret;
},
name() {
@@ -5,7 +5,7 @@ BlazeComponent.extendComponent({
this.subscribe('allRules');
},
labels() {
const labels = Boards.findOne(Session.get('currentBoard')).labels;
const labels = Utils.getCurrentBoard().labels;
for (let i = 0; i < labels.length; i++) {
if (labels[i].name === '' || labels[i].name === undefined) {
labels[i].name = labels[i].color;
+63 -54
View File
@@ -58,18 +58,20 @@ template(name="rulesReport")
h1 {{_ 'rulesReportTitle'}}
if resultsCount
table
tr
th Rule Title
th Board Title
th actionType
th activityType
thead
tr
th Rule Title
th Board Title
th actionType
th activityType
each rule in results
tr
td {{ rule.title }}
td {{ rule.boardTitle }}
td {{ rule.action.actionType }}
td {{ rule.trigger.activityType }}
tbody
tr
td {{ rule.title }}
td {{ rule.boardTitle }}
td {{ rule.action.actionType }}
td {{ rule.trigger.activityType }}
else
div {{_ 'no-results' }}
@@ -77,22 +79,24 @@ template(name="filesReport")
h1 {{_ 'filesReportTitle'}}
if resultsCount
table
tr
th Filename
th.right Size (kB)
th MIME Type
th Attachment ID
th Board ID
th Card ID
thead
tr
th Filename
th.right Size (kB)
th MIME Type
th Attachment ID
th Board ID
th Card ID
each att in results
tr
td {{ att.name }}
td.right {{ fileSize att.size }}
td {{ att.type }}
td {{ att._id }}
td {{ att.meta.boardId }}
td {{ att.meta.cardId }}
tbody
tr
td {{ att.name }}
td.right {{ fileSize att.size }}
td {{ att.type }}
td {{ att._id }}
td {{ att.meta.boardId }}
td {{ att.meta.cardId }}
else
div {{_ 'no-results' }}
@@ -100,22 +104,24 @@ template(name="cardsReport")
h1 {{_ 'cardsReportTitle'}}
if resultsCount
table.table
tr
th Card Title
th Board
th Swimlane
th List
th Members
th Assignees
thead
tr
th Card Title
th Board
th Swimlane
th List
th Members
th Assignees
each card in results
tr
td {{abbreviate card.title }}
td {{abbreviate card.board.title }}
td {{abbreviate card.swimlane.title }}
td {{abbreviate card.list.title }}
td {{userNames card.members }}
td {{userNames card.assignees }}
tbody
tr
td {{abbreviate card.title }}
td {{abbreviate card.board.title }}
td {{abbreviate card.swimlane.title }}
td {{abbreviate card.list.title }}
td {{userNames card.members }}
td {{userNames card.assignees }}
else
div {{_ 'no-results' }}
@@ -123,22 +129,25 @@ template(name="boardsReport")
h1 {{_ 'boardsReportTitle'}}
if resultsCount
table.table
tr
th Title
th Id
th Permission
th Archived?
th Members
th Organizations
th Teams
each board in results
thead
tr
td {{abbreviate board.title }}
td {{abbreviate board._id }}
td {{ board.permission }}
td
= yesOrNo(board.archived)
td {{userNames board.members }}
th Title
th Id
th Permission
th Archived?
th Members
th Organizations
th Teams
each board in results
tbody
tr
td {{abbreviate board.title }}
td {{abbreviate board._id }}
td {{ board.permission }}
td
= yesOrNo(board.archived)
td {{userNames board.members }}
td {{orgs board.orgs }}
td {{teams board.teams }}
else
div {{_ 'no-results' }}
Loaded 100 of 1084 files, more files were not shown because too many files have changed in this diff. Show more